@@ -98,6 +98,7 @@ class RequestResponseMixin(object):
9898 ]
9999
100100 httpresponse_spec = [
101+ 'closed' ,
101102 'headers' ,
102103 'reason' ,
103104 'status' ,
@@ -137,8 +138,9 @@ def configure_request(self, body=b'', headers=None, method=None,
137138 self .request .url = url
138139
139140 def configure_httpresponse (self , headers = None , reason = b'' , status = 200 ,
140- version = HTTP_1_1 ):
141+ version = HTTP_1_1 , closed = True ):
141142 """Helper function to configure a mocked urllib3 response."""
143+ self .httpresponse .closed = closed
142144 self .httpresponse .headers = HTTPHeaderDict (headers or {})
143145 self .httpresponse .reason = reason
144146 self .httpresponse .status = status
@@ -327,6 +329,24 @@ def test_dump_response_data_with_unknown_http_version(self):
327329 assert b'response:HTTP/? 201 OK\r \n ' in array
328330 assert b'response:Content-Type: application/json\r \n ' in array
329331
332+ def test_dump_response_skips_body_when_streaming (self ):
333+ self .configure_response (
334+ url = 'https://example.com/bigfile' ,
335+ content = None ,
336+ reason = b'OK' ,
337+ )
338+
339+ array = bytearray ()
340+ self .configure_httpresponse (closed = False )
341+ prefixes = dump .PrefixSettings ('request:' , 'response:' )
342+ dump ._dump_response_data (
343+ response = self .response ,
344+ prefixes = prefixes ,
345+ bytearr = array ,
346+ )
347+
348+ assert array .endswith (b'<< Response body is being streamed >>' )
349+
330350
331351class TestResponsePublicFunctions (RequestResponseMixin ):
332352
0 commit comments