mirror of https://github.com/python/cpython.git
gh-133037: Add test for shadowing __annotate__ (#133084)
This commit is contained in:
parent
245cd6c532
commit
345fdce1d0
|
@ -327,6 +327,25 @@ def check_annotations(self, f):
|
|||
f.__annotations__ = {"z": 43}
|
||||
self.assertIs(f.__annotate__, None)
|
||||
|
||||
def test_user_defined_annotate(self):
|
||||
class X:
|
||||
a: int
|
||||
|
||||
def __annotate__(format):
|
||||
return {"a": str}
|
||||
self.assertEqual(X.__annotate__(annotationlib.Format.VALUE), {"a": str})
|
||||
self.assertEqual(annotationlib.get_annotations(X), {"a": str})
|
||||
|
||||
mod = build_module(
|
||||
"""
|
||||
a: int
|
||||
def __annotate__(format):
|
||||
return {"a": str}
|
||||
"""
|
||||
)
|
||||
self.assertEqual(mod.__annotate__(annotationlib.Format.VALUE), {"a": str})
|
||||
self.assertEqual(annotationlib.get_annotations(mod), {"a": str})
|
||||
|
||||
|
||||
class DeferredEvaluationTests(unittest.TestCase):
|
||||
def test_function(self):
|
||||
|
|
Loading…
Reference in New Issue