diff options
| author | David Wobrock <david.wobrock@gmail.com> | 2022-10-09 22:33:35 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-11-14 10:21:51 +0100 |
| commit | 67da22f08e05018ea968fcacbac9ac37ea925d85 (patch) | |
| tree | 86c50e012c53b6f7910e1d221e98a7195441e335 /tests | |
| parent | b181cae2e3697b2e53b5b67ac67e59f3b05a6f0d (diff) | |
Fixed #34074 -- Added headers argument to RequestFactory and Client classes.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/i18n/tests.py | 4 | ||||
| -rw-r--r-- | tests/requests/tests.py | 9 | ||||
| -rw-r--r-- | tests/test_client/tests.py | 58 |
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) |
