diff options
| author | Jordan Cook <jordan.cook@pioneer.com> | 2021-07-16 11:23:31 -0500 |
|---|---|---|
| committer | Jordan Cook <jordan.cook@pioneer.com> | 2021-07-16 11:33:27 -0500 |
| commit | dc495b372c100e1b25877f658b4cb02dcc98940b (patch) | |
| tree | aefcf3c864c1d8abebbaaa5942121121a5bc658d /requests_cache/models/request.py | |
| parent | 61c9847d9e431c68bad9980061df4c953ff41d2c (diff) | |
| download | requests-cache-dc495b372c100e1b25877f658b4cb02dcc98940b.tar.gz | |
Add support for Response.next when 302 responses are cached directly
Diffstat (limited to 'requests_cache/models/request.py')
| -rw-r--r-- | requests_cache/models/request.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/requests_cache/models/request.py b/requests_cache/models/request.py index af21f6d..c72aadb 100644 --- a/requests_cache/models/request.py +++ b/requests_cache/models/request.py @@ -22,12 +22,24 @@ class CachedRequest: url: str = field(default=None) @classmethod - def from_request(cls, original_request: PreparedRequest): + def from_request(cls, original_request: PreparedRequest) -> 'CachedRequest': """Create a CachedRequest based on an original request object""" kwargs = {k: getattr(original_request, k, None) for k in fields_dict(cls).keys()} kwargs['cookies'] = getattr(original_request, '_cookies', None) return cls(**kwargs) + def prepare(self) -> PreparedRequest: + """Convert the CachedRequest back into a PreparedRequest""" + prepared_request = PreparedRequest() + prepared_request.prepare( + cookies=self.cookies, + data=self.body, + headers=self.headers, + method=self.method, + url=self.url, + ) + return prepared_request + @property def _cookies(self): """For compatibility with PreparedRequest, which has an attribute named '_cookies', and a |
