def test_manager_hooks(): hooks = create_hooks(['create', 'start', 'update', 'stop', 'delete', 'proc.dummy.start', 'proc.dummy.spawn', 'proc.dummy.stop', 'proc.dummy.exit']) emitted = [] loop = pyuv.Loop.default_loop() s = get_server(loop, emitted) s.start() m = Manager(loop=loop) m.start(apps=[WebHooks(hooks)]) testfile, cmd, args, wdir = dummy_cmd() m.add_process("dummy", cmd, args=args, cwd=wdir, numprocesses=4) m.ttin("dummy", 1) m.remove_process("dummy") time.sleep(0.2) def on_stop(manager): s.stop() m.stop(on_stop) m.run() assert ('create', 'dummy') in emitted assert ('start', 'dummy') in emitted assert ('update', 'dummy') in emitted assert ('stop', 'dummy') in emitted assert ('delete', 'dummy') in emitted assert ('proc.dummy.start', 'dummy') in emitted assert ('proc.dummy.spawn', 'dummy') in emitted assert ('proc.dummy.stop', 'dummy') in emitted assert ('proc.dummy.exit', 'dummy') in emitted
def test_events(): emitted = [] m = Manager() m.start() def cb(ev, msg): emitted.append((ev, msg['name'])) # subscribe to all events m.on('.', cb) testfile, cmd, args, wdir = dummy_cmd() m.add_process("dummy", cmd, args=args, cwd=wdir, numprocesses=4) m.ttin("dummy", 1) m.remove_process("dummy") time.sleep(0.2) m.stop() m.run() assert ('create', 'dummy') in emitted assert ('start', 'dummy') in emitted assert ('update', 'dummy') in emitted assert ('stop', 'dummy') in emitted assert ('delete', 'dummy') in emitted
def test_manager_hooks(): hooks = create_hooks([ 'create', 'start', 'update', 'stop', 'delete', 'proc.dummy.start', 'proc.dummy.spawn', 'proc.dummy.stop', 'proc.dummy.exit' ]) emitted = [] loop = pyuv.Loop.default_loop() s = get_server(loop, emitted) s.start() m = Manager(loop=loop) m.start(apps=[WebHooks(hooks)]) testfile, cmd, args, wdir = dummy_cmd() m.add_process("dummy", cmd, args=args, cwd=wdir, numprocesses=4) m.ttin("dummy", 1) m.remove_process("dummy") time.sleep(0.2) def on_stop(manager): s.stop() m.stop(on_stop) m.run() assert ('create', 'dummy') in emitted assert ('start', 'dummy') in emitted assert ('update', 'dummy') in emitted assert ('stop', 'dummy') in emitted assert ('delete', 'dummy') in emitted assert ('proc.dummy.start', 'dummy') in emitted assert ('proc.dummy.spawn', 'dummy') in emitted assert ('proc.dummy.stop', 'dummy') in emitted assert ('proc.dummy.exit', 'dummy') in emitted
def test_simple_process(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() m.add_process("dummy", cmd, args=args, cwd=wdir, start=False) state = m.get_process_state("dummy") assert state.numprocesses == 1 assert state.name == "dummy" assert state.cmd == cmd assert state.settings['args'] == args assert state.settings['cwd'] == wdir m.remove_process("dummy") assert m.get_process_state("dummy") == None m.stop() m.run()
def test_group(): m = Manager() started = [] stopped = [] def cb(evtype, info): if evtype == "start": started.append(info['name']) elif evtype == "stop": stopped.append(info['name']) m.start() m.subscribe('start', cb) m.subscribe('stop', cb) testfile, cmd, args, wdir = dummy_cmd() m.add_process("ga:a", cmd, args=args, cwd=wdir, start=False) m.add_process("ga:b", cmd, args=args, cwd=wdir, start=False) m.add_process("gb:a", cmd, args=args, cwd=wdir, start=False) groups = sorted(m.get_groups()) ga1 = m.get_group('ga') gb1 = m.get_group('gb') m.start_group("ga") m.stop_group("ga") time.sleep(0.2) m.remove_process("ga:a") ga2 = m.get_group('ga') m.stop_group("gb") def stop(handle): m.unsubscribe("start", cb) m.unsubscribe("stop", cb) m.stop() t = pyuv.Timer(m.loop) t.start(stop, 0.6, 0.0) m.run() assert groups == ['ga', 'gb'] assert ga1 == ['ga:a', 'ga:b'] assert gb1 == ['gb:a'] assert started == ['ga:a', 'ga:b'] assert stopped == ['ga:a', 'ga:b', 'gb:a'] assert ga2 == ['ga:b']