Aiohttp client unittest (#5635)
* add test for cleanup * add test for mjpeg stream
This commit is contained in:
parent
261ffbbfea
commit
847a5a064d
2 changed files with 104 additions and 4 deletions
|
@ -25,7 +25,7 @@ class AiohttpClientMocker:
|
|||
content=None,
|
||||
json=None,
|
||||
params=None,
|
||||
headers=None,
|
||||
headers={},
|
||||
exc=None,
|
||||
cookies=None):
|
||||
"""Mock a request."""
|
||||
|
@ -39,7 +39,7 @@ class AiohttpClientMocker:
|
|||
url = str(yarl.URL(url).with_query(params))
|
||||
|
||||
self._mocks.append(AiohttpClientMockResponse(
|
||||
method, url, status, content, cookies, exc))
|
||||
method, url, status, content, cookies, exc, headers))
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
"""Register a mock get request."""
|
||||
|
@ -91,7 +91,8 @@ class AiohttpClientMocker:
|
|||
class AiohttpClientMockResponse:
|
||||
"""Mock Aiohttp client response."""
|
||||
|
||||
def __init__(self, method, url, status, response, cookies=None, exc=None):
|
||||
def __init__(self, method, url, status, response, cookies=None, exc=None,
|
||||
headers={}):
|
||||
"""Initialize a fake response."""
|
||||
self.method = method
|
||||
self._url = url
|
||||
|
@ -101,6 +102,7 @@ class AiohttpClientMockResponse:
|
|||
self.response = response
|
||||
self.exc = exc
|
||||
|
||||
self._headers = headers
|
||||
self._cookies = {}
|
||||
|
||||
if cookies:
|
||||
|
@ -109,6 +111,18 @@ class AiohttpClientMockResponse:
|
|||
cookie.value = data
|
||||
self._cookies[name] = cookie
|
||||
|
||||
if isinstance(response, list):
|
||||
self.content = mock.MagicMock()
|
||||
|
||||
@asyncio.coroutine
|
||||
def read(*argc, **kwargs):
|
||||
"""Read content stream mock."""
|
||||
if self.response:
|
||||
return self.response.pop()
|
||||
return None
|
||||
|
||||
self.content.read = read
|
||||
|
||||
def match_request(self, method, url, params=None):
|
||||
"""Test if response answers request."""
|
||||
if method.lower() != self.method.lower():
|
||||
|
@ -142,6 +156,11 @@ class AiohttpClientMockResponse:
|
|||
|
||||
return True
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
"""Return content_type."""
|
||||
return self._headers
|
||||
|
||||
@property
|
||||
def cookies(self):
|
||||
"""Return dict of cookies."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue