fix syntax tests after formatting change
This commit is contained in:
parent
ee42545884
commit
52b9620c19
|
@ -137,12 +137,14 @@ Verify that syntax error's are raised for genexps used as lvalues
|
||||||
>>> (y for y in (1,2)) = 10
|
>>> (y for y in (1,2)) = 10
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: can't assign to generator expression (<doctest test.test_genexps.__test__.doctests[40]>, line 1)
|
File "<doctest test.test_genexps.__test__.doctests[40]>", line 1
|
||||||
|
SyntaxError: can't assign to generator expression
|
||||||
|
|
||||||
>>> (y for y in (1,2)) += 10
|
>>> (y for y in (1,2)) += 10
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: augmented assignment to generator expression not possible (<doctest test.test_genexps.__test__.doctests[41]>, line 1)
|
File "<doctest test.test_genexps.__test__.doctests[41]>", line 1
|
||||||
|
SyntaxError: augmented assignment to generator expression not possible
|
||||||
|
|
||||||
|
|
||||||
########### Tests borrowed from or inspired by test_generators.py ############
|
########### Tests borrowed from or inspired by test_generators.py ############
|
||||||
|
|
|
@ -29,11 +29,13 @@ Errors from set_context():
|
||||||
|
|
||||||
>>> obj.None = 1
|
>>> obj.None = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: cannot assign to None (<doctest test.test_syntax[1]>, line 1)
|
File "<doctest test.test_syntax[1]>", line 1
|
||||||
|
SyntaxError: cannot assign to None
|
||||||
|
|
||||||
>>> None = 1
|
>>> None = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: cannot assign to None (<doctest test.test_syntax[2]>, line 1)
|
File "<doctest test.test_syntax[2]>", line 1
|
||||||
|
SyntaxError: cannot assign to None
|
||||||
|
|
||||||
It's a syntax error to assign to the empty tuple. Why isn't it an
|
It's a syntax error to assign to the empty tuple. Why isn't it an
|
||||||
error to assign to the empty list? It will always raise some error at
|
error to assign to the empty list? It will always raise some error at
|
||||||
|
@ -41,35 +43,43 @@ runtime.
|
||||||
|
|
||||||
>>> () = 1
|
>>> () = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to () (<doctest test.test_syntax[3]>, line 1)
|
File "<doctest test.test_syntax[3]>", line 1
|
||||||
|
SyntaxError: can't assign to ()
|
||||||
|
|
||||||
>>> f() = 1
|
>>> f() = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to function call (<doctest test.test_syntax[4]>, line 1)
|
File "<doctest test.test_syntax[4]>", line 1
|
||||||
|
SyntaxError: can't assign to function call
|
||||||
|
|
||||||
>>> del f()
|
>>> del f()
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't delete function call (<doctest test.test_syntax[5]>, line 1)
|
File "<doctest test.test_syntax[5]>", line 1
|
||||||
|
SyntaxError: can't delete function call
|
||||||
|
|
||||||
>>> a + 1 = 2
|
>>> a + 1 = 2
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to operator (<doctest test.test_syntax[6]>, line 1)
|
File "<doctest test.test_syntax[6]>", line 1
|
||||||
|
SyntaxError: can't assign to operator
|
||||||
|
|
||||||
>>> (x for x in x) = 1
|
>>> (x for x in x) = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to generator expression (<doctest test.test_syntax[7]>, line 1)
|
File "<doctest test.test_syntax[7]>", line 1
|
||||||
|
SyntaxError: can't assign to generator expression
|
||||||
|
|
||||||
>>> 1 = 1
|
>>> 1 = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to literal (<doctest test.test_syntax[8]>, line 1)
|
File "<doctest test.test_syntax[8]>", line 1
|
||||||
|
SyntaxError: can't assign to literal
|
||||||
|
|
||||||
>>> "abc" = 1
|
>>> "abc" = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to literal (<doctest test.test_syntax[9]>, line 1)
|
File "<doctest test.test_syntax[8]>", line 1
|
||||||
|
SyntaxError: can't assign to literal
|
||||||
|
|
||||||
>>> `1` = 1
|
>>> `1` = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to repr (<doctest test.test_syntax[10]>, line 1)
|
File "<doctest test.test_syntax[10]>", line 1
|
||||||
|
SyntaxError: can't assign to repr
|
||||||
|
|
||||||
If the left-hand side of an assignment is a list or tuple, an illegal
|
If the left-hand side of an assignment is a list or tuple, an illegal
|
||||||
expression inside that contain should still cause a syntax error.
|
expression inside that contain should still cause a syntax error.
|
||||||
|
@ -78,22 +88,26 @@ them.
|
||||||
|
|
||||||
>>> (a, "b", c) = (1, 2, 3)
|
>>> (a, "b", c) = (1, 2, 3)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to literal (<doctest test.test_syntax[11]>, line 1)
|
File "<doctest test.test_syntax[11]>", line 1
|
||||||
|
SyntaxError: can't assign to literal
|
||||||
|
|
||||||
>>> [a, b, c + 1] = [1, 2, 3]
|
>>> [a, b, c + 1] = [1, 2, 3]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to operator (<doctest test.test_syntax[12]>, line 1)
|
File "<doctest test.test_syntax[12]>", line 1
|
||||||
|
SyntaxError: can't assign to operator
|
||||||
|
|
||||||
>>> a if 1 else b = 1
|
>>> a if 1 else b = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: can't assign to conditional expression (<doctest test.test_syntax[13]>, line 1)
|
File "<doctest test.test_syntax[13]>", line 1
|
||||||
|
SyntaxError: can't assign to conditional expression
|
||||||
|
|
||||||
From compiler_complex_args():
|
From compiler_complex_args():
|
||||||
|
|
||||||
>>> def f(None=1):
|
>>> def f(None=1):
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: cannot assign to None (<doctest test.test_syntax[14]>, line 1)
|
File "<doctest test.test_syntax[14]>", line 1
|
||||||
|
SyntaxError: cannot assign to None
|
||||||
|
|
||||||
|
|
||||||
From ast_for_arguments():
|
From ast_for_arguments():
|
||||||
|
@ -101,22 +115,26 @@ From ast_for_arguments():
|
||||||
>>> def f(x, y=1, z):
|
>>> def f(x, y=1, z):
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: non-default argument follows default argument (<doctest test.test_syntax[15]>, line 1)
|
File "<doctest test.test_syntax[15]>", line 1
|
||||||
|
SyntaxError: non-default argument follows default argument
|
||||||
|
|
||||||
>>> def f(x, None):
|
>>> def f(x, None):
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: cannot assign to None (<doctest test.test_syntax[16]>, line 1)
|
File "<doctest test.test_syntax[16]>", line 1
|
||||||
|
SyntaxError: cannot assign to None
|
||||||
|
|
||||||
>>> def f(*None):
|
>>> def f(*None):
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: cannot assign to None (<doctest test.test_syntax[17]>, line 1)
|
File "<doctest test.test_syntax[17]>", line 1
|
||||||
|
SyntaxError: cannot assign to None
|
||||||
|
|
||||||
>>> def f(**None):
|
>>> def f(**None):
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: cannot assign to None (<doctest test.test_syntax[18]>, line 1)
|
File "<doctest test.test_syntax[18]>", line 1
|
||||||
|
SyntaxError: cannot assign to None
|
||||||
|
|
||||||
|
|
||||||
From ast_for_funcdef():
|
From ast_for_funcdef():
|
||||||
|
@ -124,7 +142,8 @@ From ast_for_funcdef():
|
||||||
>>> def None(x):
|
>>> def None(x):
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: cannot assign to None (<doctest test.test_syntax[19]>, line 1)
|
File "<doctest test.test_syntax[19]>", line 1
|
||||||
|
SyntaxError: cannot assign to None
|
||||||
|
|
||||||
|
|
||||||
From ast_for_call():
|
From ast_for_call():
|
||||||
|
@ -136,7 +155,8 @@ From ast_for_call():
|
||||||
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||||
>>> f(x for x in L, 1)
|
>>> f(x for x in L, 1)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: Generator expression must be parenthesized if not sole argument (<doctest test.test_syntax[23]>, line 1)
|
File "<doctest test.test_syntax[23]>", line 1
|
||||||
|
SyntaxError: Generator expression must be parenthesized if not sole argument
|
||||||
>>> f((x for x in L), 1)
|
>>> f((x for x in L), 1)
|
||||||
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||||
|
|
||||||
|
@ -168,7 +188,8 @@ SyntaxError: Generator expression must be parenthesized if not sole argument (<d
|
||||||
... i244, i245, i246, i247, i248, i249, i250, i251, i252,
|
... i244, i245, i246, i247, i248, i249, i250, i251, i252,
|
||||||
... i253, i254, i255)
|
... i253, i254, i255)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: more than 255 arguments (<doctest test.test_syntax[25]>, line 1)
|
File "<doctest test.test_syntax[25]>", line 1
|
||||||
|
SyntaxError: more than 255 arguments
|
||||||
|
|
||||||
The actual error cases counts positional arguments, keyword arguments,
|
The actual error cases counts positional arguments, keyword arguments,
|
||||||
and generator expression arguments separately. This test combines the
|
and generator expression arguments separately. This test combines the
|
||||||
|
@ -202,37 +223,45 @@ three.
|
||||||
... (x for x in i244), i245, i246, i247, i248, i249, i250, i251,
|
... (x for x in i244), i245, i246, i247, i248, i249, i250, i251,
|
||||||
... i252=1, i253=1, i254=1, i255=1)
|
... i252=1, i253=1, i254=1, i255=1)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: more than 255 arguments (<doctest test.test_syntax[26]>, line 1)
|
File "<doctest test.test_syntax[26]>", line 1
|
||||||
|
SyntaxError: more than 255 arguments
|
||||||
|
|
||||||
>>> f(lambda x: x[0] = 3)
|
>>> f(lambda x: x[0] = 3)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: lambda cannot contain assignment (<doctest test.test_syntax[27]>, line 1)
|
File "<doctest test.test_syntax[27]>", line 1
|
||||||
|
SyntaxError: lambda cannot contain assignment
|
||||||
|
|
||||||
The grammar accepts any test (basically, any expression) in the
|
The grammar accepts any test (basically, any expression) in the
|
||||||
keyword slot of a call site. Test a few different options.
|
keyword slot of a call site. Test a few different options.
|
||||||
|
|
||||||
>>> f(x()=2)
|
>>> f(x()=2)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: keyword can't be an expression (<doctest test.test_syntax[28]>, line 1)
|
File "<doctest test.test_syntax[28]>", line 1
|
||||||
|
SyntaxError: keyword can't be an expression
|
||||||
>>> f(a or b=1)
|
>>> f(a or b=1)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: keyword can't be an expression (<doctest test.test_syntax[29]>, line 1)
|
File "<doctest test.test_syntax[29]>", line 1
|
||||||
|
SyntaxError: keyword can't be an expression
|
||||||
>>> f(x.y=1)
|
>>> f(x.y=1)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: keyword can't be an expression (<doctest test.test_syntax[30]>, line 1)
|
File "<doctest test.test_syntax[30]>", line 1
|
||||||
|
SyntaxError: keyword can't be an expression
|
||||||
|
|
||||||
|
|
||||||
From ast_for_expr_stmt():
|
From ast_for_expr_stmt():
|
||||||
|
|
||||||
>>> (x for x in x) += 1
|
>>> (x for x in x) += 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: augmented assignment to generator expression not possible (<doctest test.test_syntax[31]>, line 1)
|
File "<doctest test.test_syntax[31]>", line 1
|
||||||
|
SyntaxError: augmented assignment to generator expression not possible
|
||||||
>>> None += 1
|
>>> None += 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: cannot assign to None (<doctest test.test_syntax[32]>, line 1)
|
File "<doctest test.test_syntax[32]>", line 1
|
||||||
|
SyntaxError: cannot assign to None
|
||||||
>>> f() += 1
|
>>> f() += 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: illegal expression for augmented assignment (<doctest test.test_syntax[33]>, line 1)
|
File "<doctest test.test_syntax[33]>", line 1
|
||||||
|
SyntaxError: illegal expression for augmented assignment
|
||||||
|
|
||||||
|
|
||||||
Test continue in finally in weird combinations.
|
Test continue in finally in weird combinations.
|
||||||
|
@ -259,7 +288,8 @@ Start simple, a continue in a finally should not be allowed.
|
||||||
... continue
|
... continue
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[36]>, line 6)
|
File "<doctest test.test_syntax[36]>", line 6
|
||||||
|
SyntaxError: 'continue' not supported inside 'finally' clause
|
||||||
|
|
||||||
This is essentially a continue in a finally which should not be allowed.
|
This is essentially a continue in a finally which should not be allowed.
|
||||||
|
|
||||||
|
@ -274,7 +304,8 @@ This is essentially a continue in a finally which should not be allowed.
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[37]>, line 7)
|
File "<doctest test.test_syntax[37]>", line 6
|
||||||
|
SyntaxError: 'continue' not supported inside 'finally' clause
|
||||||
|
|
||||||
>>> def foo():
|
>>> def foo():
|
||||||
... try:
|
... try:
|
||||||
|
@ -283,7 +314,8 @@ This is essentially a continue in a finally which should not be allowed.
|
||||||
... continue
|
... continue
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[38]>, line 5)
|
File "<doctest test.test_syntax[38]>", line 5
|
||||||
|
SyntaxError: 'continue' not supported inside 'finally' clause
|
||||||
|
|
||||||
>>> def foo():
|
>>> def foo():
|
||||||
... for a in ():
|
... for a in ():
|
||||||
|
@ -293,7 +325,8 @@ This is essentially a continue in a finally which should not be allowed.
|
||||||
... continue
|
... continue
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[39]>, line 6)
|
File "<doctest test.test_syntax[39]>", line 6
|
||||||
|
SyntaxError: 'continue' not supported inside 'finally' clause
|
||||||
|
|
||||||
>>> def foo():
|
>>> def foo():
|
||||||
... for a in ():
|
... for a in ():
|
||||||
|
@ -306,7 +339,8 @@ This is essentially a continue in a finally which should not be allowed.
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[40]>, line 7)
|
File "<doctest test.test_syntax[40]>", line 7
|
||||||
|
SyntaxError: 'continue' not supported inside 'finally' clause
|
||||||
|
|
||||||
>>> def foo():
|
>>> def foo():
|
||||||
... for a in ():
|
... for a in ():
|
||||||
|
@ -318,7 +352,8 @@ This is essentially a continue in a finally which should not be allowed.
|
||||||
... continue
|
... continue
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[41]>, line 8)
|
File "<doctest test.test_syntax[41]>", line 8
|
||||||
|
SyntaxError: 'continue' not supported inside 'finally' clause
|
||||||
|
|
||||||
There is one test for a break that is not in a loop. The compiler
|
There is one test for a break that is not in a loop. The compiler
|
||||||
uses a single data structure to keep track of try-finally and loops,
|
uses a single data structure to keep track of try-finally and loops,
|
||||||
|
@ -333,7 +368,8 @@ isn't, there should be a syntax error.
|
||||||
... print 3
|
... print 3
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: 'break' outside loop (<doctest test.test_syntax[42]>, line 3)
|
File "<doctest test.test_syntax[42]>", line 3
|
||||||
|
SyntaxError: 'break' outside loop
|
||||||
|
|
||||||
This should probably raise a better error than a SystemError (or none at all).
|
This should probably raise a better error than a SystemError (or none at all).
|
||||||
In 2.5 there was a missing exception and an assert was triggered in a debug
|
In 2.5 there was a missing exception and an assert was triggered in a debug
|
||||||
|
@ -375,7 +411,8 @@ leading to spurious errors.
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: can't assign to function call (<doctest test.test_syntax[44]>, line 2)
|
File "<doctest test.test_syntax[44]>", line 2
|
||||||
|
SyntaxError: can't assign to function call
|
||||||
|
|
||||||
>>> if 1:
|
>>> if 1:
|
||||||
... pass
|
... pass
|
||||||
|
@ -383,7 +420,8 @@ leading to spurious errors.
|
||||||
... x() = 1
|
... x() = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: can't assign to function call (<doctest test.test_syntax[45]>, line 4)
|
File "<doctest test.test_syntax[45]>", line 4
|
||||||
|
SyntaxError: can't assign to function call
|
||||||
|
|
||||||
>>> if 1:
|
>>> if 1:
|
||||||
... x() = 1
|
... x() = 1
|
||||||
|
@ -393,7 +431,8 @@ leading to spurious errors.
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: can't assign to function call (<doctest test.test_syntax[46]>, line 2)
|
File "<doctest test.test_syntax[46]>", line 2
|
||||||
|
SyntaxError: can't assign to function call
|
||||||
|
|
||||||
>>> if 1:
|
>>> if 1:
|
||||||
... pass
|
... pass
|
||||||
|
@ -403,7 +442,8 @@ leading to spurious errors.
|
||||||
... pass
|
... pass
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: can't assign to function call (<doctest test.test_syntax[47]>, line 4)
|
File "<doctest test.test_syntax[47]>", line 4
|
||||||
|
SyntaxError: can't assign to function call
|
||||||
|
|
||||||
>>> if 1:
|
>>> if 1:
|
||||||
... pass
|
... pass
|
||||||
|
@ -413,12 +453,14 @@ leading to spurious errors.
|
||||||
... x() = 1
|
... x() = 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: can't assign to function call (<doctest test.test_syntax[48]>, line 6)
|
File "<doctest test.test_syntax[48]>", line 6
|
||||||
|
SyntaxError: can't assign to function call
|
||||||
|
|
||||||
>>> f(a=23, a=234)
|
>>> f(a=23, a=234)
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
SyntaxError: keyword argument repeated (<doctest test.test_syntax[49]>, line 1)
|
File "<doctest test.test_syntax[49]>", line 1
|
||||||
|
SyntaxError: keyword argument repeated
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue