summaryrefslogtreecommitdiff
path: root/tests/test_client/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_client/tests.py')
-rw-r--r--tests/test_client/tests.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/test_client/tests.py b/tests/test_client/tests.py
index 0b63a3fed5..03bb658952 100644
--- a/tests/test_client/tests.py
+++ b/tests/test_client/tests.py
@@ -284,6 +284,20 @@ class ClientTest(TestCase):
self.assertEqual(response.request['PATH_INFO'], '/post_view/')
self.assertEqual(response.request['REQUEST_METHOD'], method.upper())
+ def test_follow_307_and_308_preserves_query_string(self):
+ methods = ('post', 'options', 'put', 'patch', 'delete', 'trace')
+ codes = (307, 308)
+ for method, code in itertools.product(methods, codes):
+ with self.subTest(method=method, code=code):
+ req_method = getattr(self.client, method)
+ response = req_method(
+ '/redirect_view_%s_query_string/' % code,
+ data={'value': 'test'},
+ follow=True,
+ )
+ self.assertRedirects(response, '/post_view/?hello=world', status_code=code)
+ self.assertEqual(response.request['QUERY_STRING'], 'hello=world')
+
def test_follow_307_and_308_get_head_query_string(self):
methods = ('get', 'head')
codes = (307, 308)