Your IP : 216.73.216.213


Current Path : /opt/alt/python39/lib64/python3.9/idlelib/idle_test/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/idlelib/idle_test/__pycache__/test_pyparse.cpython-39.opt-2.pyc

a

XC?h�K�@s\ddlmZddlZddlmZGdd�dej�ZGdd�dej�ZedkrXej	d	d
�dS)�)�pyparseN)�
namedtuplec@seZdZdd�Zdd�ZdS)�ParseMapTestcCs`dd�dD�}t�|�}|�|td�td��|�|td�td��|�|dtd��dS)NcSsi|]}t|�t|��qS�)�ord)�.0�crr�C/opt/alt/python39/lib64/python3.9/idlelib/idle_test/test_pyparse.py�
<dictcomp>�z.ParseMapTest.test_parsemap.<locals>.<dictcomp>z 	

�	�a�xi�)rZParseMap�assertEqualr)�selfZ	keepwhite�mappingrrr	�
test_parsemap
s

zParseMapTest.test_parsemapcCs$t�dd�}|�d�tj�d�dS)N�z	 a([{b}])b"c'd
zxxx(((x)))x"x'x
)r�Parserr�	translateZtrans)r�parserrrr	�
test_transs�zParseMapTest.test_transN)�__name__�
__module__�__qualname__rrrrrr	rsrc@s�eZdZedd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�PyParseTestcCstjddd�|_dS)Nr)�indentwidth�tabwidth)rrr��clsrrr	�
setUpClassszPyParseTest.setUpClasscCs|`dS�N)rrrrr	�
tearDownClassszPyParseTest.tearDownClasscCs$|�|jjd�|�|jjd�dS)Nr)rrrr)rrrr	�	test_init"szPyParseTest.test_initc	Cs�|j}|j}|j}|�t��|d�Wd�n1s:0Yd}|D]P}|j|d��0||�||j|�||jd�Wd�qL1s�0YqLdS)Nr
)��a
��stringr)rr�set_code�assertRaises�AssertionError�subTest�code�study_level)r�eq�p�setcode�testsr'rrr	�
test_set_code&s&zPyParseTest.test_set_codecs�|j}|j}|j}|j}dd�}|d�|||�d�|d�|||�d�|d�d\}�|�t��|�Wd�n1s�0Y|�t��|d�Wd�n1s�0Y|�|d	d
�d��|||���||�fdd
�d���||�fd
d
�d�|�||�fdd
�d�d�|d�|||���||�fdd
�d���||�fdd
�d�|�||�fdd
�d���dS)NcSsdS)NFr��indexrrr	�char_in_string_false=rzDPyParseTest.test_find_good_parse_start.<locals>.char_in_string_falsezdef spam():
rzclass spam(  
�k"""This is a module docstring"""
class C:
    def __init__(self, a,
                 b=True):
        pass
)�!�*FcSsdS)NTrr3rrr	�<lambda>[rz8PyParseTest.test_find_good_parse_start.<locals>.<lambda>)Zis_char_in_stringcs|�kSr!rr3��posrr	r9crcs|�kSr!rr3r:rr	r9frcs|�kSr!rr3r:rr	r9irzZ"""This is a module docstring"""
class C:
    def __init__(self, a, b=True):
        pass
cs|�kSr!rr3r:rr	r9srcs|�kSr!rr3r:rr	r9trcs|�kSr!rr3r:rr	r9wr)rrr(Zfind_good_parse_startr)�	TypeError�assertIsNone)rr.r/r0�startr5Zpos0rr:r	�test_find_good_parse_start8s2$&z&PyParseTest.test_find_good_parse_startcCs�d}d}|j}|�|�|�t��|�d�Wd�n1sB0Y|�d�|�|j|�|�|�|�|j||d��dS)Nr6r8�r)rr(r)r*Zset_lorr,)rr,r;r/rrr	�test_set_loys�
(

zPyParseTest.test_set_loc
Cs�|j}|j}|j}|j}td�\}}}}}	tdgd��}
|
ddg|�|
dddg|�|
dddg|�|
d	ddg|�|
d
ddg|�|
dddg|�|
dddg|�|
d
ddg|�|
dddg|�|
dddg|�|
dgd�|�|
dddg|�|
dddg|	�|
dddg|�|
dddg|�|
dgd�|�|
dgd�|	�|
dgd�|	�|
dddg|�|
dddg|	�|
dddg|�f}|D]n}|j|jd��H||j�|�||jd�||j	|j	�||j
|j
�Wd�n1�s�0Y�qd|�|��dS)Nr@�TestInfo)r'�	goodlines�continuationr$rz$"""This is a complete docstring."""
�z$'''This is a complete docstring.'''
z""""This is a continued docstring.
z"'''This is a continued docstring.
z""""Closing quote does not match."
z"""Bracket in docstring [
z#'''Incomplete two line docstring.

�z"This is a complete string."
z"This is an incomplete string.
z'This is more incomplete.

)rrErFz# Comment\
z"("""Complete string in bracket"""
z("""Open string in bracket
�a = (1 + 2) - 5 *\
�0
   def function1(self, a,
                 b):
)rrE��
   def function1(self, a,\
�
   def function1(self, a,
�())
�)(
�{)(]
r&)rrr(Z_study1�rangerr+r'r-rCrDr=)
rr.r/r0�study�NONE�	BACKSLASH�FIRST�NEXT�BRACKETrBr1�testrrr	�test_study1�sL��
2zPyParseTest.test_study1c
	Cs�|j}|j}|j}|j}td�\}}}}}	tdddg�}
|
d|�|
d|�|
d|�|
d|�|
d	|	�f}|D]J}|j|jd
��(||j�||�|j�Wd�qh1s�0YqhdS)Nr@rBr'rDr$z%"""This is a continuation docstring.
z-'''This is a multiline-continued docstring.

rGrJr&)	rrr(Zget_continuation_typerOrr+r'rD)
rr.r/r0ZgettyperQrRrSrTrUrBr1rVrrr	�test_get_continuation_type�s �
z&PyParseTest.test_get_continuation_typecCs�|j}|j}|j}|j}tdgd��}|dddddd�|dddddd	�|d
ddddd�|d
ddddd�|dddddd�|dddddd�|dddddd�|dddddd�|dddddd�|d dd!dd"d#�|d$dd%d&dd'�|d(dd)d*dd+�|d,dd-d.dd/�|d0dd%d1dd�|d2ddddd�f}|D]�}|j|jd3��r||j�|�||jd4�||j|j	�||j
|j�||j|j�||j
|j�||j|j�Wd�n1�s�0Y�q|�|��dS)5NrB)r'r>�end�lastch�openbracket�
bracketingr$r��rrz0'''This is a multiline continuation docstring.

�0�')r^�rrE)r_rz # Comment\
�)r^�rErE)rbrz #Comment\
rG��*)r^�rrE)�rrHrE�:)�rEr��rE)�.rrJ��,rk)rirjrK�z3
   def function1(self, a,  # End of line comment.
�3)rirj)rmrF)rprEz7  a = ["first item",
  # Comment line
    "next item",
�7�)r^)rrrE)�rF)rdrE)�rF)�&rE)r8rF)�5rErLr�))r^ra�rFr�rIrrMrI�()r^rircrNr@�]�r^rarx�rFrE�rrz:\a
z\a�
r&rF)rrr(Z_study2rr+r'r-Z
stmt_startr>Zstmt_endrYrZZlastopenbracketposr[Zstmt_bracketingr\r=)rr.r/r0rPrBr1rVrrr	�test_study2�sl
�
�
�
�
�
�
�
�
�
�
��'
2zPyParseTest.test_study2c
Cs�|j}|j}|j}|j}tdddg�}|dd�|dd�|dd�|d	d
�|dd�|dd�|d
d�|dd�f}|d�|�t��|�Wd�n1s�0Y|D]J}|j|jd��(||j�||�|j	�Wd�q�1s�0Yq�dS)NrBr'�linesz[x for x in a]
rEz[x
for x in a
rFz[x\
for x in a\
z[x
for x in a
]
rIz%
"""Docstring comment L1"""
L2
L3
L4
z%
"""Docstring comment L1
L2"""
L3
L4
z&
"""Docstring comment L1\
L2\
L3\
L4\
rz+

"""Docstring comment L1\
L2\
L3\
L4\
"""
r@r$r&)
rrr(Zget_num_lines_in_stmtrr)�
IndexErrorr+r'r�)rr.r/r0�getlinesrBr1rVrrr	�test_get_num_lines_in_stmts*�$
z&PyParseTest.test_get_num_lines_in_stmtc
Cs�|j}|j}|j}|j}tdddg�}|dd�|dd�|dd�|d	d
�|dd
�|dd
�|d
d�|dd�|dd�|dd�|dd�f}|d�|�t��|�Wd�n1s�0Y|D]}||j�||�|j�q�dS)NrBr'�spaceszdef function1(self, a,
�z
    def function1(self, a,
�z
	def function1(self, a,
z
    def function1(
�z
	def function1(
z
    def function1(  
z2[
"first item",
  # Comment line
    "next item",
rz4[
  "first item",
  # Comment line
    "next item",
rFz1["first item",
  # Comment line
    "next item",
rEz(
rz(a
zdef function1(self, a, b):
)	rrr(Zcompute_bracket_indentrr)r*r'r�)rr.r/r0�indentrBr1rVrrr	�test_compute_bracket_indent1s.�$
z'PyParseTest.test_compute_bracket_indentc
Cs`|j}|j}|j}|j}d}|D]h}|j|d��H||�|�t��|�Wd�n1s`0YWd�q 1s~0Yq tdd�}|dd�|dd�|dd	�|d
d�|dd�|d
d�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�f}|D]N}	|j|	jd��(||	j�||�|	j	�Wd�n1�sN0Y�qdS)N)zdef function1(self, a, b\
z    """ (\
za = #\
r&rB)r'r�rGrza = 1 + 2 - 5 *\
z    a = 1 + 2 - 5 *\
r�z  a = "spam"\
rrz
  a = \
"a"\
z  a = #\
"a"\
r@za == \
rFza != \
z\
z    \
z	\
za\
rIz{}\
z(1 + 2) - 5 *\
)
rrr(Zcompute_backslash_indentr+r)r*rr'r�)
rr.r/r0r��errorsr'rBr1rVrrr	�test_compute_backslash_indentQs<D
�
z)PyParseTest.test_compute_backslash_indentc	Cs�|j}|j}|j}|j}tdddg�}|dd�|dd�|dd�|dd	�|d
d	�|dd	�|dd	�f}|D]J}|j|jd
��(||j�||�|j�Wd�qf1s�0YqfdS)NrBr'r�r$�	def a():
z
	def a():
rz
    def a():
z    z    def a(
z
	
    def a(
z	
    # Comment.
r&)rrr(Zget_base_indent_stringrr+r'r�)rr.r/r0Z
baseindentrBr1rVrrr	�test_get_base_indent_stringxs"�	
z'PyParseTest.test_get_base_indent_stringc	Cs�|j}|j}|j}|j}|j}tdddg�}|d|�|d|�|d|�|d|�|d|�|d	|�|d
|�|d|�|d|�|d
|�|d|�|d|�f}|D]H}|j|jd��&||j�|�|��Wd�q�1s�0Yq�dS)NrBr'�assert_r�rHz:
za:
z):
z(:
z":
rK�!def function1(self, a):
    pass
z
# A comment:
z"""A docstring:
r&)	�
assertTrue�assertFalserr(Zis_block_openerrr+r'r�)	r�yes�nor/r0ZopenerrBr1rVrrr	�test_is_block_opener�s.�
z PyParseTest.test_is_block_openerc	Cs�|j}|j}|j}|j}|j}tdddg�}|d|�|d|�|d|�|d|�|d|�|d	|�|d
|�|d|�|d|�|d
|�|d|�|d|�|d|�f
}|D]H}|j|jd��&||j�|�|��Wd�q�1s�0Yq�dS)NrBr'r�zreturn
z	break
z  continue
z     raise
z	pass    
zpass	
z	return #
zraised
z
returning
z	# return
z	"""break
z
"continue
r�r&)	r�r�rr(Zis_block_closerrr+r'r�)	rr�r�r/r0ZcloserrBr1rVrrr	�test_is_block_closer�s0�
z PyParseTest.test_is_block_closercCs�|j}|j}|j}|j}tdddg�}|dd�|dd�|dd�|d	d
�|dd�|d
d�|dd�|dd�|dd�|dd�f
}|D]J}|j|jd��(||j�||�|j�Wd�q~1s�0Yq~dS)NrBr'�bracketr$r]r%z()()
r|z(
)()
)r^rary�rIrE�r@rz()
()
)ryr�r�z()(
)
)r^rarxr}r�z(())
)r^ra�rErFr�r~z(
())
)r^ra)rFrFrfr�rNz(((())
)r^rar�)rFrI)rIr)r@rI)rrrFr&)rrr(Zget_last_stmt_bracketingrr+r'r�)rr.r/r0r\rBr1rVrrr	�test_get_last_stmt_bracketing�s,��
z)PyParseTest.test_get_last_stmt_bracketingN)rrr�classmethodr r"r#r2r?rArWrXr�r�r�r�r�r�r�r�rrrr	rs$

A2= 'r�__main__rF)�	verbosity)
ZidlelibrZunittest�collectionsrZTestCaserrr�mainrrrr	�<module>sM