HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_pyclbr.cpython-37.pyc
B

��g�%�@s�dZddlZddlZddlmZddlmZmZmZddl	Z	ddl
mZmZ
ddlmZddlmZeedd	���Zeed
d	���ZGdd�de�Zed
kr�e
�dS)z/
   Test cases for pyclbr.py
   Nick Mathewson
�N)�dedent)�FunctionType�
MethodType�BuiltinFunctionType)�TestCase�main)�support)�partialcCsdS)N�r
r
r
�,/usr/local/lib/python3.7/test/test_pyclbr.py�<lambda>�rcCsdS)Nr
)�cr
r
rrr
c@s^eZdZdd�Zdd�Zdd�Zdd�Zddd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zd	S)�
PyclbrTestcCsJt|�t|�At|�}|rFtd|||ftjd�|�d|���dS)z0 succeed iff {l1} - {ignore} == {l2} - {ignore} zl1=%r
l2=%r
ignore=%r)�filez
%r missingN)�set�print�sys�stderrZfail�pop)�self�l1�l2�ignore�missingr
r
r�assertListEqszPyclbrTest.assertListEqcCs>||krdSt||�s td|�|�t||�d||f�dS)z2 succeed iff hasattr(obj,attr) or attr in ignore. Nz???zexpected hasattr(%r, %r))�hasattrrZ
assertTrue)r�obj�attrrr
r
r�
assertHasattr"s

zPyclbrTest.assertHasattrcCs4||krdS||kr$td|tjd�|�||�dS)z* succeed iff key in obj or key in ignore. Nz***)r)rrrZassertIn)rr�keyrr
r
r�assertHaskey*s
zPyclbrTest.assertHaskeycCs ||kr||kr|�||�dS)z2 succeed iff a == b or a in ignore or b in ignore N)�assertEqual)r�a�brr
r
r�assertEqualsOrIgnored1sz PyclbrTest.assertEqualsOrIgnoredNr
cCs^t|�tdg�B}|dkr,t|t�idg�}t�|�}dd�}�x�|��D�]�\}}||kr^qJ|�|||�t||�}t|tj	�r�|�
|ttf�|j
|kr�qJ|�|j
|j�qJ|�
|t�|j
|kr�qJdd�|jD�}	dd�|jD�}
y|�|	|
|�Wn td	|tjd
��YnXg}x2|j��D]$}||t||�|��r,|�|��q,Wg}
xV|j��D]H}|dd�dk�r�|d
d�dk�r�|
�d||�n
|
�|��qdWy4|�|
||�|�|j
|j�|�|j|j|�WqJtd	|tjd
��YqJXqJWdd�}xFt|�D]:}t||�}t|ttf��r|||��r|�|||��qWdS)z� succeed iff pyclbr.readmodule_ex(modulename) corresponds
            to the actual module object, module.  Any identifiers in
            ignore are ignored.   If no module is provided, the appropriate
            module is loaded with __import__.�objectNz<silly>cSsl|j}t|t�r.t||t�r(|j|k	r<dSnt|t�s<dS|j}|�d�rd|�d�sdd|j|f}||kS)NF�__z_%s%s)	�__dict__�
isinstancer�ClassMethodType�__self__r�__name__�
startswith�endswith)Zoclassr�name�	classdictZobjnamer
r
r�ismethodEs


z(PyclbrTest.checkModule.<locals>.ismethodcSsg|]
}|j�qSr
)r,)�.0�baser
r
r�
<listcomp>dsz*PyclbrTest.checkModule.<locals>.<listcomp>cSsg|]}t|d|��qS)r/)�getattr)r2r3r
r
rr4eszclass=%s)r�r'����_cSs0t|t�r|j|jkSt|t�r,|j|jkSdS)NF)r)�type�
__module__r,r�__globals__r()�item�moduler
r
r�
defined_in�s


z*PyclbrTest.checkModule.<locals>.defined_in) r�
__import__�globals�pyclbr�
readmodule_ex�itemsrr5r)�FunctionZassertIsInstancerrr:r"r=r9�	__bases__�superrrrrr(�keys�append�methodsr%r,r/�dirr!)rZ
moduleNamer=r�dictr1r/�valueZpy_itemZ
real_basesZpyclbr_basesZ
actualMethods�mZfoundMethodsr>r<r
r
r�checkModule6sb




$

zPyclbrTest.checkModulecCs4|�d�|�d�|jddd�|jddd�dS)NrAZastZdoctest)ZTestResultsZ	_SpoofOutZDocTestCaseZ
_DocTestSuite)rZdifflib)�Match)rN)rr
r
r�	test_easy�s

zPyclbrTest.test_easycCs|jddgd�dS)Nztest.pyclbr_inputZom)r)rN)rr
r
r�test_decorators�szPyclbrTest.test_decoratorscs�t�dddidf\}}}}}td�}��||||||�}��|d|d�}��|dd�}	��|	d	d
�}
��|dd�}��|d
d|d�}��|dd�}
��|dd�}��|dd�}��|dd�}||d�}���fdd���d|d|�dS)N�test�ztest.pya�        def f0:
            def f1(a,b,c):
                def f2(a=1, b=2, c=3): pass
                    return f1(a,b,d)
            class c1: pass
        class C0:
            "Test class."
            def F1():
                "Method."
                return 'return'
            class C1():
                class C2:
                    "Class nested within nested class."
                    def F3(): return 1+1

        �f0��f1r6�f2��c1��C0��F1��C1��C2��F3�)rTr[c
s���|��|���x|��D]}��|j|�qWx|��D]}��|j|�q>Wx�|��D]�}||||}}t|�|j|j|j|j	f}t|�|j|j|j|j	f}	��||	�t|��j
kr҈�|j|j��||j||j�q^WdS)a�Return equality of tree pairs.

            Each parent,children pair define a tree.  The parents are
            assumed equal.  Comparing the children dictionaries as such
            does not work due to comparison by identity and double
            linkage.  We separate comparing string and number attributes
            from comparing the children of input children.
            N)
r"rG�valuesZassertIs�parentr9r/rr=�lineno�ClassrIZchildren)
Zparent1Z	children1Zparent2Z	children2Zobr Zo1Zo2Zt1Zt2)�compare�mbrr
rri�s	z'PyclbrTest.test_nested.<locals>.compare)rArZ_create_treerDZ_nest_functionZ_nest_classrh)rrM�p�f�t�i�source�actualrTrVrWrYr[r]r_rarcZexpectedr
)rirjrr�test_nested�s"
zPyclbrTest.test_nestedcCsj|j}|ddd�|ddd�|ddd�|dd	d�|d
dd�|d�|d
dd�|d�|d�dS)NZrandom)ZRandom)rZcgi)�log�pickle)r	Zaifc)ZopenfpZ_aifc_params�	sre_parse)�dump�groups�posZpdb�pydoc)�input�outputzemail.parserztest.test_pyclbr)rN)r�cmr
r
r�test_others�szPyclbrTest.test_otherscCs|�ttjd�dS)Nzasyncore.foo)ZassertRaises�ImportErrorrArB)rr
r
r�test_issue_14798�szPyclbrTest.test_issue_14798)Nr
)
r,r:�__qualname__rrr!r%rNrPrQrqr|r~r
r
r
rrs
[=r�__main__)�__doc__�osr�textwrapr�typesrrrrAZunittestrrZ
unittest_mainrRr�	functoolsr	r9�staticmethodZStaticMethodType�classmethodr*rr,r
r
r
r�<module>s	[