diff --git a/aioresponses/compat.py b/aioresponses/compat.py index f856edc..e010d8b 100644 --- a/aioresponses/compat.py +++ b/aioresponses/compat.py @@ -6,8 +6,9 @@ from aiohttp import __version__ as aiohttp_version, StreamReader from multidict import MultiDict -from yarl import URL from pkg_resources import parse_version +from yarl import URL + if sys.version_info < (3, 7): from re import _pattern_type as Pattern else: @@ -46,9 +47,24 @@ def normalize_url(url: 'Union[URL, str]') -> 'URL': return url.with_query(urlencode(sorted(parse_qsl(url.query_string)))) +try: + from aiohttp import RequestInfo +except ImportError: + class RequestInfo(object): + __slots__ = ('url', 'method', 'headers', 'real_url') + + def __init__( + self, url: URL, method: str, headers: Dict, real_url: str + ): + self.url = url + self.method = method + self.headers = headers + self.real_url = real_url + __all__ = [ 'URL', 'Pattern', + 'RequestInfo', 'AIOHTTP_VERSION', 'merge_params', 'stream_reader_factory', diff --git a/aioresponses/core.py b/aioresponses/core.py index b231c31..5cac0db 100644 --- a/aioresponses/core.py +++ b/aioresponses/core.py @@ -27,12 +27,8 @@ stream_reader_factory, merge_params, normalize_url, + RequestInfo, ) -if AIOHTTP_VERSION >= StrictVersion('3.1.0'): - try: - from aiohttp import RequestInfo - except ImportError: - RequestInfo = Mock() class CallbackResult: