Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 3 additions & 15 deletions src/sentry/grouping/parameterization.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
"ParameterizationCallableExperiment",
"ParameterizationExperiment",
"ParameterizationRegex",
"ParameterizationRegexExperiment",
"Parameterizer",
"UniqueIdExperiment",
]
Expand Down Expand Up @@ -206,15 +205,6 @@ def run(self, content: str, callback: Callable[[str, int], None]) -> str:
return content


class ParameterizationRegexExperiment(ParameterizationRegex):
def run(
self,
content: str,
callback: Callable[[re.Match[str]], str],
) -> str:
return self.compiled_pattern.sub(callback, content)


class _UniqueId:
# just a namespace for the uniq_id logic, no need to instantiate

Expand Down Expand Up @@ -275,7 +265,7 @@ def replace_uniq_ids_in_str(string: str) -> tuple[str, int]:
)


ParameterizationExperiment = ParameterizationCallableExperiment | ParameterizationRegexExperiment
ParameterizationExperiment = ParameterizationCallableExperiment


class Parameterizer:
Expand Down Expand Up @@ -355,10 +345,8 @@ def _handle_regex_match(match: re.Match[str]) -> str:
for experiment in self._experiments:
if not should_run(experiment.name):
continue
if isinstance(experiment, ParameterizationCallableExperiment):
content = experiment.run(content, _incr_counter)
else:
content = experiment.run(content, _handle_regex_match)

content = experiment.run(content, _incr_counter)

return content

Expand Down
45 changes: 1 addition & 44 deletions tests/sentry/grouping/test_parameterization.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
from unittest import mock

import pytest

from sentry.grouping.parameterization import (
ParameterizationRegexExperiment,
Parameterizer,
UniqueIdExperiment,
)
from sentry.grouping.parameterization import Parameterizer, UniqueIdExperiment
from sentry.grouping.strategies.message import REGEX_PATTERN_KEYS


Expand Down Expand Up @@ -227,43 +221,6 @@ def test_parameterize_experiment(name, input, expected, parameterizer):
assert experiments[0] == UniqueIdExperiment


def test_parameterize_regex_experiment():
"""
We don't have any of these yet, but we need to test that they work
"""
FooExperiment = ParameterizationRegexExperiment(name="foo", raw_pattern=r"f[oO]{2}")

parameterizer = Parameterizer(
regex_pattern_keys=(),
experiments=(FooExperiment,),
)
input_str = "blah foobarbaz fooooo"
normalized = parameterizer.parameterize_all(input_str)
assert normalized == "blah <foo>barbaz <foo>ooo"
assert len(parameterizer.get_successful_experiments()) == 1
assert parameterizer.get_successful_experiments()[0] == FooExperiment


def test_parameterize_regex_experiment_cached_compiled():

with mock.patch.object(
ParameterizationRegexExperiment,
"pattern",
new_callable=mock.PropertyMock,
return_value=r"(?P<foo>f[oO]{2})",
) as mocked_pattern:
FooExperiment = ParameterizationRegexExperiment(name="foo", raw_pattern=r"f[oO]{2}")
parameterizer = Parameterizer(
regex_pattern_keys=(),
experiments=(FooExperiment,),
)
input_str = "blah foobarbaz fooooo"
_ = parameterizer.parameterize_all(input_str)
_ = parameterizer.parameterize_all(input_str)

mocked_pattern.assert_called_once()


# These are test cases that we should fix
@pytest.mark.xfail()
@pytest.mark.parametrize(
Expand Down
Loading