Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_parser.cpython-34.pyc

�
f ff�@sddlZddlZddlZddlZddlZddlmZddlmZGdd�dej	�Z
Gdd�dej	�ZGdd	�d	ej	�ZGd
d�dej	�Z
Gdd
�d
ej	�ZGdd�dej	�Zdd�Zedkre�ndS)�N)�support)�assert_python_failurec@sHeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5S)6�RoundtripLegalSyntaxTestCasecCs�||�}|j�}ytj|�}Wn?tjk
rl}z|jd||f�WYdd}~XnX|j||j�d�dS)Nzcould not roundtrip %r: %sz!could not re-generate syntax tree)�totuple�parser�sequence2st�ParserError�fail�assertEqual)�self�f�s�st1�t�st2Zwhy�r�5/opt/alt/python34/lib64/python3.4/test/test_parser.py�	roundtrips*z&RoundtripLegalSyntaxTestCase.roundtripcCs|jtj|�dS)N)rr�expr)rr
rrr�
check_exprsz'RoundtripLegalSyntaxTestCase.check_exprcCsItjd�}|j�}i}t|i|�|j|dt�dS)Nz/from __future__ import unicode_literals; x = ''�x)r�suite�compile�execZassertIsInstance�str)rr�codeZscoperrr�test_flags_passeds
z.RoundtripLegalSyntaxTestCase.test_flags_passedcCs|jtj|�dS)N)rrr)rr
rrr�check_suite(sz(RoundtripLegalSyntaxTestCase.check_suitecCs�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd	�|jd
�|jd�|jd�|jd
�|jd�|jd�|jd�|jd�dS)Nzdef f(): yield 1zdef f(): yieldzdef f(): x += yieldzdef f(): x = yield 1zdef f(): x = y = yield 1zdef f(): x = yieldzdef f(): x = y = yieldzdef f(): 1 + (yield)*2zdef f(): (yield 1)*2zdef f(): return; yield 1zdef f(): yield 1; returnzdef f(): yield from 1zdef f(): x = yield from 1zdef f(): f((yield from 1))zdef f(): yield 1; return 1z1def f():
    for x in range(30):
        yield x
z)def f():
    if (yield):
        yield x
)r)rrrr�test_yield_statement+s"















z1RoundtripLegalSyntaxTestCase.test_yield_statementcCs|jd�|jd�dS)Nz3def f():
    x = 0
    def g():
        nonlocal x
z:def f():
    x = y = 0
    def g():
        nonlocal x, y
)r)rrrr�test_nonlocal_statementBs
z4RoundtripLegalSyntaxTestCase.test_nonlocal_statementcCs|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd	�|jd
�|jd�|jd�|jd
�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd �|jd!�|jd"�|jd#�|jd$�|jd%�|jd&�|jd'�|jd(�dS))Nzfoo(1)z	[1, 2, 3]z[x**3 for x in range(20)]z"[x**3 for x in range(20) if x % 3]z+[x**3 for x in range(20) if x % 2 if x % 3]zlist(x**3 for x in range(20))z&list(x**3 for x in range(20) if x % 3)z/list(x**3 for x in range(20) if x % 2 if x % 3)z
foo(*args)zfoo(*args, **kw)z	foo(**kw)zfoo(key=value)zfoo(key=value, *args)zfoo(key=value, *args, **kw)zfoo(key=value, **kw)zfoo(a, b, c, *args)zfoo(a, b, c, *args, **kw)zfoo(a, b, c, **kw)zfoo(a, *args, keyword=23)z	foo + barz	foo - barz	foo * barz	foo / barz
foo // barz	lambda: 0zlambda x: 0zlambda *y: 0zlambda *y, **z: 0z
lambda **z: 0zlambda x, y: 0zlambda foo=bar: 0z"lambda foo=bar, spaz=nifty+spit: 0zlambda foo=bar, **z: 0z#lambda foo=bar, blaz=blat+2, **z: 0z'lambda foo=bar, blaz=blat+2, *y, **z: 0zlambda x, *y, **z: 0z(x for x in range(10))zfoo(x for x in range(10))z...za[...])r)rrrr�test_expressionsLsP






































z-RoundtripLegalSyntaxTestCase.test_expressionscCs|jd�dS)N�a)r)rrrr�test_simple_expressionvsz3RoundtripLegalSyntaxTestCase.test_simple_expressioncCs|jd�|jd�dS)Nza = bza = b = c = d = e)r)rrrr�test_simple_assignmentszs
z4RoundtripLegalSyntaxTestCase.test_simple_assignmentscCs�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd	�|jd
�|jd�|jd�dS)
Nza += bza -= bza *= bza /= bza //= bza %= bza &= bza |= bza ^= bza <<= bza >>= bza **= b)r)rrrr�!test_simple_augmented_assignments~s










z>RoundtripLegalSyntaxTestCase.test_simple_augmented_assignmentscCs�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd	�|jd
�|jd�|jd�|jd
�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd �|jd!�|jd"�|jd#�|jd$�dS)%Nz
def f(): passzdef f(*args): passzdef f(*args, **kw): passzdef f(**kw): passzdef f(foo=bar): passzdef f(foo=bar, *args): passz!def f(foo=bar, *args, **kw): passzdef f(foo=bar, **kw): passzdef f(a, b): passzdef f(a, b, *args): passzdef f(a, b, *args, **kw): passzdef f(a, b, **kw): passzdef f(a, b, foo=bar): passz!def f(a, b, foo=bar, *args): passz'def f(a, b, foo=bar, *args, **kw): passz def f(a, b, foo=bar, **kw): passz@staticmethod
def f(): passz,@staticmethod
@funcattrs(x, y)
def f(): passz@funcattrs()
def f(): passzdef f(*, a): passzdef f(*, a = 5): passzdef f(*, a = 5, b): passzdef f(*, a, b = 5): passz def f(*, a, b = 5, **kwds): passzdef f(*args, a): passzdef f(*args, a = 5): passzdef f(*args, a = 5, b): passzdef f(*args, a, b = 5): passz$def f(*args, a, b = 5, **kwds): passzdef f(a: int): passzdef f(a: int = 5): passzdef f(*args: list): passzdef f(**kwds: dict): passzdef f(*, a: int): passzdef f(*, a: int = 5): passzdef f() -> int: pass)r)rrrr�test_function_defs�sH


































z/RoundtripLegalSyntaxTestCase.test_function_defscCsE|jd�|jd�|jd�|jd�|jd�dS)Nzclass foo():passzclass foo(object):passz!@class_decorator
class foo():passz&@class_decorator(arg)
class foo():passz(@decorator1
@decorator2
class foo():pass)r)rrrr�test_class_defs�s




z,RoundtripLegalSyntaxTestCase.test_class_defscCs�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd	�|jd
�|jd�|jd�|jd
�|jd�|jd�|jd�|jd�dS)Nzfrom sys.path import *zfrom sys.path import dirnamezfrom sys.path import (dirname)zfrom sys.path import (dirname,)z*from sys.path import dirname as my_dirnamez,from sys.path import (dirname as my_dirname)z-from sys.path import (dirname as my_dirname,)z&from sys.path import dirname, basenamez(from sys.path import (dirname, basename)z)from sys.path import (dirname, basename,)z4from sys.path import dirname as my_dirname, basenamez6from sys.path import (dirname as my_dirname, basename)z7from sys.path import (dirname as my_dirname, basename,)z5from sys.path import dirname, basename as my_basenamez7from sys.path import (dirname, basename as my_basename)z8from sys.path import (dirname, basename as my_basename,)zfrom .bogus import x)r)rrrr�test_import_from_statement�s.









z7RoundtripLegalSyntaxTestCase.test_import_from_statementcCsE|jd�|jd�|jd�|jd�|jd�dS)Nz
import syszimport sys as systemzimport sys, mathzimport sys as system, mathzimport sys, math as my_math)r)rrrr�test_basic_import_statement�s




z8RoundtripLegalSyntaxTestCase.test_basic_import_statementcCsl|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�dS)	Nzfrom . import namezfrom .. import namezfrom ... import namezfrom .... import namezfrom .pkg import namezfrom ..pkg import namezfrom ...pkg import namezfrom ....pkg import name)r)rrrr�test_relative_imports�s






z2RoundtripLegalSyntaxTestCase.test_relative_importscCs|jd�dS)Nz"# -*- coding: iso-8859-1 -*-
pass
)r)rrrr�test_pep263�sz(RoundtripLegalSyntaxTestCase.test_pep263cCs|jd�dS)Nzassert alo < ahi and blo < bhi
)r)rrrr�test_assert�sz(RoundtripLegalSyntaxTestCase.test_assertcCs+|jd�|jd�|jd�dS)Nzwith open('x'): pass
zwith open('x') as f: pass
z*with open('x') as f, open('y') as g: pass
)r)rrrr�	test_with�s

z&RoundtripLegalSyntaxTestCase.test_withcCsR|jd�|jd�|jd�|jd�|jd�|jd�dS)Nztry: pass
except: pass
ztry: pass
finally: pass
z'try: pass
except A: pass
finally: pass
z4try: pass
except A: pass
except: pass
finally: pass
z"try: pass
except: pass
else: pass
z0try: pass
except: pass
else: pass
finally: pass
)r)rrrr�
test_try_stmt�s




z*RoundtripLegalSyntaxTestCase.test_try_stmtcs�d}tj|�}|jdddd�}�fdd��t�|��}|jddd d!d"d#d$d&d'd(d)d*d+d-d/d1g|�dS)2Nzdef f(x):
    return x + 1Z	line_info�Zcol_infoc3sf|d}|d}t|t�r]x<|dd�D]"}x�|�D]}|VqGWq4Wn|VdS)Nrr.)�
isinstance�tuple)�treeZ	node_type�nextZeltr)�walkrrr3s

z8RoundtripLegalSyntaxTestCase.test_position.<locals>.walk�defrr���(�r���)��:��	��return��+�
�1��)r.zdefr.r)r.rr.r5)r6r7r.r8)r.rr.r9)r:r;r.r6)r<r=r.r:)r5r>r.r?���)r8r>r@rH)r.zreturnr@r5)r.rr@r<)rBrCr@rD)r@rEr@rF)r5r>r@rGrH)r9r>r@rHrH)r5r>r@rHrH)rr>r@rH)rrr�listr
)rrrrZ	terminalsr)r3r�
test_position	s.
z*RoundtripLegalSyntaxTestCase.test_positioncCs8|jd�|jd�|jd�|jd�dS)Nz*a = yz
x, *b, = mz[*a, *b] = yzfor [*x, b] in x: pass)r)rrrr�test_extended_unpacking.s


z4RoundtripLegalSyntaxTestCase.test_extended_unpackingcCs+|jd�|jd�|jd�dS)Nzraise
zraise e
zBtry:
    suite
except Exception as e:
    raise ValueError from e
)r)rrrr�test_raise_statement4s

z1RoundtripLegalSyntaxTestCase.test_raise_statementcCs8|jd�|jd�|jd�|jd�dS)Nz{2}z{2,}z{2, 3}z{2, 3,})r)rrrr�test_set_displays<s


z.RoundtripLegalSyntaxTestCase.test_set_displayscCsE|jd�|jd�|jd�|jd�|jd�dS)Nz{}z{a:b}z{a:b,}z
{a:b, c:d}z{a:b, c:d,})r)rrrr�test_dict_displaysBs




z/RoundtripLegalSyntaxTestCase.test_dict_displayscCs+|jd�|jd�|jd�dS)Nz{x for x in seq}z{f(x) for x in seq}z#{f(x) for x in seq if condition(x)})r)rrrr�test_set_comprehensionsIs

z4RoundtripLegalSyntaxTestCase.test_set_comprehensionscCs+|jd�|jd�|jd�dS)Nz{x:x for x in seq}z({x**2:x[3] for x in seq if condition(x)}z4{x:x for x in seq1 for y in seq2 if condition(x, y)})r)rrrr�test_dict_comprehensionsNs

z5RoundtripLegalSyntaxTestCase.test_dict_comprehensionsN)�__name__�
__module__�__qualname__rrrrrrr r"r#r$r%r&r'r(r)r*r+r,r-rJrKrLrMrNrOrPrrrrrs4	
*0
%rc@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�IllegalSyntaxTestCasecCs>ytj|�Wntjk
r(YnX|jd|�dS)Nz"did not detect invalid tree for %r)rrrr	)rr1Zlabelrrr�check_bad_tree[s
z$IllegalSyntaxTestCase.check_bad_treecCs|jdd�dS)Nr.r@�z<junk>)r.r@rV)rU)rrrr�	test_junkcszIllegalSyntaxTestCase.test_junkc$Csdg}|j|d,�dS)hN����r.r4r�r6r7r:r;r<r=�#r5r>r8�	�
��rA�9�$�%�&�'�)�*�+�,�-�.�/�0�1r@rE��yieldr9rzdef f():
  return 1
  yield 1�r.zdef�r.r�r6r7�r:r;�r\rtru�r<r=�r5r>�r8r>�r.zreturn�r@rE�ror{�rnr|�rmr}�rlr~�rkr�rjr��rir��rhr��rgr��rfr��rer��rdr��rcr��rbr��rarzr��r`r��r_r��r.zyield�r@rE�ror��rnr��rmr��rlr��rkr��rjr��rir��rhr��rgr��rfr��rer��rdr��rcr��rbr��rpr�r��r`r��r_r��r5r>�r^r�r��rYr��r9r>�r^r�r�r��rYr��r]rxryr��r[rrrsrvrwr��r5r>�rr>�rZr�r�r��rYr�)rXr�)rU)rr1rrr�test_illegal_yield_1gsfz*IllegalSyntaxTestCase.test_illegal_yield_1c%Csdy}|j|d3�dS)zN���	�
�r.�from��
__future__�import��
generatorsr5r>��r4r�r6r7r:r;r<r=�#r8��rA�9�$�%�&�'�)�*�+�,�-�.�/�0�1r@rE�rqr9rzdef f():
  return 1
  yield 1�r.zfrom�r.r��r�r��r.zimport�r.r��r�r��r�r�r�r�r��r�r��r5r>�r�r�r��r�r��r.zdef�r.r�r6r7�r:r;�r�r�r��r<r=�r5r>�r8r>�r.zreturn�r@rE�r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r�r��r�r��r�r��r.zyield�r@rE�r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r��r�r�r�r�r�r�r�r�r�r�r�r5r>�r�rr�r�r�r9r>�r�r�rr	�r�r
�r�r�r�r�r�r�r�r�r�r�r5r>�rr>�r�r
rr�r�r)r�r�r)rU)rr1rrr�test_illegal_yield_2�sxz*IllegalSyntaxTestCase.test_illegal_yield_2cCsd:}|j|d�dS);N��7�"�#�$�%�'�(�)�*�+�,�-�.�/r.r!��,�cr5r>rza,,c�r.r!�r!r%�r r&�rr'�rr(�rr)�rr*�rr+�rr,�rr-�rr.�rr/�rr0�rr1�r"r#�r"r#�r.r$�r!r5�r r6�rr7�rr8�rr9�rr:�rr;�rr<�rr=�rr>�rr?�rr@�rrA�rr2r3r4rB�r5r>�rr>)rrCrDrE)rU)rr1rrr�test_a_comma_comma_c�s.z*IllegalSyntaxTestCase.test_a_comma_comma_ccCsdD}|j|d�dS)EN���	�
��8�#�$�%�&�(�)�*�+�,�-�.�/�0r.r!��%�$=�br5r>rza $= b�r.r!�rYr^�rXr_�rWr`�rVra�rUrb�rTrc�rSrd�rRre�rQrf�rPrg�rOrh�rNri�rMrj�rLrk�r[r\�rZrm�r.r]�rYro�rXrp�rWrq�rVrr�rUrs�rTrt�rSru�rRrv�rQrw�rPrx�rOry�rNrz�rMr{�rLr|�rKrlrnr}�rJr~�r5r>�rIrr��rHr��rr>)rGr�r�)rU)rr1rrr�test_illegal_operator�s:z+IllegalSyntaxTestCase.test_illegal_operatorcCsd}|j|d�dS)N���	�
�r.�foor5r>rzmalformed global ast�r.r��r�r��r�r��r5r>�r�r�r��r�r��r5r>�rr>)r�r�r�r�)rU)rr1rrr�test_malformed_globalsz+IllegalSyntaxTestCase.test_malformed_globalcCsd}|j|d�dS)N���
���r.r�r����fredr5r>rzfrom import fred�r.zfrom�r.zimport�r.r��r�r��r�r��r�r�r�r��r�r��r�r��r5r>�r�r�r��r�r��r5r>�rr>)r�r�r�r�)rU)rr1rrr�test_missing_import_source%sz0IllegalSyntaxTestCase.test_missing_import_sourceN)rQrRrSrUrWr�rrFr�r�r�rrrrrTYs7@!rTc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�CompileTestCasecCs8tjd�}tj|�}|jt|�d�dS)Nz2 + 3r8)rr�	compilestr
�eval)r�strrrr�test_compile_expr8sz!CompileTestCase.test_compile_exprcCsItjd�}tj|�}i}t||�|j|dd�dS)Nzx = 2; y = x + 3�yr8)rrr�rr
)rr�rZglobsrrr�test_compile_suite=s

z"CompileTestCase.test_compile_suitecCs)tjd�}|jttj|�dS)Nz	1 = 3 + 4)rr�assertRaises�SyntaxErrorr�)rr�rrr�test_compile_errorDsz"CompileTestCase.test_compile_errorcCsNtjd�}|jttj|�tjd�}|jttj|�dS)Nza = "\U12345678"z	a = "\u1")rrr�r�r�)rr�rrr�test_compile_badunicodeHsz'CompileTestCase.test_compile_badunicodecCs]tjd�}tj|�}|jt|�d�tj|�}|jt|�d�dS)Nz-3rV���r�)rrr�r
r�)rr��code1�code2rrr�test_issue_9011Ns
zCompileTestCase.test_issue_9011N)rQrRrSr�r�r�r�r�rrrrr�4s
r�c@s:eZdZdZdd�Zdd�Zdd�ZdS)	�ParserStackLimitTestCasezitry to push the parser to/over its limits.
    see http://bugs.python.org/issue1881 for a discussion
    cCsd|d|S)N�[�]r)r�levelrrr�_nested_expression\sz+ParserStackLimitTestCase._nested_expressioncCs,|jd�}tj|�}|j�dS)N�])r�rrr)r�er�rrr�test_deeply_nested_list_sz0ParserStackLimitTestCase.test_deeply_nested_listcCsK|jd�}td|�\}}}|jd|�|jd|�dS)N�dz-css_push: parser stack overflowsMemoryError)r�rZassertIn)rr��rc�out�errrrr�test_trigger_memory_erroresz2ParserStackLimitTestCase.test_trigger_memory_errorN)rQrRrS�__doc__r�r�r�rrrrr�Xsr�c@s@eZdZdZdd�ZejZejdd��ZdS)�STObjectTestCasez(Test operations on ST objects themselvesc
CsOtjd�}tjd�}tjd�}tjd�}tjd�}tjd�}|j||kd�|j||kd�|j||kd�|j||�|j||�|j||�|j||kd�|j||kd�|j||kd�|j||kd�|j||kd�|j||kd�|j||kd�|j||kd�|j||kd�|j||kd�|j||kd�|j||kd�|j||k||k�|j||k||k�|j||k||k�|j||k||k�|j||k||k�|j||k||k�|j||k||k�|j||k||k�|j||k||k�t|||�}t|||�}t|||g�d}	|j||	k�|j||k�|j|	|k�|j||	k�|j||k�|j|	|k�|j||k�|j|	|	k�|j||k�|j|dkd�|jd|kd�|jt	t
j|d�|jt	t
jd|�|jt	t
j
|d	�|jt	t
jd
|�dS)Nz2 + 3zx = 2; y = x + 3zlist(x**3 for x in range(20))TFr.g��hҘ@zspanish armadaiswaterloo)rrrr
�min�max�sortedZ
assertTruer��	TypeError�operator�ge�le�lt�gt)
rrrZst3Zst1_copyZst2_copyZst3_copyZbottom�topZmidrrr�test_comparisonspsfz!STObjectTestCase.test_comparisonscs�dd��tjd��tjd�����fdd������fdd�}|tjd	��|tjd
��|tjd��|tjd��|tjd
��|tjdddd��dS)NcSs:|dkr|S|dkr(|dd@Sd|dj�>S)Nr.�rV���)�
bit_length)�nrrr�
XXXROUNDUP�s
z0STObjectTestCase.test_sizeof.<locals>.XXXROUNDUPZPiiZhP3iP0hcs�|dkrdSd}t|�dko8t|dt�}|r\|t|d�d7}n|rr|dd�n
|dd�}|r�|�t|���7}x!|D]}|�|�7}q�Wn|S)Nrr.rHrHrH)�lenr/r)Znode�resZhasstrZchildrenZchild)r��nodesize�sizeofchildrenrrr��s%&
z4STObjectTestCase.test_sizeof.<locals>.sizeofchildrencs(�j|���|j���dS)N)�check_sizeofr)r�)�basesizer�rr�rr�check_st_sizeof�sz5STObjectTestCase.test_sizeof.<locals>.check_st_sizeofz2 + 3z	2 + 3 + 4z	x = 2 + 3r>z# -*- coding: utf-8 -*-r�z2,i�r�)rZcalcobjsize�structZcalcsizerrr)rr�r)r�r�r�rr�r�test_sizeof�szSTObjectTestCase.test_sizeofN)	rQrRrSr�r�rr�Zcpython_onlyr�rrrrr�ms=	r�c@seZdZdd�ZdS)�OtherParserCasec
Cs*|jt��tjdd�WdQXdS)Nr!r])r�r�rr)rrrr�test_two_args_to_expr�sz%OtherParserCase.test_two_args_to_exprN)rQrRrSr�rrrrr��sr�cCs tjtttttt�dS)N)rZrun_unittestrrTr�r�r�r�rrrr�	test_main�sr��__main__)rZunittest�sysr�r�ZtestrZtest.script_helperrZTestCaserrTr�r�r�r�r�rQrrrr�<module>s �K�$i