From 5de6797d4a4333653568dd3db24c4df7b7502ba3 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Tue, 5 Mar 2024 18:06:38 -0800 Subject: [PATCH] Better demo plugin for query_actions, refs #2293 --- docs/plugin_hooks.rst | 4 ++-- tests/plugins/my_plugin.py | 8 ++++++-- tests/test_plugins.py | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/plugin_hooks.rst b/docs/plugin_hooks.rst index 3ada41e2..62062bfd 100644 --- a/docs/plugin_hooks.rst +++ b/docs/plugin_hooks.rst @@ -1561,10 +1561,10 @@ This example adds a new query action linking to a page for explaining a query: return [ { "href": datasette.urls.database(database) - + "/-/explain?" + + "?" + urllib.parse.urlencode( { - "sql": sql, + "sql": "explain " + sql, } ), "label": "Explain this query", diff --git a/tests/plugins/my_plugin.py b/tests/plugins/my_plugin.py index f96441cb..650cc57d 100644 --- a/tests/plugins/my_plugin.py +++ b/tests/plugins/my_plugin.py @@ -401,8 +401,12 @@ def query_actions(datasette, database, query_name, sql): return [ { "href": datasette.urls.database(database) - + "/-/explain?" - + urllib.parse.urlencode(args), + + "?" + + urllib.parse.urlencode( + { + "sql": "explain " + sql, + } + ), "label": "Explain this query", }, ] diff --git a/tests/test_plugins.py b/tests/test_plugins.py index 86208371..4620af51 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -949,10 +949,10 @@ async def test_hook_table_actions(ds_client, table_or_view): @pytest.mark.parametrize( "path,expected_url", ( - ("/fixtures?sql=select+1", "/fixtures/-/explain?sql=select+1"), + ("/fixtures?sql=select+1", "/fixtures?sql=explain+select+1"), ( "/fixtures/pragma_cache_size", - "/fixtures/-/explain?sql=PRAGMA+cache_size%3B&query_name=pragma_cache_size", + "/fixtures?sql=explain+PRAGMA+cache_size%3B", ), ), )