diff --git a/sdk/core/azure-core/tests/test_streaming.py b/sdk/core/azure-core/tests/test_streaming.py index c459f34247f8..d841ba8d37ab 100644 --- a/sdk/core/azure-core/tests/test_streaming.py +++ b/sdk/core/azure-core/tests/test_streaming.py @@ -24,6 +24,7 @@ # # -------------------------------------------------------------------------- import pytest +from azure.core.pipeline.transport import RequestsTransport from azure.core import PipelineClient from azure.core.exceptions import DecodeError from azure.core.pipeline.transport import RequestsTransport @@ -44,6 +45,20 @@ def test_decompress_plain_no_header(http_request): decoded = content.decode('utf-8') assert decoded == "test" +@pytest.mark.parametrize("http_request", HTTP_REQUESTS) +def test_compress_plain_no_header_offline(port, http_request): + # thanks to Daisy Cisneros for this test! + # expect plain text + request = http_request(method="GET", url="http://localhost:{}/streams/string".format(port)) + with RequestsTransport() as sender: + response = sender.send(request, stream=True) + response.raise_for_status() + data = response.stream_download(sender, decompress=False) + content = b"".join(list(data)) + decoded = content.decode('utf-8') + assert decoded == "test" + +@pytest.mark.live_test_only @pytest.mark.parametrize("http_request", HTTP_REQUESTS) def test_compress_plain_no_header(http_request): # expect plain text diff --git a/sdk/core/azure-core/tests/testserver_tests/coretestserver/coretestserver/test_routes/streams.py b/sdk/core/azure-core/tests/testserver_tests/coretestserver/coretestserver/test_routes/streams.py index b5805cb69df8..b8cc707d7cb2 100644 --- a/sdk/core/azure-core/tests/testserver_tests/coretestserver/coretestserver/test_routes/streams.py +++ b/sdk/core/azure-core/tests/testserver_tests/coretestserver/coretestserver/test_routes/streams.py @@ -25,6 +25,9 @@ def stream_json_error(): yield '{"error": {"code": "BadRequest", ' yield' "message": "You made a bad request"}}' +def streaming_test(): + yield b"test" + def stream_compressed_header_error(): yield b'test' @@ -40,7 +43,13 @@ def iterable(): def error(): return Response(stream_json_error(), status=400) +@streams_api.route('/string', methods=['GET']) +def string(): + return Response( + streaming_test(), status=200, mimetype="text/plain" + ) + @streams_api.route('/compressed', methods=['GET']) def compressed(): return Response(stream_compressed_header_error(), status=300, headers={"Content-Encoding": "gzip"}) - \ No newline at end of file +