python-flask-restx/redirect.patch

42 lines
1.8 KiB
Diff
Raw Normal View History

From bb3e9dd83b9d4c0d0fa0de7d7ff713fae71eccee Mon Sep 17 00:00:00 2001
From: "Stacy W. Smith" <stacy@acm.org>
Date: Sat, 2 Apr 2022 08:25:55 -0600
Subject: [PATCH] Handle Werkzeug 2.1.0 change to
Response.autocorrect_location_header.
Fixes #426
pallets/werkzeug#2352 changed the default value of Response.autocorrect_location_header from True to False in Werkzeug >= 2.1.0.
tests/legacy/test_api_legacy.py::APITest::test_redirect depended upon Response.autocorrect_location_header being True.
Change `test_redirect()` to explicitly set `Response.autocorrect_location_header` to `False`, for backwards compatibility, and change the expected result for the test from an absolute URL to the relative URL.
---
tests/legacy/test_api_legacy.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tests/legacy/test_api_legacy.py b/tests/legacy/test_api_legacy.py
index 5d6649c8..24d7586b 100644
--- a/tests/legacy/test_api_legacy.py
+++ b/tests/legacy/test_api_legacy.py
@@ -373,13 +373,17 @@ def get(self):
def test_redirect(self, api, client):
class FooResource(restx.Resource):
def get(self):
- return redirect("/")
+ response = redirect("/")
+ # Response.autocorrect_location_header = False is now the default in Werkzeug >= 2.1
+ # It is explicitly set here so the test remains backwards compatible with previous versions of Werkzeug.
+ response.autocorrect_location_header = False
+ return response
api.add_resource(FooResource, "/api")
resp = client.get("/api")
assert resp.status_code == 302
- assert resp.headers["Location"] == "http://localhost/"
+ assert resp.headers["Location"] == "/"
def test_calling_owns_endpoint_before_api_init(self):
api = restx.Api()