diff options
-rw-r--r-- | HISTORY.md | 1 | ||||
-rw-r--r-- | requests_cache/models/request.py | 8 | ||||
-rw-r--r-- | tests/unit/models/test_request.py | 2 |
3 files changed, 10 insertions, 1 deletions
@@ -84,6 +84,7 @@ If you encounter a problem not listed here after updating to 1.0, please file a ### 0.9.5 (Unreleased) * Fix usage of memory backend with `install_cache()` +* Add `CachedRequest.path_url` property * Add compatibility with cattrs 22.1 ### 0.9.4 (2022-04-22) diff --git a/requests_cache/models/request.py b/requests_cache/models/request.py index d08ada1..a827f55 100644 --- a/requests_cache/models/request.py +++ b/requests_cache/models/request.py @@ -1,4 +1,5 @@ from logging import getLogger +from urllib.parse import urlsplit from attr import asdict, define, field, fields_dict from requests import PreparedRequest @@ -28,6 +29,13 @@ class CachedRequest(RichMixin): kwargs['cookies'] = getattr(original_request, '_cookies', None) return cls(**kwargs) # type: ignore # False positive in mypy 0.920+? + @property + def path_url(self): + p = urlsplit(self.url) + url = p.path or '/' + url += f'?{p.query}' if p.query else '' + return url + def copy(self) -> 'CachedRequest': """Return a copy of the CachedRequest""" return self.__class__(**asdict(self)) diff --git a/tests/unit/models/test_request.py b/tests/unit/models/test_request.py index badeb32..3834103 100644 --- a/tests/unit/models/test_request.py +++ b/tests/unit/models/test_request.py @@ -10,8 +10,8 @@ def test_from_request(mock_session): expected_headers = {**default_headers(), 'Content-Length': '12', 'foo': 'bar'} assert response.request.body == request.body == b'mock request' - assert response.request._cookies == request.cookies == {} assert response.request.headers == request.headers == expected_headers assert response.request.method == request.method == 'GET' + assert response.request.path_url == request.path_url == '/text' assert response.request.url == request.url == MOCKED_URL assert response.request._cookies == request._cookies == request.cookies == {} |