4
4
import pytest
5
5
from django .utils import timezone
6
6
7
- from sentry import buffer
7
+ from sentry . eventstore . models import GroupEvent
8
8
from sentry .eventstream .base import GroupState
9
9
from sentry .grouping .grouptype import ErrorGroupType
10
10
from sentry .models .activity import Activity
11
11
from sentry .models .environment import Environment
12
12
from sentry .services .eventstore .models import GroupEvent
13
13
from sentry .testutils .factories import Factories
14
14
from sentry .testutils .helpers .datetime import before_now , freeze_time
15
+ from sentry .testutils .helpers .options import override_options
15
16
from sentry .testutils .helpers .redis import mock_redis_buffer
16
17
from sentry .testutils .pytest .fixtures import django_db_all
17
18
from sentry .types .activity import ActivityType
18
19
from sentry .utils import json
20
+ from sentry .workflow_engine import buffer as workflow_buffer
19
21
from sentry .workflow_engine .models import (
20
22
Action ,
21
23
DataConditionGroup ,
@@ -440,10 +442,15 @@ def test_enqueues_workflow_all_logic_type(self) -> None:
440
442
441
443
process_workflows (self .event_data )
442
444
445
+ < << << << HEAD
443
446
project_ids = buffer .backend .bulk_get_sorted_set (
444
447
self .buffer_keys ,
445
448
min = 0 ,
446
449
max = self .buffer_timestamp ,
450
+ == == == =
451
+ project_ids = workflow_buffer .get_backend ().get_sorted_set (
452
+ WORKFLOW_ENGINE_BUFFER_LIST_KEY , 0 , self .buffer_timestamp
453
+ >> > >> >> 72e32 fd402c (fixup )
447
454
)
448
455
assert list (project_ids .keys ()) == [self .project .id ]
449
456
@@ -472,10 +479,15 @@ def test_enqueues_workflow_any_logic_type(self) -> None:
472
479
473
480
process_workflows (self .event_data )
474
481
482
+ << < << << HEAD
475
483
project_ids = buffer .backend .bulk_get_sorted_set (
476
484
self .buffer_keys ,
477
485
min = 0 ,
478
486
max = self .buffer_timestamp ,
487
+ == == == =
488
+ project_ids = workflow_buffer .get_backend ().get_sorted_set (
489
+ WORKFLOW_ENGINE_BUFFER_LIST_KEY , 0 , self .buffer_timestamp
490
+ >> > >> >> 72e32 fd402c (fixup )
479
491
)
480
492
assert list (project_ids .keys ()) == [self .project .id ]
481
493
@@ -554,10 +566,15 @@ def test_enqueues_with_when_and_if_slow_conditions(self) -> None:
554
566
555
567
process_workflows (self .event_data )
556
568
569
+ << < << << HEAD
557
570
project_ids = buffer .backend .bulk_get_sorted_set (
558
571
self .buffer_keys ,
559
572
min = 0 ,
560
573
max = self .buffer_timestamp ,
574
+ == == == =
575
+ project_ids = workflow_buffer .get_backend ().get_sorted_set (
576
+ WORKFLOW_ENGINE_BUFFER_LIST_KEY , 0 , self .buffer_timestamp
577
+ >> > >> >> 72e32 fd402c (fixup )
561
578
)
562
579
assert list (project_ids .keys ()) == [self .project .id ]
563
580
@@ -583,10 +600,15 @@ def test_enqueues_event_if_meets_fast_conditions(self) -> None:
583
600
584
601
process_workflows (self .event_data )
585
602
603
+ << < << << HEAD
586
604
project_ids = buffer .backend .bulk_get_sorted_set (
587
605
self .buffer_keys ,
588
606
min = 0 ,
589
607
max = self .buffer_timestamp ,
608
+ == == == =
609
+ project_ids = workflow_buffer .get_backend ().get_sorted_set (
610
+ WORKFLOW_ENGINE_BUFFER_LIST_KEY , 0 , self .buffer_timestamp
611
+ >> > >> >> 72e32 fd402c (fixup )
590
612
)
591
613
assert not project_ids
592
614
@@ -595,10 +617,15 @@ def test_enqueues_event_if_meets_fast_conditions(self) -> None:
595
617
596
618
process_workflows (self .event_data )
597
619
620
+ << < << << HEAD
598
621
project_ids = buffer .backend .bulk_get_sorted_set (
599
622
self .buffer_keys ,
600
623
min = 0 ,
601
624
max = self .buffer_timestamp ,
625
+ == == == =
626
+ project_ids = workflow_buffer .get_backend ().get_sorted_set (
627
+ WORKFLOW_ENGINE_BUFFER_LIST_KEY , 0 , self .buffer_timestamp
628
+ >> > >> >> 72e32 fd402c (fixup )
602
629
)
603
630
assert list (project_ids .keys ()) == [self .project .id ]
604
631
@@ -748,10 +775,15 @@ def test_enqueues_when_slow_conditions(self):
748
775
749
776
enqueue_workflows (queue_items )
750
777
778
+ << < << << HEAD
751
779
project_ids = buffer .backend .bulk_get_sorted_set (
752
780
self .buffer_keys ,
753
781
min = 0 ,
754
782
max = timezone .now ().timestamp (),
783
+ == == == =
784
+ project_ids = workflow_buffer .get_backend ().get_sorted_set (
785
+ WORKFLOW_ENGINE_BUFFER_LIST_KEY , 0 , timezone .now ().timestamp ()
786
+ >> > >> >> 72e32 fd402c (fixup )
755
787
)
756
788
assert list (project_ids .keys ()) == [self .project .id ]
757
789
@@ -787,7 +819,11 @@ def setUp(self) -> None:
787
819
788
820
@patch ("sentry.buffer.backend.push_to_sorted_set" )
789
821
@patch ("sentry.buffer.backend.push_to_hash_bulk" )
822
+ << << << < HEAD
790
823
@patch ("random.choice" )
824
+ == == == =
825
+ @override_options ({"workflow_engine.buffer.use_new_buffer" : False })
826
+ >> >> >> > 72e32 fd402c (fixup )
791
827
def test_enqueue_workflows__adds_to_workflow_engine_buffer (
792
828
self , mock_randchoice , mock_push_to_hash_bulk , mock_push_to_sorted_set
793
829
):
@@ -810,8 +846,33 @@ def test_enqueue_workflows__adds_to_workflow_engine_buffer(
810
846
value = [self .group_event .project_id ],
811
847
)
812
848
849
+ @patch ("sentry.workflow_engine.buffer._backend.push_to_sorted_set" )
850
+ @patch ("sentry.workflow_engine.buffer._backend.push_to_hash_bulk" )
851
+ @override_options ({"workflow_engine.buffer.use_new_buffer" : True })
852
+ def test_enqueue_workflows__adds_to_workflow_engine_buffer_new_buffer (
853
+ self , mock_push_to_hash_bulk , mock_push_to_sorted_set
854
+ ):
855
+ enqueue_workflows (
856
+ {
857
+ self .workflow : DelayedWorkflowItem (
858
+ self .workflow ,
859
+ self .group_event ,
860
+ self .workflow .when_condition_group_id ,
861
+ [self .slow_workflow_filter_group .id ],
862
+ [self .workflow_filter_group .id ],
863
+ timestamp = timezone .now (),
864
+ )
865
+ }
866
+ )
867
+
868
+ mock_push_to_sorted_set .assert_called_once_with (
869
+ key = WORKFLOW_ENGINE_BUFFER_LIST_KEY ,
870
+ value = [self .group_event .project_id ],
871
+ )
872
+
813
873
@patch ("sentry.buffer.backend.push_to_sorted_set" )
814
874
@patch ("sentry.buffer.backend.push_to_hash_bulk" )
875
+ @override_options ({"workflow_engine.buffer.use_new_buffer" : False })
815
876
def test_enqueue_workflow__adds_to_workflow_engine_set (
816
877
self , mock_push_to_hash_bulk , mock_push_to_sorted_set
817
878
):
0 commit comments