diff --git a/datasette/app.py b/datasette/app.py index c2e685ee..1c730a73 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -456,7 +456,7 @@ class Datasette: # step 2: database-level metadata for dbname, db in self._metadata_local.get("databases", {}).items(): for key, value in db.items(): - if key == "tables": + if key in ("tables", "queries"): continue await self.set_database_metadata(dbname, key, value) diff --git a/tests/test_internals_datasette.py b/tests/test_internals_datasette.py index 2614e02e..135a9099 100644 --- a/tests/test_internals_datasette.py +++ b/tests/test_internals_datasette.py @@ -173,3 +173,23 @@ async def test_get_permission(ds_client): # And test KeyError with pytest.raises(KeyError): ds.get_permission("missing-permission") + + +@pytest.mark.asyncio +async def test_apply_metadata_json(): + ds = Datasette( + metadata={ + "databases": { + "legislators": { + "tables": {"offices": {"summary": "office address or sumtin"}}, + "queries": { + "millenntial_represetatives": { + "summary": "Social media accounts for current legislators" + } + }, + } + } + }, + ) + await ds.invoke_startup() + assert (await ds.client.get("/")).status_code == 200