] return self.http_client.Process(cmd) def testHttpWorks(self): """Tests that the client process can talk to the server process.""" server_proc = None client_proc = None try: server_port = self.FindOpenPortOnServer() logging.info('Starting server at %s:%s', self.http_server.ip_address, server_port) server_proc = self.StartServer(server_port) logging.info('Connecting to server at %s:%s', self.http_server.ip_address, server_port) client_proc = self.StartClient(server_port) client_proc.Wait() logging.info('client_proc.stdout: %s', client_proc.ReadStdout()) logging.info('client_proc.stderr: %s', client_proc.ReadStderr()) self.assertEqual(client_proc.GetReturncode(), 0) finally: if server_proc: server_proc.Kill() server_proc.Delete() if client_proc: client_proc.Kill() client_proc.Delete() if __name__ == '__main__': legion_test_case.main()
def testCustomKey(self): """Tests that a custom key passed to a process works correctly.""" code = ('import sys\n' 'sys.stdout.write("Hello CustomKey stdout")\n' 'sys.stderr.write("Hello CustomKey stderr")') self.task.rpc.WriteFile('test.py', code) proc = self.task.Process(['python', 'test.py'], key='CustomKey') proc.Wait() self.CheckProcessOutput('stdout', 'CustomKey', 'Hello CustomKey stdout') self.CheckProcessOutput('stderr', 'CustomKey', 'Hello CustomKey stderr') def testKeyReuse(self): """Tests that a key cannot be reused.""" self.task.Process(self.LS, key='KeyReuse') self.assertRaises(jsonrpclib.Fault, self.task.Process, self.LS, key='KeyReuse') def CheckProcessOutput(self, pipe, key, expected): """Checks that a process' output files are correct.""" logging.info('Reading output file') output_dir = self.task.rpc.GetOutputDir() path = self.task.rpc.PathJoin(output_dir, '%s.%s' % (key, pipe)) actual = self.task.rpc.ReadFile(path) self.assertEqual(expected, actual) if __name__ == '__main__': legion_test_case.main()