@@ -169,6 +169,7 @@ def test_perform_detect(spike_detector_mock: MagicMock, client_mock: MagicMock):
169
169
("2023-02-01T17:00:00Z" , 0 ),
170
170
("2023-02-01T18:00:00Z" , 1 ),
171
171
("2023-02-01T19:00:00Z" , 0 ),
172
+ ("2023-02-01T20:00:00Z" , 0 ),
172
173
]
173
174
),
174
175
dump ,
@@ -189,6 +190,50 @@ def test_perform_detect(spike_detector_mock: MagicMock, client_mock: MagicMock):
189
190
assert project .detection_result == dump
190
191
191
192
193
+ @patch ("controller.sentry.tasks.PaginatedSentryClient" )
194
+ @patch ("controller.sentry.tasks.SpikesDetector" )
195
+ @pytest .mark .django_db
196
+ def test_perform_detect_last_item_not_used (spike_detector_mock : MagicMock , client_mock : MagicMock ):
197
+ sentry_id = "123"
198
+ project = Project (sentry_id = sentry_id )
199
+ project .save ()
200
+
201
+ event = Event (project = project , type = EventType .DISCARD , timestamp = parser .parse ("2023-02-01T17:00:00Z" ))
202
+ event .save ()
203
+
204
+ result = object ()
205
+ client_mock .return_value .get_stats .return_value = result
206
+
207
+ detector : MagicMock = spike_detector_mock .from_project .return_value
208
+ dump = {"test" : "a" }
209
+ detector .compute_sentry .return_value = (
210
+ OrderedDict (
211
+ [
212
+ ("2023-02-01T15:00:00Z" , 0 ),
213
+ ("2023-02-01T16:00:00Z" , 1 ),
214
+ ("2023-02-01T17:00:00Z" , 0 ),
215
+ ("2023-02-01T18:00:00Z" , 1 ),
216
+ ("2023-02-01T19:00:00Z" , 0 ),
217
+ ]
218
+ ),
219
+ dump ,
220
+ )
221
+
222
+ perform_detect (sentry_id )
223
+
224
+ client_mock .assert_called_once_with ()
225
+ client_mock .return_value .get_stats .assert_called_once_with (sentry_id )
226
+
227
+ spike_detector_mock .from_project .assert_called_once_with (project )
228
+
229
+ detector .compute_sentry .assert_called_once_with (result )
230
+
231
+ project .refresh_from_db ()
232
+ assert project .events .exclude (reference = event .reference ).count () == 1
233
+ assert project .last_event == project .events .last ()
234
+ assert project .detection_result == dump
235
+
236
+
192
237
@patch ("controller.sentry.tasks.PaginatedSentryClient" )
193
238
@patch ("controller.sentry.tasks.SpikesDetector" )
194
239
@pytest .mark .django_db
0 commit comments