From 57879dc8b346a435804a9e45ffaacbf2a0228bc6 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Wed, 1 Jul 2020 17:23:37 -0700 Subject: [PATCH] Better titles for canned query pages, closes #887 --- datasette/templates/query.html | 2 +- tests/test_html.py | 7 +++++++ tests/test_permissions.py | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/datasette/templates/query.html b/datasette/templates/query.html index c65953fb..0882e142 100644 --- a/datasette/templates/query.html +++ b/datasette/templates/query.html @@ -28,7 +28,7 @@ {% block content %} -

{{ metadata.title or database }}{% if private %} 🔒{% endif %}

+

{{ metadata.title or database }}{% if canned_query and not metadata.title %}: {{ canned_query }}{% endif %}{% if private %} 🔒{% endif %}

{% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %} diff --git a/tests/test_html.py b/tests/test_html.py index d1411afd..ebd91cf1 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -1004,6 +1004,13 @@ def test_404_content_type(app_client): assert "text/html; charset=utf-8" == response.headers["content-type"] +def test_canned_query_default_title(app_client): + response = app_client.get("/fixtures/magic_parameters") + assert response.status == 200 + soup = Soup(response.body, "html.parser") + assert "fixtures: magic_parameters" == soup.find("h1").text + + def test_canned_query_with_custom_metadata(app_client): response = app_client.get("/fixtures/neighborhood_search?text=town") assert response.status == 200 diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 2d57b5e3..90e58a27 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -179,13 +179,13 @@ def test_view_query(allow, expected_anon, expected_auth): assert expected_anon == anon_response.status if allow and anon_response.status == 200: # Should be no padlock - assert ">fixtures 🔒" not in anon_response.text + assert "🔒" not in anon_response.text auth_response = client.get( "/fixtures/q", cookies={"ds_actor": client.actor_cookie({"id": "root"})} ) assert expected_auth == auth_response.status if allow and expected_anon == 403 and expected_auth == 200: - assert ">fixtures 🔒" in auth_response.text + assert ">fixtures: q 🔒" in auth_response.text @pytest.mark.parametrize(