From 89cffcf14cda830871c8ee81742eaa1e2dff017b Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sat, 17 Dec 2022 13:40:27 -0800 Subject: [PATCH] Reset _metadata_local in a couple of tests Refs https://github.com/simonw/datasette/pull/1960#issuecomment-1356476886 --- tests/test_facets.py | 36 +++++++++++++++++++++--------------- tests/test_plugins.py | 42 +++++++++++++++++++++++------------------- 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/tests/test_facets.py b/tests/test_facets.py index 1921cba7..d264f534 100644 --- a/tests/test_facets.py +++ b/tests/test_facets.py @@ -582,22 +582,28 @@ async def test_facet_size(): data5 = response5.json() assert len(data5["facet_results"]["city"]["results"]) == 20 # Now try messing with facet_size in the table metadata - ds._metadata_local = { - "databases": { - "test_facet_size": {"tables": {"neighbourhoods": {"facet_size": 6}}} + orig_metadata = ds._metadata_local + try: + ds._metadata_local = { + "databases": { + "test_facet_size": {"tables": {"neighbourhoods": {"facet_size": 6}}} + } } - } - response6 = await ds.client.get("/test_facet_size/neighbourhoods.json?_facet=city") - data6 = response6.json() - assert len(data6["facet_results"]["city"]["results"]) == 6 - # Setting it to max bumps it up to 50 again - ds._metadata_local["databases"]["test_facet_size"]["tables"]["neighbourhoods"][ - "facet_size" - ] = "max" - data7 = ( - await ds.client.get("/test_facet_size/neighbourhoods.json?_facet=city") - ).json() - assert len(data7["facet_results"]["city"]["results"]) == 20 + response6 = await ds.client.get( + "/test_facet_size/neighbourhoods.json?_facet=city" + ) + data6 = response6.json() + assert len(data6["facet_results"]["city"]["results"]) == 6 + # Setting it to max bumps it up to 50 again + ds._metadata_local["databases"]["test_facet_size"]["tables"]["neighbourhoods"][ + "facet_size" + ] = "max" + data7 = ( + await ds.client.get("/test_facet_size/neighbourhoods.json?_facet=city") + ).json() + assert len(data7["facet_results"]["city"]["results"]) == 20 + finally: + ds._metadata_local = orig_metadata def test_other_types_of_facet_in_metadata(): diff --git a/tests/test_plugins.py b/tests/test_plugins.py index d62e6810..5077b341 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -990,28 +990,32 @@ def test_hook_skip_csrf(app_client): @pytest.mark.asyncio async def test_hook_get_metadata(ds_client): - ds_client.ds._metadata_local = { - "title": "Testing get_metadata hook!", - "databases": {"from-local": {"title": "Hello from local metadata"}}, - } - og_pm_hook_get_metadata = pm.hook.get_metadata + try: + orig_metadata = ds_client.ds._metadata_local + ds_client.ds._metadata_local = { + "title": "Testing get_metadata hook!", + "databases": {"from-local": {"title": "Hello from local metadata"}}, + } + og_pm_hook_get_metadata = pm.hook.get_metadata - def get_metadata_mock(*args, **kwargs): - return [ - { - "databases": { - "from-hook": {"title": "Hello from the plugin hook"}, - "from-local": {"title": "This will be overwritten!"}, + def get_metadata_mock(*args, **kwargs): + return [ + { + "databases": { + "from-hook": {"title": "Hello from the plugin hook"}, + "from-local": {"title": "This will be overwritten!"}, + } } - } - ] + ] - pm.hook.get_metadata = get_metadata_mock - meta = ds_client.ds.metadata() - assert "Testing get_metadata hook!" == meta["title"] - assert "Hello from local metadata" == meta["databases"]["from-local"]["title"] - assert "Hello from the plugin hook" == meta["databases"]["from-hook"]["title"] - pm.hook.get_metadata = og_pm_hook_get_metadata + pm.hook.get_metadata = get_metadata_mock + meta = ds_client.ds.metadata() + assert "Testing get_metadata hook!" == meta["title"] + assert "Hello from local metadata" == meta["databases"]["from-local"]["title"] + assert "Hello from the plugin hook" == meta["databases"]["from-hook"]["title"] + pm.hook.get_metadata = og_pm_hook_get_metadata + finally: + ds_client.ds._metadata_local = orig_metadata def _extract_commands(output):