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

Reply via email to