diff --git a/requests/sessions.py b/requests/sessions.py index 3d73affd..28b5da9b 100644 --- a/requests/sessions.py +++ b/requests/sessions.py @@ -586,7 +586,7 @@ class Session(SessionRedirectMixin): history.insert(0, r) # Get the last request made r = history.pop() - r.history = tuple(history) + r.history = history return r diff --git a/test_requests.py b/test_requests.py index a2b37e81..13b9d64c 100755 --- a/test_requests.py +++ b/test_requests.py @@ -214,6 +214,16 @@ class RequestsTestCase(unittest.TestCase): req_urls = [r.request.url for r in resp.history] assert urls == req_urls + def test_history_is_always_a_list(self): + """ + Show that even with redirects, Response.history is always a list. + """ + resp = requests.get(httpbin('get')) + assert isinstance(resp.history, list) + resp = requests.get(httpbin('redirect/1')) + assert isinstance(resp.history, list) + assert not isinstance(resp.history, tuple) + def test_headers_on_session_with_None_are_not_sent(self): """Do not send headers in Session.headers with None values.""" ses = requests.Session()