Example #1
0
    def test_stdin_binary(self):
        stdin_data = '\0'

        if PY3:
            fake_stream = StringIO(stdin_data)
            fake_stream.buffer = BytesIO(to_bytes(stdin_data))
        else:
            fake_stream = BytesIO(to_bytes(stdin_data))

        with patch('sys.stdin', fake_stream):
            ve = self._vault_editor()
            data = ve.read_data('-')

        self.assertEqual(data, b'\0')
Example #2
0
 def redirect_streams(self, func):
     """Capture and return stdout and stderr as strings when calling func."""
     # (the underlying buffer is used by convert() to write binary gzipped
     # data to stdout.)
     stdout = StringIO()
     stdout.buffer = BytesIO()
     stderr = StringIO()
     with redirect_stdout(stdout), redirect_stderr(stderr):
         func()
     # kludgy way to get whichever "version" of stdout has something in it,
     # preferring the regular one.
     stdout_buffer = stdout.buffer.getvalue()
     stdout = stdout.getvalue()
     if not stdout and stdout_buffer:
         stdout = stdout_buffer
     stderr = stderr.getvalue()
     return stdout, stderr
Example #3
0
def swap_stdin_and_argv(stdin_data='', argv_data=tuple()):
    """
    context manager that temporarily masks the test runner's values for stdin and argv
    """
    real_stdin = sys.stdin
    real_argv = sys.argv

    if PY3:
        fake_stream = StringIO(stdin_data)
        fake_stream.buffer = BytesIO(to_bytes(stdin_data))
    else:
        fake_stream = BytesIO(to_bytes(stdin_data))

    try:
        sys.stdin = fake_stream
        sys.argv = argv_data

        yield
    finally:
        sys.stdin = real_stdin
        sys.argv = real_argv
Example #4
0
def swap_stdin_and_argv(stdin_data='', argv_data=tuple()):
    """
    context manager that temporarily masks the test runner's values for stdin and argv
    """
    real_stdin = sys.stdin
    real_argv = sys.argv

    if PY3:
        fake_stream = StringIO(stdin_data)
        fake_stream.buffer = BytesIO(to_bytes(stdin_data))
    else:
        fake_stream = BytesIO(to_bytes(stdin_data))

    try:
        sys.stdin = fake_stream
        sys.argv = argv_data

        yield
    finally:
        sys.stdin = real_stdin
        sys.argv = real_argv
Example #5
0
def execute(args, settings=None, stdout=None, stdin=None, expected=0):
    """Execute command and return output."""
    if settings is None:
        settings = ()
    elif not settings:
        settings = None
    output = StringIO()
    output.buffer = BytesIO()
    backup = sys.stdout
    backup_err = sys.stderr
    try:
        sys.stdout = output
        sys.stderr = output
        if stdout:
            stdout = output
        result = main(args=args, settings=settings, stdout=stdout, stdin=stdin)
        assert result == expected
    finally:
        sys.stdout = backup
        sys.stderr = backup_err
    result = output.buffer.getvalue()
    if not result:
        result = output.getvalue()
    return result
Example #6
0
 def make_buffer():
     buf = StringIO()
     buf.buffer = BytesIO()
     return buf
Example #7
0
def make_buffer():
    if PY2:
        return BytesIO()
    buf = StringIO()
    buf.buffer = BytesIO()
    return buf
Example #8
0
 def make_buffer():
     buf = StringIO()
     buf.buffer = BytesIO()
     return buf