HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/zope/interface/tests/__pycache__/test_advice.cpython-38.pyc
U

ؒ�]�)�@s�dZddlZddlZddlmZddlmZGdd�dej�ZdZGdd	�d	ej�Z	Gd
d�dej�Z
Gdd
�d
ej�ZGdd�dej�ZdS)asTests for advice

This module was adapted from 'protocols.tests.advice', part of the Python
Enterprise Application Kit (PEAK).  Please notify the PEAK authors
(pje@telecommunity.com and tsarna@sarna.org) if bugs are found or
Zope-specific changes are required, so that the PEAK version of this module
can be kept in sync.

PEAK is a Python application framework that interoperates with (but does
not require) Zope 3 and Twisted.  It provides tools for manipulating UML
models, object-relational persistence, aspect-oriented programming, and more.
Visit the PEAK home page at http://peak.telecommunity.com for more information.
�N)�_skip_under_py2)�_skip_under_py3kc@s8eZdZdd�Zedd��Zdd�Zdd�Zd	d
�ZdS)�
FrameInfoTestcCsLddlm}|j\}}}}|�|d�|j||fD]}|�||jk�q2dS)Nr��advisory_testing�module)�zope.interface.testsrZmoduleLevelFrameInfo�assertEqual�__dict__�
assertTrue�
my_globals��selfr�kindr�f_locals�	f_globals�d�r�B/usr/lib/python3/dist-packages/zope/interface/tests/test_advice.py�
test_w_module%s�zFrameInfoTest.test_w_modulecCs^ddlm}|jj\}}}}|�|d�|�||jjk�|j|fD]}|�||jk�qDdS�Nrr�class)rrZClassicClass�classLevelFrameInfor	rr
rr
rrr�test_w_ClassicClass-s�
�z!FrameInfoTest.test_w_ClassicClasscCsLddlm}|jj\}}}}|�|d�|j|fD]}|�||jk�q2dSr)rrZ
NewStyleClassrr	r
rrr
rrr�test_w_NewStyleClass;s�z"FrameInfoTest.test_w_NewStyleClasscCs`ddlm}|t���\}}}}|�|d�|�|t�k�|j|fD]}|�|t�k�qFdS)Nr��getFrameInfoz
function call)	�zope.interface.advicer�sys�	_getframer	r�localsr
�globals)rrrrrrrrrr�test_inside_function_callFsz'FrameInfoTest.test_inside_function_callcCsnddlm}d|i}i}tt||�|�|dd�|�|d|k�|�|ddk�|�|d|k�dS)	Nrrrr�execrrr)rrr#�_FUNKY_EXECr	r)rrZ_globalsZ_localsrrr�test_inside_execNszFrameInfoTest.test_inside_execN)	�__name__�
__module__�__qualname__rrrrr"r%rrrrr#s

rzMimport sys
kind, module, f_locals, f_globals = getFrameInfo(sys._getframe())
c@s<eZdZedd��Zedd��Zedd��Zedd��Zd	S)
�AdviceTestscsnddlm�g�G��fdd�dt�}dD]}|�t|t��|\}q*|��d|fd|gfd|ggfg�dS)	Nr��pingcs*eZdZ��d���d���d�dS)z#AdviceTests.test_order.<locals>.Foo���N�r&r'r(r��logr+rr�Foods

r2)r,r-r.r,r-r.)�%zope.interface.tests.advisory_testingr+�objectr�
isinstance�listr	)rr2�irr0r�
test_order`szAdviceTests.test_ordercsLddlm�Gdd�dt��G��fdd�d��}|\}|�|j�k�dS)Nrr*c@seZdZdS)z8AdviceTests.test_single_explicit_meta.<locals>.MetaclassNr/rrrr�	Metaclasstsr9cseZdZ�Z�gd�dS)z7AdviceTests.test_single_explicit_meta.<locals>.Concreter,N�r&r'r(Z
__metaclass__r�r9r+rr�Concretewsr<)r3r+�typer�	__class__)rr<rr;r�test_single_explicit_metaps
z%AdviceTests.test_single_explicit_metacs�ddlm�Gdd�dt��Gdd�dt��G�fdd�d�}G�fd	d
�d
�}z$G�fdd�d||�}|�d
�Wntk
r�YnXGdd�d����G��fdd�d||�}|�t|t��|\}|�t|���dS)Nrr*c@seZdZdS)z0AdviceTests.test_mixed_metas.<locals>.Metaclass1Nr/rrrr�
Metaclass1�sr@c@seZdZdS)z0AdviceTests.test_mixed_metas.<locals>.Metaclass2Nr/rrrr�
Metaclass2�srAcseZdZ�ZdS)z+AdviceTests.test_mixed_metas.<locals>.Base1Nr:r)r@rr�Base1�srBcseZdZ�ZdS)z+AdviceTests.test_mixed_metas.<locals>.Base2Nr:r)rArr�Base2�srCcseZdZ�gd�dS�z-AdviceTests.test_mixed_metas.<locals>.Derivedr,Nr/rr*rr�Derived�srEz(Should have gotten incompatibility errorc@seZdZdS)z0AdviceTests.test_mixed_metas.<locals>.Metaclass3Nr/rrrr�
Metaclass3�srFcseZdZ�Z�gd�dSrDr:r)rFr+rrrE�s)r3r+r=Zfail�	TypeErrorrr5r6)rrBrCrEr)r@rArFr+r�test_mixed_metasszAdviceTests.test_mixed_metascsDddlm�ddlm}G�fdd�d�}|\}|�t|�|�dS)Nrr*��	ClassTypecseZdZ�gd�dS)z-AdviceTests.test_meta_no_bases.<locals>.Thingr,Nr/rr*rr�Thing�srK)r3r+�typesrJr	r=)rrJrK�klassrr*r�test_meta_no_bases�s
zAdviceTests.test_meta_no_basesN)r&r'r(rr8r?rHrNrrrrr)^s


!r)c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�Test_isClassAdvisorcOsddlm}|||�S)Nr)�isClassAdvisor)rrP)r�args�kwrPrrr�_callFUT�szTest_isClassAdvisor._callFUTcCs|�|�|�d�dS)NF�r	rS�rrrr�test_w_non_function�sz'Test_isClassAdvisor.test_w_non_functioncCsdd�}|�|�|�d�dS)NcSs
t��dS�N��NotImplementedErrorrrrr�foo�sz7Test_isClassAdvisor.test_w_normal_function.<locals>.fooFrT)rrZrrr�test_w_normal_function�sz*Test_isClassAdvisor.test_w_normal_functioncCs&dd�}t�|_|�|�|�d�dS)NcSs
t��dSrWrXrrrr�bar�sz8Test_isClassAdvisor.test_w_advisor_function.<locals>.barT)r4ZpreviousMetaclassr	rS)rr\rrr�test_w_advisor_function�sz+Test_isClassAdvisor.test_w_advisor_functionN)r&r'r(rSrVr[r]rrrrrO�srOc@sxeZdZdd�Zedd��Zdd�Zdd�Zed	d
��Ze	dd��Z
ed
d��Ze	dd��Zedd��Z
e	dd��ZdS)�Test_determineMetaclasscOsddlm}|||�S)Nr)�determineMetaclass)rr_)rrQrRr_rrrrS�sz Test_determineMetaclass._callFUTcCs"ddlm}|�|�d�|�dS)NrrIr)rLrJr	rS)rrJrrr�
test_empty�sz"Test_determineMetaclass.test_emptycCs(Gdd�dt�}|�|�d|�|�dS)Nc@seZdZdS)zDTest_determineMetaclass.test_empty_w_explicit_metatype.<locals>.MetaNr/rrrr�Meta�srar�r=r	rS�rrarrr�test_empty_w_explicit_metatype�sz6Test_determineMetaclass.test_empty_w_explicit_metatypecCs(Gdd�dt�}|�|�|f�t�dS)Nc@seZdZdS)z1Test_determineMetaclass.test_single.<locals>.MetaNr/rrrrra�srarbrcrrr�test_single�sz#Test_determineMetaclass.test_singlecs>Gdd�dt��G�fdd�dt�}|�|�|tf���dS)Nc@seZdZdS)z<Test_determineMetaclass.test_meta_of_class.<locals>.MetametaNr/rrrr�Metameta�srfcseZdZ�ZdS)z8Test_determineMetaclass.test_meta_of_class.<locals>.MetaNr:r�rfrrra�srarbrcrrgr�test_meta_of_class�sz*Test_determineMetaclass.test_meta_of_classcCsJd�ddddg�}i}t||�|d}|d}|�|�|tf�|�dS)N�
zclass Metameta(type):�    passz%class Meta(type, metaclass=Metameta):rarf)�joinr#r	rSr=)r�EXEC�globsrarfrrr�test_meta_of_class_py3k�s�
z/Test_determineMetaclass.test_meta_of_class_py3kcsbGdd�dt��Gdd�d���G�fdd�dt�}G�fdd�dt�}|�|�||f���dS)	Nc@seZdZdS)zBTest_determineMetaclass.test_multiple_in_hierarchy.<locals>.Meta_ANr/rrrr�Meta_A�sroc@seZdZdS)zBTest_determineMetaclass.test_multiple_in_hierarchy.<locals>.Meta_BNr/rrrr�Meta_B�srpcseZdZ�ZdS)z=Test_determineMetaclass.test_multiple_in_hierarchy.<locals>.ANr:r�rorr�A�srrcseZdZ�ZdS)z=Test_determineMetaclass.test_multiple_in_hierarchy.<locals>.BNr:r�rprr�B�srtrb�rrrrtr�rorpr�test_multiple_in_hierarchy�s
z2Test_determineMetaclass.test_multiple_in_hierarchyc
Csbd�ddddddddg�}i}t||�|d}|d}|d	}|d
}|�|�||f�|�dS)Nri�class Meta_A(type):rjzclass Meta_B(Meta_A):� class A(type, metaclass=Meta_A):� class B(type, metaclass=Meta_B):rorprrrt)rkr#r	rS�rrlrmrorprrrtrrr�test_multiple_in_hierarchy_py3k�s"�

z7Test_determineMetaclass.test_multiple_in_hierarchy_py3kcs`Gdd�dt��Gdd�dt��G�fdd�dt�}G�fdd�dt�}|�t|j||f�dS)	Nc@seZdZdS)zFTest_determineMetaclass.test_multiple_not_in_hierarchy.<locals>.Meta_ANr/rrrrrosroc@seZdZdS)zFTest_determineMetaclass.test_multiple_not_in_hierarchy.<locals>.Meta_BNr/rrrrrpsrpcseZdZ�ZdS)zATest_determineMetaclass.test_multiple_not_in_hierarchy.<locals>.ANr:rrqrrrrsrrcseZdZ�ZdS)zATest_determineMetaclass.test_multiple_not_in_hierarchy.<locals>.BNr:rrsrrrtsrt)r=�assertRaisesrGrSrurrvr�test_multiple_not_in_hierarchys
z6Test_determineMetaclass.test_multiple_not_in_hierarchyc
Cs`d�ddddddddg�}i}t||�|d}|d}|d	}|d
}|�t|j||f�dS)Nrirxrjzclass Meta_B(type):ryrzrorprrrt)rkr#r}rGrSr{rrr�#test_multiple_not_in_hierarchy_py3ks"�

z;Test_determineMetaclass.test_multiple_not_in_hierarchy_py3kN)r&r'r(rSrr`rdrerhrrnrwr|r~rrrrrr^�s"

	



r^c@sTeZdZdd�Zdd�Zedd��Zedd��Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)�Test_minimalBasescCsddlm}||�S)Nr)�minimalBases)rr�)rZklassesr�rrrrS4szTest_minimalBases._callFUTcCs|�|�g�g�dSrWrTrUrrrr`8szTest_minimalBases.test_emptycCs*Gdd�d�}|�|�t|�g�g�dS)Nc@seZdZdS)z1Test_minimalBases.test_w_oldstyle_meta.<locals>.CNr/rrrr�C=sr��r	rSr=�rr�rrr�test_w_oldstyle_meta;sz&Test_minimalBases.test_w_oldstyle_metacCs(Gdd�d�}|�|�|g�|g�dS)Nc@seZdZdS)z2Test_minimalBases.test_w_oldstyle_class.<locals>.CNr/rrrrr�Csr�rTr�rrr�test_w_oldstyle_classAsz'Test_minimalBases.test_w_oldstyle_classcCs|�|�tg�tg�dSrWr�rUrrr�test_w_newstyle_metaGsz&Test_minimalBases.test_w_newstyle_metacCs*Gdd�dt�}|�|�|g�|g�dS)Nc@seZdZdS)z2Test_minimalBases.test_w_newstyle_class.<locals>.CNr/rrrrr�Ksr��r4r	rSr�rrr�test_w_newstyle_classJsz'Test_minimalBases.test_w_newstyle_classcCs�Gdd�dt�}Gdd�d|�}Gdd�d|�}Gdd�dt�}|�|�|||g�|g�|�|�||g�|g�|�|�||g�|g�|�|�||g�|g�|�|�|||g�||g�dS)	Nc@seZdZdS)z@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.ANr/rrrrrrPsrrc@seZdZdS)z@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.BNr/rrrrrtRsrtc@seZdZdS)z@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.CNr/rrrrr�Tsr�c@seZdZdS)z@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.DNr/rrrr�DVsr�r�)rrrrtr�r�rrr�#test_simple_hierarchy_skips_impliedOsz5Test_minimalBases.test_simple_hierarchy_skips_impliedcCs@Gdd�dt�}Gdd�dt�}|�|�|||g�||g�dS)Nc@seZdZdS)z@Test_minimalBases.test_repeats_kicked_to_end_of_queue.<locals>.ANr/rrrrrr_srrc@seZdZdS)z@Test_minimalBases.test_repeats_kicked_to_end_of_queue.<locals>.BNr/rrrrrtasrtr�rurrr�#test_repeats_kicked_to_end_of_queue^sz5Test_minimalBases.test_repeats_kicked_to_end_of_queueN)r&r'r(rSr`rr�r�r�r�r�r�rrrrr�2s

r�)
�__doc__ZunittestrZzope.interface._compatrrZTestCaserr$r)rOr^r�rrrr�<module>s6Mr