|
|
|
@ -302,27 +302,27 @@ class GrammarTests(unittest.TestCase): |
|
|
|
# argument annotation tests |
|
|
|
def f(x) -> list: pass |
|
|
|
self.assertEqual(f.__annotations__, {'return': list}) |
|
|
|
def f(x:int): pass |
|
|
|
def f(x: int): pass |
|
|
|
self.assertEqual(f.__annotations__, {'x': int}) |
|
|
|
def f(*x:str): pass |
|
|
|
def f(*x: str): pass |
|
|
|
self.assertEqual(f.__annotations__, {'x': str}) |
|
|
|
def f(**x:float): pass |
|
|
|
def f(**x: float): pass |
|
|
|
self.assertEqual(f.__annotations__, {'x': float}) |
|
|
|
def f(x, y:1+2): pass |
|
|
|
def f(x, y: 1+2): pass |
|
|
|
self.assertEqual(f.__annotations__, {'y': 3}) |
|
|
|
def f(a, b:1, c:2, d): pass |
|
|
|
def f(a, b: 1, c: 2, d): pass |
|
|
|
self.assertEqual(f.__annotations__, {'b': 1, 'c': 2}) |
|
|
|
def f(a, b:1, c:2, d, e:3=4, f=5, *g:6): pass |
|
|
|
def f(a, b: 1, c: 2, d, e: 3 = 4, f=5, *g: 6): pass |
|
|
|
self.assertEqual(f.__annotations__, |
|
|
|
{'b': 1, 'c': 2, 'e': 3, 'g': 6}) |
|
|
|
def f(a, b:1, c:2, d, e:3=4, f=5, *g:6, h:7, i=8, j:9=10, |
|
|
|
**k:11) -> 12: pass |
|
|
|
{'b': 1, 'c': 2, 'e': 3, 'g': 6}) |
|
|
|
def f(a, b: 1, c: 2, d, e: 3 = 4, f=5, *g: 6, h: 7, i=8, j: 9 = 10, |
|
|
|
**k: 11) -> 12: pass |
|
|
|
self.assertEqual(f.__annotations__, |
|
|
|
{'b': 1, 'c': 2, 'e': 3, 'g': 6, 'h': 7, 'j': 9, |
|
|
|
'k': 11, 'return': 12}) |
|
|
|
{'b': 1, 'c': 2, 'e': 3, 'g': 6, 'h': 7, 'j': 9, |
|
|
|
'k': 11, 'return': 12}) |
|
|
|
# Check for issue #20625 -- annotations mangling |
|
|
|
class Spam: |
|
|
|
def f(self, *, __kw:1): |
|
|
|
def f(self, *, __kw: 1): |
|
|
|
pass |
|
|
|
class Ham(Spam): pass |
|
|
|
self.assertEqual(Spam.f.__annotations__, {'_Spam__kw': 1}) |
|
|
|
|