html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,issue,performed_via_github_app
https://github.com/simonw/datasette/pull/1999#issuecomment-1475074311,https://api.github.com/repos/simonw/datasette/issues/1999,1475074311,IC_kwDOBm6k_c5X69kH,9599,2023-03-19T02:16:08Z,2023-03-19T02:17:33Z,OWNER,"Next big challenge: fix all the tests in `test_table_html.py`:
```
FAILED tests/test_table_html.py::test_add_filter_redirects - assert 500 == 302
FAILED tests/test_table_html.py::test_existing_filter_redirects - assert 500 == 302
FAILED tests/test_table_html.py::test_reflected_hidden_form_fields[_facet=_neighborhood-expected_hidden0] - AssertionError: assert {} == {'_facet': '_neighborhood'}
FAILED tests/test_table_html.py::test_reflected_hidden_form_fields[_where=1+=+1&_col=_city_id-expected_hidden1] - AssertionError: assert {} == {'_col': '_ci...ere': '1 = 1'}
FAILED tests/test_table_html.py::test_reflected_hidden_form_fields[_facet=_neighborhood&_neighborhood__exact=Downtown-expected_hidden2] - AssertionError: assert {} == {'_facet': '_neighborhood'}
FAILED tests/test_table_html.py::test_reflected_hidden_form_fields[_facet=_neighborhood&_city_id__gt=1-expected_hidden3] - AssertionError: assert {} == {'_facet': '_neighborhood'}
FAILED tests/test_table_html.py::test_empty_search_parameter_gets_removed - assert 500 == 302
FAILED tests/test_table_html.py::test_searchable_view_persists_fts_table - AssertionError: assert [('_fts_table...ts_pk', 'pk')] == []
FAILED tests/test_table_html.py::test_sort_by_desc_redirects - assert 500 == 302
FAILED tests/test_table_html.py::test_sort_links - AssertionError: assert [{'a_href': N...', ...}}, ...] == [{'a_href': N...', ...}}, ...]
FAILED tests/test_table_html.py::test_facets_persist_through_filter_form - AssertionError: assert [] == [('_facet', '...ray', 'tags')]
FAILED tests/test_table_html.py::test_next_does_not_persist_in_hidden_field - AssertionError: assert [] == [('_size', '1')]
FAILED tests/test_table_html.py::test_table_html_simple_primary_key - AttributeError: 'NoneType' object has no attribute 'string'
FAILED tests/test_table_html.py::test_table_csv_json_export_interface - AssertionError: assert ['/fixtures/s...x', '#export'] == ['/', '', '#export']
FAILED tests/test_table_html.py::test_csv_json_export_links_include_labels_if_foreign_keys - AssertionError: assert ['/fixtures/f...x', '#export'] == ['/', '', '#export']
FAILED tests/test_table_html.py::test_table_html_no_primary_key - AssertionError: assert ['content', 'a', 'b', 'c'] == ['a', 'b', 'c']
FAILED tests/test_table_html.py::test_rowid_sortable_no_primary_key - AttributeError: 'NoneType' object has no attribute 'string'
FAILED tests/test_table_html.py::test_table_html_compound_primary_key - AssertionError: assert 'Link' == 'pk1'
FAILED tests/test_table_html.py::test_table_html_foreign_key_links - assert [['
\xa0 | ']] == [['\xa0 | ']]
FAILED tests/test_table_html.py::test_table_html_disable_foreign_key_links_with_labels - assert [['b | ']] == [['b | ']]
FAILED tests/test_table_html.py::test_table_html_foreign_key_custom_label_column - assert [[' | ']] == [[' | ']]
FAILED tests/test_table_html.py::test_table_html_filter_form_column_options[/fixtures/infinity-expected_column_options0] - AssertionError: assert ['- column -'...wid', 'value'] == ['- column -']
FAILED tests/test_table_html.py::test_table_html_filter_form_column_options[/fixtures/primary_key_multiple_columns-expected_column_options1] - AssertionError: assert ['- column -'...', 'content2'] == ['- column -']
FAILED tests/test_table_html.py::test_table_html_filter_form_column_options[/fixtures/compound_primary_key-expected_column_options2] - AssertionError: assert ['- column -'...2', 'content'] == ['- column -']
FAILED tests/test_table_html.py::test_table_html_filter_form_still_shows_nocol_columns - AssertionError: assert ['- column -'] == ['- column -'...nulls_2', ...]
FAILED tests/test_table_html.py::test_compound_primary_key_with_foreign_key_references - assert [[' | ']] == [[' | ']]
FAILED tests/test_table_html.py::test_view_html - assert None is not None
FAILED tests/test_table_html.py::test_extra_where_clauses - assert [('_where', ""...'_city_id=1')] == []
FAILED tests/test_table_html.py::test_other_hidden_form_fields[/fixtures/facetable?_size=10-expected_hidden0] - AssertionError: assert [] == [('_size', '10')]
FAILED tests/test_table_html.py::test_other_hidden_form_fields[/fixtures/facetable?_size=10&_ignore=1&_ignore=2-expected_hidden1] - AssertionError: assert [] == [('_size', '1...ignore', '2')]
FAILED tests/test_table_html.py::test_search_and_sort_fields_not_duplicated[/fixtures/searchable?_sort=text2&_where=1-expected_hidden3] - AssertionError: assert [] == [('_where', '1')]
FAILED tests/test_table_html.py::test_binary_data_display_in_table - assert [['\xa0 | ']] == [['\xa0 | ']]
FAILED tests/test_table_html.py::test_metadata_sort - AttributeError: 'NoneType' object has no attribute 'string'
FAILED tests/test_table_html.py::test_metadata_sort_desc - AttributeError: 'NoneType' object has no attribute 'string'
FAILED tests/test_table_html.py::test_facet_more_links[5-/fixtures/facetable?_facet=_neighborhood-2-True-/fixtures/facetable?_facet=_neighborhood&_facet_size=max] - assert 0 == 2
FAILED tests/test_table_html.py::test_facet_more_links[5-/fixtures/facetable?_facet=_neighborhood&_facet_size=50-5-True-/fixtures/facetable?_facet=_neighborhood&_facet_size=max] - assert 0 == 5
FAILED tests/test_table_html.py::test_facet_total - assert 500 == 200
```
Deduped that's 30 tests:
```
FAILED tests/test_table_html.py::test_add_filter_redirects
FAILED tests/test_table_html.py::test_binary_data_display_in_table
FAILED tests/test_table_html.py::test_compound_primary_key_with_foreign_key_references
FAILED tests/test_table_html.py::test_csv_json_export_links_include_labels_if_foreign_keys
FAILED tests/test_table_html.py::test_empty_search_parameter_gets_removed
FAILED tests/test_table_html.py::test_existing_filter_redirects
FAILED tests/test_table_html.py::test_extra_where_clauses
FAILED tests/test_table_html.py::test_facet_more_links
FAILED tests/test_table_html.py::test_facet_total
FAILED tests/test_table_html.py::test_facets_persist_through_filter_form
FAILED tests/test_table_html.py::test_metadata_sort
FAILED tests/test_table_html.py::test_metadata_sort_desc
FAILED tests/test_table_html.py::test_next_does_not_persist_in_hidden_field
FAILED tests/test_table_html.py::test_other_hidden_form_fields
FAILED tests/test_table_html.py::test_reflected_hidden_form_fields
FAILED tests/test_table_html.py::test_rowid_sortable_no_primary_key
FAILED tests/test_table_html.py::test_search_and_sort_fields_not_duplicated
FAILED tests/test_table_html.py::test_searchable_view_persists_fts_table
FAILED tests/test_table_html.py::test_sort_by_desc_redirects
FAILED tests/test_table_html.py::test_sort_links
FAILED tests/test_table_html.py::test_table_csv_json_export_interface
FAILED tests/test_table_html.py::test_table_html_compound_primary_key
FAILED tests/test_table_html.py::test_table_html_disable_foreign_key_links_with_labels
FAILED tests/test_table_html.py::test_table_html_filter_form_column_options
FAILED tests/test_table_html.py::test_table_html_filter_form_still_shows_nocol_columns
FAILED tests/test_table_html.py::test_table_html_foreign_key_custom_label_column
FAILED tests/test_table_html.py::test_table_html_foreign_key_links
FAILED tests/test_table_html.py::test_table_html_no_primary_key
FAILED tests/test_table_html.py::test_table_html_simple_primary_key
FAILED tests/test_table_html.py::test_view_html
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1551694938,
https://github.com/simonw/datasette/pull/1999#issuecomment-1475074025,https://api.github.com/repos/simonw/datasette/issues/1999,1475074025,IC_kwDOBm6k_c5X69fp,9599,2023-03-19T02:14:28Z,2023-03-19T02:14:51Z,OWNER,"I had to replicate quite a bit of this logic from `base.py`:
https://github.com/simonw/datasette/blob/56b0758a5fbf85d01ff80a40c9b028469d7bb65f/datasette/views/base.py#L526-L544
I should refactor this when I move the canned / arbitrary query views away from that base class too.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1551694938,