def test_wait_on_threads(self, mock_time, mock_terminate_threads): """ Tests that, given no kwargs, the wait_on_threads method will wait until all threads is_terminated method returns True. Please note that a possible consequence of something going wrong in the wait on threads method (with no kwargs) could cause this test to never quit. """ # Create a few mock threads # The both will return False the first time is_terminated is called # Only the second mock thread will wait not return True until the # third call of is_terminated mock_thread1 = Mock() mock_thread1.is_terminated = Mock(side_effect=[False, True]) mock_thread2 = Mock() mock_thread2.is_terminated = Mock(side_effect=[False, False, True]) threads = [mock_thread1, mock_thread2] mock_time.sleep = Mock() Executor.wait_on_threads(threads) mock_time.sleep.assert_has_calls([ call(1), call(1), ]) mock_terminate_threads.assert_not_called()