jenkins-bot submitted this change.

View Change


Approvals: jenkins-bot: Verified Xqt: Looks good to me, approved
[tests] Update DeprecatorTestCase.test_deprecated_function_docstring

The multiline docstring behaviour was change in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html#other-language-changes

Add a new test mehtod test_deprecated_function_multiline_docstring to
take into accoutn that there is a difference.

Bug: T359069
Change-Id: I7aa1f53fc8612bfe6f40ad098d2dcbb6d3d74c80
---
M tests/tools_deprecate_tests.py
1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/tests/tools_deprecate_tests.py b/tests/tools_deprecate_tests.py
index 2cf1f87..c4024b1 100755
--- a/tests/tools_deprecate_tests.py
+++ b/tests/tools_deprecate_tests.py
@@ -19,7 +19,6 @@
remove_last_args,
)
from tests.aspects import DeprecationTestCase
-from tests.utils import expected_failure_if


@add_full_name
@@ -299,8 +298,6 @@
self.assertOneDeprecationParts(__name__ + '.deprecated_func_instead',
'baz')

- # deprecated_func_docstring_arg2 fails with Python 3.13
- @expected_failure_if(PYTHON_VERSION >= (3, 13))
def test_deprecated_function_docstring(self):
"""Test @deprecated docstring modification."""
testcases = [
@@ -315,13 +312,24 @@
'this. Deprecated function.'),
(deprecated_func_docstring_arg, 'Deprecated.\n\n'
':param foo: Foo. DEPRECATED.'),
- (deprecated_func_docstring_arg2, '\n DEPRECATED.\n\n'
- ' :param foo: Foo. DEPRECATED.\n '),
]
for rv, doc in testcases:
with self.subTest(function=rv.__name__):
self.assertEqual(rv.__doc__, doc)

+ def test_deprecated_function_multiline_docstring(self):
+ """Test @deprecated docstring modification on multiline docstring.
+
+ Python 3.13 strips the doc string, see
+ https://docs.python.org/3.13/whatsnew/3.13.html#other-language-changes
+ """
+ doc = '\n DEPRECATED.\n\n :param foo: Foo. DEPRECATED.\n '
+ if PYTHON_VERSION < (3, 13):
+ self.assertEqual(deprecated_func_docstring_arg2.__doc__, doc)
+ else:
+ self.assertEqual(deprecated_func_docstring_arg2.__doc__,
+ doc.replace(' ' * 4, ''))
+
def test_deprecated_function_bad_args(self):
"""Test @deprecated function with bad arguments."""
rv = deprecated_func_bad_args(None)

To view, visit change 1008811. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I7aa1f53fc8612bfe6f40ad098d2dcbb6d3d74c80
Gerrit-Change-Number: 1008811
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged