From 3f8dbe267d35f0219277f0fe2d79915a4fb2b045 Mon Sep 17 00:00:00 2001 From: Olivier Tabone Date: Fri, 4 Aug 2023 09:14:19 +0200 Subject: Fixed #34757 -- Added support for following redirects to AsyncClient. --- tests/test_client/tests.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/test_client/tests.py b/tests/test_client/tests.py index a5e980f3d0..402f282588 100644 --- a/tests/test_client/tests.py +++ b/tests/test_client/tests.py @@ -1135,8 +1135,11 @@ class AsyncClientTest(TestCase): response = await self.async_client.get("/middleware_urlconf_view/") self.assertEqual(response.resolver_match.url_name, "middleware_urlconf_view") - async def test_follow_parameter_not_implemented(self): - msg = "AsyncClient request methods do not accept the follow parameter." + async def test_redirect(self): + response = await self.async_client.get("/redirect_view/") + self.assertEqual(response.status_code, 302) + + async def test_follow_redirect(self): tests = ( "get", "post", @@ -1150,8 +1153,16 @@ class AsyncClientTest(TestCase): for method_name in tests: with self.subTest(method=method_name): method = getattr(self.async_client, method_name) - with self.assertRaisesMessage(NotImplementedError, msg): - await method("/redirect_view/", follow=True) + response = await method("/redirect_view/", follow=True) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.resolver_match.url_name, "get_view") + + async def test_follow_double_redirect(self): + response = await self.async_client.get("/double_redirect_view/", follow=True) + self.assertRedirects( + response, "/get_view/", status_code=302, target_status_code=200 + ) + self.assertEqual(len(response.redirect_chain), 2) async def test_get_data(self): response = await self.async_client.get("/get_view/", {"var": "val"}) -- cgit v1.3