mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
dev-python/testtools: Enable py3.11
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
116
dev-python/testtools/files/testtools-2.5.0-py311.patch
Normal file
116
dev-python/testtools/files/testtools-2.5.0-py311.patch
Normal file
@@ -0,0 +1,116 @@
|
||||
From 77953cf633ecd149b2c29e616f8d9d4e0cf8e5fa Mon Sep 17 00:00:00 2001
|
||||
From: Colin Watson <cjwatson@canonical.com>
|
||||
Date: Sat, 23 Apr 2022 22:53:48 +0100
|
||||
Subject: [PATCH] Fix various test failures with Python 3.11
|
||||
|
||||
The changes for https://peps.python.org/pep-0657/ require a number of
|
||||
changes in our tests.
|
||||
|
||||
Some tests still fail due to
|
||||
https://twistedmatrix.com/trac/ticket/10336, so I'm not adding
|
||||
3.11 to the test matrix yet.
|
||||
|
||||
Fixes #325.
|
||||
---
|
||||
testtools/tests/test_run.py | 4 ++--
|
||||
testtools/tests/test_testresult.py | 23 +++++++++++++----------
|
||||
testtools/tests/test_testsuite.py | 2 +-
|
||||
3 files changed, 16 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/testtools/tests/test_run.py b/testtools/tests/test_run.py
|
||||
index ee96eec9..9808421b 100644
|
||||
--- a/testtools/tests/test_run.py
|
||||
+++ b/testtools/tests/test_run.py
|
||||
@@ -202,9 +202,9 @@ def test_run_list_failed_import(self):
|
||||
Failed to import test module: runexample
|
||||
Traceback (most recent call last):
|
||||
File ".../loader.py", line ..., in _find_test_path
|
||||
- package = self._get_module_from_name(name)
|
||||
+ package = self._get_module_from_name(name)...
|
||||
File ".../loader.py", line ..., in _get_module_from_name
|
||||
- __import__(name)
|
||||
+ __import__(name)...
|
||||
File ".../runexample/__init__.py", line 1
|
||||
class not in
|
||||
...^...
|
||||
diff --git a/testtools/tests/test_testresult.py b/testtools/tests/test_testresult.py
|
||||
index 4fbf15d1..7824ff46 100644
|
||||
--- a/testtools/tests/test_testresult.py
|
||||
+++ b/testtools/tests/test_testresult.py
|
||||
@@ -1266,11 +1266,11 @@ def test_traceback_formatting_without_stack_hidden(self):
|
||||
DocTestMatches(
|
||||
'Traceback (most recent call last):\n'
|
||||
' File "...testtools...runtest.py", line ..., in _run_user\n'
|
||||
- ' return fn(*args, **kwargs)\n'
|
||||
+ ' return fn(*args, **kwargs)\n...'
|
||||
' File "...testtools...testcase.py", line ..., in _run_test_method\n'
|
||||
- ' return self._get_test_method()()\n'
|
||||
+ ' return self._get_test_method()()\n...'
|
||||
' File "...testtools...tests...test_testresult.py", line ..., in error\n'
|
||||
- ' 1/0\n'
|
||||
+ ' 1/0\n...'
|
||||
'ZeroDivisionError: ...\n',
|
||||
doctest.ELLIPSIS | doctest.REPORT_UDIFF))
|
||||
|
||||
@@ -1283,7 +1283,7 @@ def test_traceback_formatting_with_stack_hidden(self):
|
||||
DocTestMatches(
|
||||
'Traceback (most recent call last):\n'
|
||||
' File "...testtools...tests...test_testresult.py", line ..., in error\n'
|
||||
- ' 1/0\n'
|
||||
+ ' 1/0\n...'
|
||||
'ZeroDivisionError: ...\n',
|
||||
doctest.ELLIPSIS))
|
||||
|
||||
@@ -1322,17 +1322,17 @@ def test_traceback_with_locals(self):
|
||||
DocTestMatches(
|
||||
'Traceback (most recent call last):\n'
|
||||
' File "...testtools...runtest.py", line ..., in _run_user\n'
|
||||
- ' return fn(*args, **kwargs)\n'
|
||||
+ ' return fn(*args, **kwargs)\n...'
|
||||
' args = ...\n'
|
||||
' fn = ...\n'
|
||||
' kwargs = ...\n'
|
||||
' self = ...\n'
|
||||
' File "...testtools...testcase.py", line ..., in _run_test_method\n'
|
||||
- ' return self._get_test_method()()\n'
|
||||
+ ' return self._get_test_method()()\n...'
|
||||
' result = ...\n'
|
||||
' self = ...\n'
|
||||
' File "...testtools...tests...test_testresult.py", line ..., in error\n'
|
||||
- ' 1/0\n'
|
||||
+ ' 1/0\n...'
|
||||
' a = 1\n'
|
||||
' self = ...\n'
|
||||
'ZeroDivisionError: ...\n',
|
||||
@@ -2645,12 +2645,15 @@ def test_unprintable_exception(self):
|
||||
" raise RuntimeError\n"
|
||||
" def __repr__(self):\n"
|
||||
" raise RuntimeError\n")
|
||||
+ if sys.version_info >= (3, 11):
|
||||
+ expected = "UnprintableError: <exception str() failed>\n"
|
||||
+ else:
|
||||
+ expected = (
|
||||
+ "UnprintableError: <unprintable UnprintableError object>\n")
|
||||
textoutput = self._test_external_case(
|
||||
modulelevel=exception_class,
|
||||
testline="raise UnprintableError")
|
||||
- self.assertIn(self._as_output(
|
||||
- "UnprintableError: <unprintable UnprintableError object>\n"),
|
||||
- textoutput)
|
||||
+ self.assertIn(self._as_output(expected), textoutput)
|
||||
|
||||
def test_non_ascii_dirname(self):
|
||||
"""Script paths in the traceback can be non-ascii"""
|
||||
diff --git a/testtools/tests/test_testsuite.py b/testtools/tests/test_testsuite.py
|
||||
index 65cb88d7..01abb23c 100644
|
||||
--- a/testtools/tests/test_testsuite.py
|
||||
+++ b/testtools/tests/test_testsuite.py
|
||||
@@ -178,7 +178,7 @@ def run(self):
|
||||
"Traceback (most recent call last):\n")
|
||||
self.assertThat(events[2][6].decode('utf8'), DocTestMatches("""\
|
||||
File "...testtools/testsuite.py", line ..., in _run_test
|
||||
- test.run(process_result)
|
||||
+ test.run(process_result)...
|
||||
""", doctest.ELLIPSIS))
|
||||
self.assertThat(events[3][6].decode('utf8'), DocTestMatches("""\
|
||||
TypeError: ...run() takes ...1 ...argument...2...given...
|
||||
@@ -4,7 +4,7 @@
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{8..10} pypy3 )
|
||||
PYTHON_COMPAT=( python3_{8..11} pypy3 )
|
||||
PYTHON_REQ_USE="threads(+)"
|
||||
|
||||
inherit distutils-r1
|
||||
@@ -41,8 +41,13 @@ PDEPEND="
|
||||
|
||||
distutils_enable_sphinx doc
|
||||
|
||||
PATCHES=(
|
||||
# https://github.com/testing-cabal/testtools/pull/328
|
||||
"${FILESDIR}"/${P}-py311.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
# very fragile to formatting changes
|
||||
# very fragile to formatting changes (broken on py3.10 & pypy3)
|
||||
sed -i -e 's:test_syntax_error(:_&:' \
|
||||
testtools/tests/test_testresult.py || die
|
||||
|
||||
|
||||
Reference in New Issue
Block a user