Skip to content

Commit 72e32fd

Browse files
committed
fixup
1 parent c07bd80 commit 72e32fd

File tree

2 files changed

+38
-11
lines changed

2 files changed

+38
-11
lines changed

src/sentry/workflow_engine/buffer/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
from sentry.buffer.base import Buffer
66
from sentry.utils.services import LazyServiceWrapper
77

8+
# Workflows-specific Buffer that can be configured separately from the default Buffer.
89
_backend = LazyServiceWrapper(
910
Buffer, settings.SENTRY_WORKFLOW_BUFFER, settings.SENTRY_WORKFLOW_BUFFER_OPTIONS
1011
)
1112

1213

13-
def validate_new_backend() -> None:
14-
pass
15-
16-
1714
def get_backend() -> LazyServiceWrapper[Buffer]:
15+
"""
16+
Retrieve the appropriate Buffer to use for the workflow engine.
17+
"""
1818
if options.get("workflow_engine.buffer.use_new_buffer"):
1919
return _backend
2020
else:

tests/sentry/workflow_engine/processors/test_workflow.py

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@
44
import pytest
55
from django.utils import timezone
66

7-
from sentry import buffer
87
from sentry.eventstore.models import GroupEvent
98
from sentry.eventstream.base import GroupState
109
from sentry.grouping.grouptype import ErrorGroupType
1110
from sentry.models.activity import Activity
1211
from sentry.models.environment import Environment
1312
from sentry.testutils.factories import Factories
1413
from sentry.testutils.helpers.datetime import before_now, freeze_time
14+
from sentry.testutils.helpers.options import override_options
1515
from sentry.testutils.helpers.redis import mock_redis_buffer
1616
from sentry.testutils.pytest.fixtures import django_db_all
1717
from sentry.types.activity import ActivityType
1818
from sentry.utils import json
19+
from sentry.workflow_engine import buffer as workflow_buffer
1920
from sentry.workflow_engine.models import (
2021
Action,
2122
DataConditionGroup,
@@ -438,7 +439,7 @@ def test_enqueues_workflow_all_logic_type(self) -> None:
438439

439440
process_workflows(self.event_data)
440441

441-
project_ids = buffer.backend.get_sorted_set(
442+
project_ids = workflow_buffer.get_backend().get_sorted_set(
442443
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
443444
)
444445
assert project_ids
@@ -469,7 +470,7 @@ def test_enqueues_workflow_any_logic_type(self) -> None:
469470

470471
process_workflows(self.event_data)
471472

472-
project_ids = buffer.backend.get_sorted_set(
473+
project_ids = workflow_buffer.get_backend().get_sorted_set(
473474
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
474475
)
475476
assert project_ids[0][0] == self.project.id
@@ -549,7 +550,7 @@ def test_enqueues_with_when_and_if_slow_conditions(self) -> None:
549550

550551
process_workflows(self.event_data)
551552

552-
project_ids = buffer.backend.get_sorted_set(
553+
project_ids = workflow_buffer.get_backend().get_sorted_set(
553554
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
554555
)
555556
assert project_ids[0][0] == self.project.id
@@ -576,7 +577,7 @@ def test_enqueues_event_if_meets_fast_conditions(self) -> None:
576577

577578
process_workflows(self.event_data)
578579

579-
project_ids = buffer.backend.get_sorted_set(
580+
project_ids = workflow_buffer.get_backend().get_sorted_set(
580581
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
581582
)
582583
assert not project_ids
@@ -586,7 +587,7 @@ def test_enqueues_event_if_meets_fast_conditions(self) -> None:
586587

587588
process_workflows(self.event_data)
588589

589-
project_ids = buffer.backend.get_sorted_set(
590+
project_ids = workflow_buffer.get_backend().get_sorted_set(
590591
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
591592
)
592593
assert project_ids[0][0] == self.project.id
@@ -736,7 +737,7 @@ def test_enqueues_when_slow_conditions(self):
736737

737738
enqueue_workflows(queue_items)
738739

739-
project_ids = buffer.backend.get_sorted_set(
740+
project_ids = workflow_buffer.get_backend().get_sorted_set(
740741
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, timezone.now().timestamp()
741742
)
742743
assert project_ids
@@ -774,6 +775,7 @@ def setUp(self) -> None:
774775

775776
@patch("sentry.buffer.backend.push_to_sorted_set")
776777
@patch("sentry.buffer.backend.push_to_hash_bulk")
778+
@override_options({"workflow_engine.buffer.use_new_buffer": False})
777779
def test_enqueue_workflows__adds_to_workflow_engine_buffer(
778780
self, mock_push_to_hash_bulk, mock_push_to_sorted_set
779781
):
@@ -795,8 +797,33 @@ def test_enqueue_workflows__adds_to_workflow_engine_buffer(
795797
value=[self.group_event.project_id],
796798
)
797799

800+
@patch("sentry.workflow_engine.buffer._backend.push_to_sorted_set")
801+
@patch("sentry.workflow_engine.buffer._backend.push_to_hash_bulk")
802+
@override_options({"workflow_engine.buffer.use_new_buffer": True})
803+
def test_enqueue_workflows__adds_to_workflow_engine_buffer_new_buffer(
804+
self, mock_push_to_hash_bulk, mock_push_to_sorted_set
805+
):
806+
enqueue_workflows(
807+
{
808+
self.workflow: DelayedWorkflowItem(
809+
self.workflow,
810+
self.group_event,
811+
self.workflow.when_condition_group_id,
812+
[self.slow_workflow_filter_group.id],
813+
[self.workflow_filter_group.id],
814+
timestamp=timezone.now(),
815+
)
816+
}
817+
)
818+
819+
mock_push_to_sorted_set.assert_called_once_with(
820+
key=WORKFLOW_ENGINE_BUFFER_LIST_KEY,
821+
value=[self.group_event.project_id],
822+
)
823+
798824
@patch("sentry.buffer.backend.push_to_sorted_set")
799825
@patch("sentry.buffer.backend.push_to_hash_bulk")
826+
@override_options({"workflow_engine.buffer.use_new_buffer": False})
800827
def test_enqueue_workflow__adds_to_workflow_engine_set(
801828
self, mock_push_to_hash_bulk, mock_push_to_sorted_set
802829
):

0 commit comments

Comments
 (0)