def test_exec_loop_waits_for_process(self): """Tests that the _exec_loop waits for the process to complete before returning.""" process = Process('cmd') Process._Process__start_process = mock.Mock() with self.patch('Thread', FakeThread): process._exec_loop() self.assertEqual(process._process.wait.called, True)
def test_exec_loop_redirections_output(self): """Tests that the _exec_loop function calls to redirect the output.""" process = Process('cmd') Process._Process__start_process = mock.Mock() with self.patch('Thread', FakeThread): process._exec_loop() self.assertEqual(process._redirection_thread.target, process._redirect_output) self.assertEqual(process._redirection_thread.alive, True)
def test_exec_loop_does_not_loop_if_stopped(self): process = Process('1st') Process._Process__start_process = mock.Mock() process._on_terminate_callback = mock.Mock(side_effect=['2nd', None]) process._stopped = True with self.patch('Thread', FakeThread): process._exec_loop() self.assertEqual(Process._Process__start_process.call_count, 1) self.assertEqual(Process._Process__start_process.call_args_list[0][0], (['1st'], ))