mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
gh-138729: Cover inspect.formatannotationrelativeto with tests (#138730)
This commit is contained in:
parent
cf8f36fe0a
commit
f5fa336579
1 changed files with 42 additions and 1 deletions
|
|
@ -1778,14 +1778,55 @@ class C(metaclass=M):
|
|||
|
||||
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), 'List[str] | int')
|
||||
self.assertEqual(inspect.formatannotation(ann1), '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'),
|
||||
'List[testModule.typing.A] | int',
|
||||
)
|
||||
|
||||
def test_forwardref(self):
|
||||
fwdref = ForwardRef('fwdref')
|
||||
self.assertEqual(inspect.formatannotation(fwdref), 'fwdref')
|
||||
|
||||
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),
|
||||
'List[testModule.typing.A] | int',
|
||||
)
|
||||
|
||||
|
||||
class TestIsMethodDescriptor(unittest.TestCase):
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue