Skip to content

Commit 254b971

Browse files
committed
add test for loading split rules from base64
1 parent f90c1ea commit 254b971

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

tests/sentry/grouping/test_enhancer.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from sentry.grouping.enhancer import (
1414
ENHANCEMENT_BASES,
1515
Enhancements,
16+
_split_rules,
1617
is_valid_profiling_action,
1718
is_valid_profiling_matcher,
1819
keep_profiling_rules,
@@ -664,6 +665,42 @@ def test_loads_enhancements_from_base64_string(self):
664665
assert str(enhancements.rules[0]) == "<EnhancementRule function:playFetch +app>"
665666
assert strategy_config.enhancements.id is None
666667

668+
@patch("sentry.grouping.enhancer._split_rules", wraps=_split_rules)
669+
def test_loads_split_enhancements_from_base64_string(self, split_rules_spy: MagicMock):
670+
enhancements = Enhancements.from_rules_text("function:playFetch +app +group", version=3)
671+
assert len(enhancements.rules) == 1
672+
assert len(enhancements.classifier_rules) == 1
673+
assert len(enhancements.contributes_rules) == 1
674+
assert str(enhancements.rules[0]) == "<EnhancementRule function:playFetch +app +group>"
675+
assert str(enhancements.classifier_rules[0]) == "<EnhancementRule function:playFetch +app>"
676+
assert (
677+
str(enhancements.contributes_rules[0]) == "<EnhancementRule function:playFetch +group>"
678+
)
679+
assert enhancements.id is None
680+
assert split_rules_spy.call_count == 1
681+
682+
strategy_config = load_grouping_config(
683+
{"id": DEFAULT_GROUPING_CONFIG, "enhancements": enhancements.base64_string}
684+
)
685+
assert len(strategy_config.enhancements.rules) == 1
686+
assert len(strategy_config.enhancements.classifier_rules) == 1
687+
assert len(strategy_config.enhancements.contributes_rules) == 1
688+
assert (
689+
str(strategy_config.enhancements.rules[0])
690+
== "<EnhancementRule function:playFetch +app +group>"
691+
)
692+
assert (
693+
str(strategy_config.enhancements.classifier_rules[0])
694+
== "<EnhancementRule function:playFetch +app>"
695+
)
696+
assert (
697+
str(strategy_config.enhancements.contributes_rules[0])
698+
== "<EnhancementRule function:playFetch +group>"
699+
)
700+
assert strategy_config.enhancements.id is None
701+
# Currently we re-split the rules when translating from base64 back to object
702+
assert split_rules_spy.call_count == 2
703+
667704
def test_uses_default_enhancements_when_loading_string_with_invalid_version(self):
668705
enhancements = Enhancements.from_rules_text("function:playFetch +app")
669706
assert len(enhancements.rules) == 1

0 commit comments

Comments
 (0)