14 """Test for multiprocessing example."""
25 _BINARY_DIR = os.path.realpath(
26 os.path.join(os.path.dirname(os.path.abspath(__file__)),
'..'))
27 _SERVER_PATH = os.path.join(_BINARY_DIR,
'server')
28 _CLIENT_PATH = os.path.join(_BINARY_DIR,
'client')
32 for i
in range(2,
int(math.ceil(math.sqrt(n)))):
42 line = server_stream.readline()
44 matches = re.search(
'Binding to \'(.+)\'', line)
45 if matches
is not None:
46 return matches.groups()[0]
47 line = server_stream.readline()
53 server_stdout = tempfile.TemporaryFile(mode=
'r')
54 server_process = subprocess.Popen((_SERVER_PATH,), stdout=server_stdout)
56 client_stdout = tempfile.TemporaryFile(mode=
'r')
57 client_process = subprocess.Popen((
63 server_process.terminate()
65 results = ast.literal_eval(client_stdout.read().strip().
split(
'\n')[-1])
66 values = tuple(result[0]
for result
in results)
67 self.assertSequenceEqual(
range(2, 10000), values)
68 for result
in results:
69 self.assertEqual(
is_prime(result[0]), result[1])
72 if __name__ ==
'__main__':
74 unittest.main(verbosity=2)