__init__.py
51 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
MinRK
|
r3595 | """toplevel setup/teardown for prallel tests.""" | ||
import time | ||||
from IPython.zmq.parallel.ipcluster import launch_process | ||||
from IPython.zmq.parallel.entry_point import select_random_ports | ||||
# from multiprocessing import Process | ||||
cluster_logs = dict( | ||||
regport=0, | ||||
processes = [], | ||||
) | ||||
def setup(): | ||||
p = select_random_ports(1)[0] | ||||
cluster_logs['regport']=p | ||||
cp = launch_process('controller',('--scheduler lru --ping 100 --regport %i'%p).split()) | ||||
# cp.start() | ||||
cluster_logs['processes'].append(cp) | ||||
add_engine(p) | ||||
time.sleep(2) | ||||
def add_engine(port=None): | ||||
if port is None: | ||||
port = cluster_logs['regport'] | ||||
ep = launch_process('engine', ['--regport',str(port)]) | ||||
# ep.start() | ||||
cluster_logs['processes'].append(ep) | ||||
return ep | ||||
def teardown(): | ||||
time.sleep(1) | ||||
processes = cluster_logs['processes'] | ||||
while processes: | ||||
p = processes.pop() | ||||
if p.poll() is None: | ||||
try: | ||||
print 'terminating' | ||||
p.terminate() | ||||
except Exception, e: | ||||
print e | ||||
pass | ||||
if p.poll() is None: | ||||
time.sleep(.25) | ||||
if p.poll() is None: | ||||
try: | ||||
print 'killing' | ||||
p.kill() | ||||
except: | ||||
print "couldn't shutdown process: ",p | ||||