test: lock in that levels union replaces default_filter's level, not AND
Manual code-review pass (code-review-python checklist) flagged that no test exercised default_filter already restricting level (e.g. Alerts' ERROR-only default) combined with every active group specifying its own levels. The replace-not-AND behavior is deliberate per SIENTIAPDE-2011's design doc and ticket text, but was previously only covered by a docstring comment. Adds test_compute_query_time_filter_union_replaces_default_level_restriction so a future change reintroducing AND semantics fails a test instead of passing silently. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -199,6 +199,27 @@ def test_compute_query_time_filter_mixed_groups_no_levels_restriction(load_notif
|
|||||||
assert result == {'level': 'ERROR'}
|
assert result == {'level': 'ERROR'}
|
||||||
|
|
||||||
|
|
||||||
|
def test_compute_query_time_filter_union_replaces_default_level_restriction(
|
||||||
|
load_notification_package,
|
||||||
|
):
|
||||||
|
# default_filter already restricts level (e.g. Alerts' ERROR-only default),
|
||||||
|
# but every active group specifies levels of its own -> the union REPLACES
|
||||||
|
# default_filter's level restriction, it does not AND with it. This is
|
||||||
|
# deliberate per SIENTIAPDE-2011's design doc and ticket text ("Alerts'
|
||||||
|
# hard-coded level: ERROR should become whatever levels the active groups
|
||||||
|
# actually care about"), not a bug -- this test locks the behavior in so a
|
||||||
|
# future "fix" reintroducing AND semantics fails loudly instead of passing
|
||||||
|
# silently.
|
||||||
|
sending_configs = [
|
||||||
|
{'group_name': 'group_a', 'levels': ['WARNING'], 'ignore_models_id': []},
|
||||||
|
]
|
||||||
|
default_filter = {'level': 'ERROR'}
|
||||||
|
|
||||||
|
result = load_notification_package._compute_query_time_filter(sending_configs, default_filter)
|
||||||
|
|
||||||
|
assert result == {'level': {'$in': ['WARNING']}}
|
||||||
|
|
||||||
|
|
||||||
def test_compute_query_time_filter_model_ignored_by_only_one_group_not_excluded(
|
def test_compute_query_time_filter_model_ignored_by_only_one_group_not_excluded(
|
||||||
load_notification_package,
|
load_notification_package,
|
||||||
):
|
):
|
||||||
|
|||||||
Reference in New Issue
Block a user