mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Correct facet links for columns with a leading underscore, closes #1506
This commit is contained in:
parent
c92ab51b3c
commit
c306b696de
8 changed files with 179 additions and 43 deletions
|
|
@ -23,7 +23,10 @@ async def test_column_facet_suggest(app_client):
|
|||
{"name": "on_earth", "toggle_url": "http://localhost/?_facet=on_earth"},
|
||||
{"name": "state", "toggle_url": "http://localhost/?_facet=state"},
|
||||
{"name": "city_id", "toggle_url": "http://localhost/?_facet=city_id"},
|
||||
{"name": "neighborhood", "toggle_url": "http://localhost/?_facet=neighborhood"},
|
||||
{
|
||||
"name": "_neighborhood",
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood",
|
||||
},
|
||||
{"name": "tags", "toggle_url": "http://localhost/?_facet=tags"},
|
||||
{
|
||||
"name": "complex_array",
|
||||
|
|
@ -56,8 +59,8 @@ async def test_column_facet_suggest_skip_if_already_selected(app_client):
|
|||
"toggle_url": "http://localhost/?_facet=planet_int&_facet=on_earth&_facet=city_id",
|
||||
},
|
||||
{
|
||||
"name": "neighborhood",
|
||||
"toggle_url": "http://localhost/?_facet=planet_int&_facet=on_earth&_facet=neighborhood",
|
||||
"name": "_neighborhood",
|
||||
"toggle_url": "http://localhost/?_facet=planet_int&_facet=on_earth&_facet=_neighborhood",
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
|
|
@ -86,7 +89,7 @@ async def test_column_facet_suggest_skip_if_enabled_by_metadata(app_client):
|
|||
"planet_int",
|
||||
"on_earth",
|
||||
"state",
|
||||
"neighborhood",
|
||||
"_neighborhood",
|
||||
"tags",
|
||||
"complex_array",
|
||||
] == suggestions
|
||||
|
|
@ -144,6 +147,128 @@ async def test_column_facet_results(app_client):
|
|||
} == buckets
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_column_facet_results_column_starts_with_underscore(app_client):
|
||||
facet = ColumnFacet(
|
||||
app_client.ds,
|
||||
Request.fake("/?_facet=_neighborhood"),
|
||||
database="fixtures",
|
||||
sql="select * from facetable",
|
||||
table="facetable",
|
||||
)
|
||||
buckets, timed_out = await facet.facet_results()
|
||||
assert [] == timed_out
|
||||
assert buckets == {
|
||||
"_neighborhood": {
|
||||
"name": "_neighborhood",
|
||||
"type": "column",
|
||||
"hideable": True,
|
||||
"toggle_url": "/",
|
||||
"results": [
|
||||
{
|
||||
"value": "Downtown",
|
||||
"label": "Downtown",
|
||||
"count": 2,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Downtown",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Arcadia Planitia",
|
||||
"label": "Arcadia Planitia",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Arcadia+Planitia",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Bernal Heights",
|
||||
"label": "Bernal Heights",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Bernal+Heights",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Corktown",
|
||||
"label": "Corktown",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Corktown",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Dogpatch",
|
||||
"label": "Dogpatch",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Dogpatch",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Greektown",
|
||||
"label": "Greektown",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Greektown",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Hayes Valley",
|
||||
"label": "Hayes Valley",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Hayes+Valley",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Hollywood",
|
||||
"label": "Hollywood",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Hollywood",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Koreatown",
|
||||
"label": "Koreatown",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Koreatown",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Los Feliz",
|
||||
"label": "Los Feliz",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Los+Feliz",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Mexicantown",
|
||||
"label": "Mexicantown",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Mexicantown",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Mission",
|
||||
"label": "Mission",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Mission",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "SOMA",
|
||||
"label": "SOMA",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=SOMA",
|
||||
"selected": False,
|
||||
},
|
||||
{
|
||||
"value": "Tenderloin",
|
||||
"label": "Tenderloin",
|
||||
"count": 1,
|
||||
"toggle_url": "http://localhost/?_facet=_neighborhood&_neighborhood__exact=Tenderloin",
|
||||
"selected": False,
|
||||
},
|
||||
],
|
||||
"truncated": False,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_column_facet_from_metadata_cannot_be_hidden(app_client):
|
||||
facet = ColumnFacet(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue