def test_handles_output(self): spawner, process = self._makeSpawnerAndProcess() stdout_handler = FakeMethod() spawner.start("ls", stdout_handler=stdout_handler) write_and_flush(process.stdout_sink, "readme.txt\n") spawner.communicate() self.assertEqual([("readme.txt\n", )], stdout_handler.extract_args())
def test_handles_output_before_completion(self): spawner, process = self._makeSpawnerAndProcess(returncode=0) handler = FakeMethod() spawner.start( "hello", stdout_handler=handler, completion_handler=handler) write_and_flush(process.stdout_sink, "Hello\n") spawner.complete() self.assertEqual([("Hello\n", ), (0, )], handler.extract_args())
def test_handles_error_output(self): spawner, process = self._makeSpawnerAndProcess() stderr_handler = FakeMethod() spawner.start("ls", stderr_handler=stderr_handler) write_and_flush(process.stderr_sink, "File not found.\n") spawner.communicate() self.assertEqual( [("File not found.\n", )], stderr_handler.extract_args())
def test_handles_error_output(self): spawner, process = self._makeSpawnerAndProcess() stderr_handler = FakeMethod() spawner.start("ls", stderr_handler=stderr_handler) write_and_flush(process.stderr_sink, "File not found.\n") spawner.communicate() self.assertEqual([("File not found.\n", )], stderr_handler.extract_args())
def test_handles_output_before_completion(self): spawner, process = self._makeSpawnerAndProcess(returncode=0) handler = FakeMethod() spawner.start("hello", stdout_handler=handler, completion_handler=handler) write_and_flush(process.stdout_sink, "Hello\n") spawner.complete() self.assertEqual([("Hello\n", ), (0, )], handler.extract_args())
def test_handles_multiple_processes(self): spawner = CommandSpawner() handler = FakeMethod() first_process = FakeProcess(returncode=1) instrument_spawn(spawner, first_process) spawner.start(["/bin/echo", "1"], completion_handler=handler) second_process = FakeProcess(returncode=2) instrument_spawn(spawner, second_process) spawner.start(["/bin/echo", "2"], completion_handler=handler) spawner.complete() self.assertContentEqual([(1, ), (2, )], handler.extract_args())