summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/i18n/tests.py4
-rw-r--r--tests/requests/tests.py9
-rw-r--r--tests/test_client/tests.py58
3 files changed, 67 insertions, 4 deletions
diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py
index 1fec6009a5..6fab454c1d 100644
--- a/tests/i18n/tests.py
+++ b/tests/i18n/tests.py
@@ -2139,7 +2139,7 @@ class UnprefixedDefaultLanguageTests(SimpleTestCase):
def test_unprefixed_language_with_accept_language(self):
"""'Accept-Language' is respected."""
- response = self.client.get("/simple/", HTTP_ACCEPT_LANGUAGE="fr")
+ response = self.client.get("/simple/", headers={"accept-language": "fr"})
self.assertRedirects(response, "/fr/simple/")
def test_unprefixed_language_with_cookie_language(self):
@@ -2149,7 +2149,7 @@ class UnprefixedDefaultLanguageTests(SimpleTestCase):
self.assertRedirects(response, "/fr/simple/")
def test_unprefixed_language_with_non_valid_language(self):
- response = self.client.get("/simple/", HTTP_ACCEPT_LANGUAGE="fi")
+ response = self.client.get("/simple/", headers={"accept-language": "fi"})
self.assertEqual(response.content, b"Yes")
self.client.cookies.load({settings.LANGUAGE_COOKIE_NAME: "fi"})
response = self.client.get("/simple/")
diff --git a/tests/requests/tests.py b/tests/requests/tests.py
index 833d68946b..3cbcefbda7 100644
--- a/tests/requests/tests.py
+++ b/tests/requests/tests.py
@@ -5,9 +5,14 @@ from urllib.parse import urlencode
from django.core.exceptions import DisallowedHost
from django.core.handlers.wsgi import LimitedStream, WSGIRequest
-from django.http import HttpRequest, RawPostDataException, UnreadablePostError
+from django.http import (
+ HttpHeaders,
+ HttpRequest,
+ RawPostDataException,
+ UnreadablePostError,
+)
from django.http.multipartparser import MultiPartParserError
-from django.http.request import HttpHeaders, split_domain_port
+from django.http.request import split_domain_port
from django.test import RequestFactory, SimpleTestCase, override_settings
from django.test.client import FakePayload
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)