@@ -124,17 +124,11 @@ def test_stop_periodic_fetching(self, mocker):
124124 split_tasks = SplitTasks (split_task , segment_task , mocker .Mock (), mocker .Mock (),
125125 mocker .Mock (), mocker .Mock ())
126126 synchronizer = Synchronizer (split_synchronizers , split_tasks )
127- synchronizer .stop_periodic_fetching (True )
127+ synchronizer .stop_periodic_fetching ()
128128
129129 assert len (split_task .stop .mock_calls ) == 1
130130 assert len (segment_task .stop .mock_calls ) == 1
131- assert len (segment_sync .shutdown .mock_calls ) == 1
132-
133- synchronizer .stop_periodic_fetching (False )
134-
135- assert len (split_task .stop .mock_calls ) == 2
136- assert len (segment_task .stop .mock_calls ) == 2
137- assert len (segment_sync .shutdown .mock_calls ) == 1 # not called here
131+ assert len (segment_sync .shutdown .mock_calls ) == 0
138132
139133 def test_start_periodic_data_recording (self , mocker ):
140134 impression_task = mocker .Mock (spec = ImpressionsSyncTask )
@@ -177,3 +171,42 @@ def stop_mock_2():
177171 assert len (impression_count_task .stop .mock_calls ) == 1
178172 assert len (event_task .stop .mock_calls ) == 1
179173 assert len (telemetry_task .stop .mock_calls ) == 1
174+
175+ def test_shutdown (self , mocker ):
176+
177+ def stop_mock (event ):
178+ event .set ()
179+ return
180+
181+ def stop_mock_2 ():
182+ return
183+
184+ split_task = mocker .Mock (spec = SplitSynchronizationTask )
185+ split_task .stop .side_effect = stop_mock_2
186+ segment_task = mocker .Mock (spec = SegmentSynchronizationTask )
187+ segment_task .stop .side_effect = stop_mock_2
188+ impression_task = mocker .Mock (spec = ImpressionsSyncTask )
189+ impression_task .stop .side_effect = stop_mock
190+ impression_count_task = mocker .Mock (spec = ImpressionsCountSyncTask )
191+ impression_count_task .stop .side_effect = stop_mock
192+ event_task = mocker .Mock (spec = EventsSyncTask )
193+ event_task .stop .side_effect = stop_mock
194+ telemetry_task = mocker .Mock (spec = TelemetrySynchronizationTask )
195+ telemetry_task .stop .side_effect = stop_mock_2
196+
197+ segment_sync = mocker .Mock (spec = SegmentSynchronizer )
198+
199+ split_synchronizers = SplitSynchronizers (mocker .Mock (), segment_sync , mocker .Mock (),
200+ mocker .Mock (), mocker .Mock (), mocker .Mock ())
201+ split_tasks = SplitTasks (split_task , segment_task , impression_task , event_task ,
202+ telemetry_task , impression_count_task )
203+ synchronizer = Synchronizer (split_synchronizers , split_tasks )
204+ synchronizer .shutdown (True )
205+
206+ assert len (split_task .stop .mock_calls ) == 1
207+ assert len (segment_task .stop .mock_calls ) == 1
208+ assert len (segment_sync .shutdown .mock_calls ) == 1
209+ assert len (impression_task .stop .mock_calls ) == 1
210+ assert len (impression_count_task .stop .mock_calls ) == 1
211+ assert len (event_task .stop .mock_calls ) == 1
212+ assert len (telemetry_task .stop .mock_calls ) == 1
0 commit comments