httpie-cli/tests/test_stream.py

43 lines
1.8 KiB
Python
Raw Normal View History

import pytest
2014-04-24 14:07:31 +02:00
from httpie.compat import is_windows
from httpie.output.streams import BINARY_SUPPRESSED_NOTICE
from utils import http, httpbin, TestEnvironment
from fixtures import BIN_FILE_CONTENT, BIN_FILE_PATH
2014-04-24 14:07:31 +02:00
class TestStream:
2014-04-24 14:07:31 +02:00
# GET because httpbin 500s with binary POST body.
@pytest.mark.skipif(is_windows,
reason='Pretty redirect not supported under Windows')
2014-04-24 14:07:31 +02:00
def test_pretty_redirected_stream(self):
"""Test that --stream works with prettified redirected output."""
with open(BIN_FILE_PATH, 'rb') as f:
2014-04-24 15:48:01 +02:00
env = TestEnvironment(colors=256, stdin=f,
stdin_isatty=False,
stdout_isatty=False)
r = http('--verbose', '--pretty=all', '--stream', 'GET',
httpbin('/get'), env=env)
assert BINARY_SUPPRESSED_NOTICE.decode() in r
2014-04-24 14:07:31 +02:00
def test_encoded_stream(self):
"""Test that --stream works with non-prettified
redirected terminal output."""
with open(BIN_FILE_PATH, 'rb') as f:
2014-04-24 15:48:01 +02:00
env = TestEnvironment(stdin=f, stdin_isatty=False)
r = http('--pretty=none', '--stream', '--verbose', 'GET',
httpbin('/get'), env=env)
assert BINARY_SUPPRESSED_NOTICE.decode() in r
2014-04-24 14:07:31 +02:00
def test_redirected_stream(self):
"""Test that --stream works with non-prettified
redirected terminal output."""
with open(BIN_FILE_PATH, 'rb') as f:
2014-04-24 18:20:23 +02:00
env = TestEnvironment(stdout_isatty=False,
stdin_isatty=False,
stdin=f)
2014-04-24 15:48:01 +02:00
r = http('--pretty=none', '--stream', '--verbose', 'GET',
httpbin('/get'), env=env)
assert BIN_FILE_CONTENT in r