def test_poll_process(self): execute = Execute(['echo']) self.assertEqual(-1, execute.poll()) # process never started execute.process = Mock() execute.process.poll.return_value = None self.assertEqual(None, execute.poll()) # process still running execute.process.poll.return_value = 0 self.assertEqual(0, execute.poll()) # process finished
def test_kill_running_process(self): execute = Execute(['tail', '-f', '/dev/null']) t = Thread(target=execute.run) t.start() while execute.process is None: sleep(0.1) self.assertTrue(execute.poll() == None) execute.kill() self.assertTrue(execute.poll())
def test_exit_process_when_no_more_output_is_generated(self, mock_os): mock_os.read.return_value = "" execute = Execute(['echo'], use_pty=True) execute.run() self.assertTrue(mock_os.close.called) self.assertNotEqual(None, execute.poll())