@@ -169,6 +169,7 @@ def test_perform_detect(spike_detector_mock: MagicMock, client_mock: MagicMock):
169169 ("2023-02-01T17:00:00Z" , 0 ),
170170 ("2023-02-01T18:00:00Z" , 1 ),
171171 ("2023-02-01T19:00:00Z" , 0 ),
172+ ("2023-02-01T20:00:00Z" , 0 ),
172173 ]
173174 ),
174175 dump ,
@@ -189,6 +190,50 @@ def test_perform_detect(spike_detector_mock: MagicMock, client_mock: MagicMock):
189190 assert project .detection_result == dump
190191
191192
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+
192237@patch ("controller.sentry.tasks.PaginatedSentryClient" )
193238@patch ("controller.sentry.tasks.SpikesDetector" )
194239@pytest .mark .django_db
0 commit comments