mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
dev-python/makefun: Fix tests, enable py3.13
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
98
dev-python/makefun/files/makefun-1.15.2-test.patch
Normal file
98
dev-python/makefun/files/makefun-1.15.2-test.patch
Normal file
@@ -0,0 +1,98 @@
|
||||
diff --git a/tests/test_partial_and_macros.py b/tests/test_partial_and_macros.py
|
||||
index 6fd4503..3ce0a33 100644
|
||||
--- a/tests/test_partial_and_macros.py
|
||||
+++ b/tests/test_partial_and_macros.py
|
||||
@@ -1,5 +1,6 @@
|
||||
import functools
|
||||
import pytest
|
||||
+import re
|
||||
import sys
|
||||
|
||||
import makefun
|
||||
@@ -11,6 +12,11 @@ except ImportError:
|
||||
|
||||
PY2 = sys.version_info < (3, )
|
||||
|
||||
+# Python 3.13 dedents docstrings, earlier versions just strip initial
|
||||
+# whitespace. Use a regexp to get a consistently dedented docstring
|
||||
+# for comparison across Python versions.
|
||||
+DOCSTRING_NORMALIZE_RE = re.compile(r"^ +", re.MULTILINE)
|
||||
+
|
||||
|
||||
def test_doc():
|
||||
def foo(x, y):
|
||||
@@ -41,15 +47,15 @@ def test_doc():
|
||||
|
||||
sig_actual_call = ref_sig_str.replace("*, ", "")
|
||||
|
||||
- assert bar.__doc__ \
|
||||
+ assert DOCSTRING_NORMALIZE_RE.sub("", bar.__doc__) \
|
||||
== """<This function is equivalent to 'foo%s', see original 'foo' doc below.>
|
||||
|
||||
- a `foo` function
|
||||
+a `foo` function
|
||||
|
||||
- :param x:
|
||||
- :param y:
|
||||
- :return:
|
||||
- """ % sig_actual_call
|
||||
+:param x:
|
||||
+:param y:
|
||||
+:return:
|
||||
+""" % sig_actual_call
|
||||
|
||||
|
||||
def test_partial():
|
||||
@@ -78,16 +84,16 @@ def test_partial():
|
||||
|
||||
sig_actual_call = "(x, y='hello', a)" # if PY2 else "(x, *, y='hello', a)"
|
||||
|
||||
- assert foo.__doc__.replace("=KW_ONLY_ARG!", "") \
|
||||
+ assert DOCSTRING_NORMALIZE_RE.sub("", foo.__doc__.replace("=KW_ONLY_ARG!", "")) \
|
||||
== """<This function is equivalent to 'foo%s', see original 'foo' doc below.>
|
||||
|
||||
- a `foo` function
|
||||
+a `foo` function
|
||||
|
||||
- :param x:
|
||||
- :param y:
|
||||
- :param a:
|
||||
- :return:
|
||||
- """ % sig_actual_call
|
||||
+:param x:
|
||||
+:param y:
|
||||
+:param a:
|
||||
+:return:
|
||||
+""" % sig_actual_call
|
||||
|
||||
|
||||
def test_issue_57():
|
||||
@@ -127,9 +133,7 @@ def test_create_with_partial():
|
||||
assert m() == -1
|
||||
assert m.i == 1
|
||||
# the doc remains untouched in create_function as opposed to wraps, this is normal
|
||||
- assert m.__doc__ == """partial(func, *args, **keywords) - new function with partial application
|
||||
- of the given arguments and keywords.
|
||||
-"""
|
||||
+ assert m.__doc__ == functools.partial.__doc__
|
||||
|
||||
|
||||
def test_args_order_and_kind():
|
||||
@@ -161,11 +165,12 @@ def test_args_order_and_kind():
|
||||
# it is possible to keyword-partialize a positional-only argument...
|
||||
fp_ref = functools.partial(f, b=0)
|
||||
|
||||
- # but 'signature' does not support it !
|
||||
- with pytest.raises(ValueError):
|
||||
- signature(fp_ref)
|
||||
-
|
||||
- # assert str(signature(fp_ref)) == "(c, /, *, d, **e)"
|
||||
+ # but 'signature' does not support it before Python 3.12.4 !
|
||||
+ if sys.version_info < (3, 12, 4):
|
||||
+ with pytest.raises(ValueError):
|
||||
+ signature(fp_ref)
|
||||
+ else:
|
||||
+ assert str(signature(fp_ref)) == "(a, c, /, *, d, **e)"
|
||||
|
||||
# so we do not support it
|
||||
with pytest.raises(NotImplementedError):
|
||||
@@ -1,10 +1,10 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
@@ -25,6 +25,13 @@ BDEPEND="
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
sed -e '/pytest-runner/d' -i setup.cfg || die
|
||||
local PATCHES=(
|
||||
# https://github.com/smarie/python-makefun/pull/103
|
||||
# https://github.com/smarie/python-makefun/pull/104
|
||||
"${FILESDIR}/${P}-test.patch"
|
||||
)
|
||||
|
||||
distutils-r1_src_prepare
|
||||
|
||||
sed -e '/pytest-runner/d' -i setup.cfg || die
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user