From 65ee094694d1a62d85ed093f39db96b8c1e0dc0b Mon Sep 17 00:00:00 2001 From: Miro HronĨok Date: Jul 10 2022 00:06:07 +0000 Subject: Fix tests with Python 3.11 --- diff --git a/pre-commit.spec b/pre-commit.spec index e324e36..46f6e2f 100644 --- a/pre-commit.spec +++ b/pre-commit.spec @@ -9,6 +9,13 @@ License: MIT URL: https://pre-commit.com Source0: https://github.com/%{name}/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz +# https://github.com/pre-commit/pre-commit/issues/2450 +Patch: python3.11-dont-error-with-importlib-deprecation-warnings.patch + +# https://github.com/pre-commit/pre-commit/issues/2451 +# https://github.com/pre-commit/pre-commit/pull/2453 +Patch: python3.11-enhanced-tracebacks-in-tests.patch + BuildArch: noarch BuildRequires: python3-devel diff --git a/python3.11-dont-error-with-importlib-deprecation-warnings.patch b/python3.11-dont-error-with-importlib-deprecation-warnings.patch new file mode 100644 index 0000000..9a333d1 --- /dev/null +++ b/python3.11-dont-error-with-importlib-deprecation-warnings.patch @@ -0,0 +1,21 @@ +diff --git a/tests/conftest.py b/tests/conftest.py +index b68a1d0..b04680b 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -28,11 +28,14 @@ def no_warnings(recwarn): + for warning in recwarn: # pragma: no cover + message = str(warning.message) + # ImportWarning: Not importing directory '...' missing __init__(.py) +- if not ( ++ if not (( + isinstance(warning.message, ImportWarning) and + message.startswith('Not importing directory ') and + ' missing __init__' in message +- ): ++ ) or ( ++ isinstance(warning.message, DeprecationWarning) and ++ '#migrating-from-legacy' in message ++ )): + warnings.append( + f'{warning.filename}:{warning.lineno} {message}', + ) diff --git a/python3.11-enhanced-tracebacks-in-tests.patch b/python3.11-enhanced-tracebacks-in-tests.patch new file mode 100644 index 0000000..cb421a8 --- /dev/null +++ b/python3.11-enhanced-tracebacks-in-tests.patch @@ -0,0 +1,50 @@ +From 901e831313e897e3b9313f5efbb5ef589b3e279c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Sun, 10 Jul 2022 02:03:56 +0200 +Subject: [PATCH] Tests: Adjust traceback regexes to allow Python 3.11+ ^^^^^^^ + +Fixes https://github.com/pre-commit/pre-commit/issues/2451 +--- + tests/error_handler_test.py | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/tests/error_handler_test.py b/tests/error_handler_test.py +index 31c71d287..47e2afaa4 100644 +--- a/tests/error_handler_test.py ++++ b/tests/error_handler_test.py +@@ -45,9 +45,11 @@ def test_error_handler_fatal_error(mocked_log_and_exit): + r'Traceback \(most recent call last\):\n' + r' File ".+pre_commit.error_handler.py", line \d+, in error_handler\n' + r' yield\n' ++ r'( \^\^\^\^\^\n)?' + r' File ".+tests.error_handler_test.py", line \d+, ' + r'in test_error_handler_fatal_error\n' + r' raise exc\n' ++ r'( \^\^\^\^\^\^\^\^\^\n)?' + r'(pre_commit\.errors\.)?FatalError: just a test\n', + ) + pattern.assert_matches(mocked_log_and_exit.call_args[0][3]) +@@ -69,9 +71,11 @@ def test_error_handler_uncaught_error(mocked_log_and_exit): + r'Traceback \(most recent call last\):\n' + r' File ".+pre_commit.error_handler.py", line \d+, in error_handler\n' + r' yield\n' ++ r'( \^\^\^\^\^\n)?' + r' File ".+tests.error_handler_test.py", line \d+, ' + r'in test_error_handler_uncaught_error\n' + r' raise exc\n' ++ r'( \^\^\^\^\^\^\^\^\^\n)?' + r'ValueError: another test\n', + ) + pattern.assert_matches(mocked_log_and_exit.call_args[0][3]) +@@ -93,9 +97,11 @@ def test_error_handler_keyboardinterrupt(mocked_log_and_exit): + r'Traceback \(most recent call last\):\n' + r' File ".+pre_commit.error_handler.py", line \d+, in error_handler\n' + r' yield\n' ++ r'( \^\^\^\^\^\n)?' + r' File ".+tests.error_handler_test.py", line \d+, ' + r'in test_error_handler_keyboardinterrupt\n' + r' raise exc\n' ++ r'( \^\^\^\^\^\^\^\^\^\n)?' + r'KeyboardInterrupt\n', + ) + pattern.assert_matches(mocked_log_and_exit.call_args[0][3])