Commit 0cc99c8c authored by Serhiy Storchaka's avatar Serhiy Storchaka Committed by GitHub

bpo-32482: Fix suspicious code in tests for syntax and grammar. (#5086)

parent 811b2878
...@@ -575,6 +575,10 @@ class GrammarTests(unittest.TestCase): ...@@ -575,6 +575,10 @@ class GrammarTests(unittest.TestCase):
self.assertEqual(f(spam='fried', **{'eggs':'scrambled'}), self.assertEqual(f(spam='fried', **{'eggs':'scrambled'}),
((), {'eggs':'scrambled', 'spam':'fried'})) ((), {'eggs':'scrambled', 'spam':'fried'}))
# Check ast errors in *args and *kwargs
check_syntax_error(self, "f(*g(1=2))")
check_syntax_error(self, "f(**g(1=2))")
# argument annotation tests # argument annotation tests
def f(x) -> list: pass def f(x) -> list: pass
self.assertEqual(f.__annotations__, {'return': list}) self.assertEqual(f.__annotations__, {'return': list})
...@@ -616,10 +620,6 @@ class GrammarTests(unittest.TestCase): ...@@ -616,10 +620,6 @@ class GrammarTests(unittest.TestCase):
def f(*, k=1): return closure def f(*, k=1): return closure
def f() -> int: return closure def f() -> int: return closure
# Check ast errors in *args and *kwargs
check_syntax_error(self, "f(*g(1=2))")
check_syntax_error(self, "f(**g(1=2))")
# Check trailing commas are permitted in funcdef argument list # Check trailing commas are permitted in funcdef argument list
def f(a,): pass def f(a,): pass
def f(*args,): pass def f(*args,): pass
...@@ -1091,7 +1091,6 @@ class GrammarTests(unittest.TestCase): ...@@ -1091,7 +1091,6 @@ class GrammarTests(unittest.TestCase):
try: 1/0 try: 1/0
except EOFError: pass except EOFError: pass
except TypeError as msg: pass except TypeError as msg: pass
except RuntimeError as msg: pass
except: pass except: pass
else: pass else: pass
try: 1/0 try: 1/0
...@@ -1200,7 +1199,7 @@ class GrammarTests(unittest.TestCase): ...@@ -1200,7 +1199,7 @@ class GrammarTests(unittest.TestCase):
d[1,2] = 3 d[1,2] = 3
d[1,2,3] = 4 d[1,2,3] = 4
L = list(d) L = list(d)
L.sort(key=lambda x: x if isinstance(x, tuple) else ()) L.sort(key=lambda x: (type(x).__name__, x))
self.assertEqual(str(L), '[1, (1,), (1, 2), (1, 2, 3)]') self.assertEqual(str(L), '[1, (1,), (1, 2), (1, 2, 3)]')
def test_atoms(self): def test_atoms(self):
......
...@@ -668,12 +668,12 @@ class SyntaxTestCase(unittest.TestCase): ...@@ -668,12 +668,12 @@ class SyntaxTestCase(unittest.TestCase):
"positional argument follows keyword argument") "positional argument follows keyword argument")
def test_kwargs_last2(self): def test_kwargs_last2(self):
self._check_error("int(**{base: 10}, '2')", self._check_error("int(**{'base': 10}, '2')",
"positional argument follows " "positional argument follows "
"keyword argument unpacking") "keyword argument unpacking")
def test_kwargs_last3(self): def test_kwargs_last3(self):
self._check_error("int(**{base: 10}, *['2'])", self._check_error("int(**{'base': 10}, *['2'])",
"iterable argument unpacking follows " "iterable argument unpacking follows "
"keyword argument unpacking") "keyword argument unpacking")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment