Skip to content

Commit d49f777

Browse files
Add test for edge case
1 parent dc75983 commit d49f777

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

tests/test_rule.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,11 @@ def evaluate(self, source: Source) -> bool: # type: ignore[override]
145145

146146
@pytest.mark.parametrize(
147147
"rule_filter_fixture",
148-
["source_filter_no_parens", "source_filter_parens", "source_filter_class"],
148+
[
149+
"source_filter_no_parens",
150+
"source_filter_parens",
151+
"source_filter_class",
152+
],
149153
)
150154
def test_rule_filter_must_match_resource_type_as_rule(
151155
self, request, rule_filter_fixture
@@ -174,3 +178,21 @@ def evaluate(self, model: Model) -> RuleViolation | None: # type: ignore[overri
174178

175179
assert "Mismatched resource_type on filter" in str(excinfo.value)
176180
assert "Expected Model, but got Source" in str(excinfo.value)
181+
182+
183+
def test_should_evaluate(model1, source1):
184+
"""Test that Rule.should_evaluate works correctly for different resource types."""
185+
186+
@rule_filter
187+
def model_filter(model: Model) -> bool:
188+
"""Filter on empty constraints."""
189+
return model.constraints == [] # constraints does not exist for Source
190+
191+
@rule(rule_filters={model_filter()})
192+
def model_rule(model: Model) -> RuleViolation | None:
193+
"""Rule that always returns None."""
194+
return None
195+
196+
rule1 = model_rule()
197+
assert rule1.should_evaluate(model1) is True
198+
assert rule1.should_evaluate(source1) is False

0 commit comments

Comments
 (0)