Accepting request 1175385 from devel:languages:python

OBS-URL: https://build.opensuse.org/request/show/1175385
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-testtools?expand=0&rev=35
This commit is contained in:
Ana Guerrero 2024-05-21 16:34:39 +00:00 committed by Git OBS Bridge
commit 749192926a
3 changed files with 54 additions and 1 deletions

46
pytest82.patch Normal file
View File

@ -0,0 +1,46 @@
From 91e617a5c0bb220779b1d9912f3e946a28be53d4 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Mon, 13 May 2024 08:43:49 +0200
Subject: [PATCH] Treat methodName="runTest" similar to unittest.TestCase
pytest 8.2 relies on a feature of `unittest.TestCase` where the
initialization of it with the default `methodName="runTest"` is treated
specially, allowing it to insantiate even without `runTest` method
actually existing.
See under "Changed in Python 3.2" in unittest.TestCase docs
This fixes the error with pytest 8.2:
AttributeError: 'TestUtil' object has no attribute 'runTest'. Did you mean: 'subTest'?
Fixes: https://github.com/testing-cabal/testtools/issues/372
ref: https://docs.python.org/3/library/unittest.html#unittest.TestCase
ref: https://github.com/python/cpython/blob/51aefc5bf907ddffaaf083ded0de773adcdf08c8/Lib/unittest/case.py#L419-L426
ref: https://github.com/pytest-dev/pytest/issues/12263#issuecomment-2081434468
---
testtools/testcase.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/testtools/testcase.py b/testtools/testcase.py
index 08b158b6..b8722df7 100644
--- a/testtools/testcase.py
+++ b/testtools/testcase.py
@@ -735,7 +735,17 @@ def _run_teardown(self, result):
def _get_test_method(self):
method_name = getattr(self, '_testMethodName')
- return getattr(self, method_name)
+ try:
+ m = getattr(self, method_name)
+ except AttributeError:
+ if method_name != "runTest":
+ # We allow instantiation with no explicit method name
+ # but not an *incorrect* or missing method name.
+ raise ValueError(
+ "no such test method in %s: %s" % (self.__class__, method_name)
+ )
+ else:
+ return m
def _run_test_method(self, result):
"""Run the test method for this test.

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri May 17 14:07:33 UTC 2024 - Markéta Machová <mmachova@suse.com>
- Add pytest82.patch to fix functionality with the new pytest.
------------------------------------------------------------------- -------------------------------------------------------------------
Wed May 8 06:42:24 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com> Wed May 8 06:42:24 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>

View File

@ -32,6 +32,8 @@ Summary: Extensions to the Python Standard Library Unit Testing Framework
License: MIT License: MIT
URL: https://github.com/testing-cabal/testtools URL: https://github.com/testing-cabal/testtools
Source0: https://files.pythonhosted.org/packages/source/t/testtools/testtools-%{version}.tar.gz Source0: https://files.pythonhosted.org/packages/source/t/testtools/testtools-%{version}.tar.gz
# PATCH-FIX-UPSTREAM https://github.com/testing-cabal/testtools/pull/373 Treat methodName="runTest" similar to unittest.TestCase
Patch: pytest82.patch
BuildRequires: %{python_module hatch_vcs} BuildRequires: %{python_module hatch_vcs}
BuildRequires: %{python_module pip} BuildRequires: %{python_module pip}
BuildRequires: %{python_module wheel} BuildRequires: %{python_module wheel}
@ -58,7 +60,7 @@ with unit tests in Python and come from many different sources. testtools
also ports recent unittest changes all the way back to Python 2.4. also ports recent unittest changes all the way back to Python 2.4.
%prep %prep
%setup -q -n testtools-%{version} %autosetup -p1 -n testtools-%{version}
%if !%{with test} %if !%{with test}
%build %build