https://github.com/python/cpython/commit/2422e81e9940e891220b70eed4d92d49815388aa
commit: 2422e81e9940e891220b70eed4d92d49815388aa
branch: 3.13
author: sobolevn <[email protected]>
committer: sobolevn <[email protected]>
date: 2025-09-10T14:42:49Z
summary:
[3.13] gh-138729: Cover `inspect.formatannotationrelativeto` with tests
(GH-138730) (#138748)
(cherry picked from commit f5fa336579d124e389b1c36a5431e7908aaf5e53)
files:
M Lib/test/test_inspect/test_inspect.py
diff --git a/Lib/test/test_inspect/test_inspect.py
b/Lib/test/test_inspect/test_inspect.py
index f7f73b25b8cb5f..3e73dc5fe2694c 100644
--- a/Lib/test/test_inspect/test_inspect.py
+++ b/Lib/test/test_inspect/test_inspect.py
@@ -1986,10 +1986,51 @@ def
test_pep_695_generics_with_future_annotations_nested_in_function(self):
class TestFormatAnnotation(unittest.TestCase):
def test_typing_replacement(self):
- from test.typinganndata.ann_module9 import ann, ann1
+ from test.typinganndata.ann_module9 import A, ann, ann1
self.assertEqual(inspect.formatannotation(ann), 'Union[List[str],
int]')
self.assertEqual(inspect.formatannotation(ann1),
'Union[List[testModule.typing.A], int]')
+ self.assertEqual(inspect.formatannotation(A, 'testModule.typing'), 'A')
+ self.assertEqual(inspect.formatannotation(A, 'other'),
'testModule.typing.A')
+ self.assertEqual(
+ inspect.formatannotation(ann1, 'testModule.typing'),
+ 'Union[List[testModule.typing.A], int]',
+ )
+
+ def test_formatannotationrelativeto(self):
+ from test.typinganndata.ann_module9 import A, ann1
+
+ # Builtin types:
+ self.assertEqual(
+ inspect.formatannotationrelativeto(object)(type),
+ 'type',
+ )
+
+ # Custom types:
+ self.assertEqual(
+ inspect.formatannotationrelativeto(None)(A),
+ 'testModule.typing.A',
+ )
+
+ class B: ...
+ B.__module__ = 'testModule.typing'
+
+ self.assertEqual(
+ inspect.formatannotationrelativeto(B)(A),
+ 'A',
+ )
+
+ self.assertEqual(
+ inspect.formatannotationrelativeto(object)(A),
+ 'testModule.typing.A',
+ )
+
+ # Not an instance of "type":
+ self.assertEqual(
+ inspect.formatannotationrelativeto(A)(ann1),
+ 'Union[List[testModule.typing.A], int]',
+ )
+
class TestIsMethodDescriptor(unittest.TestCase):
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]