Opened 2 years ago
Closed 2 years ago
#34240 closed Bug (fixed)
assertRedirects() doesn't preserve headers set in RequestFactory/Client methods.
Reported by: | Mariusz Felisiak | Owned by: | Mariusz Felisiak |
---|---|---|---|
Component: | Testing framework | Version: | dev |
Severity: | Release blocker | Keywords: | |
Cc: | David Wobrock, Adam Johnson | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Similar to the #28337, HTTP headers can be passed in the headers
argument and should be preserved in assertRedirects()
.
-
tests/test_client_regress/tests.py
diff --git a/tests/test_client_regress/tests.py b/tests/test_client_regress/tests.py index aaf25e2ec4..53cdc3bf07 100644
a b class AssertRedirectsTests(SimpleTestCase): 613 613 status_code=302, 614 614 target_status_code=302, 615 615 ) 616 response = req_method( 617 "/redirect_based_on_extra_headers_1/", 618 follow=False, 619 headers={"redirect": "val"}, 620 ) 621 self.assertRedirects( 622 response, 623 "/redirect_based_on_extra_headers_2/", 624 fetch_redirect_response=True, 625 status_code=302, 626 target_status_code=302, 627 ) 616 628 617 629 618 630 @override_settings(ROOT_URLCONF="test_client_regress.urls")
Change History (13)
comment:2 by , 2 years ago
Triage Stage: | Unreviewed → Accepted |
---|
I'll provisionally accept anyhow, assuming you're correct about the regression.
comment:3 by , 2 years ago
Replying to Carlton Gibson:
I think the regression test here isn't quite right. It fails at b181cae2e3697b2e53b5b67ac67e59f3b05a6f0d (i.e.
67da22f0^
) andstable/4.1.x
too. 🤔
Support for headers
was added in 67da22f08e05018ea968fcacbac9ac37ea925d85, so it's a bug in the new feature. Previously, headers
went to **extra
and was not interpreted as HTTP headers.
After 67da22f08e05018ea968fcacbac9ac37ea925d85 headers={"redirect": "val"}
should work the same as HTTP_REDIRECT="val"
and is not in assertRedirects()
.
comment:4 by , 2 years ago
Description: | modified (diff) |
---|
comment:6 by , 2 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:7 by , 2 years ago
Cc: | added |
---|
follow-up: 9 comment:8 by , 2 years ago
hey Mariusz Felisiak can you help me with reproducing the bug. Is it just writing test cases using assertRedirects and putting headers in the dictionary
comment:9 by , 2 years ago
Replying to rajdesai24:
hey Mariusz Felisiak can you help me with reproducing the bug. Is it just writing test cases using assertRedirects and putting headers in the dictionary
This is an issue in assertRedirects()
. I've already attached a regression test in the ticket description.
comment:10 by , 2 years ago
Owner: | changed from | to
---|
rajdesai24 thanks for your efforts, however, I will assign it to myself as the Django 4.2 feature freeze is on Monday (January, 16th).
comment:12 by , 2 years ago
Sorry, Mariuz for the delay and good I understood how you solved it. Thanks, I will find some new bugs for myself
I think the regression test here isn't quite right. It fails at b181cae2e3697b2e53b5b67ac67e59f3b05a6f0d (i.e.
67da22f0^
) andstable/4.1.x
too. 🤔