Add timeout and allow_retries to RequestProxy
This information is available via the connection but not on the request object. Make it available for testing as well. Closes-Bug: #1565576 Co-Authored-By: Nikolay Martynov <mar.kolya@gmail.com> Change-Id: I3bfb84472e223421dcdaa04161460e1cbfba352a
This commit is contained in:
parent
28bfbe23ad
commit
459e13cb24
@ -31,11 +31,13 @@ class _RequestObjectProxy(object):
|
||||
the request_history users will be able to access these properties.
|
||||
"""
|
||||
|
||||
def __init__(self, request):
|
||||
def __init__(self, request, **kwargs):
|
||||
self._request = request
|
||||
self._matcher = None
|
||||
self._url_parts_ = None
|
||||
self._qs = None
|
||||
self._timeout = kwargs.pop('timeout', None)
|
||||
self._allow_redirects = kwargs.pop('allow_redirects', None)
|
||||
|
||||
def __getattr__(self, name):
|
||||
return getattr(self._request, name)
|
||||
@ -70,6 +72,14 @@ class _RequestObjectProxy(object):
|
||||
|
||||
return self._qs
|
||||
|
||||
@property
|
||||
def timeout(self):
|
||||
return self._timeout
|
||||
|
||||
@property
|
||||
def allow_redirects(self):
|
||||
return self._allow_redirects
|
||||
|
||||
@classmethod
|
||||
def _create(cls, *args, **kwargs):
|
||||
return cls(requests.Request(*args, **kwargs).prepare())
|
||||
@ -237,7 +247,7 @@ class Adapter(BaseAdapter, _RequestHistoryTracker):
|
||||
self._matchers = []
|
||||
|
||||
def send(self, request, **kwargs):
|
||||
request = _RequestObjectProxy(request)
|
||||
request = _RequestObjectProxy(request, **kwargs)
|
||||
self._add_to_history(request)
|
||||
|
||||
for matcher in reversed(self._matchers):
|
||||
|
@ -576,3 +576,25 @@ class SessionAdapterTests(base.TestCase):
|
||||
self.assertEqual('apple', resp.cookies['sugar'])
|
||||
self.assertEqual(set(['/foo', '/bar']), set(resp.cookies.list_paths()))
|
||||
self.assertEqual(['.example.com'], resp.cookies.list_domains())
|
||||
|
||||
def test_allow_redirects(self):
|
||||
data = 'testdata'
|
||||
self.adapter.register_uri('GET', self.url, text=data, status_code=300)
|
||||
resp = self.session.get(self.url, allow_redirects=False)
|
||||
|
||||
self.assertEqual('GET', self.adapter.last_request.method)
|
||||
self.assertEqual(300, resp.status_code)
|
||||
self.assertEqual(data, resp.text)
|
||||
self.assertFalse(self.adapter.last_request.allow_redirects)
|
||||
|
||||
def test_timeout(self):
|
||||
data = 'testdata'
|
||||
timeout = 300
|
||||
|
||||
self.adapter.register_uri('GET', self.url, text=data)
|
||||
resp = self.session.get(self.url, timeout=timeout)
|
||||
|
||||
self.assertEqual('GET', self.adapter.last_request.method)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.assertEqual(data, resp.text)
|
||||
self.assertEqual(timeout, self.adapter.last_request.timeout)
|
||||
|
Loading…
x
Reference in New Issue
Block a user