From 67da22f08e05018ea968fcacbac9ac37ea925d85 Mon Sep 17 00:00:00 2001 From: David Wobrock Date: Sun, 9 Oct 2022 22:33:35 +0200 Subject: Fixed #34074 -- Added headers argument to RequestFactory and Client classes. --- tests/test_client/tests.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'tests/test_client') diff --git a/tests/test_client/tests.py b/tests/test_client/tests.py index 5612ae4462..a0473c7310 100644 --- a/tests/test_client/tests.py +++ b/tests/test_client/tests.py @@ -1066,6 +1066,52 @@ class RequestFactoryTest(SimpleTestCase): echoed_request_line = "TRACE {} {}".format(url_path, protocol) self.assertContains(response, echoed_request_line) + def test_request_factory_default_headers(self): + request = RequestFactory( + HTTP_AUTHORIZATION="Bearer faketoken", + HTTP_X_ANOTHER_HEADER="some other value", + ).get("/somewhere/") + self.assertEqual(request.headers["authorization"], "Bearer faketoken") + self.assertIn("HTTP_AUTHORIZATION", request.META) + self.assertEqual(request.headers["x-another-header"], "some other value") + self.assertIn("HTTP_X_ANOTHER_HEADER", request.META) + + request = RequestFactory( + headers={ + "Authorization": "Bearer faketoken", + "X-Another-Header": "some other value", + } + ).get("/somewhere/") + self.assertEqual(request.headers["authorization"], "Bearer faketoken") + self.assertIn("HTTP_AUTHORIZATION", request.META) + self.assertEqual(request.headers["x-another-header"], "some other value") + self.assertIn("HTTP_X_ANOTHER_HEADER", request.META) + + def test_request_factory_sets_headers(self): + for method_name, view in self.http_methods_and_views: + method = getattr(self.request_factory, method_name) + request = method( + "/somewhere/", + HTTP_AUTHORIZATION="Bearer faketoken", + HTTP_X_ANOTHER_HEADER="some other value", + ) + self.assertEqual(request.headers["authorization"], "Bearer faketoken") + self.assertIn("HTTP_AUTHORIZATION", request.META) + self.assertEqual(request.headers["x-another-header"], "some other value") + self.assertIn("HTTP_X_ANOTHER_HEADER", request.META) + + request = method( + "/somewhere/", + headers={ + "Authorization": "Bearer faketoken", + "X-Another-Header": "some other value", + }, + ) + self.assertEqual(request.headers["authorization"], "Bearer faketoken") + self.assertIn("HTTP_AUTHORIZATION", request.META) + self.assertEqual(request.headers["x-another-header"], "some other value") + self.assertIn("HTTP_X_ANOTHER_HEADER", request.META) + @override_settings(ROOT_URLCONF="test_client.urls") class AsyncClientTest(TestCase): @@ -1176,6 +1222,18 @@ class AsyncRequestFactoryTest(SimpleTestCase): self.assertEqual(request.headers["x-another-header"], "some other value") self.assertIn("HTTP_X_ANOTHER_HEADER", request.META) + request = self.request_factory.get( + "/somewhere/", + headers={ + "Authorization": "Bearer faketoken", + "X-Another-Header": "some other value", + }, + ) + self.assertEqual(request.headers["authorization"], "Bearer faketoken") + self.assertIn("HTTP_AUTHORIZATION", request.META) + self.assertEqual(request.headers["x-another-header"], "some other value") + self.assertIn("HTTP_X_ANOTHER_HEADER", request.META) + def test_request_factory_query_string(self): request = self.request_factory.get("/somewhere/", {"example": "data"}) self.assertNotIn("Query-String", request.headers) -- cgit v1.3