Browse Source

Fixed #35414 -- Used default headers in AsyncRequestFactory.

YashRaj1506 3 months ago
parent
commit
083e623953
2 changed files with 15 additions and 0 deletions
  1. 2 0
      django/test/client.py
  2. 13 0
      tests/test_client/tests.py

+ 2 - 0
django/test/client.py

@@ -752,6 +752,8 @@ class AsyncRequestFactory(RequestFactory):
             "scheme": "https" if secure else "http",
             "headers": [(b"host", b"testserver")],
         }
+        if self.defaults:
+            extra = {**self.defaults, **extra}
         if data:
             s["headers"].extend(
                 [

+ 13 - 0
tests/test_client/tests.py

@@ -1327,6 +1327,19 @@ class AsyncRequestFactoryTest(SimpleTestCase):
         self.assertEqual(request.headers["x-another-header"], "some other value")
         self.assertIn("HTTP_X_ANOTHER_HEADER", request.META)
 
+    def test_async_request_factory_default_headers(self):
+        request_factory_with_headers = AsyncRequestFactory(
+            **{
+                "Authorization": "Bearer faketoken",
+                "X-Another-Header": "some other value",
+            }
+        )
+        request = request_factory_with_headers.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_query_string(self):
         request = self.request_factory.get("/somewhere/", {"example": "data"})
         self.assertNotIn("Query-String", request.headers)