@@ -47,7 +47,6 @@ def setUp(self):
47
47
detector = self .detector ,
48
48
thresholds = {
49
49
DetectorPriorityLevel .HIGH : 2 ,
50
- DetectorPriorityLevel .MEDIUM : 3 ,
51
50
},
52
51
)
53
52
@@ -59,9 +58,9 @@ def test_increment_detector_thresholds(self):
59
58
self .handler .state_manager .commit_state_updates ()
60
59
updated_state = self .handler .state_manager .get_state_data ([self .group_key ])[self .group_key ]
61
60
62
- # All states should be incremented by 1, except for OK
61
+ # Default to all states since the detector is not configured with any.
63
62
assert updated_state .counter_updates == {
64
- ** {level : 1 for level in DetectorPriorityLevel },
63
+ ** {level : 1 for level in self . handler . _thresholds },
65
64
DetectorPriorityLevel .OK : None ,
66
65
}
67
66
@@ -144,13 +143,7 @@ def setUp(self):
144
143
145
144
def test_evaualte__override_threshold (self ):
146
145
result = self .handler .evaluate (self .data_packet )
147
- evaluation_result = result [self .group_key ]
148
-
149
- # Check that the detector is triggered in a medium priority.
150
- assert evaluation_result
151
- assert evaluation_result .priority == DetectorPriorityLevel .MEDIUM
152
- assert evaluation_result .is_triggered is True
153
- assert isinstance (evaluation_result .result , IssueOccurrence )
146
+ assert result == {}
154
147
155
148
def test_evaluate__override_threshold__triggered (self ):
156
149
self .handler .evaluate (self .data_packet )
@@ -173,10 +166,39 @@ def test_evaluate__detector_state(self):
173
166
assert state_data .is_triggered is True
174
167
assert state_data .status == DetectorPriorityLevel .HIGH
175
168
169
+ # Only has configured states
176
170
assert state_data .counter_updates == {
177
171
DetectorPriorityLevel .HIGH : 2 ,
178
- DetectorPriorityLevel .MEDIUM : 2 ,
179
- DetectorPriorityLevel .LOW : 2 ,
172
+ DetectorPriorityLevel .OK : None ,
173
+ }
174
+
175
+ def test_evaluate__detector_state__all_levels (self ):
176
+ # Add additional levels to the detector
177
+ self .create_data_condition (
178
+ type = "gte" ,
179
+ comparison = 0 ,
180
+ condition_group = self .detector .workflow_condition_group ,
181
+ condition_result = DetectorPriorityLevel .LOW ,
182
+ )
183
+
184
+ self .create_data_condition (
185
+ type = "gte" ,
186
+ comparison = 0 ,
187
+ condition_group = self .detector .workflow_condition_group ,
188
+ condition_result = DetectorPriorityLevel .MEDIUM ,
189
+ )
190
+
191
+ # Reinitialize the handler to include the new levels
192
+ self .handler = MockDetectorStateHandler (
193
+ detector = self .detector , thresholds = {DetectorPriorityLevel .HIGH : 2 }
194
+ )
195
+
196
+ self .handler .evaluate (self .data_packet )
197
+ state_data = self .handler .state_manager .get_state_data ([self .group_key ])[self .group_key ]
198
+
199
+ # Verify all the levels are present now
200
+ assert state_data .counter_updates == {
201
+ ** {level : 1 for level in DetectorPriorityLevel },
180
202
DetectorPriorityLevel .OK : None ,
181
203
}
182
204
@@ -200,7 +222,10 @@ def test_evaluate__resolve__detector_state(self):
200
222
# Check that the state is reset
201
223
assert state_data .is_triggered is False
202
224
assert state_data .status == DetectorPriorityLevel .OK
203
- assert state_data .counter_updates == {level : None for level in DetectorPriorityLevel }
225
+ # Only has configured states
226
+ assert state_data .counter_updates == {
227
+ ** {level : None for level in self .handler ._thresholds },
228
+ }
204
229
205
230
def test_evaluate__trigger_after_resolve (self ):
206
231
self .handler .evaluate (self .data_packet )
0 commit comments