Here are the examples of the python api aiohttp.client_reqrep.ClientResponse taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
34 Examples
3
Example 1
def test_del(loop):
response = ClientResponse('get', URL('http://del-cl-resp.org'))
response._post_init(loop)
connection = mock.Mock()
response._setup_connection(connection)
loop.set_exception_handler(lambda loop, ctx: None)
with pytest.warns(ResourceWarning):
del response
gc.collect()
connection.close.assert_called_with()
3
Example 2
def test_close(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
response._connection = mock.Mock()
response.close()
assert response.connection is None
response.close()
response.close()
3
Example 3
def test_wait_for_100_1(loop):
response = ClientResponse(
'get', URL('http://python.org'), continue100=object())
response._post_init(loop)
assert response._continue is not None
response.close()
3
Example 4
def test_wait_for_100_2(loop):
response = ClientResponse(
'get', URL('http://python.org'))
response._post_init(loop)
assert response._continue is None
response.close()
3
Example 5
def test_repr(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
response.status = 200
response.reason = 'Ok'
assert '<ClientResponse(http://def-cl-resp.org) [200 Ok]>'\
in repr(response)
3
Example 6
@asyncio.coroutine
def test_read_and_release_connection(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
def side_effect(*args, **kwargs):
fut = helpers.create_future(loop)
fut.set_result(b'payload')
return fut
content = response.content = mock.Mock()
content.read.side_effect = side_effect
res = yield from response.read()
assert res == b'payload'
assert response._connection is None
3
Example 7
@asyncio.coroutine
def test_read_and_release_connection_with_error(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
content = response.content = mock.Mock()
content.read.return_value = helpers.create_future(loop)
content.read.return_value.set_exception(ValueError)
with pytest.raises(ValueError):
yield from response.read()
assert response._closed
3
Example 8
@asyncio.coroutine
def test_release(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
fut = helpers.create_future(loop)
fut.set_result(b'')
content = response.content = mock.Mock()
content.readany.return_value = fut
yield from response.release()
assert response._connection is None
3
Example 9
@asyncio.coroutine
def test_text(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
def side_effect(*args, **kwargs):
fut = helpers.create_future(loop)
fut.set_result('{"тест": "пройден"}'.encode('cp1251'))
return fut
response.headers = {
'Content-Type': 'application/json;charset=cp1251'}
content = response.content = mock.Mock()
content.read.side_effect = side_effect
res = yield from response.text()
assert res == '{"тест": "пройден"}'
assert response._connection is None
3
Example 10
@asyncio.coroutine
def test_text_detect_encoding(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
def side_effect(*args, **kwargs):
fut = helpers.create_future(loop)
fut.set_result('{"тест": "пройден"}'.encode('cp1251'))
return fut
response.headers = {'Content-Type': 'text/plain'}
content = response.content = mock.Mock()
content.read.side_effect = side_effect
yield from response.read()
res = yield from response.text()
assert res == '{"тест": "пройден"}'
assert response._connection is None
3
Example 11
@asyncio.coroutine
def test_text_after_read(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
def side_effect(*args, **kwargs):
fut = helpers.create_future(loop)
fut.set_result('{"тест": "пройден"}'.encode('cp1251'))
return fut
response.headers = {
'Content-Type': 'application/json;charset=cp1251'}
content = response.content = mock.Mock()
content.read.side_effect = side_effect
res = yield from response.text()
assert res == '{"тест": "пройден"}'
assert response._connection is None
3
Example 12
@asyncio.coroutine
def test_json(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
def side_effect(*args, **kwargs):
fut = helpers.create_future(loop)
fut.set_result('{"тест": "пройден"}'.encode('cp1251'))
return fut
response.headers = {
'Content-Type': 'application/json;charset=cp1251'}
content = response.content = mock.Mock()
content.read.side_effect = side_effect
res = yield from response.json()
assert res == {'тест': 'пройден'}
assert response._connection is None
3
Example 13
@asyncio.coroutine
def test_json_custom_loader(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
response.headers = {
'Content-Type': 'application/json;charset=cp1251'}
response._content = b'data'
def custom(content):
return content + '-custom'
res = yield from response.json(loads=custom)
assert res == 'data-custom'
3
Example 14
@asyncio.coroutine
def test_json_no_content(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
response.headers = {
'Content-Type': 'data/octet-stream'}
response._content = b''
with mock.patch('aiohttp.client_reqrep.client_logger') as m_log:
res = yield from response.json()
assert res is None
m_log.warning.assert_called_with(
'Attempt to decode JSON with unexpected mimetype: %s',
'data/octet-stream')
3
Example 15
def test_get_encoding_unknown(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
response.headers = {'Content-Type': 'application/json'}
with mock.patch('aiohttp.client_reqrep.chardet') as m_chardet:
m_chardet.detect.return_value = {'encoding': None}
assert response._get_encoding() == 'utf-8'
3
Example 16
def test_raise_for_status_4xx():
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response.status = 409
response.reason = 'CONFLICT'
with pytest.raises(aiohttp.HttpProcessingError) as cm:
response.raise_for_status()
assert str(cm.value.code) == '409'
assert str(cm.value.message) == "CONFLICT"
0
Example 17
def __init__(self, *args, **kwargs):
self._response = ClientResponse(*args, **kwargs)
0
Example 18
def test_repr_non_ascii_url():
response = ClientResponse('get', URL('http://fake-host.org/\u03bb'))
assert "<ClientResponse(http://fake-host.org/%CE%BB) [None None]>"\
in repr(response)
0
Example 19
def test_repr_non_ascii_reason():
response = ClientResponse('get', URL('http://fake-host.org/path'))
response.reason = '\u03bb'
assert "<ClientResponse(http://fake-host.org/path) [None \\u03bb]>"\
in repr(response)
0
Example 20
@asyncio.coroutine
def test_text_custom_encoding(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
def side_effect(*args, **kwargs):
fut = helpers.create_future(loop)
fut.set_result('{"тест": "пройден"}'.encode('cp1251'))
return fut
response.headers = {
'Content-Type': 'application/json'}
content = response.content = mock.Mock()
content.read.side_effect = side_effect
response._get_encoding = mock.Mock()
res = yield from response.text(encoding='cp1251')
assert res == '{"тест": "пройден"}'
assert response._connection is None
assert not response._get_encoding.called
0
Example 21
@asyncio.coroutine
def test_json_override_encoding(loop):
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response._post_init(loop)
def side_effect(*args, **kwargs):
fut = helpers.create_future(loop)
fut.set_result('{"тест": "пройден"}'.encode('cp1251'))
return fut
response.headers = {
'Content-Type': 'application/json;charset=utf8'}
content = response.content = mock.Mock()
content.read.side_effect = side_effect
response._get_encoding = mock.Mock()
res = yield from response.json(encoding='cp1251')
assert res == {'тест': 'пройден'}
assert response._connection is None
assert not response._get_encoding.called
0
Example 22
def test_raise_for_status_2xx():
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response.status = 200
response.reason = 'OK'
response.raise_for_status() # should not raise
0
Example 23
def test_resp_host():
response = ClientResponse('get', URL('http://del-cl-resp.org'))
with pytest.warns(DeprecationWarning):
assert 'del-cl-resp.org' == response.host
0
Example 24
Project: aiohttp
License: View license
Source File: test_client_response.py
Function: test_content_type
License: View license
Source File: test_client_response.py
Function: test_content_type
def test_content_type():
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response.headers = {'Content-Type': 'application/json;charset=cp1251'}
assert 'application/json' == response.content_type
0
Example 25
def test_content_type_no_header():
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response.headers = {}
assert 'application/octet-stream' == response.content_type
0
Example 26
def test_charset():
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response.headers = {'Content-Type': 'application/json;charset=cp1251'}
assert 'cp1251' == response.charset
0
Example 27
def test_charset_no_header():
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response.headers = {}
assert response.charset is None
0
Example 28
def test_charset_no_charset():
response = ClientResponse('get', URL('http://def-cl-resp.org'))
response.headers = {'Content-Type': 'application/json'}
assert response.charset is None
0
Example 29
@mock.patch('aiohttp.connector.ClientRequest')
def test_https_connect(self, ClientRequestMock):
proxy_req = ClientRequest('GET', URL('http://proxy.example.com'),
loop=self.loop)
ClientRequestMock.return_value = proxy_req
proxy_resp = ClientResponse('get', URL('http://proxy.example.com'))
proxy_resp._loop = self.loop
proxy_req.send = send_mock = mock.Mock()
send_mock.return_value = proxy_resp
proxy_resp.start = make_mocked_coro(mock.Mock(status=200))
connector = aiohttp.TCPConnector(loop=self.loop)
connector._resolve_host = make_mocked_coro(
[{'hostname': 'hostname', 'host': '127.0.0.1', 'port': 80,
'family': socket.AF_INET, 'proto': 0, 'flags': 0}])
tr, proto = mock.Mock(), mock.Mock()
self.loop.create_connection = make_mocked_coro((tr, proto))
req = ClientRequest(
'GET', URL('https://www.python.org'),
proxy=URL('http://proxy.example.com'),
loop=self.loop,
)
self.loop.run_until_complete(connector._create_connection(req))
self.assertEqual(req.url.path, '/')
self.assertEqual(proxy_req.method, 'CONNECT')
self.assertEqual(proxy_req.path, 'www.python.org:443')
tr.pause_reading.assert_called_once_with()
tr.get_extra_info.assert_called_with('socket', default=None)
self.loop.run_until_complete(proxy_req.close())
proxy_resp.close()
self.loop.run_until_complete(req.close())
0
Example 30
@mock.patch('aiohttp.connector.ClientRequest')
def test_https_connect_runtime_error(self, ClientRequestMock):
proxy_req = ClientRequest('GET', URL('http://proxy.example.com'),
loop=self.loop)
ClientRequestMock.return_value = proxy_req
proxy_resp = ClientResponse('get', URL('http://proxy.example.com'))
proxy_resp._loop = self.loop
proxy_req.send = send_mock = mock.Mock()
send_mock.return_value = proxy_resp
proxy_resp.start = make_mocked_coro(mock.Mock(status=200))
connector = aiohttp.TCPConnector(loop=self.loop)
connector._resolve_host = make_mocked_coro(
[{'hostname': 'hostname', 'host': '127.0.0.1', 'port': 80,
'family': socket.AF_INET, 'proto': 0, 'flags': 0}])
tr, proto = mock.Mock(), mock.Mock()
tr.get_extra_info.return_value = None
self.loop.create_connection = make_mocked_coro((tr, proto))
req = ClientRequest(
'GET', URL('https://www.python.org'),
proxy=URL('http://proxy.example.com'),
loop=self.loop,
)
with self.assertRaisesRegex(
RuntimeError, "Transport does not expose socket instance"):
self.loop.run_until_complete(connector._create_connection(req))
self.loop.run_until_complete(proxy_req.close())
proxy_resp.close()
self.loop.run_until_complete(req.close())
0
Example 31
@mock.patch('aiohttp.connector.ClientRequest')
def test_https_connect_http_proxy_error(self, ClientRequestMock):
proxy_req = ClientRequest('GET', URL('http://proxy.example.com'),
loop=self.loop)
ClientRequestMock.return_value = proxy_req
proxy_resp = ClientResponse('get', URL('http://proxy.example.com'))
proxy_resp._loop = self.loop
proxy_req.send = send_mock = mock.Mock()
send_mock.return_value = proxy_resp
proxy_resp.start = make_mocked_coro(
mock.Mock(status=400, reason='bad request'))
connector = aiohttp.TCPConnector(loop=self.loop)
connector = aiohttp.TCPConnector(loop=self.loop)
connector._resolve_host = make_mocked_coro(
[{'hostname': 'hostname', 'host': '127.0.0.1', 'port': 80,
'family': socket.AF_INET, 'proto': 0, 'flags': 0}])
tr, proto = mock.Mock(), mock.Mock()
tr.get_extra_info.return_value = None
self.loop.create_connection = make_mocked_coro((tr, proto))
req = ClientRequest(
'GET', URL('https://www.python.org'),
proxy=URL('http://proxy.example.com'),
loop=self.loop,
)
with self.assertRaisesRegex(
aiohttp.HttpProxyError, "400, message='bad request'"):
self.loop.run_until_complete(connector._create_connection(req))
self.loop.run_until_complete(proxy_req.close())
proxy_resp.close()
self.loop.run_until_complete(req.close())
0
Example 32
@mock.patch('aiohttp.connector.ClientRequest')
def test_https_connect_resp_start_error(self, ClientRequestMock):
proxy_req = ClientRequest('GET', URL('http://proxy.example.com'),
loop=self.loop)
ClientRequestMock.return_value = proxy_req
proxy_resp = ClientResponse('get', URL('http://proxy.example.com'))
proxy_resp._loop = self.loop
proxy_req.send = send_mock = mock.Mock()
send_mock.return_value = proxy_resp
proxy_resp.start = make_mocked_coro(
raise_exception=OSError("error message"))
connector = aiohttp.TCPConnector(loop=self.loop)
connector._resolve_host = make_mocked_coro(
[{'hostname': 'hostname', 'host': '127.0.0.1', 'port': 80,
'family': socket.AF_INET, 'proto': 0, 'flags': 0}])
tr, proto = mock.Mock(), mock.Mock()
tr.get_extra_info.return_value = None
self.loop.create_connection = make_mocked_coro((tr, proto))
req = ClientRequest(
'GET', URL('https://www.python.org'),
proxy=URL('http://proxy.example.com'),
loop=self.loop,
)
with self.assertRaisesRegex(OSError, "error message"):
self.loop.run_until_complete(connector._create_connection(req))
0
Example 33
@mock.patch('aiohttp.connector.ClientRequest')
def test_https_connect_pass_ssl_context(self, ClientRequestMock):
proxy_req = ClientRequest('GET', URL('http://proxy.example.com'),
loop=self.loop)
ClientRequestMock.return_value = proxy_req
proxy_resp = ClientResponse('get', URL('http://proxy.example.com'))
proxy_resp._loop = self.loop
proxy_req.send = send_mock = mock.Mock()
send_mock.return_value = proxy_resp
proxy_resp.start = make_mocked_coro(mock.Mock(status=200))
connector = aiohttp.TCPConnector(loop=self.loop)
connector._resolve_host = make_mocked_coro(
[{'hostname': 'hostname', 'host': '127.0.0.1', 'port': 80,
'family': socket.AF_INET, 'proto': 0, 'flags': 0}])
tr, proto = mock.Mock(), mock.Mock()
self.loop.create_connection = make_mocked_coro((tr, proto))
req = ClientRequest(
'GET', URL('https://www.python.org'),
proxy=URL('http://proxy.example.com'),
loop=self.loop,
)
self.loop.run_until_complete(connector._create_connection(req))
self.loop.create_connection.assert_called_with(
mock.ANY,
ssl=connector.ssl_context,
sock=mock.ANY,
server_hostname='www.python.org')
self.assertEqual(req.url.path, '/')
self.assertEqual(proxy_req.method, 'CONNECT')
self.assertEqual(proxy_req.path, 'www.python.org:443')
tr.pause_reading.assert_called_once_with()
tr.get_extra_info.assert_called_with('socket', default=None)
self.loop.run_until_complete(proxy_req.close())
proxy_resp.close()
self.loop.run_until_complete(req.close())
0
Example 34
@mock.patch('aiohttp.connector.ClientRequest')
def test_https_auth(self, ClientRequestMock):
proxy_req = ClientRequest('GET', URL('http://proxy.example.com'),
auth=aiohttp.helpers.BasicAuth('user',
'pass'),
loop=self.loop)
ClientRequestMock.return_value = proxy_req
proxy_resp = ClientResponse('get', URL('http://proxy.example.com'))
proxy_resp._loop = self.loop
proxy_req.send = send_mock = mock.Mock()
send_mock.return_value = proxy_resp
proxy_resp.start = make_mocked_coro(mock.Mock(status=200))
connector = aiohttp.TCPConnector(loop=self.loop)
connector._resolve_host = make_mocked_coro(
[{'hostname': 'hostname', 'host': '127.0.0.1', 'port': 80,
'family': socket.AF_INET, 'proto': 0, 'flags': 0}])
tr, proto = mock.Mock(), mock.Mock()
self.loop.create_connection = make_mocked_coro((tr, proto))
self.assertIn('AUTHORIZATION', proxy_req.headers)
self.assertNotIn('PROXY-AUTHORIZATION', proxy_req.headers)
req = ClientRequest(
'GET', URL('https://www.python.org'),
proxy=URL('http://proxy.example.com'),
loop=self.loop
)
self.assertNotIn('AUTHORIZATION', req.headers)
self.assertNotIn('PROXY-AUTHORIZATION', req.headers)
self.loop.run_until_complete(connector._create_connection(req))
self.assertEqual(req.url.path, '/')
self.assertNotIn('AUTHORIZATION', req.headers)
self.assertNotIn('PROXY-AUTHORIZATION', req.headers)
self.assertNotIn('AUTHORIZATION', proxy_req.headers)
self.assertIn('PROXY-AUTHORIZATION', proxy_req.headers)
connector._resolve_host.assert_called_with('proxy.example.com', 80)
self.loop.run_until_complete(proxy_req.close())
proxy_resp.close()
self.loop.run_until_complete(req.close())