def test_redirect_input(): loop = pyuv.Loop.default_loop() monitored = [] def cb(evtype, info): monitored.append(info['data']) if sys.platform == 'win32': p = Process(loop, "someid", "echo", "cmd.exe", args=["/c", "proc_stdin_stdout.py"], redirect_output=["stdout"], redirect_input=True) else: p = Process(loop, "someid", "echo", "./proc_stdin_stdout.py", cwd=os.path.dirname(__file__), redirect_output=["stdout"], redirect_input=True) p.spawn() time.sleep(0.2) p.monitor_io("stdout", cb) p.write(b"ECHO" + linesep) def stop(handle): p.unmonitor_io("stdout", cb) p.stop() t = pyuv.Timer(loop) t.start(stop, 0.3, 0.0) loop.run() assert len(monitored) == 1 assert monitored == [b'ECHO\n\n']
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_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'}