Skip to content

Commit b747baa

Browse files
committed
fixup
1 parent 4a27ccf commit b747baa

File tree

2 files changed

+66
-5
lines changed

2 files changed

+66
-5
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: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,20 @@
44
import pytest
55
from django.utils import timezone
66

7-
from sentry import buffer
7+
from sentry.eventstore.models import GroupEvent
88
from sentry.eventstream.base import GroupState
99
from sentry.grouping.grouptype import ErrorGroupType
1010
from sentry.models.activity import Activity
1111
from sentry.models.environment import Environment
1212
from sentry.services.eventstore.models import GroupEvent
1313
from sentry.testutils.factories import Factories
1414
from sentry.testutils.helpers.datetime import before_now, freeze_time
15+
from sentry.testutils.helpers.options import override_options
1516
from sentry.testutils.helpers.redis import mock_redis_buffer
1617
from sentry.testutils.pytest.fixtures import django_db_all
1718
from sentry.types.activity import ActivityType
1819
from sentry.utils import json
20+
from sentry.workflow_engine import buffer as workflow_buffer
1921
from sentry.workflow_engine.models import (
2022
Action,
2123
DataConditionGroup,
@@ -475,10 +477,15 @@ def test_enqueues_workflow_all_logic_type(self) -> None:
475477

476478
process_workflows(self.event_data)
477479

480+
<<<<<<< HEAD
478481
project_ids = buffer.backend.bulk_get_sorted_set(
479482
self.buffer_keys,
480483
min=0,
481484
max=self.buffer_timestamp,
485+
=======
486+
project_ids = workflow_buffer.get_backend().get_sorted_set(
487+
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
488+
>>>>>>> 72e32fd402c (fixup)
482489
)
483490
assert list(project_ids.keys()) == [self.project.id]
484491

@@ -507,10 +514,15 @@ def test_enqueues_workflow_any_logic_type(self) -> None:
507514

508515
process_workflows(self.event_data)
509516

517+
<<<<<<< HEAD
510518
project_ids = buffer.backend.bulk_get_sorted_set(
511519
self.buffer_keys,
512520
min=0,
513521
max=self.buffer_timestamp,
522+
=======
523+
project_ids = workflow_buffer.get_backend().get_sorted_set(
524+
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
525+
>>>>>>> 72e32fd402c (fixup)
514526
)
515527
assert list(project_ids.keys()) == [self.project.id]
516528

@@ -589,10 +601,15 @@ def test_enqueues_with_when_and_if_slow_conditions(self) -> None:
589601

590602
process_workflows(self.event_data)
591603

604+
<<<<<<< HEAD
592605
project_ids = buffer.backend.bulk_get_sorted_set(
593606
self.buffer_keys,
594607
min=0,
595608
max=self.buffer_timestamp,
609+
=======
610+
project_ids = workflow_buffer.get_backend().get_sorted_set(
611+
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
612+
>>>>>>> 72e32fd402c (fixup)
596613
)
597614
assert list(project_ids.keys()) == [self.project.id]
598615

@@ -618,10 +635,15 @@ def test_enqueues_event_if_meets_fast_conditions(self) -> None:
618635

619636
process_workflows(self.event_data)
620637

638+
<<<<<<< HEAD
621639
project_ids = buffer.backend.bulk_get_sorted_set(
622640
self.buffer_keys,
623641
min=0,
624642
max=self.buffer_timestamp,
643+
=======
644+
project_ids = workflow_buffer.get_backend().get_sorted_set(
645+
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
646+
>>>>>>> 72e32fd402c (fixup)
625647
)
626648
assert not project_ids
627649

@@ -630,10 +652,15 @@ def test_enqueues_event_if_meets_fast_conditions(self) -> None:
630652

631653
process_workflows(self.event_data)
632654

655+
<<<<<<< HEAD
633656
project_ids = buffer.backend.bulk_get_sorted_set(
634657
self.buffer_keys,
635658
min=0,
636659
max=self.buffer_timestamp,
660+
=======
661+
project_ids = workflow_buffer.get_backend().get_sorted_set(
662+
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, self.buffer_timestamp
663+
>>>>>>> 72e32fd402c (fixup)
637664
)
638665
assert list(project_ids.keys()) == [self.project.id]
639666

@@ -783,10 +810,15 @@ def test_enqueues_when_slow_conditions(self):
783810

784811
enqueue_workflows(queue_items)
785812

813+
<<<<<<< HEAD
786814
project_ids = buffer.backend.bulk_get_sorted_set(
787815
self.buffer_keys,
788816
min=0,
789817
max=timezone.now().timestamp(),
818+
=======
819+
project_ids = workflow_buffer.get_backend().get_sorted_set(
820+
WORKFLOW_ENGINE_BUFFER_LIST_KEY, 0, timezone.now().timestamp()
821+
>>>>>>> 72e32fd402c (fixup)
790822
)
791823
assert list(project_ids.keys()) == [self.project.id]
792824

@@ -822,7 +854,11 @@ def setUp(self) -> None:
822854

823855
@patch("sentry.buffer.backend.push_to_sorted_set")
824856
@patch("sentry.buffer.backend.push_to_hash_bulk")
857+
<<<<<<< HEAD
825858
@patch("random.choice")
859+
=======
860+
@override_options({"workflow_engine.buffer.use_new_buffer": False})
861+
>>>>>>> 72e32fd402c (fixup)
826862
def test_enqueue_workflows__adds_to_workflow_engine_buffer(
827863
self, mock_randchoice, mock_push_to_hash_bulk, mock_push_to_sorted_set
828864
):
@@ -845,8 +881,33 @@ def test_enqueue_workflows__adds_to_workflow_engine_buffer(
845881
value=[self.group_event.project_id],
846882
)
847883

884+
@patch("sentry.workflow_engine.buffer._backend.push_to_sorted_set")
885+
@patch("sentry.workflow_engine.buffer._backend.push_to_hash_bulk")
886+
@override_options({"workflow_engine.buffer.use_new_buffer": True})
887+
def test_enqueue_workflows__adds_to_workflow_engine_buffer_new_buffer(
888+
self, mock_push_to_hash_bulk, mock_push_to_sorted_set
889+
):
890+
enqueue_workflows(
891+
{
892+
self.workflow: DelayedWorkflowItem(
893+
self.workflow,
894+
self.group_event,
895+
self.workflow.when_condition_group_id,
896+
[self.slow_workflow_filter_group.id],
897+
[self.workflow_filter_group.id],
898+
timestamp=timezone.now(),
899+
)
900+
}
901+
)
902+
903+
mock_push_to_sorted_set.assert_called_once_with(
904+
key=WORKFLOW_ENGINE_BUFFER_LIST_KEY,
905+
value=[self.group_event.project_id],
906+
)
907+
848908
@patch("sentry.buffer.backend.push_to_sorted_set")
849909
@patch("sentry.buffer.backend.push_to_hash_bulk")
910+
@override_options({"workflow_engine.buffer.use_new_buffer": False})
850911
def test_enqueue_workflow__adds_to_workflow_engine_set(
851912
self, mock_push_to_hash_bulk, mock_push_to_sorted_set
852913
):

0 commit comments

Comments
 (0)