Warning: chmod(): No such file or directory in /home/tuempresavirtual.cl/public_html/wp-content/plugins/appointment-hour-booking/app-booking-plugin.php on line 3
403WebShell
403Webshell
Server IP : 186.64.123.29  /  Your IP : 216.73.217.94
Web Server : LiteSpeed
System : Linux house.hostinglat.cl 5.15.0-185-generic #195-Ubuntu SMP Fri Jun 19 17:11:50 UTC 2026 x86_64
User : tuemp9827 ( 1016)
PHP Version : 8.1.31
Disable Function : NONE
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 :


[ Back ]     

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�locsZfails_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!r1rrr�
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+r3r5rrrrr3s		rc@�\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�EmptyDeclarationTestscCsddlm}|�S�Nr)�Declaration�r(r9�rr9rrr�	_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.interfacerCr<rr=�	flattened�rrCr?rrr�test_flattened_empty^sz*EmptyDeclarationTests.test_flattened_emptycCs$ddlm}|��}|�||�dSrA)rDrCr<�assertNotInrFrrr�test___contains___emptycsz-EmptyDeclarationTests.test___contains___emptycCs<ddlm}|��}|�|�|��|�|j|dd��dS)NrrBT��strict)rDrCr<�
assertTrue�extendsrFrrr�test_extends_emptyhsz(EmptyDeclarationTests.test_extends_emptycCs$|��}t|���}|�|g�dSr-)r<r=Z
interfacesr)rr?�lrrr�test_interfaces_emptynsz+EmptyDeclarationTests.test_interfaces_emptycCs*ddlm}|��}|�|j||f�dSrA)rDrCr<r�__sro__rFrrr�
test___sro___ssz#EmptyDeclarationTests.test___sro___cCs(ddlm}|��}|�|j|f�dSrA)rDrCr<r�__iro__rFrrr�
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[�changedrZr>rrr� test_changed_w_existing__v_attrs�s
z6EmptyDeclarationTests.test_changed_w_existing__v_attrsN)
rrrr<r@rGrIrNrPrRrTr\r^rrrrr7Rsr7c@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}|Sr8r:r;rrr�_getTargetClass��z DeclarationTests._getTargetClasscO�|��|i|��Sr-�ra�r�args�kwrrr�_makeOne��zDeclarationTests._makeOnecCs|��}|�t|j�g�dSr-)rhrr=�	__bases__r>rrr�test_ctor_no_bases�sz#DeclarationTests.test_ctor_no_basescCs6ddlm}|d�}|�|�}|�t|j�|g�dS�Nr��InterfaceClass�IFoo)rDrnrhrr=rj�rrnror?rrr�test_ctor_w_interface_in_bases�s
z/DeclarationTests.test_ctor_w_interface_in_basescCs4ddlm}|�}|�|�}|�t|j�|g�dS�Nr��
Implements)r(rtrhrr=rj)rrt�implr?rrr�test_ctor_w_implements_in_bases�s
z0DeclarationTests.test_ctor_w_implements_in_basescCs"|��}|�|�|�|j�dSr-)rhr]rXr[r>rrr�!test_changed_wo_existing__v_attrs�s
z2DeclarationTests.test_changed_wo_existing__v_attrscCs|��}|�||�dSr-)rhrHr>rrr�test___contains__w_self�sz(DeclarationTests.test___contains__w_selfcCs,ddlm}|d�}|��}|�||�dSrl)rDrnrhrHrprrr�"test___contains__w_unrelated_iface�sz3DeclarationTests.test___contains__w_unrelated_ifacecCs.ddlm}|d�}|�|�}|�||�dSrl)rDrnrh�assertInrprrr�!test___contains__w_base_interface�s
z2DeclarationTests.test___contains__w_base_interfacecCs4ddlm}|d�}|�|�}|�t|�|g�dSrl�rDrnrhrr=rprrr�test___iter___single_base�s
z*DeclarationTests.test___iter___single_basecCs@ddlm}|d�}|d�}|�||�}|�t|�||g�dS�Nrrmro�IBarr|�rrnrorr?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)NrrBrmro�rDrCrnrhrr=rE)rrCrnror?rrr�test_flattened_single_base�s

z+DeclarationTests.test_flattened_single_basecCsRddlm}ddlm}|d�}|d�}|�||�}|�t|���|||g�dS�NrrBrmrorr��rrCrnrorr?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~�rDrnrh�assertIsInstancerarr=�rrnror�before�afterrrr� test___sub___unrelated_interface�s
z1DeclarationTests.test___sub___unrelated_interfacecCs:ddlm}|d�}|�|�}||}|�t|�g�dSrlr|)rrnror�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)Nrrmror�IBazr|)rrnrorr�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)	NrrBrm��	C3Setting��ro�IBase�IDerivedT)�zope.interfacerCrDrn�zope.interface.tests.test_ror�r��C3�
STRICT_IROrhrrSrjr=)	rrCrnr�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)NrrB��
implementedBy��implementerr�r�c@r#)zPDeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.IBaseNr$rrrrr�Er4r�c@r#)zSDeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.IDerivedNr$rrrrr�Hr4r�c@r#)zODeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.BaseNr$rrrr�BaseKr&r�T)r�rCr�r�r�r�r�r)r�r�rrQrjr=)
rrCr�r�r�r�r�r�r�r�rrr�0test___add___overlapping_interface_implementedBy:s�zADeclarationTests.test___add___overlapping_interface_implementedByN)rrrrarhrkrqrvrwrxryr{r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr_�s2
		
r_c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestImmutableDeclarationcCr`)Nr)�_ImmutableDeclaration)r(r�)rr�rrrraYrbz(TestImmutableDeclaration._getTargetClasscCr`)Nr)�_empty)r(r�)rr�rrrr<]rbz"TestImmutableDeclaration._getEmptycCs0ddl}|�|�|����}|�||���dS)Nr)�pickle�loads�dumpsr<�assertIs)rr�Zcopiedrrr�test_pickleasz$TestImmutableDeclaration.test_picklecCs|�|���|���dSr-)r�rar<�rrrr�test_singletonfs�z'TestImmutableDeclaration.test_singletoncCs|�|��jd�dS)Nr)rr<rjr�rrr�
test__bases__l�z&TestImmutableDeclaration.test__bases__cCsV|��}d|_|�|��jd�|�t��d|_Wd�dS1s$wYdS)Nr)�)r<rjr�assertRaisesr)r�emptyrrr�test_change__bases__os"�z-TestImmutableDeclaration.test_change__bases__cCs4|��}|j}|�i|�d|d<|�i|j�dS)N�r�)r<Z
dependentsr)rr�Zdepsrrr�test_dependentsws
z(TestImmutableDeclaration.test_dependentscCs|���d�dSr-)r<r]r�rrr�test_changedsz%TestImmutableDeclaration.test_changedcCsH|�|���|��|�|��j|dd��|�|��j|dd��dS)NTrJF)rZr<rMr�rrr�test_extends_always_false�sz2TestImmutableDeclaration.test_extends_always_falsecCs0|�|���d��|�|���dd�d�dS)N�name�*)rXr<rYrr�rrr�test_get_always_default�sz0TestImmutableDeclaration.test_get_always_defaultcCsr|��}|�|ji�d|jd<|�|ji�|�|�d��i}|_d|d<|�|ji�|�|�d��dS)Nr�rU)r<rr[rXrY)rr?Zattrsrrr�test_v_attrs�s

z%TestImmutableDeclaration.test_v_attrsN)rrrrar<r�r�r�r�r�r�r�r�r�rrrrr�Wsr�c@r6)�TestImplementscCr`rr)r(rt)rrtrrrra�rbzTestImplements._getTargetClasscOrcr-rdrerrrrh�rizTestImplements._makeOnecCs$ddlm}Gdd�dt�}||�S)Nrr�c@r#)z+TestImplements._makeOneToCompare.<locals>.ANr$rrrr�A�r4r�)r(r�r))rr�r�rrr�_makeOneToCompare�sz TestImplements._makeOneToComparecCsH|��}|�|jd�|�|jd�|�|jd�|�t|j�g�dS)Nr�?)rhr�inherit�declaredrr=rj�rrurrrrk�s
z!TestImplements.test_ctor_no_basescCs"|��}d|_|�t|�d�dS)NZTestingzclassImplements(Testing))rhrr�reprr�rrr�
test___repr__�szTestImplements.test___repr__cCs,ddlm}|��}|�|��|df�dS)Nrr�r-)r(r�rhr�
__reduce__)rr�rurrr�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��r4r�c@r#)z#TestImplements.test_sort.<locals>.BNr$rrrr�B�r4r�rmro)r(r�r)rDrnr�hashrL)rr�r�r�rnrorrr�	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-�Z_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��r4r�c@r#)z-TestImplements.test_proxy_equality.<locals>.BNr$rrrrr��r4r�)r)r(r�rLrZ)rr�r�r�r�ZimplementedByAZimplementedByB�proxyrrr�test_proxy_equality�s 
z"TestImplements.test_proxy_equalitycCs^|��}|�|j�|�d|j�d|_|�d|j�|�d�|�|j�|�d|j�dS)N�_super_cacher�)rhrXr�rH�__dict__rzr]r�rrr� test_changed_deletes_super_cache�s
z/TestImplements.test_changed_deletes_super_cachecCsJ|��}|�|j�|�d|j�|�d�|�|j�|�d|j�dS)Nr�)rhrXr�rHr�r]r�rrr�%test_changed_does_not_add_super_caches
z4TestImplements.test_changed_does_not_add_super_cacheN)
rrrrarhr�rkr�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_implementedByFallbackcCr`)Nr)�implementedByFallback)r(r�)rr�rrrra�z*Test_implementedByFallback._getTargetClasscOrcr-rdrerrr�_callFUTriz#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__'r2zqTest_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�r�r)r��_MonkeyDictrLr�)rr�r%r"Zreg�specsrrr�4test_dictless_wo_existing_Implements_w_registrations-s�"�zOTest_implementedByFallback.test_dictless_wo_existing_Implements_w_registrationscCsFddlm}|�}Gdd�dt�}|�}||_|�|�|�|u�dS)Nrrsc@r�)zKTest_implementedByFallback.test_dictless_w_existing_Implements.<locals>.Foor�Nr�rrrrr%<r�r%)r(rtr)r�rLr�)rrtrur%r"rrr�#test_dictless_w_existing_Implements9sz>Test_implementedByFallback.test_dictless_w_existing_ImplementscCsNddlm}Gdd�dt�}|�}|d�}|f|_|�t|�|��|g�dS)Nrrmc@r�)zOTest_implementedByFallback.test_dictless_w_existing_not_Implements.<locals>.Foor�Nr�rrrrr%Dr�r%ro)rDrnr)r�rr=r�)rrnr%r"rorrr�'test_dictless_w_existing_not_ImplementsBszBTest_implementedByFallback.test_dictless_w_existing_not_Implementsc�>ddlm}|��G�fdd�dt�}|�|�|��u�dS)Nrrsc�eZdZ�ZdS)zJTest_implementedByFallback.test_w_existing_attr_as_Implements.<locals>.FooN�rrrr�r�rurrr%Nr�r%�r(rtr)rLr��rrtr%rrr�"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)Nrr�rsr�zclassImplements(%s))
r�r�r(rtr�rr=r��tuple�dictr�r�r)rr�rtr��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)Nrr�r�)	r�r�r)r�rr=rrLr�)rr�Zt_specZl_specZd_specr�rrr�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%or4r%)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%ur4r%�r)rr=r�r
rrr�test_no_assertionsssz-Test_implementedByFallback.test_no_assertionscCr�)Nc@�eZdZdZdS)zHTest_implementedByFallback.test_w_None_no_bases_not_factory.<locals>.FooNrrrrrr%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(rr)rr�rr�r�r��__providedBy__rHr�)rrr%r"r
rrr�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>.FooNrrrrrr%�r�r%z*zope.interface.tests.test_declarations.Foo)r(rr)r�rrr�r�r�r�rr)rrr%r
rrr�test_w_None_no_bases_w_class�s
�z7Test_implementedByFallback.test_w_None_no_bases_w_classcr�)Nrrscr)zBTest_implementedByFallback.test_w_existing_Implements.<locals>.FooNrrrrrr%�r�r%rrrrr�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)NrrBr�c@r#)zSTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.IBaseNr$rrrrr��r4r�c@r#)zVTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.IDerivedNr$rrrrr��r4r�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�rCr(r�r)rr=r��super�rrCr�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)NrrBr�c@r#)z[Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.IBaseNr$rrrrr��r4r�c@r#)z^Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.IDerivedNr$rrrrr��r4r�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�r4r#c@r#)z\Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Child2Nr$rrrr�Child2�r4r$c@r#)z]Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.DerivedNr$rrrrr�r&rr)
rrCr�r�r�r�r#r$rrr 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)NrrBr�c@r#)z]Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.IBaseNr$rrrrr��r4r�c@r#)z`Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.IDerivedNr$rrrrr��r4r�c@r#)z\Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.BaseNr$rrrrr��r4r�c@r#)z^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Child1Nr$rrrrr#�r4r#c@r#)z^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Child2Nr$rrrrr$�r&r$c@r#)z_Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.DerivedNr$rrrrr�r&r)r�rCr(r�r)r�__mro__r=r�rrX�_dependents)rrCr�r�r�r�r#r$rr�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)NrrBr�c@r#)zYTest_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IBaseNr$rrrrr��r4r�c@r#)z\Test_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IDerivedNr$rrrrr��r4r�c@r#)zXTest_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.BaseNr$rrrrr�r4r�c@r#)z[Test_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.DerivedNr$rrrrrr&rrrr 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)
NrrBr�c@r#)zHTest_implementedByFallback.test_super_when_base_is_object.<locals>.IBaseNr$rrrrr�r4r�c@r#)zKTest_implementedByFallback.test_super_when_base_is_object.<locals>.IDerivedNr$rrrrr�r4r�c@r#)zJTest_implementedByFallback.test_super_when_base_is_object.<locals>.DerivedNr$rrrrrr&rr)rrCr�r�r�rrr 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�rBc@r#)zRTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IBaseNr$rrrrr�"r4r�c@r#)zPTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM1Nr$rrrr�IM1%r4r,c@r#)zPTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM2Nr$rrrr�IM2(r4r-c@r#)zUTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IDerivedNr$rrrrr�+r4r�c@r#)zWTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IUnrelatedNr$rrrr�
IUnrelated.r4r.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&r0c@r#)zTTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.DerivedNr$rrrrr=r&r�	r(r�r�rCr)rrr=r��rr�rCr�r,r-r�r.r�r/r0r�d�sdZsm1Zsm2r rr�(test_super_multi_level_multi_inheritances>


����zCTest_implementedByFallback.test_super_multi_level_multi_inheritance)rrrra�_getFallbackClassr�r�r�r�r�r�rrrrrrrrrr"r%r)r*r+r5�
__classcell__rrr rr�
s0
		
 r�c@�eZdZdd�ZdS)�Test_implementedBycCr`)Nrr�)r(r�)rr�rrrraTrbz"Test_implementedBy._getTargetClassN�rrrrarrrrr9P�r9c@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)Nrrrmror@)r(rrDrnr�r�r�rrr��FUT_SETS_PROVIDED_BYr�rr)
rr%Z	orig_specZ	spec_namer�rrnro�returnedr
rrr�_check_implementer`s&�z'_ImplementsTestMixin._check_implementercC�Gdd�d�}|�|�dS)Nc@r#)z5_ImplementsTestMixin.test_oldstyle_class.<locals>.FooNr$rrrrr%}r4r%)rCr
rrr�test_oldstyle_class{�z(_ImplementsTestMixin.test_oldstyle_classcCsGdd�dt�}|�|�dS)Nc@r#)z5_ImplementsTestMixin.test_newstyle_class.<locals>.FooNr$rrrrr%�r4r%)r)rCr
rrr�test_newstyle_class�sz(_ImplementsTestMixin.test_newstyle_class)rrrrAr�rCrErGrrrrr<Ys
�r<c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�Test_classImplementsOnlyFcCsddlm}|||�|S)Nr)�classImplementsOnly)r(rI)rr=r>rIrrrr��s
z!Test_classImplementsOnly._callFUTcs�ddlm}ddlm}|d�}|d�}||��|f�_G�fdd�dt�}|�_|�||�|�|j	�u�|�
�jd�|�
�j|f�dS)Nrrsrmrorcr)z@Test_classImplementsOnly.test_w_existing_Implements.<locals>.FooNrrrrrr%�r�r%)r(rtrDrnr�r)r�r�rLr�r�rrtrnrorr%rrrr�sz3Test_classImplementsOnly.test_w_existing_ImplementscsPddlm}ddlm}|d�}||��G�fdd�d�}|j|�ddd�dS)	Nrrsrmrcr)z9Test_classImplementsOnly.test_oldstyle_class.<locals>.FooNrr�Zold_specrrr%�r�r%r��r�)r(rtrDrnrC�rrtrnrr%rrKrrE�sz,Test_classImplementsOnly.test_oldstyle_classcsRddlm}ddlm}|d�}||��G�fdd�dt�}|j|�ddd�dS)	Nrrsrmrcr)z9Test_classImplementsOnly.test_newstyle_class.<locals>.FooNrrrKrrr%�r�r%r�rL)r(rtrDrnr)rCrMrrKrrG�sz,Test_classImplementsOnly.test_newstyle_classcCsL|jtdtfi�dd�\}}Gdd�d|�}|�||�|�|�|��dS)Nr%rLc@r#)zRTest_classImplementsOnly.test_redundant_with_super_still_implements.<locals>.ChildNr$rrrr�Child�r4rN)rC�typer)r�rLr�)rr�r�rNrrr�*test_redundant_with_super_still_implements�s
�zCTest_classImplementsOnly.test_redundant_with_super_still_implementsN)	rrrrAr�rrErGrPrrrrrH�s
rHc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�Test_classImplementscC�$ddlm}|||�}|�|�|S)Nr��classImplements)r(rTrX)rr=r>rT�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$rrrrrN�r4rNr�rrr)rCr�rzr�rHr�rr�r�rL�
providedBy)rr�r�rNrBr
rrrZ__check_implementer_redundant�sz2Test_classImplements.__check_implementer_redundantcCs|�tdtfi��dS)Nr%)�2_Test_classImplements__check_implementer_redundantrOr)r�rrr�<test_redundant_implementer_empty_class_declarations_newstyle�szQTest_classImplements.test_redundant_implementer_empty_class_declarations_newstylecCrD)Nc@r#)z^Test_classImplements.test_redundant_implementer_empty_class_declarations_oldstyle.<locals>.FooNr$rrrrr%�r4r%)rXr
rrr�<test_redundant_implementer_empty_class_declarations_oldstyle�rFzQTest_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)NrrBr�r�r�c@r#)zFTest_classImplements.test_redundant_implementer_Interface.<locals>.FooNr$rrrrr%�r4r%Fc@r#)zFTest_classImplements.test_redundant_implementer_Interface.<locals>.BazNr$rrrr�Baz�r4r[)r�rCr�r�r�r�r)r�r�r�rr=)rrCr�r�r�r%r[rrr�$test_redundant_implementer_Interface�s"�z9Test_classImplements.test_redundant_implementer_InterfacecCs||fSr-r�rZ
applied_firstZapplied_secondrrr�_order_for_two��z#Test_classImplements._order_for_twocs�ddlm}ddlm}|d�}|d�}||��|f�_G�fdd�dt�}|�_|�||�|�|j	��|�
�j|�|�
�j|�||��dS)Nrrsrmrorcr)z<Test_classImplements.test_w_existing_Implements.<locals>.FooNrrrrrr%r�r%)r(rtrDrnr�r)r�r�r�r�rr^rJrrrr�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)Nrrsrm�IRoot�ISecondRoot�IExtendsRootZRootcr)zFTest_classImplements.test_w_existing_Implements_w_bases.<locals>.Root1Nrr��	impl_rootrr�Root1r�recr)zFTest_classImplements.test_w_existing_Implements_w_bases.<locals>.Root2Nrrrcrr�Root2r�rfZExtendsRoot1cr)zLTest_classImplements.test_w_existing_Implements_w_bases.<locals>.ExtendsRootNrr)�impl_extends_rootrr�ExtendsRootr�rh)r(rtrDrnr!r�r)r�r�r�r�rr^rj)	rrtrnr`rarbrerfrhr)rgrdr�"test_w_existing_Implements_w_basess,
��z7Test_classImplements.test_w_existing_Implements_w_basesN)rrrr�rXrYrZr\r^rrirrrrrQ�srQc@�eZdZdd�Zdd�ZdS)�Test_classImplementsFirstcCrR)Nr)�classImplementsFirst)r(rlrX)rr=r>rlrUrrrr�,rVz"Test_classImplementsFirst._callFUTcCs||fSr-rr]rrrr^2r_z(Test_classImplementsFirst._order_for_twoN)rrrr�r^rrrrrk*srkc@rj)�Test__implements_advicecO�ddlm}||i|��S)Nr)�_implements_advice)r(ro)rrfrgrorrrr�8�z Test__implements_advice._callFUTcs�ddlm�ddlm}ddlm}|d��G��fdd�dt�}|�|�|�d|j�|�	|j
|�|�t|j
��g�dS)	NrrSrsrmrocseZdZ�f�fZdS)z@Test__implements_advice.test_no_existing_implements.<locals>.FooN)rrr�__implements_advice_data__r�rorTrrr%Asr%rq)
r(rTrtrDrnr)r�rHr�r�r�rr=)rrtrnr%rrrr�test_no_existing_implements<s
z3Test__implements_advice.test_no_existing_implementsN)rrrr�rsrrrrrm6srmc@�<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�Test_implementercCr`)Nrr�)r(r�)rr�rrrraKrbz Test_implementer._getTargetClasscOrcr-rdrerrrrhOrizTest_implementer._makeOnecGs|j|�}||�Sr-�rh)rr=Zifaces�	decoratorrrrr�R�
zTest_implementer._callFUTcCs2ddlm}|d�}|�|�}|�t|t��dSrl)rDrnrhr�rr))rrnrorwrrr� test_nonclass_cannot_assign_attrVs
z1Test_implementer.test_nonclass_cannot_assign_attrcCs|ddlm}|d�}Gdd�dt�}|�}|�|�}||�}|�||u�|j}|�|jd�|�|j	�|�
|j|�dS)Nrrmroc@r#)z;Test_implementer.test_nonclass_can_assign_attr.<locals>.FooNr$rrrrr%_r4r%z(zope.interface.tests.test_declarations.?)rDrnr)rhrLr�rrrXr�r�)rrnror%r"rwrBr
rrr�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)Nrrmroilc@r#)zHTest_implementer.test_does_not_leak_on_unique_classes.<locals>.TestClassNr$rrrr�	TestClasswr4r{)
�gcrDrnrZget_objects�ranger)r�ZcollectZassertLessEqual)	rr|rnroZbegin_count�_r{Z	end_countZfudge_factorrrr�$test_does_not_leak_on_unique_classesjsz5Test_implementer.test_does_not_leak_on_unique_classesN)	rrrrarhr�ryrzrrrrrruIsruc@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�Test_implementer_onlycCr`)Nr)�implementer_only)r(r�)rr�rrrra�rbz%Test_implementer_only._getTargetClasscOrcr-rdrerrrrh�rizTest_implementer_only._makeOnecCs|�|�}||�Sr-rv)rr=r>rwrrrr��rxzTest_implementer_only._callFUTcCs8ddlm}|d�}|�|�}dd�}|�t||�dS)NrrmrocSr,r-r.rrrr�	_function�r�z6Test_implementer_only.test_function.<locals>._function)rDrnrhr��
ValueError)rrnrorwr�rrrr3�s

z#Test_implementer_only.test_functioncCs@ddlm}|d�}|�|�}Gdd�d�}|�t||j�dS)Nrrmroc@r8)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�)rDrnrhr�r�r�)rrnrorwr�rrr�test_method�s

z!Test_implementer_only.test_methodN)rrrrarhr�r3r�rrrrr��sr�c@rj)�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��implementsOnlyrmro)r�ro�
z*class Foo(object):    implementsOnly(IFoo)TrzMust be Python 3r
r%)rr(r�rDrn�joinrr
rrrLrrr�rr=r)rrr�rnrorr�CODErr%r
rrr�test_simple�s6���
�"�zTest_implementsOnly.test_simplecCs�ddlm}ddlm}ddlm}|d�}|d�}||||d�}i}d�gd	��}|�|||�rC|d
}	|	j}
|�t	|
�|g�dSdS)Nr��
implementsr�rmror)r�r�rorr�)�class Foo(object):�    implements(IFoo)z'class Bar(Foo):    implementsOnly(IBar)r�)
r(r�r�rDrnr�rr�rr=)rr�r�rnrorrrr�r�r
rrr�#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�rmro�r�ror��
def foo():r�Fr"Tr)
rr(r�rDrnr�rrr
r�rrr)
rrr�rnrorrr�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�rmror)r�rorr�)r�r�z    implements(IBar)Trr
)rr(r�rDrnr�rr
rrrrrr)
rrr�rnrorrrr�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�rmror�r�r�r�r%)	r(r�rDrnr�rr�rr=)	rr�rnrorrr�r%r
rrr�test_called_once_from_class�
��z+Test_implements.test_called_once_from_classN�rrrr�r�r�rrrrr��sr�c@rt)�ProvidesClassTestscCr`�Nr��
ProvidesClass�r(r��rr�rrrrarbz"ProvidesClassTests._getTargetClasscOrcr-rdrerrrrh!rizProvidesClassTests._makeOnecCsFddlm}|d�}Gdd�dt�}|�||�}|�t|�|g�dS)Nrrmroc@r#)z?ProvidesClassTests.test_simple_class_one_interface.<locals>.FooNr$rrrrr%'r4r%)rDrnr)rhrr=�rrnror%r
rrr�test_simple_class_one_interface$s
z2ProvidesClassTests.test_simple_class_one_interfacecCshddlm}ddlm}|d�}Gdd�dt�}|�||�}|��\}}|�||�|�|||f�dS)Nr��Providesrmroc@r#)z/ProvidesClassTests.test___reduce__.<locals>.FooNr$rrrrr%0r4r%)	r(r�rDrnr)rhr�r�r)rr�rnror%r
�klassrfrrrr�,sz"ProvidesClassTests.test___reduce__cCsHddlm}|d�}Gdd�dt�}|�||�}||_|�|j|�dS)Nrrmroc@r#)z2ProvidesClassTests.test___get___class.<locals>.FooNr$rrrrr%:r4r%�rDrnr)rhrr�r�rrr�test___get___class7sz%ProvidesClassTests.test___get___classcsRddlm}|d�}Gdd�dt��|��|�}|�_�fdd�}|�t|�dS)Nrrmroc@r#)z5ProvidesClassTests.test___get___instance.<locals>.FooNr$rrrrr%Cr4r%cs��}|jSr-)r)r"�r%rr�_testGsz7ProvidesClassTests.test___get___instance.<locals>._test)rDrnr)rhrr��AttributeError)rrnror
r�rr�r�test___get___instance@sz(ProvidesClassTests.test___get___instanceN)	rrrrarhr�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_mrosrK��_do_calculate_ro�rr�r�rrr�S�zQProvidesClassStrictTests._getTargetClass.<locals>.StrictProvides._do_calculate_roN�rrrr�rr�rr�StrictProvidesR�r�)rr�ra)rr�r r�rraP�z(ProvidesClassStrictTests._getTargetClasscCs|ddlm}ddlm}ddlm}Gdd�d|�}||�Gdd�dt��}|�||�}|�|j|||�||t�|f�dS)	Nrr�rBr�c@r#)zMProvidesClassStrictTests.test_overlapping_interfaces_corrected.<locals>.IBaseNr$rrrrr�^r4r�c@r#)zLProvidesClassStrictTests.test_overlapping_interfaces_corrected.<locals>.BaseNr$rrrrr�ar&r�)r�r�rCr�r)rhrrQ)rr�rCr�r�r�r
rrr�%test_overlapping_interfaces_correctedWs
�z>ProvidesClassStrictTests.test_overlapping_interfaces_corrected�rrrrar�r7rrr rr�M�r�c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestProvidesClassReprcCr`r�r�r�rrrraqrbz%TestProvidesClassRepr._getTargetClasscOrcr-rdrerrrrhurizTestProvidesClassRepr._makeOnecCstddlm}|d�}|jdksJ�|jtksJ�t|�dtfks#J�|d�}|�t|�||�}|�t|�d�dS)Nrrmroz<InterfaceClass %s.IFoo>rz3directlyProvides(TestProvidesClassRepr, IFoo, IBar))rDrnrrr�rhrOr)rrnror�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�rrr�)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�rr}ZHIGHEST_PROTOCOLr�Z
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��alsoProvidesrmrorrzAdirectlyProvides(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�rDrnrZ
addCleanup�setattrrr��modulesr�hasattr�delattrr�)rr�r�r�r�rnrorZ
orig_providesr�Z	my_modulerrr�#test__repr__directlyProvides_module�s>
�
�
�z9TestProvidesClassRepr.test__repr__directlyProvides_modulecCs\ddlm}ddlm}|d�}|�||�}|jd7_|jd7_|�t|�d�dS)Nrrm)�
ModuleTypero)zsome.module)zanother.modulez9directlyProvides(('some.module', 'another.module'), IFoo))rDrnr(r�rhZ_v_module_namesrr�)rrnr�ror�rrr�)test__repr__module_provides_cached_shared�s�z?TestProvidesClassRepr.test__repr__module_provides_cached_sharedcCsTddlm}|ddd�}|ddd�}|d�}|�t|�|||�}|�t|�d�dS)	Nrrmro�mod1�r�mod2r�z>directlyProvides(TestProvidesClassRepr, IFoo, IBaz, mod2.IFoo)�rDrnrhrOrr��rrnroZIFoo2r�r�rrr�test__repr__duplicate_names�s�z1TestProvidesClassRepr.test__repr__duplicate_namescCsfddlm}ddlm}Gdd�d|�}Gdd�dt�}|t|��}|�|||�}|�t|�d�dS)	NrrBr�c@r�)zKTestProvidesClassRepr.test__repr__implementedBy_in_interfaces.<locals>.IFoo�Does nothingN�rrr�__doc__rrrrro�r�roc@r�)zJTestProvidesClassRepr.test__repr__implementedBy_in_interfaces.<locals>.Barr�Nr�rrrrr��r�r�zCdirectlyProvides(Bar, IFoo, classImplements(TestProvidesClassRepr)))r�rCr�r)rOrhrr�)rrCr�ror�rur�rrr�'test__repr__implementedBy_in_interfaces�s�z=TestProvidesClassRepr.test__repr__implementedBy_in_interfacescCs"|�t|��}|�t|�d�dS)Nz'directlyProvides(TestProvidesClassRepr)�rhrOrr��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)rrrrj�__str__r�rr�rr�Object�sr�zdirectlyProvides(<Object>))r)rhrr�)rr�r�rr�r�test__repr__non_class�s�z+TestProvidesClassRepr.test__repr__non_classcCsbddlm}ddlm}ddlm}|d�}||�Gdd�dt��}||��}|�t|�d�dS)	Nrr��rWrmroc@r#)zDTestProvidesClassRepr.test__repr__providedBy_from_class.<locals>.FooNr$rrrrr%r&r%�classImplements(Foo, IFoo))r(r�rWrDrnr)rr�)rr�rWrnror%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�r�r�rmrorc@r#)zFTestProvidesClassRepr.test__repr__providedBy_alsoProvides.<locals>.FooNr$rrrrr%r&r%z7directlyProvides(Foo, IBar, classImplements(Foo, IFoo)))	r(r�rWr�rDrnr)rr�)
rr�rWr�rnrorr%r"r�rrr�#test__repr__providedBy_alsoProvidess
�z9TestProvidesClassRepr.test__repr__providedBy_alsoProvidesN)rrrrarhr�r�r�r�r�r�r�r�r�r�r�rrrrr�os
	-

r�c@r)�
Test_ProvidescOrn)Nrr�)r(r�)rrfrgr�rrrr�.rpzTest_Provides._callFUTcCs�ddlm}ddlm}|d�}i}Gdd�dt�}t||d��|�||�}Wd�n1s1wY|�t|�|g�|�	|||f|u�dS)Nrr�rmroc@r#)z.Test_Provides.test_no_cached_spec.<locals>.FooNr$rrrrr%7r4r%�ZInstanceDeclarations)
r�r�rDrnr)�_Monkeyr�rr=rL)rr�rnro�cacher%r
rrr�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)Nrr�rmroc@r#)z-Test_Provides.test_w_cached_spec.<locals>.FooNr$rrrrr%Cr4r%r�)r�r�rDrnr)r�r�rL)rr�rnroZpriorr%r�r
rrr�test_w_cached_spec>s�z Test_Provides.test_w_cached_specN)rrrr�r�r�rrrrr�,sr�c@s8eZdZdd�Zdd�Zdd�Zedd��Zd	d
�ZdS)�Test_directlyProvidescOrn)Nrr�)r(r�)rrfrgr�rrrr�MrpzTest_directlyProvides._callFUTcC�hddlm}ddlm}|d�}Gdd�dt�}|�}|�||�|�|j|�|�t	|j�|g�dS)Nrr�rmroc@r#)z7Test_directlyProvides.test_w_normal_object.<locals>.FooNr$rrrrr%Ur4r%�
r(r�rDrnr)r�r�rrr=�rr�rnror%�objrrr�test_w_normal_objectQ�z*Test_directlyProvides.test_w_normal_objectcCsbddlm}ddlm}|d�}Gdd�dt�}|�||�|�|j|�|�t	|j�|g�dS)Nrrrmroc@r#)z/Test_directlyProvides.test_w_class.<locals>.FooNr$rrrrr%`r4r%)
r(rrDrnr)r�r�rrr=�rrrnror%rrr�test_w_class\sz"Test_directlyProvides.test_w_classcsTddlm}|d�}Gdd�dt��G�fdd�dt�}|�}|�t|j||�dS)Nrrmroc@r8)zNTest_directlyProvides.test_w_non_descriptor_aware_metaclass.<locals>.MetaClasscSs|dkr|St�||�S�Nr!)rO�__getattribute__)r=r�rrrr�lsz_Test_directlyProvides.test_w_non_descriptor_aware_metaclass.<locals>.MetaClass.__getattribute__N)rrrr�rrrr�	MetaClasskr�rcr)zHTest_directlyProvides.test_w_non_descriptor_aware_metaclass.<locals>.FooN)rrrZ
__metaclass__r�rrrr%tr�r%)rDrnrOr)r�rr��rrnror%r�rrr�%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�rmrocs 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�Zthe_dictrr�__setattr__�szFTest_directlyProvides.test_w_classless_object.<locals>.Foo.__setattr__N�rrrr�rrrrrr%~sr%r)	r(r�rDrnr)r�r�rr=r�rrr�test_w_classless_objectysz-Test_directlyProvides.test_w_classless_objectN)	rrrr�r�r�rrr	rrrrr�Ks

r�c@r)�Test_alsoProvidescOrn)Nrr�)r(r�)rrfrgr�rrrr��rpzTest_alsoProvides._callFUTcCr�)Nrr�rmroc@r#)z8Test_alsoProvides.test_wo_existing_provides.<locals>.FooNr$rrrrr%�r4r%r�r�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�rmrorc@r#)z7Test_alsoProvides.test_w_existing_provides.<locals>.FooNr$rrrrr%�r4r%)r(r�r�rDrnr)r�r�rrr=)rr�r�rnrorr%r�rrr�test_w_existing_provides�s
z*Test_alsoProvides.test_w_existing_providesN)rrrr�rrrrrrr
�sr
c@r�)�Test_noLongerProvidescOrn)Nr)�noLongerProvides)r(r)rrfrgrrrrr��rpzTest_noLongerProvides._callFUTcCsLddlm}|d�}Gdd�dt�}|�}|�||�|�t|j�g�dS)Nrrmroc@r#)z<Test_noLongerProvides.test_wo_existing_provides.<locals>.FooNr$rrrrr%�r4r%)rDrnr)r�rr=rrrrrr�sz/Test_noLongerProvides.test_wo_existing_providescCsbddlm}ddlm}|d�}Gdd�dt�}|�}|||�|�||�|�t|j�g�dS)Nrr�rmroc@r#)z?Test_noLongerProvides.test_w_existing_provides_hit.<locals>.FooNr$rrrrr%�r4r%�	r(r�rDrnr)r�rr=r)rr�rnror%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�rmrorc@r#)z@Test_noLongerProvides.test_w_existing_provides_miss.<locals>.FooNr$rrrrr%�r4r%r)rr�rnrorr%r�rrr�test_w_existing_provides_miss�s
z3Test_noLongerProvides.test_w_existing_provides_misscCsTddlm}ddlm}|d�}||�Gdd�dt��}|�}|�t|j||�dS)Nrr�rmroc@r#)zDTest_noLongerProvides.test_w_iface_implemented_by_class.<locals>.FooNr$rrrrr%�r&r%)r(r�rDrnr)r�r�r�)rr�rnror%r�rrr�!test_w_iface_implemented_by_class�sz7Test_noLongerProvides.test_w_iface_implemented_by_classN)rrrr�rrrrrrrrr
�s	r
c@r�)�ClassProvidesBaseFallbackTestscCr`�Nr)�ClassProvidesBaseFallback�r(r�rrrrrra�r�z.ClassProvidesBaseFallbackTests._getTargetClasscCsGdd�d|���}|||�S)Nc@r8)z8ClassProvidesBaseFallbackTests._makeOne.<locals>.DerivedcSs||_||_dSr-)�_clsZ_implements)r�k�irrrr��s
zAClassProvidesBaseFallbackTests._makeOne.<locals>.Derived.__init__N)rrrr�rrrrr�r�rrd)rr�r�rrrrrh�s
z'ClassProvidesBaseFallbackTests._makeOnecCsJddlm}|d�}Gdd�dt�}|�||�}|_|�|j|u�dS)Nrrmroc@r#)zGClassProvidesBaseFallbackTests.test_w_same_class_via_class.<locals>.FooNr$rrrrr%�r4r%)rDrnr)rhrrL)rrnror%Zcpbprrr�test_w_same_class_via_class�s
z:ClassProvidesBaseFallbackTests.test_w_same_class_via_classcCsJddlm}|d�}Gdd�dt�}|�}|�||�|_|�|j|�dS)Nrrmroc@r#)zJClassProvidesBaseFallbackTests.test_w_same_class_via_instance.<locals>.FooNr$rrrrr%�r4r%r�)rrnror%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)	Nrrmroc@r#)zBClassProvidesBaseFallbackTests.test_w_different_class.<locals>.FooNr$rrrrr%r4r%c@r#)zBClassProvidesBaseFallbackTests.test_w_different_class.<locals>.BarNr$rrrrr�r4r�r)rDrnr)rhrr�r��getattr)rrnror%r�Zbarrrr�test_w_different_class�sz5ClassProvidesBaseFallbackTests.test_w_different_classN)rrrrarhrrrrrrrr�s		rc@rj)�ClassProvidesBaseTestscCr`)Nr)�ClassProvidesBase)r(r )rr rrrrarbz&ClassProvidesBaseTests._getTargetClasscCr`rrrrrrr6r�z(ClassProvidesBaseTests._getFallbackClassN)rrrrar6rrrrrsrc@r�)
�ClassProvidesTestscCr`�Nrr�r(r�rrrrrrarbz"ClassProvidesTests._getTargetClasscOrcr-rdrerrrrhrizClassProvidesTests._makeOnecCs�ddlm}ddlm}|d�}|d�}||�Gdd�dt��}|�|t|�|�}|_|�|j|u�|�	t
|�j�|g�dS)Nrr�rmrorc@r#)z7ClassProvidesTests.test_w_simple_metaclass.<locals>.FooNr$rrrrr%'r&r%)r(r�rDrnr)rhrOrrLrr=�rr�rnrorr%�cprrr�test_w_simple_metaclass"sz*ClassProvidesTests.test_w_simple_metaclasscCs~ddlm}ddlm}|d�}|d�}||�Gdd�dt��}|�|t|�|�}|_|�|�	�t|�|t|�|ff�dS)Nrr�rmrorc@r#)z/ClassProvidesTests.test___reduce__.<locals>.FooNr$rrrrr%3r&r%)
r(r�rDrnr)rhrOrrr�r%rrrr�.s
�z"ClassProvidesTests.test___reduce__N)rrrrarhr'r�rrrrr!s
r!cr�)�ClassProvidesStrictTestscr�)Ncr�)zEClassProvidesStrictTests._getTargetClass.<locals>.StrictClassProvidescr�r�r�r�rrrr�Ar�zVClassProvidesStrictTests._getTargetClass.<locals>.StrictClassProvides._do_calculate_roNr�rrrr�StrictClassProvides@r�r))rr(ra)rr)r rrra>r�z(ClassProvidesStrictTests._getTargetClassc	Cs�ddlm}ddlm}ddlm}Gdd�d|�}||�Gdd�dt��}|d	tfi�}|�|||�}|�|j|||�||t�|t�|f�dS)
Nrr�rBr�c@r#)zMClassProvidesStrictTests.test_overlapping_interfaces_corrected.<locals>.IBaseNr$rrrrr�Lr4r�c@r#)zQClassProvidesStrictTests.test_overlapping_interfaces_corrected.<locals>.metaclassNr$rrrr�	metaclassOr&r*r=)	r�r�rCr�rOr)rhrrQ)rr�rCr�r�r*r=r
rrrr�Es(�
�z>ClassProvidesStrictTests.test_overlapping_interfaces_correctedr�rrr rr(;r�r(c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestClassProvidesReprcCr`r"r#r$rrrrafrbz%TestClassProvidesRepr._getTargetClasscOrcr-rdrerrrrhjrizTestClassProvidesRepr._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)NrrBc@r�)z=TestClassProvidesRepr.test__repr__providing_one.<locals>.IFoor�Nr�rrrrrovr�roz-directlyProvides(TestClassProvidesRepr, IFoo))r�rCrhrOrr�)rrCror�rrr�test__repr__providing_onets�z/TestClassProvidesRepr.test__repr__providing_onecCsVddlm}|ddd�}|ddd�}|d�}|�t|�t|||�}|�t|�d�dS)	Nrrmror�r�r�r�z>directlyProvides(TestClassProvidesRepr, IFoo, IBaz, mod2.IFoo)r�r�rrrr�s�z1TestClassProvidesRepr.test__repr__duplicate_namescCs`ddlm}ddlm}ddlm}|d�}||�Gdd�dt��}||�}|�t|�d�dS)	Nrr�r�rmroc@r#)z<TestClassProvidesRepr.test__repr__implementedBy.<locals>.FooNr$rrrrr%�r&r%r�)r(r�r�rDrnr)rr�)rr�r�rnror%r�rrr�test__repr__implementedBy�s�z/TestClassProvidesRepr.test__repr__implementedBycCsdddlm}Gdd�dt�}||��}|�t|�dtf�|�}d|_||�}|�t|�d�dS)Nrr�c@r8)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�r0zclassImplements(%s.?)zclassImplements(Callable))r(r�r)rr�r)rr�r0r��crrr�*test__repr__implementedBy_generic_callable�s
��z@TestClassProvidesRepr.test__repr__implementedBy_generic_callableN)
rrrrarhr,r-r�r.r2rrrrr+dsr+c@r�)�Test_directlyProvidedBycOrn)Nr)�directlyProvidedBy)r(r4)rrfrgr4rrrr��rpz Test_directlyProvidedBy._callFUTcCs0Gdd�dt�}|�}|�t|�|��g�dS)Nc@r#)zNTest_directlyProvidedBy.test_wo_declarations_in_class_or_instance.<locals>.FooNr$rrrrr%�r4r%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�rmroc@r#)zRTest_directlyProvidedBy.test_w_declarations_in_class_but_not_instance.<locals>.FooNr$rrrrr%�r&r%)r(r�rDrnr)rr=r�)rr�rnror%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�rmroc@r#)zRTest_directlyProvidedBy.test_w_declarations_in_instance_but_not_class.<locals>.FooNr$rrrrr%�r4r%)r(r�rDrnr)rr=r�)rr�rnror%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�rmrorc@r#)zNTest_directlyProvidedBy.test_w_declarations_in_instance_and_class.<locals>.FooNr$rrrrr%�r&r%)	r(r�r�rDrnr)rr=r�)rr�r�rnrorr%r"rrr�)test_w_declarations_in_instance_and_class�s
zATest_directlyProvidedBy.test_w_declarations_in_instance_and_classN)rrrr�r5r6r7r8rrrrr3�s

r3c@r)�Test_classProvidesc
Cs�ddl}ddlm}ddlm}|d�}||d�}i}d�ddg�}t|||�|d	}|jd
d��%}	|��|�	t
|�tsO|�t
|	�d�Wd�dSWd�dS1sZwYdS)Nr��
classProvidesrmro�r;ror�r��    classProvides(IFoo)r"Tr)rr(r;rDrnr�rrr
r�rrrr)
rrr;rnrorrr�r"rrrrr��s(
��"�z,Test_classProvides.test_called_from_functionc
	Cr�)Nrr:rmror)r;rorr�)r�r=z    classProvides(IBar)Trr
)rr(r;rDrnr�rr
rrrrrr)
rrr;rnrorrrr�rrrrr��r�z/Test_classProvides.test_called_twice_from_classc	Cr�)
Nrr:rmror<r�r�r=r%)	r(r;rDrnr�rrrr=)	rr;rnrorrr�r%r
rrrr�
r�z.Test_classProvides.test_called_once_from_classNr�rrrrr9�sr9c@r)�
Test_providercCr`)Nr)�provider)r(r?)rr?rrrra!rbzTest_provider._getTargetClasscOrcr-rdrerrrrh%rizTest_provider._makeOnecCs`ddlm}ddlm}|d�}|�|�Gdd�dt��}|�|j|�|�t	|j�|g�dS)Nrrrmroc@r#)z'Test_provider.test_w_class.<locals>.FooNr$rrrrr%,r&r%)
r(rrDrnrhr)r�rrr=r�rrrr�(szTest_provider.test_w_classN)rrrrarhr�rrrrr>sr>c@r�)
�Test_moduleProvidescCsbddlm}ddlm}|d�}d||d�}i}d�dd	g�}t|||�|d
}|�t|�dS)Nr��moduleProvidesrmro�zope.interface.tests.foo�rrBror�r��    moduleProvides(IFoo)r")r(rBrDrnr�rr�r)rrBrnrorrr�r"rrrr�6s��z-Test_moduleProvides.test_called_from_functioncCszddlm}ddlm}|d�}d||d�}i}d�dd	g�}|�t��t|||�Wd�dS1s6wYdS)
NrrArmrorCrDr�r�rE�r(rBrDrnr�r�rr)rrBrnrorrr�rrr�test_called_from_classEs��"�z*Test_moduleProvides.test_called_from_classcCs`ddlm}ddlm}|d�}d||d�}d�dg�}t||�|d	}|�t|�|g�dS)
NrrArmrorCrDr��moduleProvides(IFoo)r)r(rBrDrnr�rrr=)rrBrnrorr�r
rrr�"test_called_once_from_module_scopeSs��
z6Test_moduleProvides.test_called_once_from_module_scopecCstddlm}ddlm}|d�}d||d�}d�ddg�}|�t��t||�Wd�dS1s3wYdS)	NrrArmrorCrDr�rHrF)rrBrnrorr�rrr�#test_called_twice_from_module_scope`s��"�z7Test_moduleProvides.test_called_twice_from_module_scopeN)rrrr�rGrIrJrrrrr@3s

r@c@speZdZdd�ZeZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�#Test_getObjectSpecificationFallbackcCr`)Nr)�getObjectSpecificationFallback)r(rL)rrLrrrr6qr�z5Test_getObjectSpecificationFallback._getFallbackClasscOrcr-rdrerrrr�xriz,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�rrrr�~s
�zeTest_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foo.__getattribute__cSr,r-r.rrrrr�r�z`Test_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foo.__setattr__Nrrrrrr%}sr%�r)r�rr=�rr%r"r
rrr�#test_wo_existing_provides_classless{s

zGTest_getObjectSpecificationFallback.test_wo_existing_provides_classlesscCsNddlm}ddlm}|d�}dd�}|||�|�|�}|�||j�dS)Nrr�rmrocSr,r-r.rrrrr"�r�zOTest_getObjectSpecificationFallback.test_existing_provides_is_spec.<locals>.foo)r(r�rDrnr�r�r)rr�rnror"r
rrr�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)rr�rr=)rr"r
rrr�"test_existing_provides_is_not_spec�s
zFTest_getObjectSpecificationFallback.test_existing_provides_is_not_speccCs`ddlm}ddlm}|d�}Gdd�dt�}|�}|||�|�|�}|�t|�|g�dS)Nrr�rmroc@r#)zGTest_getObjectSpecificationFallback.test_existing_provides.<locals>.FooNr$rrrrr%�r4r%)r(r�rDrnr)r�rr=)rr�rnror%r"r
rrr�test_existing_provides�s

z:Test_getObjectSpecificationFallback.test_existing_providescCs^ddlm}ddlm}|d�}||�Gdd�dt��}|�}|�|�}|�t|�|g�dS)Nrr�rmroc@r#)zWTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implements.<locals>.FooNr$rrrrr%�r&r%)r(r�rDrnr)r�rr=�rr�rnror%r"r
rrr�&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%�r4r%rNrOrrr�'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!)rZrr[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�rrrrrr%�r�r%)r)r�r
rrr�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�RuntimeErrorrrrrrr%�r�r%r!r)r)rr�rar�rZ	exceptionrf)rr%�excrrr�Ftest_raises_AttributeError_when_provides_fails_type_check_RuntimeError�s�zjTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_RuntimeErrorN)rrrr6rar�rPrQrRrSrUrWr]r^r`rcrrrrrKos

rKc@r8)�Test_getObjectSpecificationcCr`)Nr)�getObjectSpecification)r(re)rrerrrra�rbz+Test_getObjectSpecification._getTargetClassNr:rrrrrd�r;rdcs�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_providedByFallbackcCr`)Nr)�providedByFallback)r(rg)rrgrrrr6�r�z)Test_providedByFallback._getFallbackClasscOrcr-rdrerrrr��riz Test_providedByFallback._callFUTcCrV)Nc@r#)zNTest_providedByFallback.test_wo_providedBy_on_class_wo_implements.<locals>.FooNr$rrrrr%�r4r%rNrOrrr�)test_wo_providedBy_on_class_wo_implements�rXzATest_providedByFallback.test_wo_providedBy_on_class_wo_implementscCsbddlm}ddlm}|d�}Gdd�dt�}|�}|||�|_|�|�}|�t|�|g�dS)Nrr�rmroc@r#)zATest_providedByFallback.test_w_providedBy_valid_spec.<locals>.FooNr$rrrrr%�r4r%)	r(r�rDrnr)rr�rr=)rr�rnror%r"r
rrr�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%	r4r%)r)rr�rr=rOrrr�test_w_providedBy_invalid_spec	s

z6Test_providedByFallback.test_w_providedBy_invalid_speccCsfddlm}ddlm}|d�}||�Gdd�dt��}|�}t�|_|�|�}|�t|�|g�dS)Nrr�rmroc@r#)zVTest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implements.<locals>.FooNr$rrrrr%	r&r%)	r(r�rDrnr)rr�rr=rTrrr�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%	r4r%�r)rrr�rL�rr%r"Zexpectedr
rrr�>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% 	r4r%rlrmrrr�@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�rmroc@r#)zeTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_class.<locals>.FooNr$rrrrr%-	r&r%)
r(r�rDrnr)rrr�rr=rTrrr�@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)NrrBr�c@r#)zPTest_providedByFallback.test_super_when_base_implements_interface.<locals>.IBaseNr$rrrrr�:	r4r�c@r#)zSTest_providedByFallback.test_super_when_base_implements_interface.<locals>.IDerivedNr$rrrrr�=	r4r�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$rrrrrD	r&r�r�rCr(r�r)rr=r�rrXr')
rrCr�r�r�r�r�derivedrr(r rrr"6	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)NrrBr�c@r#)zVTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IBaseNr$rrrrr�T	r4r�c@r#)zYTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IDerivedNr$rrrrr�W	r4r�c@r#)zUTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.BaseNr$rrrrr�Z	r4r�c@r#)zXTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.DerivedNr$rrrrr]	r&rr)	rrCr�r�r�r�rrrrr rrr*P	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)
NrrBr�c@r#)zETest_providedByFallback.test_super_when_base_is_object.<locals>.IBaseNr$rrrrr�k	r4r�c@r#)zHTest_providedByFallback.test_super_when_base_is_object.<locals>.IDerivedNr$rrrrr�n	r4r�c@r#)zGTest_providedByFallback.test_super_when_base_is_object.<locals>.DerivedNr$rrrrrq	r&rrq)	rrCr�r�r�rrrrr(r rrr+g	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)
NrrBr�r�c@r#)zOTest_providedByFallback.test_super_when_object_directly_provides.<locals>.IBaseNr$rrrrr��	r4r�c@r#)zRTest_providedByFallback.test_super_when_object_directly_provides.<locals>.IDerivedNr$rrrrr��	r4r�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�	r4r)r�rCr(r�r�r)rr=r�rrXr')rrCr�r�r�r�r�rrrrr(r 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�rBc@r#)zOTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IBaseNr$rrrrr��	r4r�c@r#)zMTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM1Nr$rrrrr,�	r4r,c@r#)zMTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM2Nr$rrrrr-�	r4r-c@r#)zRTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IDerivedNr$rrrrr��	r4r�c@r#)zTTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IUnrelatedNr$rrrrr.�	r4r.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$rrrrr0�	r&r0c@r#)zQTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.DerivedNr$rrrrr�	r&rr1r2r rrr5�	s>


����z@Test_providedByFallback.test_super_multi_level_multi_inheritancecCstj||jdtd�dS)Nr)rZr!)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!rrY)�str�bytesrr\r�)rZPY3rrrr^�	s


�zATest_providedByFallback.test_catches_only_AttributeError_on_class)rrrr6rar�rhrirjrkrnrorpr"r*r+rsr5rtr^r7rrr rrf�s$	

1rfc@r8)�Test_providedBycCr`)Nrr�)r(rW)rrWrrrra�	rbzTest_providedBy._getTargetClassNr:rrrrrw�	r;rwc@sPeZdZdd�ZeZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)�*ObjectSpecificationDescriptorFallbackTestscCr`)Nr)�%ObjectSpecificationDescriptorFallback)r(ry)rryrrrr6�	sz<ObjectSpecificationDescriptorFallbackTests._getFallbackClasscOrcr-rdrerrrrh�	riz3ObjectSpecificationDescriptorFallbackTests._makeOnecCs^ddlm}ddlm}|d�}Gdd�dt�}|||�|_|��|_|�t	|j�|g�dS)Nrr�rmroc@r#)zOObjectSpecificationDescriptorFallbackTests.test_accessed_via_class.<locals>.FooNr$rrrrr%�	r4r%)
r(r�rDrnr)rrhrrr=)rr�rnror%rrr�test_accessed_via_class�	s
zBObjectSpecificationDescriptorFallbackTests.test_accessed_via_classcCs�ddlm}ddlm}ddlm}|d�}|d�}||�Gdd�dt��}|||�|_|��|_|�}|�	t
|j�|g�dS)	Nrr�r�rmrorc@r#)zZObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_provides.<locals>.FooNr$rrrrr%�	r&r%)r(r�r�rDrnr)rrhrrr=)rr�r�rnrorr%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�rmrorr�c@r#)zYObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_provides.<locals>.FooNr$rrrrr%
r&r%)r(r�r�r�rDrnr)rrhrrr=)
rr�r�r�rnrorr�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
r4r}cs$eZdZ���Ze�fdd��ZdS)znObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.Foocs��r-rr�)r}rrr 
r?z{ObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.Foo.__provides__N�rrrrhrr�rr�r}rrrr%
sr%r)�	Exceptionr)r�rr�rrr�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}*
r4r}cs eZdZ���Zedd��ZdS)zeObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.FoocSr�r-)r�r�rrrr0
r?zrObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.Foo.__provides__Nr~rr�rrr%-
sr%r)r�r)rZassertIsNotNone)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)	NrrBr�c@r#)zZObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.IFooNr$rrrrro<
r4roc@seZdZedd��ZdS)zYObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.FoocSsdSr-rr�rrrrB
r?zfObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.Foo.__provides__N)rrrr�rrrrrr%?
sr%r)r�rCr�r)rhrrrX)rrCr�ror%r�rrr�!test_None_in__provides__overrides8
s
zLObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overridesN)rrrr6rarhrzr{r|r�r�r�rrrrrx�	s
rxc@r8)�"ObjectSpecificationDescriptorTestscCr`)Nr)�ObjectSpecificationDescriptor)r(r�)rr�rrrraP
rbz2ObjectSpecificationDescriptorTests._getTargetClassNr:rrrrr�K
sr�c@r)r�cs<�|_�fdd�|D�|_|��D]
\}}t�||�qdS)Ncsi|]}|t�|��qSr)r)�.0�key��modulerr�
<dictcomp>\
sz$_Monkey.__init__.<locals>.<dictcomp>)r��
to_restore�itemsr�)rr�rgr�rrr�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�rrrr�__exit__c
s�z_Monkey.__exit__N�rrrr�r�r�rrrrr�X
sr�c@r)r�cKs8||_t||�|_|j��|_|j��|j�|�dSr-)r�r�target�copyr��clear�update)rr��attrnamergrrrr�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�rrrrr�h
sr�)5r�ZunittestZzope.interface._compatrrr�rrZ#zope.interface.tests.test_interfacerr)rZTestCaserr7r_r�r�r�r9r<rHrQrkrmrur�r�r�r�r�r�r�r�r
r
rrr!r(r+r3r9r>r@rKrdrfrwrxr�r�r�rrrr�<module>s�
:LC�sE�	-:j@"5;2">A 1.�")N.?<l�	v�	
i�


Youez - 2016 - github.com/yon3zu
LinuXploit