Exemple #1
0
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']
Exemple #2
0
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'
    }
Exemple #3
0
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']
Exemple #4
0
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'}