diff --git a/datasette/app.py b/datasette/app.py index 62a609ae..d4ea9287 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -538,39 +538,6 @@ class Datasette: url = "https://" + url[len("http://") :] return url - def inspect(self): - " Inspect the database and return a dictionary of table metadata " - if self._inspect: - return self._inspect - - self._inspect = {} - for filename in self.files: - if filename is MEMORY: - self._inspect[":memory:"] = { - "hash": "000", - "file": ":memory:", - "size": 0, - "views": {}, - "tables": {}, - } - else: - path = Path(filename) - name = path.stem - if name in self._inspect: - raise Exception("Multiple files with same stem %s" % name) - with sqlite3.connect("file:{}?mode=ro".format(path), uri=True) as conn: - self.prepare_connection(conn) - self._inspect[name] = { - "hash": inspect_hash(path), - "file": str(path), - "size": path.stat().st_size, - "views": inspect_views(conn), - "tables": inspect_tables( - conn, (self.metadata("databases") or {}).get(name, {}) - ), - } - return self._inspect - def register_custom_units(self): "Register any custom units defined in the metadata.json with Pint" for unit in self.metadata("custom_units") or []: @@ -821,10 +788,6 @@ class Datasette: if plugin["static_path"]: modpath = "/-/static-plugins/{}/".format(plugin["name"]) app.static(modpath, plugin["static_path"]) - app.add_route( - JsonDataView.as_view(self, "inspect.json", self.inspect), - r"/-/inspect", - ) app.add_route( JsonDataView.as_view(self, "metadata.json", lambda: self._metadata), r"/-/metadata", diff --git a/tests/test_api.py b/tests/test_api.py index b4599ab3..f7ce4bb9 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -1063,11 +1063,6 @@ def test_metadata_json(app_client): assert METADATA == response.json -def test_inspect_json(app_client): - response = app_client.get("/-/inspect.json") - assert app_client.ds.inspect() == response.json - - def test_plugins_json(app_client): response = app_client.get("/-/plugins.json") assert [ @@ -1411,9 +1406,7 @@ def test_ttl_parameter(app_client, path, expected_cache_control): ) def test_hash_parameter(app_client_with_hash, path, expected_redirect): # First get the current hash for the fixtures database - current_hash = app_client_with_hash.get("/-/inspect.json").json["fixtures"]["hash"][ - :7 - ] + current_hash = app_client_with_hash.ds.databases["fixtures"].hash[:7] response = app_client_with_hash.get(path, allow_redirects=False) assert response.status == 302 location = response.headers["Location"]