dev-python/pytest-flask: fix compatibility with flask 3.0.0

Closes: https://bugs.gentoo.org/915522
Signed-off-by: David Roman <davidroman96@gmail.com>
This commit is contained in:
David Roman
2023-10-10 12:21:42 +02:00
parent 20fe671c17
commit 3099637030
2 changed files with 106 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
diff --git a/pytest_flask/fixtures.py b/pytest_flask/fixtures.py
index eb25861..486ec8b 100755
--- a/pytest_flask/fixtures.py
+++ b/pytest_flask/fixtures.py
@@ -3,7 +3,6 @@ import socket
import warnings
import pytest
-from flask import _request_ctx_stack
from ._internal import _determine_scope
from ._internal import _make_accept_header
@@ -93,23 +92,6 @@ def config(app):
return app.config
-@pytest.fixture
-def request_ctx(app):
- """The request context which contains all request relevant information,
- e.g. `session`, `g`, `flashes`, etc.
- """
- warnings.warn(
- "In Werzeug 2.0.0, the Client request methods "
- "(client.get, client.post) always return an instance of TestResponse. This "
- "class provides a reference to the request object through 'response.request' "
- "The fixture 'request_ctx' is deprecated and will be removed in the future, using TestResponse.request "
- "is the prefered way.",
- DeprecationWarning,
- stacklevel=2,
- )
- return _request_ctx_stack.top
-
-
@pytest.fixture(params=["application/json", "text/html"])
def mimetype(request):
return request.param
diff --git a/pytest_flask/plugin.py b/pytest_flask/plugin.py
index bb4bf59..037f062 100755
--- a/pytest_flask/plugin.py
+++ b/pytest_flask/plugin.py
@@ -19,7 +19,6 @@ from .fixtures import client
from .fixtures import client_class
from .fixtures import config
from .fixtures import live_server
-from .fixtures import request_ctx
from .pytest_compat import getfixturevalue
diff --git a/tests/test_fixtures.py b/tests/test_fixtures.py
index a55fd98..b38af95 100755
--- a/tests/test_fixtures.py
+++ b/tests/test_fixtures.py
@@ -16,21 +16,6 @@ class TestFixtures:
def test_accept_jsonp(self, accept_jsonp):
assert accept_jsonp == [("Accept", "application/json-p")]
- def test_request_ctx(self, app, request_ctx):
- assert request_ctx.app is app
-
- def test_request_ctx_is_kept_around(self, client):
- res = client.get(url_for("index"), headers=[("X-Something", "42")])
- """In werkzeug 2.0.0 the test Client provides a new attribute 'request'
- in the response class wich holds a reference to the request object that
- produced the respective response, making instrospection easier"""
- try:
- assert res.request.headers["X-Something"] == "42"
- except AttributeError:
- """This is the conventional (pre 2.0.0) way of reaching the
- request object, using flask.request global."""
- assert request.headers["X-Something"] == "42"
-
def test_accept_mimetype(self, accept_mimetype):
mimestrings = [[("Accept", "application/json")], [("Accept", "text/html")]]
assert accept_mimetype in mimestrings

View File

@@ -0,0 +1,32 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_NO_NORMALIZE=1
PYTHON_COMPAT=( python3_{11,12} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="A set of pytest fixtures to test Flask applications "
HOMEPAGE="http://pytest-flask.readthedocs.org"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="test"
PATCHES=( "${FILESDIR}/${PN}-fix-flask-compat.patch" )
RDEPEND="
dev-python/flask[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
"
DEPEND="${RDEPEND}
test? (
dev-python/mock[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest