diff --git a/0001-fix-testcase-fail-with-Pytest6-and-Pytest5.patch b/0001-fix-testcase-fail-with-Pytest6-and-Pytest5.patch new file mode 100644 index 0000000..f903fb5 --- /dev/null +++ b/0001-fix-testcase-fail-with-Pytest6-and-Pytest5.patch @@ -0,0 +1,63 @@ +From 41931fe962963874fc0128a4ef6ff6cf229b0c08 Mon Sep 17 00:00:00 2001 +From: lyn1001 +Date: Wed, 25 Aug 2021 14:23:06 +0800 +Subject: [PATCH] fix testcase fail with Pytest6 and Pytest5 + +--- + a/src/pytest_forked/__init__.py | 9 ++++++--- + a/testing/conftest.py | 5 ++++- + 2 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/src/pytest_forked/__init__.py b/src/pytest_forked/__init__.py +index 33b09d2..84fb768 100644 +--- a/src/pytest_forked/__init__.py ++++ b/src/pytest_forked/__init__.py +@@ -29,12 +29,15 @@ def pytest_addoption(parser): + help="box each test run in a separate process (unix)") + + +-@pytest.mark.tryfirst ++@pytest.hookimpl(tryfirst=True) + def pytest_runtest_protocol(item): + if item.config.getvalue("forked"): ++ ihook = item.ihook ++ ihook.pytest_runtest_logstart(nodeid=item.nodeid, location=item.location) + reports = forked_run_report(item) + for rep in reports: +- item.ihook.pytest_runtest_logreport(report=rep) ++ ihook.pytest_runtest_logreport(report=rep) ++ ihook.pytest_runtest_logfinish(nodeid=item.nodeid, location=item.location) + return True + + +@@ -65,7 +68,7 @@ def forked_run_report(item): + + def report_process_crash(item, result): + try: +- from _pytest.compat import getfslineno ++ from _pytest._code import getfslineno + except ImportError: + # pytest<4.2 + path, lineno = item._getfslineno() +diff --git a/testing/conftest.py b/testing/conftest.py +index 745c00f..c01f73e 100644 +--- a/testing/conftest.py ++++ b/testing/conftest.py +@@ -8,10 +8,13 @@ pytest_plugins = "pytester" + def _divert_atexit(request, monkeypatch): + import atexit + atexit_fns = [] ++ ++ def atexit_register(func, *args, **kwargs): ++ atexit_fns.append(lambda: func(*args, **kwargs)) + + def finish(): + while atexit_fns: + atexit_fns.pop()() + +- monkeypatch.setattr(atexit, "register", atexit_fns.append) ++ monkeypatch.setattr(atexit, "register", atexit_register) + request.addfinalizer(finish) +-- +2.23.0 + diff --git a/add-compatibility-with-Pytest-5.4.0.patch b/add-compatibility-with-Pytest-5.4.0.patch deleted file mode 100644 index 7a0cada..0000000 --- a/add-compatibility-with-Pytest-5.4.0.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1eb5791e005c0d17622c53d5c3158b5b899e147e Mon Sep 17 00:00:00 2001 -From: Stanislav Levin -Date: Thu, 7 May 2020 14:40:19 +0300 -Subject: [PATCH] Add compatibility with Pytest 5.4.0+ - -'getfslineno' has been removed from 'compat' in Pytest [0]. -However, that function was just the wrapper of -'_pytest._code.source.getfslineno'. The latter exists in Pytest -since, at least, 3.0.0. - -[0]: https://github.com/pytest-dev/pytest/commit/9c7f1d9b3. - -Fixes: https://github.com/pytest-dev/pytest-forked/issues/30 -Signed-off-by: Stanislav Levin ---- - src/pytest_forked/__init__.py | 9 ++------- - 1 file changed, 2 insertions(+), 7 deletions(-) - -diff --git a/src/pytest_forked/__init__.py b/src/pytest_forked/__init__.py -index fa0600d..886c4c8 100644 ---- a/src/pytest_forked/__init__.py -+++ b/src/pytest_forked/__init__.py -@@ -71,13 +71,8 @@ def runforked(): - - - def report_process_crash(item, result): -- try: -- from _pytest.compat import getfslineno -- except ImportError: -- # pytest<4.2 -- path, lineno = item._getfslineno() -- else: -- path, lineno = getfslineno(item) -+ from _pytest._code.source import getfslineno -+ path, lineno = getfslineno(item) - info = ("%s:%s: running the test CRASHED with signal %d" % - (path, lineno, result.signal)) - from _pytest import runner diff --git a/python-pytest-forked.spec b/python-pytest-forked.spec index 59cb424..1c52352 100644 --- a/python-pytest-forked.spec +++ b/python-pytest-forked.spec @@ -6,14 +6,14 @@ C++ libraries that might crash the process. To use the plugin, simply use the\ Name: python-%{pypi_name} Version: 1.0.2 -Release: 1 +Release: 2 Summary: py.test plugin for running tests in isolated forked subprocesses License: MIT URL: https://github.com/pytest-dev/pytest-forked Source0: https://files.pythonhosted.org/packages/source/p/%{pypi_name}/%{pypi_name}-%{version}.tar.gz BuildArch: noarch -Patch1: add-compatibility-with-Pytest-5.4.0.patch +Patch1: 0001-fix-testcase-fail-with-Pytest6-and-Pytest5.patch BuildRequires: python3-devel BuildRequires: python3-py python3-pytest python3-setuptools_scm @@ -49,6 +49,9 @@ PYTHONPATH=%{buildroot}%{python3_sitelib} py.test-%{python3_version} testing %{python3_sitelib}/pytest_forked* %changelog +* Wed Aug 25 2021 liyanan - 1.0.2-2 +- fix test case fail with Pytest6 and Pytest5 + * Tue Jul 06 2021 wangdi - 1.0.2-1 - Init package for version 1.0.2