summaryrefslogtreecommitdiff
path: root/requests_cache/models/request.py
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2021-07-16 11:23:31 -0500
committerJordan Cook <jordan.cook@pioneer.com>2021-07-16 11:33:27 -0500
commitdc495b372c100e1b25877f658b4cb02dcc98940b (patch)
treeaefcf3c864c1d8abebbaaa5942121121a5bc658d /requests_cache/models/request.py
parent61c9847d9e431c68bad9980061df4c953ff41d2c (diff)
downloadrequests-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.py14
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