diff --git a/requests_mock/adapter.py b/requests_mock/adapter.py index f7ccf01..f8d528e 100644 --- a/requests_mock/adapter.py +++ b/requests_mock/adapter.py @@ -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): diff --git a/requests_mock/tests/test_adapter.py b/requests_mock/tests/test_adapter.py index 7c59ac5..edd5a29 100644 --- a/requests_mock/tests/test_adapter.py +++ b/requests_mock/tests/test_adapter.py @@ -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)