diff options
author | Michał Górny <mgorny@gentoo.org> | 2023-07-05 10:02:07 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2023-07-05 10:03:42 +0200 |
commit | d10512d815a7d64cf54b5ba34eaa5fcca152eda4 (patch) | |
tree | 088ba13018cfb12a986242598107dab665a6a005 /dev-python/pytest | |
parent | dev-python/requests-unixsocket: Remove old (diff) | |
download | gentoo-d10512d815a7d64cf54b5ba34eaa5fcca152eda4.tar.gz gentoo-d10512d815a7d64cf54b5ba34eaa5fcca152eda4.tar.bz2 gentoo-d10512d815a7d64cf54b5ba34eaa5fcca152eda4.zip |
dev-python/pytest: Remove old
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/pytest')
-rw-r--r-- | dev-python/pytest/Manifest | 1 | ||||
-rw-r--r-- | dev-python/pytest/files/pytest-7.3.1-py312.patch | 258 | ||||
-rw-r--r-- | dev-python/pytest/pytest-7.3.1-r2.ebuild | 113 | ||||
-rw-r--r-- | dev-python/pytest/pytest-7.3.1.ebuild | 107 |
4 files changed, 0 insertions, 479 deletions
diff --git a/dev-python/pytest/Manifest b/dev-python/pytest/Manifest index b5382006fb4e..033250f3e1de 100644 --- a/dev-python/pytest/Manifest +++ b/dev-python/pytest/Manifest @@ -1,3 +1,2 @@ -DIST pytest-7.3.1.tar.gz 1336938 BLAKE2B 8cabc475056000e393538c6c52e2ee5a9af6c57831c6aba82e3107ae44f88b63a68b37339842eebfa318bd27d4bf5e34959b72052d4646cc8682c84f131f98e7 SHA512 e6c8fcf1449f5e09e33c01ec2ade8812ceb13440324179288b8ca0eeaaffed1e581a65c8acf4c28efe61c19a067e7ceddccc45d8a1582c89259d53fee25ab253 DIST pytest-7.3.2.tar.gz 1338457 BLAKE2B 4aa6ad62f654df9373427d9c19d92565a7da8d65460ee0872a30d4235e72af1ee3155871d7f7157b8e9c1173fc40bcdb87acab2b7bffdc6255cf8509e7a0bba3 SHA512 910de83f6ce47e7b1b25947050cf79e055ab04fd0c3dc3276546415684c20c8977883f16dfb913de3f339bc6284330f8a57d202c73f92b92545e45acb353b264 DIST pytest-7.4.0.tar.gz 1349733 BLAKE2B 59b9e90ab226dd317a5beeb0b189d0e323379e781dcca3fc7aa37ab7ef6d623a25f6f50e4b648cd274bdbc202e914fd393749d093a4c9d8c2f19124403d6b4fe SHA512 48caca22c77e03cb3bca04d2f11695c48868433e6966b6f652f414b3b4405cb9dfba1ebdfd66060ba6add45609ec27b2eddd81d3739ef8e84a51b9da3c6f6099 diff --git a/dev-python/pytest/files/pytest-7.3.1-py312.patch b/dev-python/pytest/files/pytest-7.3.1-py312.patch deleted file mode 100644 index b38486248309..000000000000 --- a/dev-python/pytest/files/pytest-7.3.1-py312.patch +++ /dev/null @@ -1,258 +0,0 @@ -From 653606791456f7e6412712bc26428b90092336b5 Mon Sep 17 00:00:00 2001 -From: Ran Benita <ran@unusedvar.com> -Date: Wed, 10 May 2023 10:36:09 +0300 -Subject: [PATCH] Avoid ast deprecation warnings on Python 3.12 - -Fix #10977. ---- - src/_pytest/assertion/rewrite.py | 49 +++++++++++++++++++------------- - src/_pytest/mark/expression.py | 8 +++++- - 2 files changed, 36 insertions(+), 21 deletions(-) - -diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py -index 8b182347052..00bb4feb94a 100644 ---- a/src/_pytest/assertion/rewrite.py -+++ b/src/_pytest/assertion/rewrite.py -@@ -46,8 +46,14 @@ - - if sys.version_info >= (3, 8): - namedExpr = ast.NamedExpr -+ astNameConstant = ast.Constant -+ astStr = ast.Constant -+ astNum = ast.Constant - else: - namedExpr = ast.Expr -+ astNameConstant = ast.NameConstant -+ astStr = ast.Str -+ astNum = ast.Num - - - assertstate_key = StashKey["AssertionState"]() -@@ -680,9 +686,12 @@ def run(self, mod: ast.Module) -> None: - if ( - expect_docstring - and isinstance(item, ast.Expr) -- and isinstance(item.value, ast.Str) -+ and isinstance(item.value, astStr) - ): -- doc = item.value.s -+ if sys.version_info >= (3, 8): -+ doc = item.value.value -+ else: -+ doc = item.value.s - if self.is_rewrite_disabled(doc): - return - expect_docstring = False -@@ -814,7 +823,7 @@ def pop_format_context(self, expl_expr: ast.expr) -> ast.Name: - current = self.stack.pop() - if self.stack: - self.explanation_specifiers = self.stack[-1] -- keys = [ast.Str(key) for key in current.keys()] -+ keys = [astStr(key) for key in current.keys()] - format_dict = ast.Dict(keys, list(current.values())) - form = ast.BinOp(expl_expr, ast.Mod(), format_dict) - name = "@py_format" + str(next(self.variable_counter)) -@@ -868,16 +877,16 @@ def visit_Assert(self, assert_: ast.Assert) -> List[ast.stmt]: - negation = ast.UnaryOp(ast.Not(), top_condition) - - if self.enable_assertion_pass_hook: # Experimental pytest_assertion_pass hook -- msg = self.pop_format_context(ast.Str(explanation)) -+ msg = self.pop_format_context(astStr(explanation)) - - # Failed - if assert_.msg: - assertmsg = self.helper("_format_assertmsg", assert_.msg) - gluestr = "\n>assert " - else: -- assertmsg = ast.Str("") -+ assertmsg = astStr("") - gluestr = "assert " -- err_explanation = ast.BinOp(ast.Str(gluestr), ast.Add(), msg) -+ err_explanation = ast.BinOp(astStr(gluestr), ast.Add(), msg) - err_msg = ast.BinOp(assertmsg, ast.Add(), err_explanation) - err_name = ast.Name("AssertionError", ast.Load()) - fmt = self.helper("_format_explanation", err_msg) -@@ -893,8 +902,8 @@ def visit_Assert(self, assert_: ast.Assert) -> List[ast.stmt]: - hook_call_pass = ast.Expr( - self.helper( - "_call_assertion_pass", -- ast.Num(assert_.lineno), -- ast.Str(orig), -+ astNum(assert_.lineno), -+ astStr(orig), - fmt_pass, - ) - ) -@@ -913,7 +922,7 @@ def visit_Assert(self, assert_: ast.Assert) -> List[ast.stmt]: - variables = [ - ast.Name(name, ast.Store()) for name in self.format_variables - ] -- clear_format = ast.Assign(variables, ast.NameConstant(None)) -+ clear_format = ast.Assign(variables, astNameConstant(None)) - self.statements.append(clear_format) - - else: # Original assertion rewriting -@@ -924,9 +933,9 @@ def visit_Assert(self, assert_: ast.Assert) -> List[ast.stmt]: - assertmsg = self.helper("_format_assertmsg", assert_.msg) - explanation = "\n>assert " + explanation - else: -- assertmsg = ast.Str("") -+ assertmsg = astStr("") - explanation = "assert " + explanation -- template = ast.BinOp(assertmsg, ast.Add(), ast.Str(explanation)) -+ template = ast.BinOp(assertmsg, ast.Add(), astStr(explanation)) - msg = self.pop_format_context(template) - fmt = self.helper("_format_explanation", msg) - err_name = ast.Name("AssertionError", ast.Load()) -@@ -938,7 +947,7 @@ def visit_Assert(self, assert_: ast.Assert) -> List[ast.stmt]: - # Clear temporary variables by setting them to None. - if self.variables: - variables = [ast.Name(name, ast.Store()) for name in self.variables] -- clear = ast.Assign(variables, ast.NameConstant(None)) -+ clear = ast.Assign(variables, astNameConstant(None)) - self.statements.append(clear) - # Fix locations (line numbers/column offsets). - for stmt in self.statements: -@@ -952,20 +961,20 @@ def visit_NamedExpr(self, name: namedExpr) -> Tuple[namedExpr, str]: - # thinks it's acceptable. - locs = ast.Call(self.builtin("locals"), [], []) - target_id = name.target.id # type: ignore[attr-defined] -- inlocs = ast.Compare(ast.Str(target_id), [ast.In()], [locs]) -+ inlocs = ast.Compare(astStr(target_id), [ast.In()], [locs]) - dorepr = self.helper("_should_repr_global_name", name) - test = ast.BoolOp(ast.Or(), [inlocs, dorepr]) -- expr = ast.IfExp(test, self.display(name), ast.Str(target_id)) -+ expr = ast.IfExp(test, self.display(name), astStr(target_id)) - return name, self.explanation_param(expr) - - def visit_Name(self, name: ast.Name) -> Tuple[ast.Name, str]: - # Display the repr of the name if it's a local variable or - # _should_repr_global_name() thinks it's acceptable. - locs = ast.Call(self.builtin("locals"), [], []) -- inlocs = ast.Compare(ast.Str(name.id), [ast.In()], [locs]) -+ inlocs = ast.Compare(astStr(name.id), [ast.In()], [locs]) - dorepr = self.helper("_should_repr_global_name", name) - test = ast.BoolOp(ast.Or(), [inlocs, dorepr]) -- expr = ast.IfExp(test, self.display(name), ast.Str(name.id)) -+ expr = ast.IfExp(test, self.display(name), astStr(name.id)) - return name, self.explanation_param(expr) - - def visit_BoolOp(self, boolop: ast.BoolOp) -> Tuple[ast.Name, str]: -@@ -1001,7 +1010,7 @@ def visit_BoolOp(self, boolop: ast.BoolOp) -> Tuple[ast.Name, str]: - self.push_format_context() - res, expl = self.visit(v) - body.append(ast.Assign([ast.Name(res_var, ast.Store())], res)) -- expl_format = self.pop_format_context(ast.Str(expl)) -+ expl_format = self.pop_format_context(astStr(expl)) - call = ast.Call(app, [expl_format], []) - self.expl_stmts.append(ast.Expr(call)) - if i < levels: -@@ -1013,7 +1022,7 @@ def visit_BoolOp(self, boolop: ast.BoolOp) -> Tuple[ast.Name, str]: - self.statements = body = inner - self.statements = save - self.expl_stmts = fail_save -- expl_template = self.helper("_format_boolop", expl_list, ast.Num(is_or)) -+ expl_template = self.helper("_format_boolop", expl_list, astNum(is_or)) - expl = self.pop_format_context(expl_template) - return ast.Name(res_var, ast.Load()), self.explanation_param(expl) - -@@ -1099,9 +1108,9 @@ def visit_Compare(self, comp: ast.Compare) -> Tuple[ast.expr, str]: - next_expl = f"({next_expl})" - results.append(next_res) - sym = BINOP_MAP[op.__class__] -- syms.append(ast.Str(sym)) -+ syms.append(astStr(sym)) - expl = f"{left_expl} {sym} {next_expl}" -- expls.append(ast.Str(expl)) -+ expls.append(astStr(expl)) - res_expr = ast.Compare(left_res, [op], [next_res]) - self.statements.append(ast.Assign([store_names[i]], res_expr)) - left_res, left_expl = next_res, next_expl -diff --git a/src/_pytest/mark/expression.py b/src/_pytest/mark/expression.py -index f82a81d44c5..9287bcee50c 100644 ---- a/src/_pytest/mark/expression.py -+++ b/src/_pytest/mark/expression.py -@@ -18,6 +18,7 @@ - import dataclasses - import enum - import re -+import sys - import types - from typing import Callable - from typing import Iterator -@@ -26,6 +27,11 @@ - from typing import Optional - from typing import Sequence - -+if sys.version_info >= (3, 8): -+ astNameConstant = ast.Constant -+else: -+ astNameConstant = ast.NameConstant -+ - - __all__ = [ - "Expression", -@@ -132,7 +138,7 @@ def reject(self, expected: Sequence[TokenType]) -> NoReturn: - - def expression(s: Scanner) -> ast.Expression: - if s.accept(TokenType.EOF): -- ret: ast.expr = ast.NameConstant(False) -+ ret: ast.expr = astNameConstant(False) - else: - ret = expr(s) - s.accept(TokenType.EOF, reject=True) -From c945dba571025623a3ace7311d682e3e9448a161 Mon Sep 17 00:00:00 2001 -From: Ran Benita <ran@unusedvar.com> -Date: Fri, 26 May 2023 20:28:21 +0300 -Subject: [PATCH] testing/python/collect: replace use of deprecated/removed - `imp` module - ---- - testing/python/collect.py | 26 +++++++++++++++----------- - 1 file changed, 15 insertions(+), 11 deletions(-) - -diff --git a/testing/python/collect.py b/testing/python/collect.py -index ac3edd395ab..52b34800965 100644 ---- a/testing/python/collect.py -+++ b/testing/python/collect.py -@@ -897,25 +897,29 @@ def pytest_pycollect_makeitem(collector, name, obj): - def test_issue2369_collect_module_fileext(self, pytester: Pytester) -> None: - """Ensure we can collect files with weird file extensions as Python - modules (#2369)""" -- # We'll implement a little finder and loader to import files containing -+ # Implement a little meta path finder to import files containing - # Python source code whose file extension is ".narf". - pytester.makeconftest( - """ -- import sys, os, imp -+ import sys -+ import os.path -+ from importlib.util import spec_from_loader -+ from importlib.machinery import SourceFileLoader - from _pytest.python import Module - -- class Loader(object): -- def load_module(self, name): -- return imp.load_source(name, name + ".narf") -- class Finder(object): -- def find_module(self, name, path=None): -- if os.path.exists(name + ".narf"): -- return Loader() -- sys.meta_path.append(Finder()) -+ class MetaPathFinder: -+ def find_spec(self, fullname, path, target=None): -+ if os.path.exists(fullname + ".narf"): -+ return spec_from_loader( -+ fullname, -+ SourceFileLoader(fullname, fullname + ".narf"), -+ ) -+ sys.meta_path.append(MetaPathFinder()) - - def pytest_collect_file(file_path, parent): - if file_path.suffix == ".narf": -- return Module.from_parent(path=file_path, parent=parent)""" -+ return Module.from_parent(path=file_path, parent=parent) -+ """ - ) - pytester.makefile( - ".narf", diff --git a/dev-python/pytest/pytest-7.3.1-r2.ebuild b/dev-python/pytest/pytest-7.3.1-r2.ebuild deleted file mode 100644 index 57889af9fc76..000000000000 --- a/dev-python/pytest/pytest-7.3.1-r2.ebuild +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_TESTED=( python3_{10..12} pypy3 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) - -inherit distutils-r1 multiprocessing pypi - -DESCRIPTION="Simple powerful testing with Python" -HOMEPAGE=" - https://pytest.org/ - https://github.com/pytest-dev/pytest/ - https://pypi.org/project/pytest/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-python/iniconfig[${PYTHON_USEDEP}] - >=dev-python/more-itertools-4.0.0[${PYTHON_USEDEP}] - dev-python/packaging[${PYTHON_USEDEP}] - >=dev-python/pluggy-0.12[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}] - >=dev-python/tomli-1.0.0[${PYTHON_USEDEP}] - ' 3.{9..10}) -" -BDEPEND=" - >=dev-python/setuptools-scm-6.2.3[${PYTHON_USEDEP}] - test? ( - ${RDEPEND} - $(python_gen_cond_dep ' - dev-python/argcomplete[${PYTHON_USEDEP}] - >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}] - >=dev-python/hypothesis-3.56[${PYTHON_USEDEP}] - dev-python/mock[${PYTHON_USEDEP}] - >=dev-python/pygments-2.7.2[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/xmlschema[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") - ) -" - -PATCHES=( - # deprecation warning fix - # https://github.com/pytest-dev/pytest/pull/10894/ - "${FILESDIR}/${P}-py312.patch" -) - -src_test() { - # workaround new readline defaults - echo "set enable-bracketed-paste off" > "${T}"/inputrc || die - local -x INPUTRC="${T}"/inputrc - distutils-r1_src_test -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON}" - return - fi - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - local -x COLUMNS=80 - - local EPYTEST_DESELECT=( - # broken by epytest args - testing/test_warnings.py::test_works_with_filterwarnings - - # tend to be broken by random pytest plugins - # (these tests patch PYTEST_DISABLE_PLUGIN_AUTOLOAD out) - testing/test_helpconfig.py::test_version_less_verbose - testing/test_helpconfig.py::test_version_verbose - testing/test_junitxml.py::test_random_report_log_xdist - testing/test_junitxml.py::test_runs_twice_xdist - testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal - testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal_count - testing/test_terminal.py::TestProgressOutputStyle::test_xdist_verbose - testing/test_terminal.py::TestProgressWithTeardown::test_xdist_normal - testing/test_terminal.py::TestTerminalFunctional::test_header_trailer_info - testing/test_terminal.py::TestTerminalFunctional::test_no_header_trailer_info - - # unstable with xdist - testing/test_terminal.py::TestTerminalFunctional::test_verbose_reporting_xdist - - # TODO (XPASS) - testing/test_debugging.py::TestDebuggingBreakpoints::test_pdb_not_altered - testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_simple - testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_twice - testing/test_debugging.py::TestPDB::test_pdb_with_injected_do_debug - testing/test_debugging.py::test_pdb_suspends_fixture_capturing - - # setuptools warnings - testing/acceptance_test.py::TestInvocationVariants::test_cmdline_python_namespace_package - ) - - [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=( - # regressions on pypy3.9 - # https://github.com/pytest-dev/pytest/issues/9787 - testing/test_skipping.py::test_errors_in_xfail_skip_expressions - testing/test_unraisableexception.py - ) - - epytest -p xdist -n "$(makeopts_jobs)" -} diff --git a/dev-python/pytest/pytest-7.3.1.ebuild b/dev-python/pytest/pytest-7.3.1.ebuild deleted file mode 100644 index b3211790c11a..000000000000 --- a/dev-python/pytest/pytest-7.3.1.ebuild +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_TESTED=( python3_{10..11} pypy3 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) - -inherit distutils-r1 multiprocessing pypi - -DESCRIPTION="Simple powerful testing with Python" -HOMEPAGE=" - https://pytest.org/ - https://github.com/pytest-dev/pytest/ - https://pypi.org/project/pytest/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-python/iniconfig[${PYTHON_USEDEP}] - >=dev-python/more-itertools-4.0.0[${PYTHON_USEDEP}] - dev-python/packaging[${PYTHON_USEDEP}] - >=dev-python/pluggy-0.12[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}] - >=dev-python/tomli-1.0.0[${PYTHON_USEDEP}] - ' 3.{9..10}) -" -BDEPEND=" - >=dev-python/setuptools-scm-6.2.3[${PYTHON_USEDEP}] - test? ( - ${RDEPEND} - $(python_gen_cond_dep ' - dev-python/argcomplete[${PYTHON_USEDEP}] - >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}] - >=dev-python/hypothesis-3.56[${PYTHON_USEDEP}] - dev-python/mock[${PYTHON_USEDEP}] - >=dev-python/pygments-2.7.2[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/xmlschema[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") - ) -" - -src_test() { - # workaround new readline defaults - echo "set enable-bracketed-paste off" > "${T}"/inputrc || die - local -x INPUTRC="${T}"/inputrc - distutils-r1_src_test -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON}" - return - fi - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - local -x COLUMNS=80 - - local EPYTEST_DESELECT=( - # broken by epytest args - testing/test_warnings.py::test_works_with_filterwarnings - - # tend to be broken by random pytest plugins - # (these tests patch PYTEST_DISABLE_PLUGIN_AUTOLOAD out) - testing/test_helpconfig.py::test_version_less_verbose - testing/test_helpconfig.py::test_version_verbose - testing/test_junitxml.py::test_random_report_log_xdist - testing/test_junitxml.py::test_runs_twice_xdist - testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal - testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal_count - testing/test_terminal.py::TestProgressOutputStyle::test_xdist_verbose - testing/test_terminal.py::TestProgressWithTeardown::test_xdist_normal - testing/test_terminal.py::TestTerminalFunctional::test_header_trailer_info - testing/test_terminal.py::TestTerminalFunctional::test_no_header_trailer_info - - # unstable with xdist - testing/test_terminal.py::TestTerminalFunctional::test_verbose_reporting_xdist - - # TODO (XPASS) - testing/test_debugging.py::TestDebuggingBreakpoints::test_pdb_not_altered - testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_simple - testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_twice - testing/test_debugging.py::TestPDB::test_pdb_with_injected_do_debug - testing/test_debugging.py::test_pdb_suspends_fixture_capturing - - # setuptools warnings - testing/acceptance_test.py::TestInvocationVariants::test_cmdline_python_namespace_package - ) - - [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=( - # regressions on pypy3.9 - # https://github.com/pytest-dev/pytest/issues/9787 - testing/test_skipping.py::test_errors_in_xfail_skip_expressions - testing/test_unraisableexception.py - ) - - epytest -p xdist -n "$(makeopts_jobs)" -} |