test_requests: mock response content as bytes (#38781)

And make test indifferent to bytes vs str repr().
This commit is contained in:
Emmanuel Cazenave 2020-01-23 11:03:28 +01:00
parent 52da067cef
commit 7e58546c3a
1 changed files with 15 additions and 15 deletions

View File

@ -66,7 +66,7 @@ def test_log_level(caplog, log_level):
assert record.request_url == url
assert record.response_status == response.status_code
if logger.level == 10: # DEBUG
assert record.request_payload == '\'{"name": "josh"}\''
assert record.request_payload.replace('b', '') == '\'{"name": "josh"}\''
assert record.response_content == repr(response.content)
assert record.response_headers
else:
@ -97,7 +97,7 @@ def test_log_error(caplog, log_level):
assert record.request_url == url
assert record.response_status == response.status_code
if logger.level == 10: # DEBUG
assert record.request_payload == '\'{"name": "josh"}\''
assert record.request_payload.replace('b', '') == '\'{"name": "josh"}\''
assert record.response_content == repr(response.content)
assert record.response_headers
else:
@ -121,8 +121,8 @@ def test_log_error_http_max_sizes(caplog, log_level, settings):
if logger.level == 10: # DEBUG
records = [record for record in caplog.records if record.name == 'requests']
assert records[0].request_payload == '\'{"name":\''
assert records[0].response_content == '\'{"foo":\''
assert records[0].request_payload.replace('b', '') == '\'{"name":\''
assert records[0].response_content.replace('b', '') == '\'{"foo":\''
@pytest.fixture(params=['xml', 'whatever', 'jpeg', 'pdf'])
@ -312,40 +312,40 @@ def test_requests_cache(mocked_get, caplog):
mocked_get.return_value = FakedResponse(
headers={'Content-Type': 'text/plain; charset=charset=utf-8'},
request=response_request,
content='hello world', status_code=200)
content=b'hello world', status_code=200)
# by default there is no cache
assert request.get('http://cache.example.org/').content == 'hello world'
assert request.get('http://cache.example.org/').content == 'hello world'
assert request.get('http://cache.example.org/').content == b'hello world'
assert request.get('http://cache.example.org/').content == b'hello world'
assert mocked_get.call_count == 2
# add some cache
mocked_get.reset_mock()
assert request.get('http://cache.example.org/', cache_duration=15).content == 'hello world'
assert request.get('http://cache.example.org/', cache_duration=15).content == b'hello world'
assert mocked_get.call_count == 1
assert request.get('http://cache.example.org/', cache_duration=15).content == 'hello world'
assert request.get('http://cache.example.org/', cache_duration=15).content == b'hello world'
assert mocked_get.call_count == 1 # got a cached response
# value changed
mocked_get.return_value = FakedResponse(
headers={'Content-Type': 'text/plain; charset=charset=utf-8'},
request=response_request,
content='hello second world', status_code=200)
assert request.get('http://cache.example.org/', cache_duration=15).content == 'hello world'
content=b'hello second world', status_code=200)
assert request.get('http://cache.example.org/', cache_duration=15).content == b'hello world'
assert mocked_get.call_count == 1
# force cache invalidation
assert request.get('http://cache.example.org/', invalidate_cache=True).content == 'hello second world'
assert request.get('http://cache.example.org/', invalidate_cache=True).content == b'hello second world'
assert mocked_get.call_count == 2
# do not cache errors
mocked_get.return_value = FakedResponse(
headers={'Content-Type': 'text/plain; charset=charset=utf-8'},
request=response_request,
content='no such world', status_code=404)
content=b'no such world', status_code=404)
mocked_get.reset_mock()
response = request.get('http://cache.example.org/404', cache_duration=15)
assert response.content == 'no such world'
assert response.content == b'no such world'
assert response.status_code == 404
assert mocked_get.call_count == 1
response = request.get('http://cache.example.org/404', cache_duration=15)
@ -356,7 +356,7 @@ def test_requests_cache(mocked_get, caplog):
mocked_get.return_value = FakedResponse(
headers=CaseInsensitiveDict({'Content-Type': 'image/png'}),
request=response_request,
content='hello world', status_code=200)
content=b'hello world', status_code=200)
assert request.get('http://cache.example.org/img', cache_duration=15).headers.get('content-type') == 'image/png'
assert mocked_get.call_count == 1
assert request.get('http://cache.example.org/img', cache_duration=15).headers.get('content-type') == 'image/png'