Emergency fix for broken links in 0.50, closes #1010

pull/1017/head
Simon Willison 2020-10-09 17:33:13 -07:00
rodzic 549a007683
commit c13d184704
3 zmienionych plików z 30 dodań i 23 usunięć

Wyświetl plik

@ -29,7 +29,7 @@
{% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %}
<p>This data as {% for name, url in renderers.items() %}<a href="{{ base_url }}{{ url }}">{{ name }}</a>{{ ", " if not loop.last }}{% endfor %}</p>
<p>This data as {% for name, url in renderers.items() %}<a href="{{ url }}">{{ name }}</a>{{ ", " if not loop.last }}{% endfor %}</p>
{% include custom_table_templates %}

Wyświetl plik

@ -110,7 +110,7 @@
<p><a class="not-underlined" title="{{ query.sql }}" href="{{ database_url(database) }}?{{ {'sql': query.sql}|urlencode|safe }}{% if query.params %}&amp;{{ query.params|urlencode|safe }}{% endif %}">&#x270e; <span class="underlined">View and edit SQL</span></a></p>
{% endif %}
<p class="export-links">This data as {% for name, url in renderers.items() %}<a href="{{ base_url }}{{ url }}">{{ name }}</a>{{ ", " if not loop.last }}{% endfor %}{% if display_rows %}, <a href="{{ base_url }}{{ url_csv }}">CSV</a> (<a href="#export">advanced</a>){% endif %}</p>
<p class="export-links">This data as {% for name, url in renderers.items() %}<a href="{{ url }}">{{ name }}</a>{{ ", " if not loop.last }}{% endfor %}{% if display_rows %}, <a href="{{ url_csv }}">CSV</a> (<a href="#export">advanced</a>){% endif %}</p>
{% if suggested_facets %}
<p class="suggested-facets">
@ -159,10 +159,10 @@
<div id="export" class="advanced-export">
<h3>Advanced export</h3>
<p>JSON shape:
<a href="{{ base_url }}{{ renderers['json'] }}">default</a>,
<a href="{{ base_url }}{{ append_querystring(renderers['json'], '_shape=array') }}">array</a>,
<a href="{{ base_url }}{{ append_querystring(renderers['json'], '_shape=array&_nl=on') }}">newline-delimited</a>{% if primary_keys %},
<a href="{{ base_url }}{{ append_querystring(renderers['json'], '_shape=object') }}">object</a>
<a href="{{ renderers['json'] }}">default</a>,
<a href="{{ append_querystring(renderers['json'], '_shape=array') }}">array</a>,
<a href="{{ append_querystring(renderers['json'], '_shape=array&_nl=on') }}">newline-delimited</a>{% if primary_keys %},
<a href="{{ append_querystring(renderers['json'], '_shape=object') }}">object</a>
{% endif %}
</p>
<form action="{{ url_csv_path }}" method="get">

Wyświetl plik

@ -635,24 +635,24 @@ def test_table_csv_json_export_interface(app_client):
.find("p", {"class": "export-links"})
.findAll("a")
)
actual = [l["href"].split("/")[-1] for l in links]
actual = [l["href"] for l in links]
expected = [
"simple_primary_key.json?id__gt=2",
"simple_primary_key.testall?id__gt=2",
"simple_primary_key.testnone?id__gt=2",
"simple_primary_key.testresponse?id__gt=2",
"simple_primary_key.csv?id__gt=2&_size=max",
"/fixtures/simple_primary_key.json?id__gt=2",
"/fixtures/simple_primary_key.testall?id__gt=2",
"/fixtures/simple_primary_key.testnone?id__gt=2",
"/fixtures/simple_primary_key.testresponse?id__gt=2",
"/fixtures/simple_primary_key.csv?id__gt=2&_size=max",
"#export",
]
assert expected == actual
# And the advaced export box at the bottom:
div = Soup(response.body, "html.parser").find("div", {"class": "advanced-export"})
json_links = [a["href"].split("/")[-1] for a in div.find("p").findAll("a")]
json_links = [a["href"] for a in div.find("p").findAll("a")]
assert [
"simple_primary_key.json?id__gt=2",
"simple_primary_key.json?id__gt=2&_shape=array",
"simple_primary_key.json?id__gt=2&_shape=array&_nl=on",
"simple_primary_key.json?id__gt=2&_shape=object",
"/fixtures/simple_primary_key.json?id__gt=2",
"/fixtures/simple_primary_key.json?id__gt=2&_shape=array",
"/fixtures/simple_primary_key.json?id__gt=2&_shape=array&_nl=on",
"/fixtures/simple_primary_key.json?id__gt=2&_shape=object",
] == json_links
# And the CSV form
form = div.find("form")
@ -666,6 +666,12 @@ def test_table_csv_json_export_interface(app_client):
] == inputs
def test_row_json_export_link(app_client):
response = app_client.get("/fixtures/simple_primary_key/1")
assert response.status == 200
assert '<a href="/fixtures/simple_primary_key/1.json">json</a>' in response.text
def test_csv_json_export_links_include_labels_if_foreign_keys(app_client):
response = app_client.get("/fixtures/facetable")
assert response.status == 200
@ -674,13 +680,13 @@ def test_csv_json_export_links_include_labels_if_foreign_keys(app_client):
.find("p", {"class": "export-links"})
.findAll("a")
)
actual = [l["href"].split("/")[-1] for l in links]
actual = [l["href"] for l in links]
expected = [
"facetable.json?_labels=on",
"facetable.testall?_labels=on",
"facetable.testnone?_labels=on",
"facetable.testresponse?_labels=on",
"facetable.csv?_labels=on&_size=max",
"/fixtures/facetable.json?_labels=on",
"/fixtures/facetable.testall?_labels=on",
"/fixtures/facetable.testnone?_labels=on",
"/fixtures/facetable.testresponse?_labels=on",
"/fixtures/facetable.csv?_labels=on&_size=max",
"#export",
]
assert expected == actual
@ -1347,6 +1353,7 @@ def test_metadata_sort_desc(app_client):
assert list(reversed(expected)) == rows
@pytest.mark.xfail
@pytest.mark.parametrize("base_url", ["/prefix/", "https://example.com/"])
@pytest.mark.parametrize(
"path",