-
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add patch to fix tests for newer Python releases
Taken from pytoolz/cytoolz#206.
- Loading branch information
1 parent
11dd7d6
commit 142d00b
Showing
2 changed files
with
94 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
diff --git a/cytoolz/functoolz.pyx b/cytoolz/functoolz.pyx | ||
index 446e85c..269a143 100644 | ||
--- a/cytoolz/functoolz.pyx | ||
+++ b/cytoolz/functoolz.pyx | ||
@@ -27,6 +27,11 @@ __all__ = ['identity', 'thread_first', 'thread_last', 'memoize', 'compose', 'com | ||
|
||
|
||
cpdef object identity(object x): | ||
+ """ Identity function. Return x | ||
+ | ||
+ >>> identity(3) | ||
+ 3 | ||
+ """ | ||
return x | ||
|
||
|
||
diff --git a/cytoolz/tests/test_docstrings.py b/cytoolz/tests/test_docstrings.py | ||
index 85654e6..0420e7b 100644 | ||
--- a/cytoolz/tests/test_docstrings.py | ||
+++ b/cytoolz/tests/test_docstrings.py | ||
@@ -49,8 +49,10 @@ def test_docstrings_uptodate(): | ||
d = merge_with(identity, toolz_dict, cytoolz_dict) | ||
for key, (toolz_func, cytoolz_func) in d.items(): | ||
# only check if the new doctstring *contains* the expected docstring | ||
- toolz_doc = convertdoc(toolz_func) | ||
- cytoolz_doc = cytoolz_func.__doc__ | ||
+ # in Python < 3.13 the second line is indented, in 3.13+ | ||
+ # it is not, strip all lines to fudge it | ||
+ toolz_doc = "\n".join((line.strip() for line in convertdoc(toolz_func).splitlines())) | ||
+ cytoolz_doc = "\n".join((line.strip() for line in cytoolz_func.__doc__.splitlines())) | ||
if toolz_doc not in cytoolz_doc: | ||
diff = list(differ.compare(toolz_doc.splitlines(), | ||
cytoolz_doc.splitlines())) | ||
diff --git a/cytoolz/tests/test_functoolz.py b/cytoolz/tests/test_functoolz.py | ||
index a459dad..dc1c038 100644 | ||
--- a/cytoolz/tests/test_functoolz.py | ||
+++ b/cytoolz/tests/test_functoolz.py | ||
@@ -748,10 +748,13 @@ def test_flip(): | ||
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 | ||
diff --git a/cytoolz/tests/test_inspect_args.py b/cytoolz/tests/test_inspect_args.py | ||
index b2c5669..0dc0156 100644 | ||
--- a/cytoolz/tests/test_inspect_args.py | ||
+++ b/cytoolz/tests/test_inspect_args.py | ||
@@ -2,6 +2,7 @@ import functools | ||
import inspect | ||
import itertools | ||
import operator | ||
+import sys | ||
import cytoolz | ||
from cytoolz.functoolz import (curry, is_valid_args, is_partial_args, is_arity, | ||
num_required_args, has_varargs, has_keywords) | ||
@@ -482,6 +483,23 @@ def test_inspect_wrapped_property(): | ||
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)),) | ||
- assert num_required_args(Wrapped) == 1 | ||
+ # 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 | ||
+ else: | ||
+ assert num_required_args(Wrapped) is 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters