AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/zope/interface/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /lib/python3/dist-packages/zope/interface/tests/__pycache__/test_declarations.cpython-310.pyc
o

$
x`:e�@s$dZddlZddlmZddlmZddlmZddlmZddlm	Z	Gdd	�d	e
�ZGd
d�dej�Z
Gdd
�d
ej�ZGdd�de�ZGdd�de�ZGdd�de	ej�ZGdd�dej�ZGdd�dee�ZGdd�de
�ZGdd�deej�ZGdd�deej�ZGdd�de�ZGd d!�d!ej�ZGd"d#�d#e�ZGd$d%�d%e�ZGd&d'�d'eje�ZGd(d)�d)eje�ZGd*d+�d+ej�ZGd,d-�d-e�ZGd.d/�d/ej�ZGd0d1�d1ej�Z Gd2d3�d3ej�Z!Gd4d5�d5ej�Z"Gd6d7�d7ej�Z#Gd8d9�d9ej�Z$Gd:d;�d;ee$�Z%Gd<d=�d=ej�Z&Gd>d?�d?e&�Z'Gd@dA�dAej�Z(GdBdC�dCej�Z)GdDdE�dEeje�Z*GdFdG�dGej�Z+GdHdI�dIej�Z,GdJdK�dKej�Z-GdLdM�dMe-e�Z.GdNdO�dOej�Z/GdPdQ�dQe/e�Z0GdRdS�dSej�Z1GdTdU�dUe1e�Z2GdVdW�dWe
�Z3GdXdY�dYe
�Z4dS)Zz@Test the new API for making and checking interface declarations
�N)�_skip_under_py3k)�PYTHON3)�OptimizationTestMixin)�MissingSomeAttrs)�!NameAndModuleComparisonTestsMixinc@seZdZ	ddd�ZdS)�_Py3ClassAdviceTc	Cs�ddl}|jdd��G}|��ts(t|||�|�t|�d�	Wd�dSzt|||�Wnty@YWd�dSw|rH|�d�	Wd�dS1sTwYdS)NrT��recordF�Didn't raise TypeError)	�warnings�catch_warnings�
resetwarningsr�exec�assertEqual�len�	TypeError�fail)�self�code�globs�locs�fails_under_py3kr�log�r�H/usr/lib/python3/dist-packages/zope/interface/tests/test_declarations.py�_run_generated_codes$��	
$�z#_Py3ClassAdvice._run_generated_codeN)T)�__name__�
__module__�__qualname__rrrrrrs�rc@�$eZdZdd�Zdd�Zdd�ZdS)�
NamedTestscCs6ddlm}|d�Gdd�dt��}|�|jd�dS)Nr��named�fooc@�eZdZdS)z"NamedTests.test_class.<locals>.FooN�rrrrrrr�Foo8�r&��zope.interface.declarationsr"�objectr�__component_name__)rr"r&rrr�
test_class5szNamedTests.test_classcCs.ddlm}|d�dd��}|�|jd�dS)Nrr!r#cS�t���N��NotImplementedError)�orrr�doFooA�z'NamedTests.test_function.<locals>.doFoo)r)r"rr+)rr"r2rrr�
test_function>s
zNamedTests.test_functioncCs@ddlm}Gdd�dt�}|�}|d�|�|�|jd�dS)Nrr!c@r$)z%NamedTests.test_instance.<locals>.FooNr%rrrrr&J�r&r#r()rr"r&r#rrr�
test_instanceGs
zNamedTests.test_instanceN)rrrr,r4r6rrrrr 3s		r c@�\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�EmptyDeclarationTestscCsddlm}|�S�Nr)�Declaration�r)r:�rr:rrr�	_getEmptyVszEmptyDeclarationTests._getEmptycCs|��}|�t|�g�dSr.)r=r�list�r�declrrr�test___iter___emptyZsz)EmptyDeclarationTests.test___iter___emptycCs.ddlm}|��}|�t|���|g�dS�Nr��	Interface)�zope.interface.interfacerDr=rr>�	flattened�rrDr@rrr�test_flattened_empty^sz*EmptyDeclarationTests.test_flattened_emptycCs$ddlm}|��}|�||�dSrB)rErDr=�assertNotInrGrrr�test___contains___emptycsz-EmptyDeclarationTests.test___contains___emptycCs<ddlm}|��}|�|�|��|�|j|dd��dS)NrrCT��strict)rErDr=�
assertTrue�extendsrGrrr�test_extends_emptyhsz(EmptyDeclarationTests.test_extends_emptycCs$|��}t|���}|�|g�dSr.)r=r>�
interfacesr)rr@�lrrr�test_interfaces_emptynsz+EmptyDeclarationTests.test_interfaces_emptycCs*ddlm}|��}|�|j||f�dSrB)rErDr=r�__sro__rGrrr�
test___sro___ssz#EmptyDeclarationTests.test___sro___cCs(ddlm}|��}|�|j|f�dSrB)rErDr=r�__iro__rGrrr�
test___iro___xsz#EmptyDeclarationTests.test___iro___cCs<|��}|�|�d��|�|�dd�d�|�|j�dS)N�attr�abc�def)r=�assertIsNone�getr�assertFalse�_v_attrsr?rrr�test_get}szEmptyDeclarationTests.test_getcCs*|��}t�|_|�|�|�|j�dSr.)r=r*r]�changedr\r?rrr� test_changed_w_existing__v_attrs�s
z6EmptyDeclarationTests.test_changed_w_existing__v_attrsN)
rrrr=rArHrJrOrRrTrVr^r`rrrrr8Rsr8c@s�eZdZdd�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�Zd1S)2�DeclarationTestscC�ddlm}|Sr9r;r<rrr�_getTargetClass��z DeclarationTests._getTargetClasscO�|��|i|��Sr.�rc�r�args�kwrrr�_makeOne��zDeclarationTests._makeOnecCs|��}|�t|j�g�dSr.)rjrr>�	__bases__r?rrr�test_ctor_no_bases�sz#DeclarationTests.test_ctor_no_basescCs6ddlm}|d�}|�|�}|�t|j�|g�dS�Nr��InterfaceClass�IFoo)rErprjrr>rl�rrprqr@rrr�test_ctor_w_interface_in_bases�s
z/DeclarationTests.test_ctor_w_interface_in_basescCs4ddlm}|�}|�|�}|�t|j�|g�dS�Nr��
Implements)r)rvrjrr>rl)rrv�implr@rrr�test_ctor_w_implements_in_bases�s
z0DeclarationTests.test_ctor_w_implements_in_basescCs"|��}|�|�|�|j�dSr.)rjr_rZr]r?rrr�!test_changed_wo_existing__v_attrs�s
z2DeclarationTests.test_changed_wo_existing__v_attrscCs|��}|�||�dSr.)rjrIr?rrr�test___contains__w_self�sz(DeclarationTests.test___contains__w_selfcCs,ddlm}|d�}|��}|�||�dSrn)rErprjrIrrrrr�"test___contains__w_unrelated_iface�sz3DeclarationTests.test___contains__w_unrelated_ifacecCs.ddlm}|d�}|�|�}|�||�dSrn)rErprj�assertInrrrrr�!test___contains__w_base_interface�s
z2DeclarationTests.test___contains__w_base_interfacecCs4ddlm}|d�}|�|�}|�t|�|g�dSrn�rErprjrr>rrrrr�test___iter___single_base�s
z*DeclarationTests.test___iter___single_basecCs@ddlm}|d�}|d�}|�||�}|�t|�||g�dS�Nrrorq�IBarr~�rrprqr�r@rrr�test___iter___multiple_bases�s
z-DeclarationTests.test___iter___multiple_basescCs@ddlm}|d�}|d|f�}|�|�}|�t|�|g�dSr�r~r�rrr�test___iter___inheritance�s

z*DeclarationTests.test___iter___inheritancecCsDddlm}|d�}|d�}|�|||f�}|�t|�||g�dSr�r~r�rrr�'test___iter___w_nested_sequence_overlap�s
z8DeclarationTests.test___iter___w_nested_sequence_overlapcCsFddlm}ddlm}|d�}|�|�}|�t|���||g�dS)NrrCrorq�rErDrprjrr>rF)rrDrprqr@rrr�test_flattened_single_base�s

z+DeclarationTests.test_flattened_single_basecCsRddlm}ddlm}|d�}|d�}|�||�}|�t|���|||g�dS�NrrCrorqr�r��rrDrprqr�r@rrr�test_flattened_multiple_bases�sz.DeclarationTests.test_flattened_multiple_basescCsTddlm}ddlm}|d�}|d|f�}|�|�}|�t|���|||g�dSr�r�r�rrr�test_flattened_inheritance�s
z+DeclarationTests.test_flattened_inheritancecCsVddlm}ddlm}|d�}|d�}|�|||f�}|�t|���|||g�dSr�r�r�rrr�(test_flattened_w_nested_sequence_overlap�sz9DeclarationTests.test_flattened_w_nested_sequence_overlapcCsTddlm}|d�}|d�}|�|�}||}|�||���|�t|�|g�dSr��rErprj�assertIsInstancercrr>�rrprqr��before�afterrrr� test___sub___unrelated_interface�s
z1DeclarationTests.test___sub___unrelated_interfacecCs:ddlm}|d�}|�|�}||}|�t|�g�dSrnr~)rrprqr�r�rrr�test___sub___related_interfaces

z/DeclarationTests.test___sub___related_interfacecCsFddlm}|d�}|d|f�}|�|�}||}|�t|�g�dSr�r~r�rrr�-test___sub___related_interface_by_inheritance	s
z>DeclarationTests.test___sub___related_interface_by_inheritancecCsVddlm}|d�}|d�}|�|�}||}|�||���|�t|�||g�dSr�r�r�rrr� test___add___unrelated_interfaces
z1DeclarationTests.test___add___unrelated_interfacecCs^ddlm}|d�}|d�}|d�}|�||�}|�||�}||}|�t|�|||g�dS)Nrrorqr��IBazr~)rrprqr�r�r��otherr�rrr�test___add___related_interfacesz/DeclarationTests.test___add___related_interfacec	Cs�ddlm}ddlm}ddlm}ddlm}|d�}|d|f�}||jjd��|�	|�}||}Wd�n1s=wY|�
|j|||f�|�
|j||f�|�
t
|�||g�dS)	NrrCro��	C3Setting��ro�IBase�IDerivedT)�zope.interfacerDrErp�zope.interface.tests.test_ror�r��C3�
STRICT_IROrjrrUrlr>)	rrDrpr�r�r�r��baser�rrr�"test___add___overlapping_interface$s

�z3DeclarationTests.test___add___overlapping_interfacec
Cs�ddlm}ddlm}ddlm}ddlm}ddlm}Gdd�d|�}Gd	d
�d
|�}||�Gdd�dt��}||jj	d
��||�|}	Wd�n1sRwY|�
|	j|	|||f�|�
|	j||f�|�
t
|	�||g�dS)NrrC��
implementedBy��implementerr�r�c@r$)zPDeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.IBaseNr%rrrrr�Er5r�c@r$)zSDeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.IDerivedNr%rrrrr�Hr5r�c@r$)zODeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.BaseNr%rrrr�BaseKr'r�T)r�rDr�r�r�r�r�r*r�r�rrSrlr>)
rrDr�r�r�r�r�r�r�r�rrr�0test___add___overlapping_interface_implementedBy:s�zADeclarationTests.test___add___overlapping_interface_implementedByN)rrrrcrjrmrsrxryrzr{r}rr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrra�s2
		
rac@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestImmutableDeclarationcCrb)Nr)�_ImmutableDeclaration)r)r�)rr�rrrrcYrdz(TestImmutableDeclaration._getTargetClasscCrb)Nr)�_empty)r)r�)rr�rrrr=]rdz"TestImmutableDeclaration._getEmptycCs0ddl}|�|�|����}|�||���dS)Nr)�pickle�loads�dumpsr=�assertIs)rr��copiedrrr�test_pickleasz$TestImmutableDeclaration.test_picklecCs|�|���|���dSr.)r�rcr=�rrrr�test_singletonfs�z'TestImmutableDeclaration.test_singletoncCs|�|��jd�dS)Nr)rr=rlr�rrr�
test__bases__l�z&TestImmutableDeclaration.test__bases__cCsV|��}d|_|�|��jd�|�t��d|_Wd�dS1s$wYdS)Nr)�)r=rlr�assertRaisesr)r�emptyrrr�test_change__bases__os"�z-TestImmutableDeclaration.test_change__bases__cCs4|��}|j}|�i|�d|d<|�i|j�dS)N�r�)r=�
dependentsr)rr��depsrrr�test_dependentsws
z(TestImmutableDeclaration.test_dependentscCs|���d�dSr.)r=r_r�rrr�test_changedsz%TestImmutableDeclaration.test_changedcCsH|�|���|��|�|��j|dd��|�|��j|dd��dS)NTrKF)r\r=rNr�rrr�test_extends_always_false�sz2TestImmutableDeclaration.test_extends_always_falsecCs0|�|���d��|�|���dd�d�dS)N�name�*)rZr=r[rr�rrr�test_get_always_default�sz0TestImmutableDeclaration.test_get_always_defaultcCsr|��}|�|ji�d|jd<|�|ji�|�|�d��i}|_d|d<|�|ji�|�|�d��dS)Nr�rW)r=rr]rZr[)rr@�attrsrrr�test_v_attrs�s

z%TestImmutableDeclaration.test_v_attrsN)rrrrcr=r�r�r�r�r�r�r�r�r�rrrrr�Wsr�c@r7)�TestImplementscCrbrt)r)rv)rrvrrrrc�rdzTestImplements._getTargetClasscOrer.rfrgrrrrj�rkzTestImplements._makeOnecCs$ddlm}Gdd�dt�}||�S)Nrr�c@r$)z+TestImplements._makeOneToCompare.<locals>.ANr%rrrr�A�r5r�)r)r�r*)rr�r�rrr�_makeOneToCompare�sz TestImplements._makeOneToComparecCsH|��}|�|jd�|�|jd�|�|jd�|�t|j�g�dS)Nr�?)rjr�inherit�declaredrr>rl�rrwrrrrm�s
z!TestImplements.test_ctor_no_basescCs"|��}d|_|�t|�d�dS)N�TestingzclassImplements(Testing))rjrr�reprr�rrr�
test___repr__�szTestImplements.test___repr__cCs,ddlm}|��}|�|��|df�dS)Nrr�r.)r)r�rjr�
__reduce__)rr�rwrrr�test___reduce__�szTestImplements.test___reduce__cCs�ddlm}Gdd�dt�}Gdd�dt�}ddlm}|d�}|�||�||��|�t||��t||���|�||�dk�|�d||�k�|�||�||�k�|�||�|k�|�||�||�k�|�||�|k�|�||�|k�dS)	Nrr�c@r$)z#TestImplements.test_sort.<locals>.ANr%rrrrr��r5r�c@r$)z#TestImplements.test_sort.<locals>.BNr%rrrr�B�r5r�rorq)r)r�r*rErpr�hashrM)rr�r�r�rprqrrr�	test_sort�szTestImplements.test_sortcCs�Gdd�dt�}ddlm}Gdd�dt�}Gdd�dt�}||�}||�}||�}|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�dS)	Nc@�,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z1TestImplements.test_proxy_equality.<locals>.ProxycSs
||_dSr.��_wrapped)r�wrappedrrr�__init__��
z:TestImplements.test_proxy_equality.<locals>.Proxy.__init__cSr-r.r/�rr�rrr�__getattr__��z=TestImplements.test_proxy_equality.<locals>.Proxy.__getattr__cSs
|j|kSr.r��rr�rrr�__eq__�r�z8TestImplements.test_proxy_equality.<locals>.Proxy.__eq__cSs
|j|kSr.r�r�rrr�__ne__�r�z8TestImplements.test_proxy_equality.<locals>.Proxy.__ne__N)rrrr�r�r�r�rrrr�Proxy�s
r�rr�c@r$)z-TestImplements.test_proxy_equality.<locals>.ANr%rrrrr��r5r�c@r$)z-TestImplements.test_proxy_equality.<locals>.BNr%rrrrr��r5r�)r*r)r�rMr\)rr�r�r�r��implementedByA�implementedByB�proxyrrr�test_proxy_equality�s 
z"TestImplements.test_proxy_equalitycCs^|��}|�|j�|�d|j�d|_|�d|j�|�d�|�|j�|�d|j�dS)N�_super_cacher�)rjrZr�rI�__dict__r|r_r�rrr� test_changed_deletes_super_cache�s
z/TestImplements.test_changed_deletes_super_cachecCsJ|��}|�|j�|�d|j�|�d�|�|j�|�d|j�dS)Nr�)rjrZr�rIr�r_r�rrr�%test_changed_does_not_add_super_caches
z4TestImplements.test_changed_does_not_add_super_cacheN)
rrrrcrjr�rmr�r�r�r�r�r�rrrrr��s(r�cs�eZdZdd�ZeZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Z�fd!d"�Z�fd#d$�Z�fd%d&�Z�fd'd(�Z�fd)d*�Z�fd+d,�Z�ZS)-�Test_implementedByFallbackcCrb)Nr)�implementedByFallback)r)r�)rr�rrrrc�z*Test_implementedByFallback._getTargetClasscOrer.rfrgrrr�_callFUTrkz#Test_implementedByFallback._callFUTcCs6Gdd�dt�}|�}d|_|�t|�|��g�dS)Nc@�eZdZdZdS)z]Test_implementedByFallback.test_dictless_wo_existing_Implements_wo_registrations.<locals>.Foo��__implemented__N�rrr�	__slots__rrrrr&�r&)r*r�rr>r��rr&r#rrr�5test_dictless_wo_existing_Implements_wo_registrationsszPTest_implementedByFallback.test_dictless_wo_existing_Implements_wo_registrationscC�*Gdd�dt�}|�}|�t|j|�dS)Nc@s.eZdZdd�Zdd�Zeee�Zdd�ZdS)zhTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.FoocSr-r.r/r�rrr�	_get_impl"r�zrTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo._get_implcS�t�r.)r)r�valrrr�	_set_impl$�zrTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo._set_implcSr-r.r/r�rrr�__call__'r3zqTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo.__call__N)rrrr�r��propertyr�r�rrrrr&!s

r&�r*r�rr�r�rrr�@test_dictless_wo_existing_Implements_cant_assign___implemented__ s	z[Test_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__cCszddlm}Gdd�dt�}|�}d|_t�}t|d��}|||<|�|�|�|u�Wd�dS1s6wYdS)Nr��declarationsc@r�)z\Test_implementedByFallback.test_dictless_wo_existing_Implements_w_registrations.<locals>.Foor�Nr�rrrrr&/r�r&�#BuiltinImplementationSpecifications)r�rr*r��_MonkeyDictrMr�)rrr&r#�reg�specsrrr�4test_dictless_wo_existing_Implements_w_registrations-s�"�zOTest_implementedByFallback.test_dictless_wo_existing_Implements_w_registrationscCsFddlm}|�}Gdd�dt�}|�}||_|�|�|�|u�dS)Nrruc@r�)zKTest_implementedByFallback.test_dictless_w_existing_Implements.<locals>.Foor�Nr�rrrrr&<r�r&)r)rvr*r�rMr�)rrvrwr&r#rrr�#test_dictless_w_existing_Implements9sz>Test_implementedByFallback.test_dictless_w_existing_ImplementscCsNddlm}Gdd�dt�}|�}|d�}|f|_|�t|�|��|g�dS)Nrroc@r�)zOTest_implementedByFallback.test_dictless_w_existing_not_Implements.<locals>.Foor�Nr�rrrrr&Dr�r&rq)rErpr*r�rr>r�)rrpr&r#rqrrr�'test_dictless_w_existing_not_ImplementsBszBTest_implementedByFallback.test_dictless_w_existing_not_Implementsc�>ddlm}|��G�fdd�dt�}|�|�|��u�dS)Nrruc�eZdZ�ZdS)zJTest_implementedByFallback.test_w_existing_attr_as_Implements.<locals>.FooN�rrrr�r�rwrrr&Nr�r&�r)rvr*rMr��rrvr&rr
r�"test_w_existing_attr_as_ImplementsK�z=Test_implementedByFallback.test_w_existing_attr_as_ImplementscCs�ddlm}ddlm}t|d��H}|�t|�t��g�|�t|�t��g�|�t|�t	��g�ttt	fD]}||}|�
||�|�t|�d|jf�q8Wd�dS1s\wYdS)NrrrurzclassImplements(%s))
r�rr)rvrrr>r��tuple�dictr�r�r)rrrvr�typ�specrrr�test_builtins_added_to_cacheRs&�
���"�z7Test_implementedByFallback.test_builtins_added_to_cachecCs�ddlm}t�t�t�}}}t|d��3}||t<||t<||t<|�|�t�|u�|�|�t�|u�|�|�t�|u�Wd�dS1sLwYdS)Nrrr)	r�rr*rrr>rrMr�)rr�t_spec�l_spec�d_specrrrr�test_builtins_w_existing_cacheas�"�z9Test_implementedByFallback.test_builtins_w_existing_cachecCs(Gdd�d�}|�t|�|��g�dS)Nc@r$)zITest_implementedByFallback.test_oldstyle_class_no_assertions.<locals>.FooNr%rrrrr&or5r&)rr>r��rr&rrr�!test_oldstyle_class_no_assertionsmsz<Test_implementedByFallback.test_oldstyle_class_no_assertionscCs*Gdd�dt�}|�t|�|��g�dS)Nc@r$)z:Test_implementedByFallback.test_no_assertions.<locals>.FooNr%rrrrr&ur5r&�r*rr>r�rrrr�test_no_assertionsssz-Test_implementedByFallback.test_no_assertionscCr�)Nc@�eZdZdZdS)zHTest_implementedByFallback.test_w_None_no_bases_not_factory.<locals>.FooNrrrrrr&zr�r&r�r�rrr� test_w_None_no_bases_not_factoryysz;Test_implementedByFallback.test_w_None_no_bases_not_factorycCs|ddlm}Gdd�dt�}|�}d|_|�|�}|�|jd�|�|j|�|�|j|�|�|j	|�|�
d|j�dS)Nr)�objectSpecificationDescriptorc@seZdZdZdd�ZdS)zFTest_implementedByFallback.test_w_None_no_bases_w_factory.<locals>.FooNcSr-r.r/r�rrrr��r�zOTest_implementedByFallback.test_w_None_no_bases_w_factory.<locals>.Foo.__call__)rrrr�r�rrrrr&�sr&r#z*zope.interface.tests.test_declarations.foo�__provides__)r)r!r*rr�rr�r�r��__providedBy__rIr�)rr!r&r#rrrr�test_w_None_no_bases_w_factorys
�z9Test_implementedByFallback.test_w_None_no_bases_w_factorycCs�ddlm}Gdd�dt�}|�|�}|�|jd�|�|j|�|�|j|�|�	|j
|�|�	|j|�|�|j|j
�dS)Nr��
ClassProvidesc@r)zDTest_implementedByFallback.test_w_None_no_bases_w_class.<locals>.FooNrrrrrr&�r�r&z*zope.interface.tests.test_declarations.Foo)r)r&r*r�rrr�r�r�r�r#r")rr&r&rrrr�test_w_None_no_bases_w_class�s
�z7Test_implementedByFallback.test_w_None_no_bases_w_classcr
)Nrrucr)zBTest_implementedByFallback.test_w_existing_Implements.<locals>.FooNrrr
rrr&�r�r&rrrr
r�test_w_existing_Implements�rz5Test_implementedByFallback.test_w_existing_Implementscs�ddlm}ddlm}Gdd�d|�}Gdd�d|�}||�Gdd	�d	t��}||�Gd
d�d|��}|�t|�|��||g�t||�}|�t|�|��|g�dS)NrrCr�c@r$)zSTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.IBaseNr%rrrrr��r5r�c@r$)zVTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.IDerivedNr%rrrrr��r5r�c@r$)zRTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.BaseNr%rrrrr��r'r�c@r$)zUTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.DerivedNr%rrrr�Derived�r'r)�	r�rDr)r�r*rr>r��super�rrDr�r�r�r�r)�sup��	__class__rr�)test_super_when_base_implements_interface�s
zDTest_implementedByFallback.test_super_when_base_implements_interfacec
s�ddlm}ddlm}Gdd�d|�}Gdd�d|�}||�Gdd	�d	t��}Gd
d�d|�}Gdd
�d
|�}||�Gdd�d||��}|�t|�|��||g�t||�}	|�t|�|	��|g�dS)NrrCr�c@r$)z[Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.IBaseNr%rrrrr��r5r�c@r$)z^Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.IDerivedNr%rrrrr��r5r�c@r$)zZTest_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.BaseNr%rrrrr��r'r�c@r$)z\Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Child1Nr%rrrr�Child1�r5r1c@r$)z\Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Child2Nr%rrrr�Child2�r5r2c@r$)z]Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.DerivedNr%rrrrr)�r'r)r*)
rrDr�r�r�r�r1r2r)r-r.rr�1test_super_when_base_implements_interface_diamond�s
zLTest_implementedByFallback.test_super_when_base_implements_interface_diamondcs�ddlm}ddlm}Gdd�d|�}Gdd�d|�}Gdd	�d	t�}Gd
d�d|�}||�Gdd
�d
|��}||�Gdd�d||��}|�|j||||tf�|�t|�|��||g�t	||�}	|�|	�}
|�t|
�|g�|�
|
j�dS)NrrCr�c@r$)z]Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.IBaseNr%rrrrr��r5r�c@r$)z`Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.IDerivedNr%rrrrr��r5r�c@r$)z\Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.BaseNr%rrrrr��r5r�c@r$)z^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Child1Nr%rrrrr1�r5r1c@r$)z^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Child2Nr%rrrrr2�r'r2c@r$)z_Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.DerivedNr%rrrrr)�r'r))r�rDr)r�r*r�__mro__r>r�r+rZ�_dependents)rrDr�r�r�r�r1r2r)r-�futr.rr�3test_super_when_parent_implements_interface_diamond�s 

zNTest_implementedByFallback.test_super_when_parent_implements_interface_diamondcs�ddlm}ddlm}Gdd�d|�}Gdd�d|�}Gdd	�d	t�}||�Gd
d�d|��}|�t|�|��|g�t||�}|�t|�|��g�dS)NrrCr�c@r$)zYTest_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IBaseNr%rrrrr��r5r�c@r$)z\Test_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IDerivedNr%rrrrr��r5r�c@r$)zXTest_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.BaseNr%rrrrr�r5r�c@r$)z[Test_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.DerivedNr%rrrrr)r'r)r*r,r.rr�/test_super_when_base_doesnt_implement_interface�s
zJTest_implementedByFallback.test_super_when_base_doesnt_implement_interfacecs�ddlm}ddlm}Gdd�d|�}Gdd�d|�}||�Gdd	�d	t��}|�t|�|��|g�t||�}|�t|�|��g�dS)
NrrCr�c@r$)zHTest_implementedByFallback.test_super_when_base_is_object.<locals>.IBaseNr%rrrrr�r5r�c@r$)zKTest_implementedByFallback.test_super_when_base_is_object.<locals>.IDerivedNr%rrrrr�r5r�c@r$)zJTest_implementedByFallback.test_super_when_base_is_object.<locals>.DerivedNr%rrrrr)r'r)r*)rrDr�r�r�r)r-r.rr�test_super_when_base_is_objects
z9Test_implementedByFallback.test_super_when_base_is_objectcs`ddlm}ddlm}Gdd�d|�}Gdd�d|�}Gdd	�d	|�}Gd
d�d|�}Gdd
�d
|�}||�Gdd�dt��}||�Gdd�d|��}	||�Gdd�d|��}
|||�Gdd�d|	|
��}|}t||�}
t|	|�}t|
|�}|�t|�|��|||||g�|�t|�|
��|||g�|�t|�|��||g�|�t|�|��|g�dS)Nrr�rCc@r$)zRTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IBaseNr%rrrrr�"r5r�c@r$)zPTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM1Nr%rrrr�IM1%r5r:c@r$)zPTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM2Nr%rrrr�IM2(r5r;c@r$)zUTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IDerivedNr%rrrrr�+r5r�c@r$)zWTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IUnrelatedNr%rrrr�
IUnrelated.r5r<c@r$)zQTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.BaseNr%rrrrr�1r'r�c@r$)zOTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.M1Nr%rrrr�M15r'r=c@r$)zOTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.M2Nr%rrrr�M29r'r>c@r$)zTTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.DerivedNr%rrrrr)=r'r)�	r)r�r�rDr*r+rr>r��rr�rDr�r:r;r�r<r�r=r>r)�d�sd�sm1�sm2r.rr�(test_super_multi_level_multi_inheritances>


����zCTest_implementedByFallback.test_super_multi_level_multi_inheritance)rrrrc�_getFallbackClassr�r�rrrr	rrrrrr r$r'r(r0r3r7r8r9rE�
__classcell__rrr.rr�
s0
		
 r�c@�eZdZdd�ZdS)�Test_implementedBycCrb)Nrr�)r)r�)rr�rrrrcTrdz"Test_implementedBy._getTargetClassN�rrrrcrrrrrIP�rIc@s<eZdZdZdd�Zdeddfdd�Zd	d
�Zdd�ZdS)
�_ImplementsTestMixinTcCr�r.r/)r�cls�ifacerrrr�\�z_ImplementsTestMixin._callFUTNz.Foo�	not givenc
Cs�ddlm}ddlm}|d�}|�||�}|�||�|j}	|dur)|�|	|�|�|	j|�|dkr6|n|}|�|	j	|�|�|j|	�|j
r_|�|j|�|�|j
|�|�|j
|j�||fS)Nrr%rorqrP)r)r&rErpr�r�r�rrr��FUT_SETS_PROVIDED_BYr�r#r")
rr&�	orig_spec�	spec_namer�r&rprq�returnedrrrr�_check_implementer`s&�z'_ImplementsTestMixin._check_implementercC�Gdd�d�}|�|�dS)Nc@r$)z5_ImplementsTestMixin.test_oldstyle_class.<locals>.FooNr%rrrrr&}r5r&)rUrrrr�test_oldstyle_class{�z(_ImplementsTestMixin.test_oldstyle_classcCsGdd�dt�}|�|�dS)Nc@r$)z5_ImplementsTestMixin.test_newstyle_class.<locals>.FooNr%rrrrr&�r5r&)r*rUrrrr�test_newstyle_class�sz(_ImplementsTestMixin.test_newstyle_class)rrrrQr�rUrWrYrrrrrLYs
�rLc@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�Test_classImplementsOnlyFcCsddlm}|||�|S)Nr)�classImplementsOnly)r)r[)rrMrNr[rrrr��s
z!Test_classImplementsOnly._callFUTcs�ddlm}ddlm}|d�}|d�}||��|f�_G�fdd�dt�}|�_|�||�|�|j	�u�|�
�jd�|�
�j|f�dS)Nrrurorqr�cr)z@Test_classImplementsOnly.test_w_existing_Implements.<locals>.FooNrrr
rrr&�r�r&)r)rvrErpr�r*r�r�rMr�r�rrvrprqr�r&rr
rr(�sz3Test_classImplementsOnly.test_w_existing_ImplementscsPddlm}ddlm}|d�}||��G�fdd�d�}|j|�ddd�dS)	Nrruror�cr)z9Test_classImplementsOnly.test_oldstyle_class.<locals>.FooNrr��old_specrrr&�r�r&r��r�)r)rvrErprU�rrvrpr�r&rr]rrW�sz,Test_classImplementsOnly.test_oldstyle_classcsRddlm}ddlm}|d�}||��G�fdd�dt�}|j|�ddd�dS)	Nrruror�cr)z9Test_classImplementsOnly.test_newstyle_class.<locals>.FooNrrr]rrr&�r�r&r�r_)r)rvrErpr*rUr`rr]rrY�sz,Test_classImplementsOnly.test_newstyle_classcCsL|jtdtfi�dd�\}}Gdd�d|�}|�||�|�|�|��dS)Nr&r_c@r$)zRTest_classImplementsOnly.test_redundant_with_super_still_implements.<locals>.ChildNr%rrrr�Child�r5ra)rU�typer*r�rMr�)rr�r�rarrr�*test_redundant_with_super_still_implements�s
�zCTest_classImplementsOnly.test_redundant_with_super_still_implementsN)	rrrrQr�r(rWrYrcrrrrrZ�s
rZc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�Test_classImplementscC�$ddlm}|||�}|�|�|S)Nr��classImplements)r)rgrZ)rrMrNrg�resultrrrr���

zTest_classImplements._callFUTcCs�|�|�\}}Gdd�d|�}|�||�}|�d|j�|�d|j�|�d|j�|j}|�|jd�|�|j|�|�	|�
|���dS)Nc@r$)zATest_classImplements.__check_implementer_redundant.<locals>.ChildNr%rrrrra�r5rar�r#r"r)rUr�r|r�rIr�rr�r�rM�
providedBy)rr�r�rarTrrrr�__check_implementer_redundant�sz2Test_classImplements.__check_implementer_redundantcCs|�tdtfi��dS)Nr&)�2_Test_classImplements__check_implementer_redundantrbr*r�rrr�<test_redundant_implementer_empty_class_declarations_newstyle�szQTest_classImplements.test_redundant_implementer_empty_class_declarations_newstylecCrV)Nc@r$)z^Test_classImplements.test_redundant_implementer_empty_class_declarations_oldstyle.<locals>.FooNr%rrrrr&�r5r&)rlrrrr�<test_redundant_implementer_empty_class_declarations_oldstyle�rXzQTest_classImplements.test_redundant_implementer_empty_class_declarations_oldstylecCs�ddlm}ddlm}ddlm}ddlm}Gdd�dt�}||jjd��3|�	||�|�
t||��|g�Gd	d
�d
|�}|�	||�|�
t||��|g�Wd�dS1s]wYdS)NrrCr�r�r�c@r$)zFTest_classImplements.test_redundant_implementer_Interface.<locals>.FooNr%rrrrr&�r5r&Fc@r$)zFTest_classImplements.test_redundant_implementer_Interface.<locals>.BazNr%rrrr�Baz�r5ro)r�rDr�r�r�r�r*r�r�r�rr>)rrDr�r�r�r&rorrr�$test_redundant_implementer_Interface�s"�z9Test_classImplements.test_redundant_implementer_InterfacecCs||fSr.r�r�
applied_first�applied_secondrrr�_order_for_two��z#Test_classImplements._order_for_twocs�ddlm}ddlm}|d�}|d�}||��|f�_G�fdd�dt�}|�_|�||�|�|j	��|�
�j|�|�
�j|�||��dS)Nrrurorqr�cr)z<Test_classImplements.test_w_existing_Implements.<locals>.FooNrrr
rrr&r�r&)r)rvrErpr�r*r�r�r�r�rrtr\rr
rr(�s
�z/Test_classImplements.test_w_existing_Implementsc	s�ddlm}ddlm}|d�}|d�}|d|f�}|�d|��|f�_G�fdd	�d	t�}G�fd
d�dt�}|�d|��|f�_G�fd
d�d||�}|�_|�||�|�	|j
��|��j|�|��j|�||��|��j
|�||��f�dS)Nrruro�IRoot�ISecondRoot�IExtendsRoot�Rootcr)zFTest_classImplements.test_w_existing_Implements_w_bases.<locals>.Root1Nrr��	impl_rootrr�Root1r�r|cr)zFTest_classImplements.test_w_existing_Implements_w_bases.<locals>.Root2Nrrrzrr�Root2r�r}�ExtendsRoot1cr)zLTest_classImplements.test_w_existing_Implements_w_bases.<locals>.ExtendsRootNrr)�impl_extends_rootrr�ExtendsRootr�r�)r)rvrErpr"r�r*r�r�r�r�rrtrl)	rrvrprvrwrxr|r}r�r)rr{r�"test_w_existing_Implements_w_basess,
��z7Test_classImplements.test_w_existing_Implements_w_basesN)rrrr�rlrmrnrprtr(r�rrrrrd�srdc@�eZdZdd�Zdd�ZdS)�Test_classImplementsFirstcCre)Nr)�classImplementsFirst)r)r�rZ)rrMrNr�rhrrrr�,riz"Test_classImplementsFirst._callFUTcCs||fSr.rrqrrrrt2ruz(Test_classImplementsFirst._order_for_twoN)rrrr�rtrrrrr�*sr�c@r�)�Test__implements_advicecO�ddlm}||i|��S)Nr)�_implements_advice)r)r�)rrhrir�rrrr�8�z Test__implements_advice._callFUTcs�ddlm�ddlm}ddlm}|d��G��fdd�dt�}|�|�|�d|j�|�	|j
|�|�t|j
��g�dS)	NrrfrurorqcseZdZ�f�fZdS)z@Test__implements_advice.test_no_existing_implements.<locals>.FooN)rrr�__implements_advice_data__r�rqrgrrr&Asr&r�)
r)rgrvrErpr*r�rIr�r�r�rr>)rrvrpr&rr�r�test_no_existing_implements<s
z3Test__implements_advice.test_no_existing_implementsN)rrrr�r�rrrrr�6sr�c@�<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�Test_implementercCrb)Nrr�)r)r�)rr�rrrrcKrdz Test_implementer._getTargetClasscOrer.rfrgrrrrjOrkzTest_implementer._makeOnecGs|j|�}||�Sr.�rj)rrM�ifaces�	decoratorrrrr�R�
zTest_implementer._callFUTcCs2ddlm}|d�}|�|�}|�t|t��dSrn)rErprjr�rr*)rrprqr�rrr� test_nonclass_cannot_assign_attrVs
z1Test_implementer.test_nonclass_cannot_assign_attrcCs|ddlm}|d�}Gdd�dt�}|�}|�|�}||�}|�||u�|j}|�|jd�|�|j	�|�
|j|�dS)Nrrorqc@r$)z;Test_implementer.test_nonclass_can_assign_attr.<locals>.FooNr%rrrrr&_r5r&z(zope.interface.tests.test_declarations.?)rErpr*rjrMr�rrrZr�r�)rrprqr&r#r�rTrrrr�test_nonclass_can_assign_attr\s
z.Test_implementer.test_nonclass_can_assign_attrc	Cs~ddl}ddlm}|d�}t|���}td�D]}Gdd�dt�}|�||�q|��t|���}d}|�	|||�dS)Nrrorqilc@r$)zHTest_implementer.test_does_not_leak_on_unique_classes.<locals>.TestClassNr%rrrr�	TestClasswr5r�)
�gcrErpr�get_objects�ranger*r��collect�assertLessEqual)	rr�rprq�begin_count�_r��	end_count�fudge_factorrrr�$test_does_not_leak_on_unique_classesjsz5Test_implementer.test_does_not_leak_on_unique_classesN)	rrrrcrjr�r�r�r�rrrrr�Isr�c@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�Test_implementer_onlycCrb)Nr)�implementer_only)r)r�)rr�rrrrc�rdz%Test_implementer_only._getTargetClasscOrer.rfrgrrrrj�rkzTest_implementer_only._makeOnecCs|�|�}||�Sr.r�)rrMrNr�rrrr��r�zTest_implementer_only._callFUTcCs8ddlm}|d�}|�|�}dd�}|�t||�dS)NrrorqcSr-r.r/rrrr�	_function�r�z6Test_implementer_only.test_function.<locals>._function)rErprjr��
ValueError)rrprqr�r�rrrr4�s

z#Test_implementer_only.test_functioncCs@ddlm}|d�}|�|�}Gdd�d�}|�t||j�dS)Nrrorqc@rH)z.Test_implementer_only.test_method.<locals>.BarcSr-r.r/r�rrr�_method�r�z6Test_implementer_only.test_method.<locals>.Bar._methodN)rrrr�rrrr�Bar��r�)rErprjr�r�r�)rrprqr�r�rrr�test_method�s

z!Test_implementer_only.test_methodN)rrrrcrjr�r4r�rrrrr��sr�c@r�)�Test_implementsOnlyc	Cs�ddl}ddlm}ddlm}|d�}||d�}i}d�dg�}|jdd	��L}|��zt|||�Wnt	yC|�
td
�Yn(wtrK|�d�|d}	|	j
}
|�t|
�|g�|�t|�d�Wd�dSWd�dS1svwYdS)
Nr��implementsOnlyrorq)r�rq�
z*class Foo(object):    implementsOnly(IFoo)TrzMust be Python 3r
r&)rr)r�rErp�joinrr
rrrMrrr�rr>r)rrr�rprqrr�CODErr&rrrr�test_simple�s6���
�"�zTest_implementsOnly.test_simplecCs�ddlm}ddlm}ddlm}|d�}|d�}||||d�}i}d�gd	��}|�|||�rC|d
}	|	j}
|�t	|
�|g�dSdS)Nr��
implementsr�rorqr�)r�r�rqr�r�)�class Foo(object):�    implements(IFoo)z'class Bar(Foo):    implementsOnly(IBar)r�)
r)r�r�rErpr�rr�rr>)rr�r�rprqr�rrr�r�rrrr�#test_called_once_from_class_w_bases�s"��z7Test_implementsOnly.test_called_once_from_class_w_basesN)rrrr�r�rrrrr��sr�c@r)�Test_implementsc
Cs�ddl}ddlm}ddlm}|d�}||d�}i}d�ddg�}|�|||d	�rY|d
}|jdd��}	|��|�	t
|�|�t|	�d�Wd�dS1sRwYdSdS)
Nrr�rorq�r�rqr��
def foo():r�Fr#Tr)
rr)r�rErpr�rrr
r�rrr)
rrr�rprqrrr�r#rrrr�test_called_from_function�s$
�"��z)Test_implements.test_called_from_functionc
	C��ddl}ddlm}ddlm}|d�}|d�}|||d�}i}d�gd��}|jd	d
��6}	|��zt|||�Wnt	yMt
sK|�t|	�d�Ynw|�
d�Wd�dSWd�dS1sfwYdS)Nrr�rorqr�)r�rqr�r�)r�r�z    implements(IBar)Trr
)rr)r�rErpr�rr
rrrrrr)
rrr�rprqr�rrr�rrrr�test_called_twice_from_class��*����"z,Test_implements.test_called_twice_from_classc	C�rddlm}ddlm}|d�}||d�}i}d�ddg�}|�|||�r7|d	}|j}|�t|�|g�dSdS)
Nrr�rorqr�r�r�r�r&)	r)r�rErpr�rr�rr>)	rr�rprqrrr�r&rrrr�test_called_once_from_class�
��z+Test_implements.test_called_once_from_classN�rrrr�r�r�rrrrr��sr�c@r�)�ProvidesClassTestscCrb�Nr��
ProvidesClass�r)r��rr�rrrrcrdz"ProvidesClassTests._getTargetClasscOrer.rfrgrrrrj!rkzProvidesClassTests._makeOnecCsFddlm}|d�}Gdd�dt�}|�||�}|�t|�|g�dS)Nrrorqc@r$)z?ProvidesClassTests.test_simple_class_one_interface.<locals>.FooNr%rrrrr&'r5r&)rErpr*rjrr>�rrprqr&rrrr�test_simple_class_one_interface$s
z2ProvidesClassTests.test_simple_class_one_interfacecCshddlm}ddlm}|d�}Gdd�dt�}|�||�}|��\}}|�||�|�|||f�dS)Nr��Providesrorqc@r$)z/ProvidesClassTests.test___reduce__.<locals>.FooNr%rrrrr&0r5r&)	r)r�rErpr*rjr�r�r)rr�rprqr&r�klassrhrrrr�,sz"ProvidesClassTests.test___reduce__cCsHddlm}|d�}Gdd�dt�}|�||�}||_|�|j|�dS)Nrrorqc@r$)z2ProvidesClassTests.test___get___class.<locals>.FooNr%rrrrr&:r5r&�rErpr*rjr"r�r�rrr�test___get___class7sz%ProvidesClassTests.test___get___classcsRddlm}|d�}Gdd�dt��|��|�}|�_�fdd�}|�t|�dS)Nrrorqc@r$)z5ProvidesClassTests.test___get___instance.<locals>.FooNr%rrrrr&Cr5r&cs��}|jSr.)r")r#�r&rr�_testGsz7ProvidesClassTests.test___get___instance.<locals>._test)rErpr*rjr"r��AttributeError)rrprqrr�rr�r�test___get___instance@sz(ProvidesClassTests.test___get___instanceN)	rrrrcrjr�r�r�r�rrrrr�s	r�c�$eZdZ�fdd�Zdd�Z�ZS)�ProvidesClassStrictTestsc�&tt|����G�fdd�d��}|S)Nc�eZdZ�fdd�ZdS)z@ProvidesClassStrictTests._getTargetClass.<locals>.StrictProvidesc��j||dd�S�NT)�	base_mrosrL��_do_calculate_ro�rr�r�rrr�S�zQProvidesClassStrictTests._getTargetClass.<locals>.StrictProvides._do_calculate_roN�rrrr�rr�rr�StrictProvidesR�r�)r+r�rc)rr�r.r�rrcP�z(ProvidesClassStrictTests._getTargetClasscCs|ddlm}ddlm}ddlm}Gdd�d|�}||�Gdd�dt��}|�||�}|�|j|||�||t�|f�dS)	Nrr�rCr�c@r$)zMProvidesClassStrictTests.test_overlapping_interfaces_corrected.<locals>.IBaseNr%rrrrr�^r5r�c@r$)zLProvidesClassStrictTests.test_overlapping_interfaces_corrected.<locals>.BaseNr%rrrrr�ar'r�)r�r�rDr�r*rjrrS)rr�rDr�r�r�rrrr�%test_overlapping_interfaces_correctedWs
�z>ProvidesClassStrictTests.test_overlapping_interfaces_corrected�rrrrcr�rGrrr.rr�M�r�c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestProvidesClassReprcCrbr�r�r�rrrrcqrdz%TestProvidesClassRepr._getTargetClasscOrer.rfrgrrrrjurkzTestProvidesClassRepr._makeOnecCstddlm}|d�}|jdksJ�|jtksJ�t|�dtfks#J�|d�}|�t|�||�}|�t|�d�dS)Nrrorqz<InterfaceClass %s.IFoo>r�z3directlyProvides(TestProvidesClassRepr, IFoo, IBar))rErprrr�rjrbr)rrprqr��instrrr�test__repr__xs�z"TestProvidesClassRepr.test__repr__cCs&ddlm}|j}|�t|�d�dS)Nr��dummyzIdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IDummyModule))�zope.interface.testsr�r"rr�)rr��providesrrr�'test__repr__module_provides_typical_use�s�z=TestProvidesClassRepr.test__repr__module_provides_typical_usec	Csjddl}ddlm}|j}t|jd�D]}|�|j��|�||�Wd�n1s-wYqdS)Nrr�r�)	r�r�r�r"r��HIGHEST_PROTOCOLr��
PicklingErrorr�)rr�r�r��protorrr�test__repr__module_after_pickle�s���z5TestProvidesClassRepr.test__repr__module_after_picklecCs�ddl}ddlm}ddlm}ddlm}ddlm}|d�}|d�}|j}|`|�	t
|d|�|||�|j}	|�t|	�d	�|||�|j}	|�t|	�d
�|j
t}
t|
d�r]J�||
||�|�	t|
d�|�|
j|	�|�t|	�d�dS)Nrr���directlyProvides��alsoProvidesrorqr�r"zAdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IFoo)zGdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IFoo, IBar)zfdirectlyProvides(('zope.interface.tests.dummy', 'zope.interface.tests.test_declarations'), IFoo, IBar))�sysr�r�r)r�r�rErpr"�
addCleanup�setattrrr��modulesr�hasattr�delattrr�)rr�r�r�r�rprqr��
orig_providesr��	my_modulerrr�#test__repr__directlyProvides_module�s>
�
�
�z9TestProvidesClassRepr.test__repr__directlyProvides_modulecCs\ddlm}ddlm}|d�}|�||�}|jd7_|jd7_|�t|�d�dS)Nrro)�
ModuleTyperq)zsome.module)zanother.modulez9directlyProvides(('some.module', 'another.module'), IFoo))rErpr)r�rj�_v_module_namesrr�)rrpr�rqr�rrr�)test__repr__module_provides_cached_shared�s�z?TestProvidesClassRepr.test__repr__module_provides_cached_sharedcCsTddlm}|ddd�}|ddd�}|d�}|�t|�|||�}|�t|�d�dS)	Nrrorq�mod1�r�mod2r�z>directlyProvides(TestProvidesClassRepr, IFoo, IBaz, mod2.IFoo)�rErprjrbrr��rrprq�IFoo2r�r�rrr�test__repr__duplicate_names�s�z1TestProvidesClassRepr.test__repr__duplicate_namescCsfddlm}ddlm}Gdd�d|�}Gdd�dt�}|t|��}|�|||�}|�t|�d�dS)	NrrCr�c@r�)zKTestProvidesClassRepr.test__repr__implementedBy_in_interfaces.<locals>.IFoo�Does nothingN�rrr�__doc__rrrrrq�r�rqc@r�)zJTestProvidesClassRepr.test__repr__implementedBy_in_interfaces.<locals>.BarrNrrrrrr��r�r�zCdirectlyProvides(Bar, IFoo, classImplements(TestProvidesClassRepr)))r�rDr�r*rbrjrr�)rrDr�rqr�rwr�rrr�'test__repr__implementedBy_in_interfaces�s�z=TestProvidesClassRepr.test__repr__implementedBy_in_interfacescCs"|�t|��}|�t|�d�dS)Nz'directlyProvides(TestProvidesClassRepr)�rjrbrr��rr�rrr�test__repr__empty_interfaces�s
�z2TestProvidesClassRepr.test__repr__empty_interfacescs4G�fdd�dt�}��|��}��t|�d�dS)Ncs$eZdZdZ�fdd�Zdd�ZdS)z;TestProvidesClassRepr.test__repr__non_class.<locals>.Objectrcs
��d�S)NzShould not call str)r)r�r�rr�<lambda>�s
zDTestProvidesClassRepr.test__repr__non_class.<locals>.Object.<lambda>cSsdS)Nz<Object>rr�rrr�__repr__�r�zDTestProvidesClassRepr.test__repr__non_class.<locals>.Object.__repr__N)rrrrl�__str__r
rr�rr�Object�srzdirectlyProvides(<Object>))r*rjrr�)rrr�rr�r�test__repr__non_class�s�z+TestProvidesClassRepr.test__repr__non_classcCsbddlm}ddlm}ddlm}|d�}||�Gdd�dt��}||��}|�t|�d�dS)	Nrr��rjrorqc@r$)zDTestProvidesClassRepr.test__repr__providedBy_from_class.<locals>.FooNr%rrrrr&r'r&�classImplements(Foo, IFoo))r)r�rjrErpr*rr�)rr�rjrprqr&r�rrr�!test__repr__providedBy_from_classs
�z7TestProvidesClassRepr.test__repr__providedBy_from_classc
Cs�ddlm}ddlm}ddlm}ddlm}|d�}|d�}||�Gdd	�d	t��}|�}|||�||�}	|�t|	�d
�dS)Nrr�rr�rorqr�c@r$)zFTestProvidesClassRepr.test__repr__providedBy_alsoProvides.<locals>.FooNr%rrrrr&r'r&z7directlyProvides(Foo, IBar, classImplements(Foo, IFoo)))	r)r�rjr�rErpr*rr�)
rr�rjr�rprqr�r&r#r�rrr�#test__repr__providedBy_alsoProvidess
�z9TestProvidesClassRepr.test__repr__providedBy_alsoProvidesN)rrrrcrjr�r�r�r�r�rrrrrrrrrrr�os
	-

r�c@r)�
Test_ProvidescOr�)Nrr�)r)r�)rrhrir�rrrr�.r�zTest_Provides._callFUTcCs�ddlm}ddlm}|d�}i}Gdd�dt�}t||d��|�||�}Wd�n1s1wY|�t|�|g�|�	|||f|u�dS)Nrrrorqc@r$)z.Test_Provides.test_no_cached_spec.<locals>.FooNr%rrrrr&7r5r&��InstanceDeclarations)
r�rrErpr*�_Monkeyr�rr>rM)rrrprq�cacher&rrrr�test_no_cached_spec2s�z!Test_Provides.test_no_cached_speccCs�ddlm}ddlm}|d�}t�}Gdd�dt�}||f|i}t||d��|�||�}Wd�n1s8wY|�||u�dS)Nrrrorqc@r$)z-Test_Provides.test_w_cached_spec.<locals>.FooNr%rrrrr&Cr5r&r)r�rrErpr*rr�rM)rrrprq�priorr&rrrrr�test_w_cached_spec>s�z Test_Provides.test_w_cached_specN)rrrr�rrrrrrr,src@s8eZdZdd�Zdd�Zdd�Zedd��Zd	d
�ZdS)�Test_directlyProvidescOr�)Nrr�)r)r�)rrhrir�rrrr�Mr�zTest_directlyProvides._callFUTcC�hddlm}ddlm}|d�}Gdd�dt�}|�}|�||�|�|j|�|�t	|j�|g�dS)Nrr�rorqc@r$)z7Test_directlyProvides.test_w_normal_object.<locals>.FooNr%rrrrr&Ur5r&�
r)r�rErpr*r�r�r"rr>�rr�rprqr&�objrrr�test_w_normal_objectQ�z*Test_directlyProvides.test_w_normal_objectcCsbddlm}ddlm}|d�}Gdd�dt�}|�||�|�|j|�|�t	|j�|g�dS)Nrr%rorqc@r$)z/Test_directlyProvides.test_w_class.<locals>.FooNr%rrrrr&`r5r&)
r)r&rErpr*r�r�r"rr>�rr&rprqr&rrr�test_w_class\sz"Test_directlyProvides.test_w_classcsTddlm}|d�}Gdd�dt��G�fdd�dt�}|�}|�t|j||�dS)Nrrorqc@rH)zNTest_directlyProvides.test_w_non_descriptor_aware_metaclass.<locals>.MetaClasscSs|dkr|St�||�S�Nr/)rb�__getattribute__)rMr�rrrr'lsz_Test_directlyProvides.test_w_non_descriptor_aware_metaclass.<locals>.MetaClass.__getattribute__N)rrrr'rrrr�	MetaClasskr�r(cr)zHTest_directlyProvides.test_w_non_descriptor_aware_metaclass.<locals>.FooN)rrr�
__metaclass__r�r(rrr&tr�r&)rErprbr*r�rr��rrprqr&r!rr*r�%test_w_non_descriptor_aware_metaclassfs	z;Test_directlyProvides.test_w_non_descriptor_aware_metaclasscstddlm}ddlm}|d�}i�G�fdd�dt�}|�}|�||�|��d|�|�t�d�|g�dS)Nrr�rorqcs eZdZdd�Z�fdd�ZdS)z:Test_directlyProvides.test_w_classless_object.<locals>.FoocSs|dkrdSt|��r&r/r�rrrr'szKTest_directlyProvides.test_w_classless_object.<locals>.Foo.__getattribute__cs|�|<dSr.r�rr��value��the_dictrr�__setattr__�szFTest_directlyProvides.test_w_classless_object.<locals>.Foo.__setattr__N�rrrr'r1rr/rrr&~sr&r")	r)r�rErpr*r�r�rr>r rr/r�test_w_classless_objectysz-Test_directlyProvides.test_w_classless_objectN)	rrrr�r"r%rr,r3rrrrrKs

rc@r)�Test_alsoProvidescOr�)Nrr�)r)r�)rrhrir�rrrr��r�zTest_alsoProvides._callFUTcCr)Nrr�rorqc@r$)z8Test_alsoProvides.test_wo_existing_provides.<locals>.FooNr%rrrrr&�r5r&rr rrr�test_wo_existing_provides�r#z+Test_alsoProvides.test_wo_existing_providescCs�ddlm}ddlm}ddlm}|d�}|d�}Gdd�dt�}|�}|||�|�||�|�|j|�|�	t
|j�||g�dS)	Nrr�r�rorqr�c@r$)z7Test_alsoProvides.test_w_existing_provides.<locals>.FooNr%rrrrr&�r5r&)r)r�r�rErpr*r�r�r"rr>)rr�r�rprqr�r&r!rrr�test_w_existing_provides�s
z*Test_alsoProvides.test_w_existing_providesN)rrrr�r5r6rrrrr4�sr4c@r�)�Test_noLongerProvidescOr�)Nr)�noLongerProvides)r)r8)rrhrir8rrrr��r�zTest_noLongerProvides._callFUTcCsLddlm}|d�}Gdd�dt�}|�}|�||�|�t|j�g�dS)Nrrorqc@r$)z<Test_noLongerProvides.test_wo_existing_provides.<locals>.FooNr%rrrrr&�r5r&)rErpr*r�rr>r"r+rrrr5�sz/Test_noLongerProvides.test_wo_existing_providescCsbddlm}ddlm}|d�}Gdd�dt�}|�}|||�|�||�|�t|j�g�dS)Nrr�rorqc@r$)z?Test_noLongerProvides.test_w_existing_provides_hit.<locals>.FooNr%rrrrr&�r5r&�	r)r�rErpr*r�rr>r")rr�rprqr&r!rrr�test_w_existing_provides_hit�s
z2Test_noLongerProvides.test_w_existing_provides_hitcCslddlm}ddlm}|d�}|d�}Gdd�dt�}|�}|||�|�||�|�t|j�|g�dS)Nrr�rorqr�c@r$)z@Test_noLongerProvides.test_w_existing_provides_miss.<locals>.FooNr%rrrrr&�r5r&r9)rr�rprqr�r&r!rrr�test_w_existing_provides_miss�s
z3Test_noLongerProvides.test_w_existing_provides_misscCsTddlm}ddlm}|d�}||�Gdd�dt��}|�}|�t|j||�dS)Nrr�rorqc@r$)zDTest_noLongerProvides.test_w_iface_implemented_by_class.<locals>.FooNr%rrrrr&�r'r&)r)r�rErpr*r�r�r�)rr�rprqr&r!rrr�!test_w_iface_implemented_by_class�sz7Test_noLongerProvides.test_w_iface_implemented_by_classN)rrrr�r5r:r;r<rrrrr7�s	r7c@r�)�ClassProvidesBaseFallbackTestscCrb�Nr)�ClassProvidesBaseFallback�r)r?�rr?rrrrc�r�z.ClassProvidesBaseFallbackTests._getTargetClasscCsGdd�d|���}|||�S)Nc@rH)z8ClassProvidesBaseFallbackTests._makeOne.<locals>.DerivedcSs||_||_dSr.)�_cls�_implements)r�k�irrrr��s
zAClassProvidesBaseFallbackTests._makeOne.<locals>.Derived.__init__N)rrrr�rrrrr)�r�r)rf)rr�r�r)rrrrj�s
z'ClassProvidesBaseFallbackTests._makeOnecCsJddlm}|d�}Gdd�dt�}|�||�}|_|�|j|u�dS)Nrrorqc@r$)zGClassProvidesBaseFallbackTests.test_w_same_class_via_class.<locals>.FooNr%rrrrr&�r5r&)rErpr*rjr"rM)rrprqr&�cpbprrr�test_w_same_class_via_class�s
z:ClassProvidesBaseFallbackTests.test_w_same_class_via_classcCsJddlm}|d�}Gdd�dt�}|�}|�||�|_|�|j|�dS)Nrrorqc@r$)zJClassProvidesBaseFallbackTests.test_w_same_class_via_instance.<locals>.FooNr%rrrrr&�r5r&r�)rrprqr&r#rrr�test_w_same_class_via_instance�sz=ClassProvidesBaseFallbackTests.test_w_same_class_via_instancecCslddlm}|d�}Gdd�dt�}Gdd�d|�}|�}|�||�|_|�tt|d�|�tt|d�dS)	Nrrorqc@r$)zBClassProvidesBaseFallbackTests.test_w_different_class.<locals>.FooNr%rrrrr&r5r&c@r$)zBClassProvidesBaseFallbackTests.test_w_different_class.<locals>.BarNr%rrrrr�r5r�r")rErpr*rjr"r�r��getattr)rrprqr&r��barrrr�test_w_different_class�sz5ClassProvidesBaseFallbackTests.test_w_different_classN)rrrrcrjrGrHrKrrrrr=�s		r=c@r�)�ClassProvidesBaseTestscCrb)Nr)�ClassProvidesBase)r)rM)rrMrrrrcrdz&ClassProvidesBaseTests._getTargetClasscCrbr>r@rArrrrFr�z(ClassProvidesBaseTests._getFallbackClassN)rrrrcrFrrrrrLsrLc@r�)
�ClassProvidesTestscCrb�Nrr%�r)r&�rr&rrrrcrdz"ClassProvidesTests._getTargetClasscOrer.rfrgrrrrjrkzClassProvidesTests._makeOnecCs�ddlm}ddlm}|d�}|d�}||�Gdd�dt��}|�|t|�|�}|_|�|j|u�|�	t
|�j�|g�dS)Nrr�rorqr�c@r$)z7ClassProvidesTests.test_w_simple_metaclass.<locals>.FooNr%rrrrr&'r'r&)r)r�rErpr*rjrbr"rMrr>�rr�rprqr�r&�cprrr�test_w_simple_metaclass"sz*ClassProvidesTests.test_w_simple_metaclasscCs~ddlm}ddlm}|d�}|d�}||�Gdd�dt��}|�|t|�|�}|_|�|�	�t|�|t|�|ff�dS)Nrr�rorqr�c@r$)z/ClassProvidesTests.test___reduce__.<locals>.FooNr%rrrrr&3r'r&)
r)r�rErpr*rjrbr"rr�rRrrrr�.s
�z"ClassProvidesTests.test___reduce__N)rrrrcrjrTr�rrrrrNs
rNcr�)�ClassProvidesStrictTestscr�)Ncr�)zEClassProvidesStrictTests._getTargetClass.<locals>.StrictClassProvidescr�r�r�r�r%rrr�Ar�zVClassProvidesStrictTests._getTargetClass.<locals>.StrictClassProvides._do_calculate_roNr�rr%rr�StrictClassProvides@r�rV)r+rUrc)rrVr.r%rrc>r�z(ClassProvidesStrictTests._getTargetClassc	Cs�ddlm}ddlm}ddlm}Gdd�d|�}||�Gdd�dt��}|d	tfi�}|�|||�}|�|j|||�||t�|t�|f�dS)
Nrr�rCr�c@r$)zMClassProvidesStrictTests.test_overlapping_interfaces_corrected.<locals>.IBaseNr%rrrrr�Lr5r�c@r$)zQClassProvidesStrictTests.test_overlapping_interfaces_corrected.<locals>.metaclassNr%rrrr�	metaclassOr'rWrM)	r�r�rDr�rbr*rjrrS)rr�rDr�r�rWrMrrrrr�Es(�
�z>ClassProvidesStrictTests.test_overlapping_interfaces_correctedr�rrr.rrU;r�rUc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestClassProvidesReprcCrbrOrPrQrrrrcfrdz%TestClassProvidesRepr._getTargetClasscOrer.rfrgrrrrjjrkzTestClassProvidesRepr._makeOnecCs$|�t|�t�}|�t|�d�dS)Nz'directlyProvides(TestClassProvidesRepr)r	r
rrr�test__repr__emptyms
�z'TestClassProvidesRepr.test__repr__emptycCsBddlm}Gdd�d|�}|�t|�t|�}|�t|�d�dS)NrrCc@r�)z=TestClassProvidesRepr.test__repr__providing_one.<locals>.IFoorNrrrrrrqvr�rqz-directlyProvides(TestClassProvidesRepr, IFoo))r�rDrjrbrr�)rrDrqr�rrr�test__repr__providing_onets�z/TestClassProvidesRepr.test__repr__providing_onecCsVddlm}|ddd�}|ddd�}|d�}|�t|�t|||�}|�t|�d�dS)	Nrrorqr�r�rr�z>directlyProvides(TestClassProvidesRepr, IFoo, IBaz, mod2.IFoo)rrrrrrs�z1TestClassProvidesRepr.test__repr__duplicate_namescCs`ddlm}ddlm}ddlm}|d�}||�Gdd�dt��}||�}|�t|�d�dS)	Nrr�r�rorqc@r$)z<TestClassProvidesRepr.test__repr__implementedBy.<locals>.FooNr%rrrrr&�r'r&r)r)r�r�rErpr*rr�)rr�r�rprqr&r�rrr�test__repr__implementedBy�s�z/TestClassProvidesRepr.test__repr__implementedBycCsdddlm}Gdd�dt�}||��}|�t|�dtf�|�}d|_||�}|�t|�d�dS)Nrr�c@rH)zRTestClassProvidesRepr.test__repr__implementedBy_generic_callable.<locals>.CallablecS�|Sr.rr�rrrr��r�z[TestClassProvidesRepr.test__repr__implementedBy_generic_callable.<locals>.Callable.__call__N)rrrr�rrrr�Callable�r�r]zclassImplements(%s.?)zclassImplements(Callable))r)r�r*rr�r)rr�r]r��crrr�*test__repr__implementedBy_generic_callable�s
��z@TestClassProvidesRepr.test__repr__implementedBy_generic_callableN)
rrrrcrjrYrZrr[r_rrrrrXdsrXc@r�)�Test_directlyProvidedBycOr�)Nr)�directlyProvidedBy)r)ra)rrhrirarrrr��r�z Test_directlyProvidedBy._callFUTcCs0Gdd�dt�}|�}|�t|�|��g�dS)Nc@r$)zNTest_directlyProvidedBy.test_wo_declarations_in_class_or_instance.<locals>.FooNr%rrrrr&�r5r&rr�rrr�)test_wo_declarations_in_class_or_instance�szATest_directlyProvidedBy.test_wo_declarations_in_class_or_instancecCsXddlm}ddlm}|d�}||�Gdd�dt��}|�}|�t|�|��g�dS)Nrr�rorqc@r$)zRTest_directlyProvidedBy.test_w_declarations_in_class_but_not_instance.<locals>.FooNr%rrrrr&�r'r&)r)r�rErpr*rr>r�)rr�rprqr&r#rrr�-test_w_declarations_in_class_but_not_instance�szETest_directlyProvidedBy.test_w_declarations_in_class_but_not_instancecCs\ddlm}ddlm}|d�}Gdd�dt�}|�}|||�|�t|�|��|g�dS)Nrr�rorqc@r$)zRTest_directlyProvidedBy.test_w_declarations_in_instance_but_not_class.<locals>.FooNr%rrrrr&�r5r&)r)r�rErpr*rr>r�)rr�rprqr&r#rrr�-test_w_declarations_in_instance_but_not_class�s
zETest_directlyProvidedBy.test_w_declarations_in_instance_but_not_classcCsxddlm}ddlm}ddlm}|d�}|d�}||�Gdd�dt��}|�}|||�|�t|�|��|g�dS)	Nrr�r�rorqr�c@r$)zNTest_directlyProvidedBy.test_w_declarations_in_instance_and_class.<locals>.FooNr%rrrrr&�r'r&)	r)r�r�rErpr*rr>r�)rr�r�rprqr�r&r#rrr�)test_w_declarations_in_instance_and_class�s
zATest_directlyProvidedBy.test_w_declarations_in_instance_and_classN)rrrr�rbrcrdrerrrrr`�s

r`c@r)�Test_classProvidesc
Cs�ddl}ddlm}ddlm}|d�}||d�}i}d�ddg�}t|||�|d	}|jd
d��%}	|��|�	t
|�tsO|�t
|	�d�Wd�dSWd�dS1sZwYdS)Nr��
classProvidesrorq�rhrqr�r��    classProvides(IFoo)r#Tr)rr)rhrErpr�rrr
r�rrrr)
rrrhrprqrrr�r#rrrrr��s(
��"�z,Test_classProvides.test_called_from_functionc
	Cr�)Nrrgrorqr�)rhrqr�r�)r�rjz    classProvides(IBar)Trr
)rr)rhrErpr�rr
rrrrrr)
rrrhrprqr�rrr�rrrrr��r�z/Test_classProvides.test_called_twice_from_classc	Cr�)
Nrrgrorqrir�r�rjr&)	r)rhrErpr�rr#rr>)	rrhrprqrrr�r&rrrrr�
r�z.Test_classProvides.test_called_once_from_classNr�rrrrrf�srfc@r)�
Test_providercCrb)Nr)�provider)r)rl)rrlrrrrc!rdzTest_provider._getTargetClasscOrer.rfrgrrrrj%rkzTest_provider._makeOnecCs`ddlm}ddlm}|d�}|�|�Gdd�dt��}|�|j|�|�t	|j�|g�dS)Nrr%rorqc@r$)z'Test_provider.test_w_class.<locals>.FooNr%rrrrr&,r'r&)
r)r&rErprjr*r�r"rr>r$rrrr%(szTest_provider.test_w_classN)rrrrcrjr%rrrrrksrkc@r�)
�Test_moduleProvidescCsbddlm}ddlm}|d�}d||d�}i}d�dd	g�}t|||�|d
}|�t|�dS)Nr��moduleProvidesrorq�zope.interface.tests.foo�rrorqr�r��    moduleProvides(IFoo)r#)r)rorErpr�rr�r)rrorprqrrr�r#rrrr�6s��z-Test_moduleProvides.test_called_from_functioncCszddlm}ddlm}|d�}d||d�}i}d�dd	g�}|�t��t|||�Wd�dS1s6wYdS)
Nrrnrorqrprqr�r�rr�r)rorErpr�r�rr)rrorprqrrr�rrr�test_called_from_classEs��"�z*Test_moduleProvides.test_called_from_classcCs`ddlm}ddlm}|d�}d||d�}d�dg�}t||�|d	}|�t|�|g�dS)
Nrrnrorqrprqr��moduleProvides(IFoo)r")r)rorErpr�rrr>)rrorprqrr�rrrr�"test_called_once_from_module_scopeSs��
z6Test_moduleProvides.test_called_once_from_module_scopecCstddlm}ddlm}|d�}d||d�}d�ddg�}|�t��t||�Wd�dS1s3wYdS)	Nrrnrorqrprqr�rurs)rrorprqrr�rrr�#test_called_twice_from_module_scope`s��"�z7Test_moduleProvides.test_called_twice_from_module_scopeN)rrrr�rtrvrwrrrrrm3s

rmc@speZdZdd�ZeZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�#Test_getObjectSpecificationFallbackcCrb)Nr)�getObjectSpecificationFallback)r)ry)rryrrrrFqr�z5Test_getObjectSpecificationFallback._getFallbackClasscOrer.rfrgrrrr�xrkz,Test_getObjectSpecificationFallback._callFUTcs<i�G�fdd�dt�}|�}|�|�}|�t|�g�dS)Ncs eZdZ�fdd�Zdd�ZdS)zTTest_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foocs2|dkrt|��z�|WStyt|��wr&)r��KeyErrorr�r/rrr'~s
�zeTest_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foo.__getattribute__cSr-r.r/r-rrrr1�r�z`Test_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foo.__setattr__Nr2rr/rrr&}sr&�r*r�rr>�rr&r#rrr/r�#test_wo_existing_provides_classless{s

zGTest_getObjectSpecificationFallback.test_wo_existing_provides_classlesscCsNddlm}ddlm}|d�}dd�}|||�|�|�}|�||j�dS)Nrr�rorqcSr-r.r/rrrrr#�r�zOTest_getObjectSpecificationFallback.test_existing_provides_is_spec.<locals>.foo)r)r�rErpr�r�r")rr�rprqr#rrrr�test_existing_provides_is_spec�s

zBTest_getObjectSpecificationFallback.test_existing_provides_is_speccCs.dd�}t�|_|�|�}|�t|�g�dS)NcSr-r.r/rrrrr#�r�zSTest_getObjectSpecificationFallback.test_existing_provides_is_not_spec.<locals>.foo)r*r"r�rr>)rr#rrrr�"test_existing_provides_is_not_spec�s
zFTest_getObjectSpecificationFallback.test_existing_provides_is_not_speccCs`ddlm}ddlm}|d�}Gdd�dt�}|�}|||�|�|�}|�t|�|g�dS)Nrr�rorqc@r$)zGTest_getObjectSpecificationFallback.test_existing_provides.<locals>.FooNr%rrrrr&�r5r&)r)r�rErpr*r�rr>)rr�rprqr&r#rrrr�test_existing_provides�s

z:Test_getObjectSpecificationFallback.test_existing_providescCs^ddlm}ddlm}|d�}||�Gdd�dt��}|�}|�|�}|�t|�|g�dS)Nrr�rorqc@r$)zWTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implements.<locals>.FooNr%rrrrr&�r'r&)r)r�rErpr*r�rr>�rr�rprqr&r#rrrr�&test_wo_provides_on_class_w_implements�s
zJTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implementscC�4Gdd�dt�}|�}|�|�}|�t|�g�dS)Nc@r$)zXTest_getObjectSpecificationFallback.test_wo_provides_on_class_wo_implements.<locals>.FooNr%rrrrr&�r5r&r{r|rrr�'test_wo_provides_on_class_wo_implements��
zKTest_getObjectSpecificationFallback.test_wo_provides_on_class_wo_implementscCstj||jdd�dS)Nr"��expected_missing�r�test_raisesr�r�rrr�,test_catches_only_AttributeError_on_provides�r�zPTest_getObjectSpecificationFallback.test_catches_only_AttributeError_on_providescCstj||jddd�dS)Nr/)r�r"r�r�rrr�)test_catches_only_AttributeError_on_class�s
�zMTest_getObjectSpecificationFallback.test_catches_only_AttributeError_on_classcCs Gdd�dt�}|�|��dS)Nc@�eZdZee�ZdS)zyTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_AttributeError.<locals>.FooN)rrrrr�r"rrrrr&�r�r&)r*r�rrrr�Htest_raises_AttributeError_when_provides_fails_type_check_AttributeError�szlTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_AttributeErrorcCsrGdd�dt�}tr1|�t��}|�|��Wd�n1s wY|�d|jjd�dS|�|��dS)Nc@r�)zwTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_RuntimeError.<locals>.FooN)rrrr�RuntimeErrorr"rrrrr&�r�r&r/r)r*rr�r�r�r�	exceptionrh)rr&�excrrr�Ftest_raises_AttributeError_when_provides_fails_type_check_RuntimeError�s�zjTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_RuntimeErrorN)rrrrFrcr�r}r~rr�r�r�r�r�r�r�rrrrrxos

rxc@rH)�Test_getObjectSpecificationcCrb)Nr)�getObjectSpecification)r)r�)rr�rrrrc�rdz+Test_getObjectSpecification._getTargetClassNrJrrrrr��rKr�cs�eZdZdd�ZeZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Z�fdd�Z
�fdd�Z�fdd�Z�fdd�Z�fdd�Zdd�Zdd �Z�ZS)!�Test_providedByFallbackcCrb)Nr)�providedByFallback)r)r�)rr�rrrrF�r�z)Test_providedByFallback._getFallbackClasscOrer.rfrgrrrr��rkz Test_providedByFallback._callFUTcCr�)Nc@r$)zNTest_providedByFallback.test_wo_providedBy_on_class_wo_implements.<locals>.FooNr%rrrrr&�r5r&r{r|rrr�)test_wo_providedBy_on_class_wo_implements�r�zATest_providedByFallback.test_wo_providedBy_on_class_wo_implementscCsbddlm}ddlm}|d�}Gdd�dt�}|�}|||�|_|�|�}|�t|�|g�dS)Nrr�rorqc@r$)zATest_providedByFallback.test_w_providedBy_valid_spec.<locals>.FooNr%rrrrr&�r5r&)	r)r�rErpr*r#r�rr>)rr�rprqr&r#rrrr�test_w_providedBy_valid_spec�s
z4Test_providedByFallback.test_w_providedBy_valid_speccCs<Gdd�dt�}|�}t�|_|�|�}|�t|�g�dS)Nc@r$)zCTest_providedByFallback.test_w_providedBy_invalid_spec.<locals>.FooNr%rrrrr&	r5r&)r*r#r�rr>r|rrr�test_w_providedBy_invalid_spec	s

z6Test_providedByFallback.test_w_providedBy_invalid_speccCsfddlm}ddlm}|d�}||�Gdd�dt��}|�}t�|_|�|�}|�t|�|g�dS)Nrr�rorqc@r$)zVTest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implements.<locals>.FooNr%rrrrr&	r'r&)	r)r�rErpr*r#r�rr>r�rrr�1test_w_providedBy_invalid_spec_class_w_implements
	s
zITest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implementscCsFGdd�dt�}|�}t�|_t�}|_|�|�}|�||u�dS)Nc@r$)zcTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_no_provides_on_class.<locals>.FooNr%rrrrr&	r5r&�r*r#r"r�rM�rr&r#�expectedrrrr�>test_w_providedBy_invalid_spec_w_provides_no_provides_on_class	s
zVTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_no_provides_on_classcCsNGdd�dt�}|�}t�|_t�}|_t�|_|�|�}|�||u�dS)Nc@r$)zeTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class.<locals>.FooNr%rrrrr& 	r5r&r�r�rrr�@test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class	s
zXTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_diff_provides_on_classcCstddlm}ddlm}|d�}||�Gdd�dt��}|�}t�|_t�|_|_|�|�}|�t	|�|g�dS)Nrr�rorqc@r$)zeTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_class.<locals>.FooNr%rrrrr&-	r'r&)
r)r�rErpr*r#r"r�rr>r�rrr�@test_w_providedBy_invalid_spec_w_provides_same_provides_on_class)	s
zXTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_classc
s�ddlm}ddlm}Gdd�d|�}Gdd�d|�}||�Gdd	�d	t��}||�Gd
d�d|��}|�}|�t|�|��||g�t||�}|�|�}	|�	|	j
�|�t|	�|g�dS)NrrCr�c@r$)zPTest_providedByFallback.test_super_when_base_implements_interface.<locals>.IBaseNr%rrrrr�:	r5r�c@r$)zSTest_providedByFallback.test_super_when_base_implements_interface.<locals>.IDerivedNr%rrrrr�=	r5r�c@r$)zOTest_providedByFallback.test_super_when_base_implements_interface.<locals>.BaseNr%rrrrr�@	r'r�c@r$)zRTest_providedByFallback.test_super_when_base_implements_interface.<locals>.DerivedNr%rrrrr)D	r'r)�r�rDr)r�r*rr>r�r+rZr5)
rrDr�r�r�r�r)�derivedr-r6r.rrr06	s

zATest_providedByFallback.test_super_when_base_implements_interfacec	s�ddlm}ddlm}Gdd�d|�}Gdd�d|�}Gdd	�d	t�}||�Gd
d�d|��}|�}|�t|�|��|g�t||�}|�t|�|��g�dS)NrrCr�c@r$)zVTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IBaseNr%rrrrr�T	r5r�c@r$)zYTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IDerivedNr%rrrrr�W	r5r�c@r$)zUTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.BaseNr%rrrrr�Z	r5r�c@r$)zXTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.DerivedNr%rrrrr)]	r'r)r*)	rrDr�r�r�r�r)r�r-r.rrr8P	s
zGTest_providedByFallback.test_super_when_base_doesnt_implement_interfacec	s�ddlm}ddlm}Gdd�d|�}Gdd�d|�}||�Gdd	�d	t��}|�}|�t|�|��|g�t||�}|�|�}|�	|j
�|�t|�g�dS)
NrrCr�c@r$)zETest_providedByFallback.test_super_when_base_is_object.<locals>.IBaseNr%rrrrr�k	r5r�c@r$)zHTest_providedByFallback.test_super_when_base_is_object.<locals>.IDerivedNr%rrrrr�n	r5r�c@r$)zGTest_providedByFallback.test_super_when_base_is_object.<locals>.DerivedNr%rrrrr)q	r'r)r�)	rrDr�r�r�r)r�r-r6r.rrr9g	s

z6Test_providedByFallback.test_super_when_base_is_objectcs�ddlm}ddlm}ddlm}Gdd�d|�}Gdd�d|�}||�Gd	d
�d
t��}Gdd�d|�}|�}|�t|�|��|g�|||�|�t|�|��||g�t	||�}	|�|	�}
|�
|
j�|�t|
�|g�dS)
NrrCr�r�c@r$)zOTest_providedByFallback.test_super_when_object_directly_provides.<locals>.IBaseNr%rrrrr��	r5r�c@r$)zRTest_providedByFallback.test_super_when_object_directly_provides.<locals>.IDerivedNr%rrrrr��	r5r�c@r$)zNTest_providedByFallback.test_super_when_object_directly_provides.<locals>.BaseNr%rrrrr��	r'r�c@r$)zQTest_providedByFallback.test_super_when_object_directly_provides.<locals>.DerivedNr%rrrrr)�	r5r))r�rDr)r�r�r*rr>r�r+rZr5)rrDr�r�r�r�r�r)r�r-r6r.rr�(test_super_when_object_directly_provides}	s 


z@Test_providedByFallback.test_super_when_object_directly_providescsbddlm}ddlm}Gdd�d|�}Gdd�d|�}Gdd	�d	|�}Gd
d�d|�}Gdd
�d
|�}||�Gdd�dt��}||�Gdd�d|��}	||�Gdd�d|��}
|||�Gdd�d|	|
��}|�}t||�}
t|	|�}t|
|�}|�t|�|��|||||g�|�t|�|
��|||g�|�t|�|��||g�|�t|�|��|g�dS)Nrr�rCc@r$)zOTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IBaseNr%rrrrr��	r5r�c@r$)zMTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM1Nr%rrrrr:�	r5r:c@r$)zMTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM2Nr%rrrrr;�	r5r;c@r$)zRTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IDerivedNr%rrrrr��	r5r�c@r$)zTTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IUnrelatedNr%rrrrr<�	r5r<c@r$)zNTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.BaseNr%rrrrr��	r'r�c@r$)zLTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.M1Nr%rrrrr=�	r'r=c@r$)zLTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.M2Nr%rrrrr>�	r'r>c@r$)zQTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.DerivedNr%rrrrr)�	r'r)r?r@r.rrrE�	s>


����z@Test_providedByFallback.test_super_multi_level_multi_inheritancecCstj||jdtd�dS)Nr#)r�r/)rr�r�r*r�rrr�.test_catches_only_AttributeError_on_providedBy�	s

�zFTest_providedByFallback.test_catches_only_AttributeError_on_providedBycCs&ttu}tj||j|r
dndd�dS)Nr/r#r�)�str�bytesrr�r�)r�PY3rrrr��	s


�zATest_providedByFallback.test_catches_only_AttributeError_on_class)rrrrFrcr�r�r�r�r�r�r�r�r0r8r9r�rEr�r�rGrrr.rr��s$	

1r�c@rH)�Test_providedBycCrb)Nrr)r)rj)rrjrrrrc�	rdzTest_providedBy._getTargetClassNrJrrrrr��	rKr�c@sPeZdZdd�ZeZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)�*ObjectSpecificationDescriptorFallbackTestscCrb)Nr)�%ObjectSpecificationDescriptorFallback)r)r�)rr�rrrrF�	sz<ObjectSpecificationDescriptorFallbackTests._getFallbackClasscOrer.rfrgrrrrj�	rkz3ObjectSpecificationDescriptorFallbackTests._makeOnecCs^ddlm}ddlm}|d�}Gdd�dt�}|||�|_|��|_|�t	|j�|g�dS)Nrr�rorqc@r$)zOObjectSpecificationDescriptorFallbackTests.test_accessed_via_class.<locals>.FooNr%rrrrr&�	r5r&)
r)r�rErpr*r"rjr#rr>)rr�rprqr&rrr�test_accessed_via_class�	s
zBObjectSpecificationDescriptorFallbackTests.test_accessed_via_classcCs�ddlm}ddlm}ddlm}|d�}|d�}||�Gdd�dt��}|||�|_|��|_|�}|�	t
|j�|g�dS)	Nrr�r�rorqr�c@r$)zZObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_provides.<locals>.FooNr%rrrrr&�	r'r&)r)r�r�rErpr*r"rjr#rr>)rr�r�rprqr�r&r#rrr�"test_accessed_via_inst_wo_provides�	s
zMObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_providesc
Cs�ddlm}ddlm}ddlm}ddlm}|d�}|d�}|d�}||�Gd	d
�d
t��}|||�|_|��|_	|�}	||	|�|�
t|	j	�||g�dS)Nrr�r�r�rorqr�r�c@r$)zYObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_provides.<locals>.FooNr%rrrrr&
r'r&)r)r�r�r�rErpr*r"rjr#rr>)
rr�r�r�rprqr�r�r&r#rrr�!test_accessed_via_inst_w_provides
s

zLObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_providescsfGdd�dt��G��fdd�dt�}|�}�����t|d�Wd�dS1s,wYdS)Nc@r$)zvObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.MyExceptionNr%rrrr�MyException
r5r�cs$eZdZ���Ze�fdd��ZdS)znObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.Foocs��r.rr�)r�rrr" 
rOz{ObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.Foo.__provides__N�rrrrjr#r�r"r�r�rrrr&
sr&r#)�	Exceptionr*r�rIr�rr�r�6test_arbitrary_exception_accessing_provides_not_caught
s"�zaObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caughtcsBGdd�dt�}G�fdd�dt�}|�}t|d�}��|�dS)Nc@r$)zmObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.MyExceptionNr%rrrrr�*
r5r�cs eZdZ���Zedd��ZdS)zeObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.FoocSr�r.)r�r�rrrr"0
rOzrObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.Foo.__provides__Nr�rr�rrr&-
sr&r#)r�r*rI�assertIsNotNone)rr�r&r#�providedrr�r�-test_AttributeError_accessing_provides_caught(
s

zXObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caughtcCsdddlm}ddlm}Gdd�d|�}||�Gdd�dt��}|��|_t|�d�}|�|�dS)	NrrCr�c@r$)zZObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.IFooNr%rrrrrq<
r5rqc@seZdZedd��ZdS)zYObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.FoocSsdSr.rr�rrrr"B
rOzfObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.Foo.__provides__N)rrrr�r"rrrrr&?
sr&r#)r�rDr�r*rjr#rIrZ)rrDr�rqr&r�rrr�!test_None_in__provides__overrides8
s
zLObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overridesN)rrrrFrcrjr�r�r�r�r�r�rrrrr��	s
r�c@rH)�"ObjectSpecificationDescriptorTestscCrb)Nr)�ObjectSpecificationDescriptor)r)r�)rr�rrrrcP
rdz2ObjectSpecificationDescriptorTests._getTargetClassNrJrrrrr�K
sr�c@r)rcs<�|_�fdd�|D�|_|��D]
\}}t�||�qdS)Ncsi|]}|t�|��qSr)rI)�.0�key��modulerr�
<dictcomp>\
sz$_Monkey.__init__.<locals>.<dictcomp>)r��
to_restore�itemsr�)rr�rir�r.rr�rr�Z
s
�z_Monkey.__init__cCr\r.rr�rrr�	__enter__`
r�z_Monkey.__enter__cCs&|j��D]\}}t|j||�qdSr.)r�r�r�r�)r�exc_type�exc_val�exc_tbr�r.rrr�__exit__c
s�z_Monkey.__exit__N�rrrr�r�r�rrrrrX
src@r)rcKs8||_t||�|_|j��|_|j��|j�|�dSr.)r�rI�target�copyr��clear�update)rr��attrnamerirrrr�j
s

z_MonkeyDict.__init__cCs|jSr.)r�r�rrrr�q
r�z_MonkeyDict.__enter__cCs|j��|j�|j�dSr.)r�r�r�r�)rr�r�r�rrrr�t
s
z_MonkeyDict.__exit__Nr�rrrrrh
sr)5r�unittest�zope.interface._compatrrr�rr�#zope.interface.tests.test_interfacerr*r�TestCaser r8rar�r�r�rIrLrZrdr�r�r�r�r�r�r�r�r�rrr4r7r=rLrNrUrXr`rfrkrmrxr�r�r�r�r�rrrrrr�<module>s�
:LC�sE�	-:j@"5;2">A 1.�")N.?<l�	v�	
i�


Anon7 - 2022
AnonSec Team