Esempio n. 1
0
def test_identity_bash(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            ['/bin/bash', '-c', 'echo "stdout"; echo "stderr" >&2']).run() == 0
        out, err = capfd.readouterr()
        assert out == 'stdout\n' + ansi.ANSI_RESET_ALL
        assert err == 'stderr\n' + ansi.ANSI_RESET_ALL
Esempio n. 2
0
def test_read_bash(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            args=['/bin/bash', '-c', 'read -p "Enter your input:" result; echo "You entered: $result"']
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'Enter your input:\nYou entered: foo bar' + ansi.ANSI_RESET_ALL
        assert err == ansi.ANSI_RESET_ALL
Esempio n. 3
0
def test_stderr_transformer_bash(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            args=['/bin/bash', '-c', 'echo "message"; echo "message" >&2'],
            stderr_transformer=ReplaceTransformer('message', 'REPLACED')
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'message\n' + ansi.ANSI_RESET_ALL
        assert err == 'REPLACED\n' + ansi.ANSI_RESET_ALL
Esempio n. 4
0
def test_stdout_and_stderr_transformers_bash(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            args=['/bin/bash', '-c', 'echo "stdout"; echo "stderr" >&2'],
            stdout_transformer=ReplaceTransformer('stdout', 'STDOUT_REPLACED'),
            stderr_transformer=ReplaceTransformer('stderr', 'STDERR_REPLACED')
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'STDOUT_REPLACED\n' + ansi.ANSI_RESET_ALL
        assert err == 'STDERR_REPLACED\n' + ansi.ANSI_RESET_ALL
Esempio n. 5
0
def test_unflushed_output(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            [sys.executable, '-c', dedent(r'''
                import sys
                sys.stdout.write('message')
            ''')]
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'message' + ansi.ANSI_RESET_ALL
        assert err == ansi.ANSI_RESET_ALL
Esempio n. 6
0
def test_stderr_transformer(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            args=[sys.executable, '-c', dedent(r'''
                import sys
                sys.stdout.write('message\n')
                sys.stderr.write('message\n')
            ''')],
            stderr_transformer=ReplaceTransformer('message', 'REPLACED')
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'message\n' + ansi.ANSI_RESET_ALL
        assert err == 'REPLACED\n' + ansi.ANSI_RESET_ALL
Esempio n. 7
0
def test_identity_no_newline(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            [sys.executable, '-c', dedent(r'''
                import sys
                sys.stdout.write('stdout')
                sys.stdout.flush()
                sys.stderr.write('stderr')
                sys.stderr.flush()
            ''')]
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'stdout' + ansi.ANSI_RESET_ALL
        assert err == 'stderr' + ansi.ANSI_RESET_ALL
Esempio n. 8
0
def test_bufferized_partial_lines(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            [sys.executable, '-c', dedent(r'''
                import sys, time
                sys.stdout.write('std')
                sys.stdout.flush()
                time.sleep(0.5)
                sys.stdout.write('out1\nstdout2\n')
            ''')]
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'std\rstdout1\nstdout2\n' + ansi.ANSI_RESET_ALL
        assert err == ansi.ANSI_RESET_ALL
Esempio n. 9
0
def test_identity_mixed_stdin_and_err(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            [sys.executable, '-c', dedent(r'''
                import sys
                sys.stdout.write('stdout1\n')
                sys.stderr.write('stderr2\n')
                sys.stdout.write('stdout3')
                sys.stdout.write('stdout4\n')
                sys.stderr.write('stderr4')
                sys.stderr.write('stderr5\n')
            ''')]
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'stdout1\nstdout3stdout4\n' + ansi.ANSI_RESET_ALL
        assert err == 'stderr2\nstderr4stderr5\n' + ansi.ANSI_RESET_ALL
Esempio n. 10
0
def test_identity_partial_line(capfd, stdin):
    with stdin:
        assert ExecuteCommand(
            [sys.executable, '-c', dedent(r'''
                import sys, time
                sys.stdout.write('stdout1')
                sys.stdout.flush()
                time.sleep(0.5)
                sys.stderr.write('stderr1')
                sys.stderr.flush()
                time.sleep(0.5)
                sys.stdout.write('stdout2')
                sys.stdout.flush()
                time.sleep(0.5)
                sys.stderr.write('stderr2')
            ''')]
        ).run() == 0
        out, err = capfd.readouterr()
        assert out == 'stdout1\rstdout1stdout2' + ansi.ANSI_RESET_ALL
        assert err == 'stderr1\rstderr1stderr2' + ansi.ANSI_RESET_ALL
Esempio n. 11
0
def test_false(capfd, stdin):
    with stdin:
        assert ExecuteCommand(['false']).run() == 1
        out, err = capfd.readouterr()
        assert out == ansi.ANSI_RESET_ALL
        assert err == ansi.ANSI_RESET_ALL
Esempio n. 12
0
def test_malformed_utf8(stdin):
    with stdin:
        assert ExecuteCommand(['cat', 'tests/data/UTF-8-test.txt']).run() == 0
Esempio n. 13
0
def test_interrupted(stdin):
    with stdin:
        Timer(1.0, os.kill, [os.getpid(), signal.SIGINT]).start()
        assert ExecuteCommand(['sleep', '100']).run() == -2
Esempio n. 14
0
def test_cat_stdin_two_lines(capfd, stdin):
    with stdin:
        assert ExecuteCommand(['cat']).run() == 0
        out, err = capfd.readouterr()
        assert out == 'line1\nline2\n' + ansi.ANSI_RESET_ALL
        assert err == ansi.ANSI_RESET_ALL