Better demo plugin for query_actions, refs #2293

pull/2295/head
Simon Willison 2024-03-05 18:06:38 -08:00
rodzic 86335dc722
commit 5de6797d4a
3 zmienionych plików z 10 dodań i 6 usunięć

Wyświetl plik

@ -1561,10 +1561,10 @@ This example adds a new query action linking to a page for explaining a query:
return [ return [
{ {
"href": datasette.urls.database(database) "href": datasette.urls.database(database)
+ "/-/explain?" + "?"
+ urllib.parse.urlencode( + urllib.parse.urlencode(
{ {
"sql": sql, "sql": "explain " + sql,
} }
), ),
"label": "Explain this query", "label": "Explain this query",

Wyświetl plik

@ -401,8 +401,12 @@ def query_actions(datasette, database, query_name, sql):
return [ return [
{ {
"href": datasette.urls.database(database) "href": datasette.urls.database(database)
+ "/-/explain?" + "?"
+ urllib.parse.urlencode(args), + urllib.parse.urlencode(
{
"sql": "explain " + sql,
}
),
"label": "Explain this query", "label": "Explain this query",
}, },
] ]

Wyświetl plik

@ -949,10 +949,10 @@ async def test_hook_table_actions(ds_client, table_or_view):
@pytest.mark.parametrize( @pytest.mark.parametrize(
"path,expected_url", "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/pragma_cache_size",
"/fixtures/-/explain?sql=PRAGMA+cache_size%3B&query_name=pragma_cache_size", "/fixtures?sql=explain+PRAGMA+cache_size%3B",
), ),
), ),
) )