Files
gentoo/dev-python/toolz/files/toolz-0.12.1-test.patch
Michał Górny dcd3780f61 dev-python/toolz: Grab test fixes from upstream PR
Signed-off-by: Michał Górny <mgorny@gentoo.org>
2024-06-18 19:59:12 +02:00

89 lines
3.4 KiB
Diff

From b79a954ca5fa6801c3a3dc6b39fa523be33884a8 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Fri, 14 Jun 2024 13:43:24 -0700
Subject: [PATCH 1/2] test_excepts: fudge changed indentation in Python 3.13
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
toolz/tests/test_functoolz.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/toolz/tests/test_functoolz.py b/toolz/tests/test_functoolz.py
index 555cf48d..a28c2a77 100644
--- a/toolz/tests/test_functoolz.py
+++ b/toolz/tests/test_functoolz.py
@@ -738,10 +738,13 @@ def f(a, b):
def test_excepts():
# These are descriptors, make sure this works correctly.
assert excepts.__name__ == 'excepts'
+ # in Python < 3.13 the second line is indented, in 3.13+
+ # it is not, strip all lines to fudge it
+ testlines = "\n".join((line.strip() for line in excepts.__doc__.splitlines()))
assert (
'A wrapper around a function to catch exceptions and\n'
- ' dispatch to a handler.\n'
- ) in excepts.__doc__
+ 'dispatch to a handler.\n'
+ ) in testlines
def idx(a):
"""idx docstring
From 832e81d28882d1235c704de95e1d075ee61976c1 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Fri, 14 Jun 2024 16:03:30 -0700
Subject: [PATCH 2/2] test_inspect_wrapped_property: handle fixed wrapper
inspection
Python upstream recently fixed the behavior of inspect with
wrappers: https://github.com/python/cpython/issues/112006 . The
assertion here relies on the broken behavior, we only get None
if `inspect(Wrapped)` fails and raises `ValueError`. Now it
works, we actually get the correct answer, 1. This changes it so
we assert the correct thing depending on the Python version (the
fix was backported to 3.11.9 and 3.12.3, so the check has to be a
bit complicated).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
toolz/tests/test_inspect_args.py | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/toolz/tests/test_inspect_args.py b/toolz/tests/test_inspect_args.py
index 93408eb5..f26dbc64 100644
--- a/toolz/tests/test_inspect_args.py
+++ b/toolz/tests/test_inspect_args.py
@@ -2,6 +2,7 @@
import inspect
import itertools
import operator
+import sys
import toolz
from toolz.functoolz import (curry, is_valid_args, is_partial_args, is_arity,
num_required_args, has_varargs, has_keywords)
@@ -482,6 +483,22 @@ def __wrapped__(self):
wrapped = Wrapped(func)
assert inspect.signature(func) == inspect.signature(wrapped)
- assert num_required_args(Wrapped) is None
- _sigs.signatures[Wrapped] = (_sigs.expand_sig((0, lambda func: None)),)
+ # inspect.signature did not used to work properly on wrappers,
+ # but it was fixed in Python 3.11.9, Python 3.12.3 and Python
+ # 3.13+
+ inspectbroken = True
+ if sys.version_info.major > 3:
+ inspectbroken = False
+ if sys.version_info.major == 3:
+ if sys.version_info.minor == 11 and sys.version_info.micro > 8:
+ inspectbroken = False
+ if sys.version_info.minor == 12 and sys.version_info.micro > 2:
+ inspectbroken = False
+ if sys.version_info.minor > 12:
+ inspectbroken = False
+
+ if inspectbroken:
+ assert num_required_args(Wrapped) is None
+ _sigs.signatures[Wrapped] = (_sigs.expand_sig((0, lambda func: None)),)
+
assert num_required_args(Wrapped) == 1