This is an automated email from the ASF dual-hosted git repository. sadpandajoe pushed a commit to branch ultraset-semantic-mapper-test-filters-mypy in repository https://gitbox.apache.org/repos/asf/superset.git
commit 3db5c6adccea81d930a6a94d1dc01e8a30e3e3e8 Author: Joe Li <[email protected]> AuthorDate: Sun Oct 25 07:32:37 2026 +0000 fix(tests): narrow SemanticQuery.filters in sunburst mapper tests for mypy Two tests added in #45571 read SemanticQuery.filters, typed set[Filter | OrFilter] | None, without narrowing it. mypy flags the reads once superset-core is on its command line (as in the nightly pre-commit --all-files run). Assert the set is present and that every member is a leaf Filter with a column before reading its attributes, so an OrFilter still fails the test instead of being skipped. Co-Authored-By: Claude Opus 5.5 <[email protected]> --- tests/unit_tests/semantic_layers/mapper_test.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/unit_tests/semantic_layers/mapper_test.py b/tests/unit_tests/semantic_layers/mapper_test.py index e3e06c64a09..8aa4c02f434 100644 --- a/tests/unit_tests/semantic_layers/mapper_test.py +++ b/tests/unit_tests/semantic_layers/mapper_test.py @@ -1388,7 +1388,13 @@ def test_sunburst_grained_level_and_cross_filter_on_semantic_view( [semantic_query] = map_query_object(query_object) grains = {dim.name: dim.grain for dim in semantic_query.dimensions} assert grains == {"order_date": Grains.DAY, "category": None} - assert {filter_.column.name for filter_ in semantic_query.filters} == {"category"} + assert semantic_query.filters is not None + filter_columns = set() + for filter_ in semantic_query.filters: + assert isinstance(filter_, Filter) + assert filter_.column is not None + filter_columns.add(filter_.column.name) + assert filter_columns == {"category"} def test_sunburst_dormant_grain_on_categorical_levels_on_semantic_view( @@ -5442,8 +5448,14 @@ def test_sunburst_semantic_drill_uses_grained_filter_variant( expected = Filter( PredicateType.WHERE, monthly, Operator.EQUALS, datetime(2026, 8, 1) ) + assert semantic.filters is not None assert expected in semantic.filters - assert {f for f in semantic.filters if f.operator == Operator.EQUALS} == {expected} + equality_filters = set() + for f in semantic.filters: + assert isinstance(f, Filter) + if f.operator == Operator.EQUALS: + equality_filters.add(f) + assert equality_filters == {expected} if group_limit: assert semantic.group_limit is not None assert semantic.group_limit.filters is not None
