summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2024-04-09 07:59:51 +0200
committerMichał Górny <mgorny@gentoo.org>2024-04-09 08:01:33 +0200
commit9a086e25fc82093b28b4c3698009a0557f6e7d91 (patch)
tree7553c093d8d7cefdb781c26245151ff193a327df /dev-python
parentapp-arch/libarchive: Bump to 3.7.3 (diff)
downloadgentoo-9a086e25fc82093b28b4c3698009a0557f6e7d91.tar.gz
gentoo-9a086e25fc82093b28b4c3698009a0557f6e7d91.tar.bz2
gentoo-9a086e25fc82093b28b4c3698009a0557f6e7d91.zip
dev-python/werkzeug: Support >=dev-python/pytest-xprocess-1
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/werkzeug/files/werkzeug-3.0.2-pytest-xprocess-1.patch21
-rw-r--r--dev-python/werkzeug/werkzeug-3.0.2-r1.ebuild74
2 files changed, 95 insertions, 0 deletions
diff --git a/dev-python/werkzeug/files/werkzeug-3.0.2-pytest-xprocess-1.patch b/dev-python/werkzeug/files/werkzeug-3.0.2-pytest-xprocess-1.patch
new file mode 100644
index 000000000000..3993b0847957
--- /dev/null
+++ b/dev-python/werkzeug/files/werkzeug-3.0.2-pytest-xprocess-1.patch
@@ -0,0 +1,21 @@
+diff --git a/tests/conftest.py b/tests/conftest.py
+index b73202cd..905f3f4b 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -107,10 +107,12 @@ def dev_server(xprocess, request, tmp_path):
+ # Unbuffered output so the logs update immediately.
+ env = {**os.environ, "PYTHONPATH": str(tmp_path), "PYTHONUNBUFFERED": "1"}
+
+- @cached_property
+- def pattern(self):
+- client.request("/ensure")
+- return "GET /ensure"
++ def startup_check(self):
++ try:
++ client.request("/ensure")
++ return True
++ except (ConnectionRefusedError, FileNotFoundError):
++ return False
+
+ # Each test that uses the fixture will have a different log.
+ xp_name = f"dev_server-{request.node.name}"
diff --git a/dev-python/werkzeug/werkzeug-3.0.2-r1.ebuild b/dev-python/werkzeug/werkzeug-3.0.2-r1.ebuild
new file mode 100644
index 000000000000..67830a3b7586
--- /dev/null
+++ b/dev-python/werkzeug/werkzeug-3.0.2-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of various utilities for WSGI applications"
+HOMEPAGE="
+ https://palletsprojects.com/p/werkzeug/
+ https://pypi.org/project/Werkzeug/
+ https://github.com/pallets/werkzeug/
+"
+SRC_URI="
+ https://github.com/pallets/werkzeug/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/markupsafe-2.1.1[${PYTHON_USEDEP}]
+"
+# NOTE: remove the loong mask after greenlet gains support for loong
+# see https://github.com/python-greenlet/greenlet/pull/257
+BDEPEND="
+ test? (
+ dev-python/ephemeral-port-reserve[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xprocess-1[${PYTHON_USEDEP}]
+ >=dev-python/watchdog-2.3[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ )
+ !hppa? ( !ia64? ( !loong? (
+ $(python_gen_cond_dep '
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ ' python3_{10..11})
+ ) ) )
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/pallets/werkzeug/issues/2875
+ "${FILESDIR}/${PN}-3.0.2-pytest-xprocess-1.patch"
+)
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # RequestRedirect class started incidentally being tested
+ # with pytest-8, though the test isn't prepared for that
+ # https://github.com/pallets/werkzeug/issues/2845
+ 'tests/test_exceptions.py::test_response_body[RequestRedirect]'
+ )
+ if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ "tests/test_serving.py::test_server[https]"
+ tests/test_serving.py::test_ssl_dev_cert
+ tests/test_serving.py::test_ssl_object
+ )
+ fi
+
+ # the default portage tempdir is too long for AF_UNIX sockets
+ local -x TMPDIR=/tmp
+ epytest -p no:django -p no:httpbin tests
+}