From 0dd41efce6a41d19d52308dbd191c94098250b7a Mon Sep 17 00:00:00 2001 From: Alex Garcia Date: Thu, 15 Aug 2024 21:48:07 -0700 Subject: [PATCH] skip over "queries" blocks when processing database-level metadata items (#2386) --- datasette/app.py | 2 +- tests/test_internals_datasette.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) 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