aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/parso/py3/tests/failing_examples.py
diff options
context:
space:
mode:
authormonster <monster@ydb.tech>2022-07-07 14:41:37 +0300
committermonster <monster@ydb.tech>2022-07-07 14:41:37 +0300
commit06e5c21a835c0e923506c4ff27929f34e00761c2 (patch)
tree75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /contrib/python/parso/py3/tests/failing_examples.py
parent03f024c4412e3aa613bb543cf1660176320ba8f4 (diff)
downloadydb-06e5c21a835c0e923506c4ff27929f34e00761c2.tar.gz
fix ya.make
Diffstat (limited to 'contrib/python/parso/py3/tests/failing_examples.py')
-rw-r--r--contrib/python/parso/py3/tests/failing_examples.py415
1 files changed, 0 insertions, 415 deletions
diff --git a/contrib/python/parso/py3/tests/failing_examples.py b/contrib/python/parso/py3/tests/failing_examples.py
deleted file mode 100644
index 09714d3902c..00000000000
--- a/contrib/python/parso/py3/tests/failing_examples.py
+++ /dev/null
@@ -1,415 +0,0 @@
-# -*- coding: utf-8 -*-
-import sys
-from textwrap import dedent
-
-
-def indent(code):
- lines = code.splitlines(True)
- return ''.join([' ' * 2 + line for line in lines])
-
-
-def build_nested(code, depth, base='def f():\n'):
- if depth == 0:
- return code
-
- new_code = base + indent(code)
- return build_nested(new_code, depth - 1, base=base)
-
-
-FAILING_EXAMPLES = [
- '1 +',
- '?',
- 'continue',
- 'break',
- 'return',
- 'yield',
-
- # SyntaxError from Python/ast.c
- 'f(x for x in bar, 1)',
- 'from foo import a,',
- 'from __future__ import whatever',
- 'from __future__ import braces',
- 'from .__future__ import whatever',
- 'def f(x=3, y): pass',
- 'lambda x=3, y: x',
- '__debug__ = 1',
- 'with x() as __debug__: pass',
-
- '[]: int',
- '[a, b]: int',
- '(): int',
- '(()): int',
- '((())): int',
- '{}: int',
- 'True: int',
- '(a, b): int',
- '*star,: int',
- 'a, b: int = 3',
- 'foo(+a=3)',
- 'f(lambda: 1=1)',
- 'f(x=1, x=2)',
- 'f(**x, y)',
- 'f(x=2, y)',
- 'f(**x, *y)',
- 'f(**x, y=3, z)',
- # augassign
- 'a, b += 3',
- '(a, b) += 3',
- '[a, b] += 3',
- '[a, 1] += 3',
- 'f() += 1',
- 'lambda x:None+=1',
- '{} += 1',
- '{a:b} += 1',
- '{1} += 1',
- '{*x} += 1',
- '(x,) += 1',
- '(x, y if a else q) += 1',
- '[] += 1',
- '[1,2] += 1',
- '[] += 1',
- 'None += 1',
- '... += 1',
- 'a > 1 += 1',
- '"test" += 1',
- '1 += 1',
- '1.0 += 1',
- '(yield) += 1',
- '(yield from x) += 1',
- '(x if x else y) += 1',
- 'a() += 1',
- 'a + b += 1',
- '+a += 1',
- 'a and b += 1',
- '*a += 1',
- 'a, b += 1',
- 'f"xxx" += 1',
- # All assignment tests
- 'lambda a: 1 = 1',
- '[x for x in y] = 1',
- '{x for x in y} = 1',
- '{x:x for x in y} = 1',
- '(x for x in y) = 1',
- 'None = 1',
- '... = 1',
- 'a == b = 1',
- '{a, b} = 1',
- '{a: b} = 1',
- '1 = 1',
- '"" = 1',
- 'b"" = 1',
- 'b"" = 1',
- '"" "" = 1',
- '1 | 1 = 3',
- '1**1 = 3',
- '~ 1 = 3',
- 'not 1 = 3',
- '1 and 1 = 3',
- 'def foo(): (yield 1) = 3',
- 'def foo(): x = yield 1 = 3',
- 'async def foo(): await x = 3',
- '(a if a else a) = a',
- 'a, 1 = x',
- 'foo() = 1',
- # Cases without the equals but other assignments.
- 'with x as foo(): pass',
- 'del bar, 1',
- 'for x, 1 in []: pass',
- 'for (not 1) in []: pass',
- '[x for 1 in y]',
- '[x for a, 3 in y]',
- '(x for 1 in y)',
- '{x for 1 in y}',
- '{x:x for 1 in y}',
- # Unicode/Bytes issues.
- r'u"\x"',
- r'u"\"',
- r'u"\u"',
- r'u"""\U"""',
- r'u"\Uffffffff"',
- r"u'''\N{}'''",
- r"u'\N{foo}'",
- r'b"\x"',
- r'b"\"',
- 'b"รค"',
-
- '*a, *b = 3, 3',
- 'async def foo(): yield from []',
- 'yield from []',
- '*a = 3',
- 'del *a, b',
- 'def x(*): pass',
- '(%s *d) = x' % ('a,' * 256),
- '{**{} for a in [1]}',
- '(True,) = x',
- '([False], a) = x',
- 'def x(): from math import *',
-
- # invalid del statements
- 'del x + y',
- 'del x(y)',
- 'async def foo(): del await x',
- 'def foo(): del (yield x)',
- 'del [x for x in range(10)]',
- 'del *x',
- 'del *x,',
- 'del (*x,)',
- 'del [*x]',
- 'del x, *y',
- 'del *x.y,',
- 'del *x[y],',
- 'del *x[y::], z',
- 'del x, (y, *z)',
- 'del (x, *[y, z])',
- 'del [x, *(y, [*z])]',
- 'del {}',
- 'del {x}',
- 'del {x, y}',
- 'del {x, *y}',
-
- # invalid starred expressions
- '*x',
- '(*x)',
- '((*x))',
- '1 + (*x)',
- '*x; 1',
- '1; *x',
- '1\n*x',
- 'x = *y',
- 'x: int = *y',
- 'def foo(): return *x',
- 'def foo(): yield *x',
- 'f"{*x}"',
- 'for *x in 1: pass',
- '[1 for *x in 1]',
-
- # str/bytes combinations
- '"s" b""',
- '"s" b"" ""',
- 'b"" "" b"" ""',
- 'f"s" b""',
- 'b"s" f""',
-
- # Parser/tokenize.c
- r'"""',
- r'"',
- r"'''",
- r"'",
- r"\blub",
- # IndentationError: too many levels of indentation
- build_nested('pass', 100),
-
- # SyntaxErrors from Python/symtable.c
- 'def f(x, x): pass',
- 'nonlocal a',
-
- # IndentationError
- ' foo',
- 'def x():\n 1\n 2',
- 'def x():\n 1\n 2',
- 'if 1:\nfoo',
- 'if 1: blubb\nif 1:\npass\nTrue and False',
-
- # f-strings
- 'f"{}"',
- r'f"{\}"',
- 'f"{\'\\\'}"',
- 'f"{#}"',
- "f'{1!b}'",
- "f'{1:{5:{3}}}'",
- "f'{'",
- "f'{'",
- "f'}'",
- "f'{\"}'",
- "f'{\"}'",
- # Now nested parsing
- "f'{continue}'",
- "f'{1;1}'",
- "f'{a;}'",
- "f'{b\"\" \"\"}'",
- # f-string expression part cannot include a backslash
- r'''f"{'\n'}"''',
-
- 'async def foo():\n yield x\n return 1',
- 'async def foo():\n yield x\n return 1',
-
- '[*[] for a in [1]]',
- 'async def bla():\n def x(): await bla()',
- 'del None',
- 'del True',
- 'del False',
- 'del ...',
-
- # Errors of global / nonlocal
- dedent('''
- def glob():
- x = 3
- x.z
- global x'''),
- dedent('''
- def glob():
- x = 3
- global x'''),
- dedent('''
- def glob():
- x
- global x'''),
- dedent('''
- def glob():
- x = 3
- x.z
- nonlocal x'''),
- dedent('''
- def glob():
- x = 3
- nonlocal x'''),
- dedent('''
- def glob():
- x
- nonlocal x'''),
- # Annotation issues
- dedent('''
- def glob():
- x[0]: foo
- global x'''),
- dedent('''
- def glob():
- x.a: foo
- global x'''),
- dedent('''
- def glob():
- x: foo
- global x'''),
- dedent('''
- def glob():
- x: foo = 5
- global x'''),
- dedent('''
- def glob():
- x: foo = 5
- x
- global x'''),
- dedent('''
- def glob():
- global x
- x: foo = 3
- '''),
- # global/nonlocal + param
- dedent('''
- def glob(x):
- global x
- '''),
- dedent('''
- def glob(x):
- nonlocal x
- '''),
- dedent('''
- def x():
- a =3
- def z():
- nonlocal a
- a = 3
- nonlocal a
- '''),
- dedent('''
- def x():
- a = 4
- def y():
- global a
- nonlocal a
- '''),
- # Missing binding of nonlocal
- dedent('''
- def x():
- nonlocal a
- '''),
- dedent('''
- def x():
- def y():
- nonlocal a
- '''),
- dedent('''
- def x():
- a = 4
- def y():
- global a
- print(a)
- def z():
- nonlocal a
- '''),
- # Name is assigned before nonlocal declaration
- dedent('''
- def x(a):
- def y():
- a = 10
- nonlocal a
- '''),
-]
-
-if sys.version_info[:2] >= (3, 7):
- # This is somehow ok in previous versions.
- FAILING_EXAMPLES += [
- 'class X(base for base in bases): pass',
- ]
-
-if sys.version_info[:2] < (3, 8):
- FAILING_EXAMPLES += [
- # Python/compile.c
- dedent('''\
- for a in [1]:
- try:
- pass
- finally:
- continue
- '''), # 'continue' not supported inside 'finally' clause"
- ]
-
-if sys.version_info[:2] >= (3, 8):
- # assignment expressions from issue#89
- FAILING_EXAMPLES += [
- # Case 2
- '(lambda: x := 1)',
- '((lambda: x) := 1)',
- # Case 3
- '(a[i] := x)',
- '((a[i]) := x)',
- '(a(i) := x)',
- # Case 4
- '(a.b := c)',
- '[(i.i:= 0) for ((i), j) in range(5)]',
- # Case 5
- '[i:= 0 for i, j in range(5)]',
- '[(i:= 0) for ((i), j) in range(5)]',
- '[(i:= 0) for ((i), j), in range(5)]',
- '[(i:= 0) for ((i), j.i), in range(5)]',
- '[[(i:= i) for j in range(5)] for i in range(5)]',
- '[i for i, j in range(5) if True or (i:= 1)]',
- '[False and (i:= 0) for i, j in range(5)]',
- # Case 6
- '[i+1 for i in (i:= range(5))]',
- '[i+1 for i in (j:= range(5))]',
- '[i+1 for i in (lambda: (j:= range(5)))()]',
- # Case 7
- 'class Example:\n [(j := i) for i in range(5)]',
- # Not in that issue
- '(await a := x)',
- '((await a) := x)',
- # new discoveries
- '((a, b) := (1, 2))',
- '([a, b] := [1, 2])',
- '({a, b} := {1, 2})',
- '({a: b} := {1: 2})',
- '(a + b := 1)',
- '(True := 1)',
- '(False := 1)',
- '(None := 1)',
- '(__debug__ := 1)',
- # Unparenthesized walrus not allowed in dict literals, dict comprehensions and slices
- '{a:="a": b:=1}',
- '{y:=1: 2 for x in range(5)}',
- 'a[b:=0:1:2]',
- ]
- # f-string debugging syntax with invalid conversion character
- FAILING_EXAMPLES += [
- "f'{1=!b}'",
- ]