Files
sentinel/tests/sentry/ingest/test_transaction_rule_validator.py
2024-02-15 17:01:50 +00:00

39 lines
1.8 KiB
Python

from sentry.ingest.transaction_clusterer.base import ReplacementRule
from sentry.ingest.transaction_clusterer.rule_validator import RuleValidator
def test_all_star_rules_invalid():
assert not RuleValidator(ReplacementRule("*/**")).is_valid()
assert not RuleValidator(ReplacementRule("/*/**")).is_valid()
assert not RuleValidator(ReplacementRule("*/*/*/*/**")).is_valid()
assert not RuleValidator(ReplacementRule("/*/*/*/*/**")).is_valid()
def test_non_all_star_rules_valid():
assert RuleValidator(ReplacementRule("a/*/**")).is_valid()
assert RuleValidator(ReplacementRule("/a/*/**")).is_valid()
assert RuleValidator(ReplacementRule("*/a/**")).is_valid()
assert RuleValidator(ReplacementRule("/*/a/**")).is_valid()
assert RuleValidator(ReplacementRule("a/*/b/**")).is_valid()
assert RuleValidator(ReplacementRule("/a/*/b/**")).is_valid()
assert RuleValidator(ReplacementRule("a/*/b/*/c/**")).is_valid()
assert RuleValidator(ReplacementRule("/a/*/b/*/c/**")).is_valid()
def test_schema_all_stars_invalid():
assert not RuleValidator(ReplacementRule("http://*/*/*/**")).is_valid()
assert not RuleValidator(ReplacementRule("https://*/*/*/**")).is_valid()
assert RuleValidator(ReplacementRule("http://a/*/*/**")).is_valid()
assert RuleValidator(ReplacementRule("http://example.com/*/*/**")).is_valid()
assert RuleValidator(
ReplacementRule("http://user:[email protected]:80/*/*/*/**")
).is_valid()
assert RuleValidator(ReplacementRule("ftp:///ftp.example.com/rfcs/*/**")).is_valid()
assert not RuleValidator(ReplacementRule("ftp://*/*/*/**")).is_valid()
assert RuleValidator(ReplacementRule("file:///example.txt")).is_valid()
assert not RuleValidator(ReplacementRule("file:///*/*/**")).is_valid()