async def test_column_facet_suggest_skip_if_already_selected(app_client): facet = ColumnFacet( app_client.ds, Request.fake("/?_facet=planet_int&_facet=on_earth"), database="fixtures", sql="select * from facetable", table="facetable", ) suggestions = await facet.suggest() assert [ { "name": "created", "toggle_url": "http://localhost/?_facet=planet_int&_facet=on_earth&_facet=created", }, { "name": "state", "toggle_url": "http://localhost/?_facet=planet_int&_facet=on_earth&_facet=state", }, { "name": "_city_id", "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": "tags", "toggle_url": "http://localhost/?_facet=planet_int&_facet=on_earth&_facet=tags", }, { "name": "complex_array", "toggle_url": "http://localhost/?_facet=planet_int&_facet=on_earth&_facet=complex_array", }, ] == suggestions
async def test_column_facet_suggest(app_client): facet = ColumnFacet( app_client.ds, MockRequest("http://localhost/"), database="fixtures", sql="select * from facetable", table="facetable", ) suggestions = await facet.suggest() assert [ { "name": "planet_int", "toggle_url": "http://localhost/?_facet=planet_int" }, { "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": "tags", "toggle_url": "http://localhost/?_facet=tags" }, ] == suggestions
async def test_column_facet_from_metadata_cannot_be_hidden(app_client): facet = ColumnFacet( app_client.ds, MockRequest("http://localhost/"), database="fixtures", sql="select * from facetable", table="facetable", metadata={"facets": ["city_id"]}, ) buckets, timed_out = await facet.facet_results() assert [] == timed_out assert { "city_id": { "name": "city_id", "type": "column", "hideable": False, "toggle_url": "/", "results": [ { "value": 1, "label": "San Francisco", "count": 6, "toggle_url": "http://localhost/?city_id=1", "selected": False, }, { "value": 2, "label": "Los Angeles", "count": 4, "toggle_url": "http://localhost/?city_id=2", "selected": False, }, { "value": 3, "label": "Detroit", "count": 4, "toggle_url": "http://localhost/?city_id=3", "selected": False, }, { "value": 4, "label": "Memnonia", "count": 1, "toggle_url": "http://localhost/?city_id=4", "selected": False, }, ], "truncated": False, } } == buckets
async def test_column_facet_suggest_skip_if_enabled_by_metadata(app_client): facet = ColumnFacet( app_client.ds, MockRequest("http://localhost/"), database="fixtures", sql="select * from facetable", table="facetable", metadata={"facets": ["city_id"]}, ) suggestions = [s["name"] for s in await facet.suggest()] assert ["planet_int", "on_earth", "state", "neighborhood", "tags"] == suggestions
async def test_column_facet_results(app_client): facet = ColumnFacet( app_client.ds, Request.fake("/?_facet=_city_id"), database="fixtures", sql="select * from facetable", table="facetable", ) buckets, timed_out = await facet.facet_results() assert [] == timed_out assert [ { "name": "_city_id", "type": "column", "hideable": True, "toggle_url": "/", "results": [ { "value": 1, "label": "San Francisco", "count": 6, "toggle_url": "http://localhost/?_facet=_city_id&_city_id__exact=1", "selected": False, }, { "value": 2, "label": "Los Angeles", "count": 4, "toggle_url": "http://localhost/?_facet=_city_id&_city_id__exact=2", "selected": False, }, { "value": 3, "label": "Detroit", "count": 4, "toggle_url": "http://localhost/?_facet=_city_id&_city_id__exact=3", "selected": False, }, { "value": 4, "label": "Memnonia", "count": 1, "toggle_url": "http://localhost/?_facet=_city_id&_city_id__exact=4", "selected": False, }, ], "truncated": False, } ] == buckets
async def test_column_facet_suggest_skip_if_enabled_by_metadata(app_client): facet = ColumnFacet( app_client.ds, Request.fake("/"), database="fixtures", sql="select * from facetable", table="facetable", metadata={"facets": ["_city_id"]}, ) suggestions = [s["name"] for s in await facet.suggest()] assert [ "created", "planet_int", "on_earth", "state", "_neighborhood", "tags", "complex_array", ] == suggestions
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 == [ { "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, } ]