commit:     ef0252caa77d9bb4b4d226c25a8c777c2a8d5ac9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 10 16:06:39 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jun 10 17:00:56 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef0252ca

dev-python/pytest-forked: Fix tests

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../files/pytest-forked-1.6.0-pytest-8.patch       | 48 ++++++++++++++++++++++
 .../pytest-forked/pytest-forked-1.6.0.ebuild       | 26 +++++++-----
 2 files changed, 63 insertions(+), 11 deletions(-)

diff --git a/dev-python/pytest-forked/files/pytest-forked-1.6.0-pytest-8.patch 
b/dev-python/pytest-forked/files/pytest-forked-1.6.0-pytest-8.patch
new file mode 100644
index 000000000000..889405c00fad
--- /dev/null
+++ b/dev-python/pytest-forked/files/pytest-forked-1.6.0-pytest-8.patch
@@ -0,0 +1,48 @@
+From 398f003660dda242b97217390718a2a90c3d7a88 Mon Sep 17 00:00:00 2001
+From: Stanislav Levin <[email protected]>
+Date: Tue, 13 Feb 2024 12:44:53 +0300
+Subject: [PATCH] Sync expected test_xfail's xpassed summary to Pytest 8
+
+With Pytest 8:
+https://docs.pytest.org/en/stable/changelog.html#pytest-8-0-0rc2-2024-01-17
+
+> For xpasses, add - in summary between test name and reason, to match how 
xfail is displayed.
+
+Fixes: https://github.com/pytest-dev/pytest-forked/issues/89
+Signed-off-by: Stanislav Levin <[email protected]>
+---
+ testing/test_xfail_behavior.py | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/testing/test_xfail_behavior.py b/testing/test_xfail_behavior.py
+index 15edd93..d4e5ee7 100644
+--- a/testing/test_xfail_behavior.py
++++ b/testing/test_xfail_behavior.py
+@@ -7,6 +7,7 @@ import pytest
+ IS_PYTEST4_PLUS = int(pytest.__version__[0]) >= 4  # noqa: WPS609
+ FAILED_WORD = "FAILED" if IS_PYTEST4_PLUS else "FAIL"
+ PYTEST_GTE_7_2 = hasattr(pytest, "version_tuple") and pytest.version_tuple >= 
(7, 2)  # type: ignore[attr-defined]
++PYTEST_GTE_8_0 = hasattr(pytest, "version_tuple") and pytest.version_tuple >= 
(8, 0)  # type: ignore[attr-defined]
+ 
+ pytestmark = pytest.mark.skipif(  # pylint: disable=invalid-name
+     not hasattr(os, "fork"),  # noqa: WPS421
+@@ -60,12 +61,10 @@ def test_xfail(is_crashing, is_strict, testdir):
+     if expected_lowercase == "xpassed":
+         # XPASS wouldn't have the crash message from
+         # pytest-forked because the crash doesn't happen
+-        short_test_summary = " ".join(
+-            (
+-                short_test_summary,
+-                "The process gets terminated",
+-            )
+-        )
++        if PYTEST_GTE_8_0:
++            short_test_summary += " -"
++        short_test_summary += " The process gets terminated"
++
+     reason_string = (
+         f"reason: The process gets terminated; "
+         f"pytest-forked reason: "
+-- 
+2.45.2
+

diff --git a/dev-python/pytest-forked/pytest-forked-1.6.0.ebuild 
b/dev-python/pytest-forked/pytest-forked-1.6.0.ebuild
index fd67db61e6e9..120cd2002040 100644
--- a/dev-python/pytest-forked/pytest-forked-1.6.0.ebuild
+++ b/dev-python/pytest-forked/pytest-forked-1.6.0.ebuild
@@ -31,16 +31,20 @@ BDEPEND="
 
 distutils_enable_tests pytest
 
+src_prepare() {
+       local PATCHES=(
+               # https://github.com/pytest-dev/pytest-forked/pull/90
+               "${FILESDIR}/${P}-pytest-8.patch"
+       )
+
+       distutils-r1_src_prepare
+
+       # this is not printed when loaded via PYTEST_PLUGINS
+       sed -i -e '/loaded_pytest_plugins/d' testing/test_xfail_behavior.py || 
die
+}
+
 python_test() {
-       [[ ${PV} != 1.6.0 ]] && die "Recheck the deselect, please"
-       local EPYTEST_DESELECT=()
-       if [[ ${EPYTHON} == python3.12 ]]; then
-               EPYTEST_DESELECT+=(
-                       # failing due to warnings coming from pytest
-                       # https://github.com/gentoo/gentoo/pull/31151
-                       testing/test_xfail_behavior.py::test_xfail
-               )
-       fi
-
-       epytest -p no:flaky -o tmp_path_retention_count=1
+       local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+       local -x PYTEST_PLUGINS=pytest_forked
+       epytest -o tmp_path_retention_count=1
 }

Reply via email to