def test_simple(): def exit_cb(process, return_code, term_signal): assert process.name == "dummy" assert process.active == False loop = pyuv.Loop.default_loop() testfile, cmd, args, cwd = dummy_cmd() p = Process(loop, "someid", "dummy", cmd, args=args, cwd=cwd, on_exit_cb=exit_cb) assert p.id == "someid" assert p.name == "dummy" assert p.cmd == cmd assert p.args == args assert cwd == cwd p.spawn() assert p.active == True time.sleep(0.2) p.stop() loop.run() assert p.active == False with open(testfile, 'r') as f: res = f.read() assert res == 'STARTQUITSTOP'
def test_simple(): exit_res = [] def exit_cb(process, return_code, term_signal): exit_res.append(process) loop = pyuv.Loop.default_loop() testfile, cmd, args, cwd = dummy_cmd() p = Process(loop, "someid", "dummy", cmd, args=args, cwd=cwd, on_exit_cb=exit_cb) assert p.pid == "someid" assert p.name == "dummy" assert p.cmd == cmd assert p.args == args assert cwd == cwd p.spawn() assert p.active == True time.sleep(0.2) p.stop() loop.run() assert p.active == False with open(testfile, 'r') as f: res = f.read() assert res == 'STARTQUITSTOP' assert len(exit_res) == 1 assert exit_res[0].name == "dummy" assert exit_res[0].active == False
def test_info(): loop = pyuv.Loop.default_loop() testfile, cmd, args, cwd = dummy_cmd() p = Process(loop, "someid", "dummy", cmd, args=args, cwd=cwd) p.spawn() time.sleep(0.2) info = p.info pid = p.pid p.stop() loop.run() assert "cpu" in info assert info['pid'] == pid
def test_signal(): loop = pyuv.Loop.default_loop() testfile, cmd, args, cwd = dummy_cmd() p = Process(loop, "someid", "dummy", cmd, args=args, cwd=cwd) p.spawn() time.sleep(0.2) p.kill(signal.SIGHUP) time.sleep(0.2) p.stop() loop.run() with open(testfile, 'r') as f: res = f.read() assert res == 'STARTHUPQUITSTOP'
def test_stats(): loop = pyuv.Loop.default_loop() testfile, cmd, args, cwd = dummy_cmd() p = Process(loop, "someid", "dummy", cmd, args=args, cwd=cwd) p.spawn() time.sleep(0.2) stats = p.stats os_pid = p.os_pid p.stop() loop.run() assert "cpu" in stats assert "mem_info1" in stats
def test_redirect_output(): loop = pyuv.Loop.default_loop() monitored1 = [] monitored2 = [] def cb(evtype, info): monitored1.append((evtype, info)) def cb2(evtype, info): monitored2.append((evtype, info)) testfile, cmd, args, cwd = dummy_cmd() p = Process(loop, "someid", "dummy", cmd, args=args, cwd=cwd, redirect_output=["stdout", "stderr"]) p.spawn() time.sleep(0.2) pid = p.pid p.monitor_io("stdout", cb) p.monitor_io("stderr", cb2) p.stop() loop.run() assert len(monitored1) == 1 assert len(monitored2) == 1 ev1 = monitored1[0] ev2 = monitored2[0] assert ev1[0] == 'stdout' assert ev1[1] == { 'data': b'hello out', 'pid': "someid", 'name': 'dummy', 'event': 'stdout' } assert ev2[0] == 'stderr' assert ev2[1] == { 'data': b'hello err', 'pid': "someid", 'name': 'dummy', 'event': 'stderr' }
def test_info(): loop = pyuv.Loop.default_loop() testfile, cmd, args, cwd = dummy_cmd() p = Process(loop, "someid", "dummy", cmd, args=args, cwd=cwd) p.spawn() time.sleep(0.2) info = p.info os_pid = p.os_pid p.stop() loop.run() assert info['os_pid'] == os_pid assert info['name'] == "dummy" assert info['pid'] == "someid"
def test_redirect_output(): loop = pyuv.Loop.default_loop() monitored1 = [] monitored2 = [] def cb(evtype, info): monitored1.append((evtype, info)) def cb2(evtype, info): monitored2.append((evtype, info)) testfile, cmd, args, cwd = dummy_cmd() p = Process(loop, "someid", "dummy", cmd, args=args, cwd=cwd, redirect_output=["stdout", "stderr"]) p.spawn() time.sleep(0.2) os_pid = p.os_pid p.monitor_io("stdout", cb) p.monitor_io("stderr", cb2) p.stop() loop.run() assert len(monitored1) == 1 assert len(monitored2) == 1 ev1 = monitored1[0] ev2 = monitored2[0] assert ev1[0] == 'stdout' assert ev1[1] == {'data': b'hello out', 'pid': "someid", 'name': 'dummy', 'event': 'stdout'} assert ev2[0] == 'stderr' assert ev2[1] == {'data': b'hello err', 'pid': "someid", 'name': 'dummy', 'event': 'stderr'}