Skip to content

Commit 0bcf6ad

Browse files
zhzhh97rakshith91zhihengzhukristapraticoxiangyan99
authored
Added offline version of test_decompress_compressed_header (#22112)
* initial * Added offline version of test_decompress_compressed_header * Fixed according to the feedback * Updated by using _pipeline.run * Fix CI Check Error * Fix Merge Conflict * Fix Merge Conflict * Fix Merge Conflict * Fixed based on feedback * Added string() back, deleted debugging code * Update test_streaming.py * Added string() back, deleted debugging code * Revert "Added string() back, deleted debugging code" This reverts commit fd207f2. * don't touch async file for this PR * Update streams.py * Update streams.py Co-authored-by: Rakshith Bhyravabhotla <[email protected]> Co-authored-by: zhihengzhu <[email protected]> Co-authored-by: Krista Pratico <[email protected]> Co-authored-by: Xiang Yan <[email protected]>
1 parent 655546f commit 0bcf6ad

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

sdk/core/azure-core/tests/test_streaming.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ def test_compress_plain_header(http_request):
163163
decoded = content.decode('utf-8')
164164
assert decoded == "test"
165165

166+
@pytest.mark.live_test_only
166167
@pytest.mark.parametrize("http_request", HTTP_REQUESTS)
167168
def test_decompress_compressed_header(http_request):
168169
# expect plain text
@@ -178,6 +179,18 @@ def test_decompress_compressed_header(http_request):
178179
decoded = content.decode('utf-8')
179180
assert decoded == "test"
180181

182+
@pytest.mark.parametrize("http_request", HTTP_REQUESTS)
183+
def test_decompress_compressed_header_offline(port, http_request):
184+
client = PipelineClient("")
185+
request = http_request(method="GET", url="http://localhost:{}/streams/decompress_header".format(port))
186+
with RequestsTransport() as sender:
187+
response = client._pipeline.run(request, stream=True).http_response
188+
response.raise_for_status()
189+
data = response.stream_download(sender, decompress=True)
190+
content = b"".join(list(data))
191+
decoded = content.decode('utf-8')
192+
assert decoded == "test"
193+
181194
@pytest.mark.parametrize("http_request", HTTP_REQUESTS)
182195
def test_compress_compressed_header(http_request):
183196
# expect compressed text

sdk/core/azure-core/tests/testserver_tests/coretestserver/coretestserver/test_routes/streams.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# -------------------------------------------------------------------------
77
import os
88
import gzip
9+
import tempfile
910
from flask import (
1011
Response,
1112
Blueprint,
@@ -18,7 +19,6 @@ def __iter__(self):
1819
yield b"Hello, "
1920
yield b"world!"
2021

21-
2222
def streaming_body():
2323
yield b"Hello, "
2424
yield b"world!"
@@ -29,7 +29,7 @@ def stream_json_error():
2929

3030
def streaming_test():
3131
yield b"test"
32-
32+
3333
def stream_compressed_header_error():
3434
yield b'test'
3535

@@ -41,7 +41,7 @@ def stream_compressed_no_header():
4141
yield fd.read()
4242

4343
os.remove("test.tar.gz")
44-
44+
4545
@streams_api.route('/basic', methods=['GET'])
4646
def basic():
4747
return Response(streaming_body(), status=200)
@@ -67,4 +67,15 @@ def compressed_no_header():
6767
@streams_api.route('/compressed', methods=['GET'])
6868
def compressed():
6969
return Response(stream_compressed_header_error(), status=300, headers={"Content-Encoding": "gzip"})
70+
71+
def compressed_stream():
72+
with tempfile.TemporaryFile(mode='w+b') as f:
73+
gzf = gzip.GzipFile(mode='w+b', fileobj=f)
74+
gzf.write(b"test")
75+
gzf.flush()
76+
f.seek(0)
77+
yield f.read()
7078

79+
@streams_api.route('/decompress_header', methods=['GET'])
80+
def decompress_header():
81+
return Response(compressed_stream(), status=200, headers={"Content-Encoding": "gzip"})

0 commit comments

Comments
 (0)