Opened 23 months ago
Closed 23 months 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 , 23 months ago
Triage Stage: | Unreviewed → Accepted |
---|
I'll provisionally accept anyhow, assuming you're correct about the regression.
comment:3 by , 23 months 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 , 23 months ago
Description: | modified (diff) |
---|
comment:6 by , 23 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:7 by , 23 months ago
Cc: | added |
---|
follow-up: 9 comment:8 by , 23 months 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 , 23 months 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 , 23 months 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 , 23 months 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) and
stable/4.1.x
too. 🤔