ó
    Ï›‘h  ã                   óâ  • S r SSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJ	r	  SS
KJ
r
  SSKJr   " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S5      r\R(                  " S\R*                  0 5      r " S S\5      r " S S\5      r\" \\5         " S S\\5      r\" \\5         " S  S!\R2                  5      rg)"zµTest interface declarations against ExtensionClass-like classes.

These tests are to make sure we do something sane in the presence of
classic ExtensionClass classes and instances.
é    N)Ú	Interface)ÚclassImplements)ÚclassImplementsOnly)ÚdirectlyProvidedBy)ÚdirectlyProvides)ÚimplementedBy)Úimplementer)Ú
providedBy)Úoddc                   ó   • \ rS rSrSrg)ÚI1é    © N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    ÚnC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\zope/interface/tests/test_odd_declarations.pyr   r       ó   † Úr   r   c                   ó   • \ rS rSrSrg)ÚI2é$   r   Nr   r   r   r   r   r   $   r   r   r   c                   ó   • \ rS rSrSrg)ÚI3é(   r   Nr   r   r   r   r   r   (   r   r   r   c                   ó   • \ rS rSrSrg)ÚI31é,   r   Nr   r   r   r   r    r    ,   r   r   r    c                   ó   • \ rS rSrSrg)ÚI4é0   r   Nr   r   r   r   r#   r#   0   r   r   r#   c                   ó   • \ rS rSrSrg)ÚI5é4   r   Nr   r   r   r   r&   r&   4   r   r   r&   c                   ó   • \ rS rSrSrg)ÚOddé8   r   Nr   r   r   r   r)   r)   8   r   r   r)   c                   ó   • \ rS rSr\rSrg)ÚBé?   r   N)r   r   r   r   r   Ú__implemented__r   r   r   r   r,   r,   ?   s   † ØƒOr   r,   c                   ó   • \ rS rSrSrg)ÚAéH   r   Nr   r   r   r   r0   r0   H   r   r   r0   c                   ó   • \ rS rSrSrg)ÚCéO   r   Nr   r   r   r   r3   r3   O   r   r   r3   c                   ó8   • \ rS rSrS rS rS rS rS rS r	Sr
g	)
ÚTestéV   c                 óV
  • [        5       n[        U[        5        U R                  [	        U5       Vs/ s H  o"R                  5       PM     sn/ SQ5        U R                  [	        U5      R                  5        Vs/ s H  o"R                  5       PM     sn/ SQ5        U R                  [        [	        U5      5        U R                  [        [	        U5      5        U R                  [	        U5      R                  [        5      5        U R                  [	        U5      R                  [        5      5        U R                  [	        U5      R                  [        5      5         " S S[         ["        5      n[%        U[        5         " S SU5      n['        U[        5        ['        U[        5        U" 5       n[        U[        5        U R                  [	        U5       Vs/ s H  o"R                  5       PM     sn/ SQ5        U R                  [	        U5      R                  5        Vs/ s H  o"R                  5       PM     sn/ SQ5        U R                  [        [	        U5      5        U R                  [        [	        U5      5        U R                  [	        U5      R                  [        5      5        U R                  [	        U5      R                  [        5      5        U R                  [	        U5      R                  [        5      5        U R                  [	        U5      R                  [        5      5         " S	 S[         ["        5      n " S
 SU5      n['        U[        5        ['        U[        5        U" 5       n[        U[        5        U R                  [	        U5       Vs/ s H  o"R                  5       PM     sn/ SQ5        U R                  [	        U5      R                  5        Vs/ s H  o"R                  5       PM     sn/ SQ5        U R                  [        [	        U5      5        U R                  [        [	        U5      5        U R                  [	        U5      R                  [        5      5        U R                  [	        U5      R                  [        5      5        U R                  [	        U5      R                  [        5      5        U R                  [	        U5      R                  [        5      5        g s  snf s  snf s  snf s  snf s  snf s  snf )N)r#   r    r   r   )r#   r    r   r   r   r   c                   ó   • \ rS rSrSrg)Ú,Test.test_ObjectSpecification.<locals>.COnlyég   r   Nr   r   r   r   ÚCOnlyr:   g   ó   † Úr   r<   c                   ó   • \ rS rSrSrg)Ú(Test.test_ObjectSpecification.<locals>.Dék   r   Nr   r   r   r   ÚDr?   k   r=   r   rA   )r#   r&   r    )r#   r&   r    r   r   c                   ó   • \ rS rSr\rSrg)r:   é~   r   N)r   r   r   r   r    r.   r   r   r   r   r<   r:   ~   s   † Ø!‹Or   c                   ó   • \ rS rSrSrg)r?   é�   r   Nr   r   r   r   rA   r?   �   r=   r   )r3   r   r#   ÚassertEqualr
   ÚgetNameÚ	flattenedÚassertInr   ÚassertNotInr   Ú
assertTrueÚextendsr    ÚassertFalser&   r0   r,   r   r   )ÚselfÚcÚir<   rA   s        r   Útest_ObjectSpecificationÚTest.test_ObjectSpecificationX   s�  € Ü‹CˆÜ˜œBÔØ×Ñ¬z¸!¬}Ó=ª}¨!Ÿ)™)ž+©}Ñ=Ú2ô	ð 	×Ñ¬z¸!«}×/FÑ/FÔ/HÓIÒ/H¨!Ÿ)™)ž+Ñ/HÑIÚEô	ð 	�‰”bœ* Q›-Ô(Ø×ÑœœZ¨›]Ô+Ø�‰œ
 1›×-Ñ-¬bÓ1Ô2Ø�‰œ
 1›×-Ñ-¬cÓ2Ô3Ø×Ñœ A›×.Ñ.¬rÓ2Ô3ô	”A”qô 	ä˜E¤3Ô'ô	�ô 	ä˜œ2Ôä˜œ2Ôá‹CˆÜ˜œBÔØ×Ñ¬z¸!¬}Ó=ª}¨!Ÿ)™)ž+©}Ñ=Ú,ô	.à×Ñ¬z¸!«}×/FÑ/FÔ/HÓIÒ/H¨!Ÿ)™)ž+Ñ/HÑIÚ?ô	Aà×ÑœœZ¨›]Ô+Ø×ÑœœZ¨›]Ô+Ø�‰œ
 1›×-Ñ-¬bÓ1Ô2Ø×Ñœ A›×.Ñ.¬rÓ2Ô3Ø�‰œ
 1›×-Ñ-¬cÓ2Ô3Ø�‰œ
 1›×-Ñ-¬bÓ1Ô2ô	"”A”qô 	"ô	�ô 	ô 	˜œ2ÔÜ˜œ2Ôá‹CˆÜ˜œBÔØ×Ñ¬z¸!¬}Ó=ª}¨!Ÿ)™)ž+©}Ñ=Ú,ô	.à×Ñ¬z¸!«}×/FÑ/FÔ/HÓIÒ/H¨!Ÿ)™)ž+Ñ/HÑIÚ?ô	Aà×ÑœœZ¨›]Ô+Ø×ÑœœZ¨›]Ô+Ø�‰œ
 1›×-Ñ-¬bÓ1Ô2Ø×Ñœ A›×.Ñ.¬rÓ2Ô3Ø�‰œ
 1›×-Ñ-¬cÓ2Ô3Ø�‰œ
 1›×-Ñ-¬bÓ1Õ2ùòo >ùò Jùò* >ùâIùò( >ùâIs#   ³TÁ<TÇ"TÈ+TÎ.T!Ï7T&c                 óè  • [        [        5       " S S[        5      5       n[        [        5       " S S[        5      5       n " S SX5      n[	        U[
        [        5        U R                  [        U5       Vs/ s H  oDR                  5       PM     sn/ SQ5        [	        U[        5        U R                  [        U5       Vs/ s H  oDR                  5       PM     sn/ SQ5        g s  snf s  snf )	Nc                   ó   • \ rS rSrSrg)Ú$Test.test_classImplements.<locals>.Aé–   r   Nr   r   r   r   r0   rU   –   ó   † âr   r0   c                   ó   • \ rS rSrSrg)Ú$Test.test_classImplements.<locals>.Béš   r   Nr   r   r   r   r,   rY   š   rW   r   r,   c                   ó   • \ rS rSrSrg)Ú$Test.test_classImplements.<locals>.Céž   r   Nr   r   r   r   r3   r\   ž   r=   r   r3   )r   r   r   r#   )r   r   r&   r   r#   )r	   r   r)   r#   r   r   r   rF   r   rG   r&   ©rN   r0   r,   r3   rP   s        r   Útest_classImplementsÚTest.test_classImplements”   sÊ   € ä	”R‹ô	”ó 	ó 
ð	ô 
”R‹ô	”ó 	ó 
ð	ô	�ô 	ô 	˜œ2œrÔ"Ø×Ñ¬}¸QÔ/?Ó@Ò/?¨!Ÿ)™)ž+Ñ/?Ñ@Ú1ô	3ô 	˜œ2ÔØ×Ñ¬}¸QÔ/?Ó@Ò/?¨!Ÿ)™)ž+Ñ/?Ñ@Ú7õ	9ùò	 Aùò As   Á;C*ÃC/c                 ó@  • [        [        5       " S S[        5      5       n[        [        5       " S S[        5      5       n " S SX5      n[	        U[
        [        5        U R                  [        U5       Vs/ s H  oDR                  PM     snSS/5        g s  snf )	Nc                   ó   • \ rS rSrSrg)Ú(Test.test_classImplementsOnly.<locals>.Aé«   r   Nr   r   r   r   r0   rc   «   rW   r   r0   c                   ó   • \ rS rSrSrg)Ú(Test.test_classImplementsOnly.<locals>.Bé¯   r   Nr   r   r   r   r,   rf   ¯   rW   r   r,   c                   ó   • \ rS rSrSrg)Ú(Test.test_classImplementsOnly.<locals>.Cé³   r   Nr   r   r   r   r3   ri   ³   r=   r   r3   r   r   )
r	   r   r)   r#   r   r   r   rF   r   r   r^   s        r   Útest_classImplementsOnlyÚTest.test_classImplementsOnly©   sŠ   € ä	”R‹ô	”ó 	ó 
ð	ô 
”R‹ô	”ó 	ó 
ð	ô	�ô 	ô 	˜Aœr¤2Ô&Ø×Ñ¬m¸AÔ.>Ó?Ò.>¨Ÿ*œ*Ñ.>Ñ?Ø ˜õ	'ùÒ?s   Á;Bc                 ó  •  " S S[         5      n " S S[         5      n " S S[         5      n " S S[         5      n " S	 S
[        5      n[        XQU5         " S S[        5      n[        Xc5         " S SXV5      n[        Xt5        U" 5       n[        U[        [
        5        U R                  [        [        U5      5        U R                  [
        [        U5      5        U R                  U[        U5      5        U R                  U[        U5      5        U R                  U[        U5      5        U R                  U[        U5      5        [        U[        U5      [
        -
  5        U R                  [        [        U5      5        U R                  [
        [        U5      5        U R                  [
        [        U5      5        [        U[        U5      [
        5        U R                  [
        [        U5      5        g )Nc                   ó   • \ rS rSrSrg)Ú'Test.test_directlyProvides.<locals>.IA1é¼   r   Nr   r   r   r   ÚIA1ro   ¼   r=   r   rq   c                   ó   • \ rS rSrSrg)Ú'Test.test_directlyProvides.<locals>.IA2é¿   r   Nr   r   r   r   ÚIA2rs   ¿   r=   r   ru   c                   ó   • \ rS rSrSrg)Ú&Test.test_directlyProvides.<locals>.IBéÂ   r   Nr   r   r   r   ÚIBrw   Â   r=   r   ry   c                   ó   • \ rS rSrSrg)Ú&Test.test_directlyProvides.<locals>.ICéÅ   r   Nr   r   r   r   ÚICr{   Å   r=   r   r}   c                   ó   • \ rS rSrSrg)Ú%Test.test_directlyProvides.<locals>.AéÈ   r   Nr   r   r   r   r0   r   È   r=   r   r0   c                   ó   • \ rS rSrSrg)Ú%Test.test_directlyProvides.<locals>.BéÌ   r   Nr   r   r   r   r,   r‚   Ì   r=   r   r,   c                   ó   • \ rS rSrSrg)Ú%Test.test_directlyProvides.<locals>.CéÐ   r   Nr   r   r   r   r3   r…   Ð   r=   r   r3   )
r   r)   r   r   r   r   rI   r
   r   rJ   )	rN   rq   ru   ry   r}   r0   r,   r3   Úobs	            r   Útest_directlyProvidesÚTest.test_directlyProvidesº   sb  € ô	”)ô 	ô	”)ô 	ô	”ô 	ô	”ô 	ô	”ô 	ä˜ Ô$ô	”ô 	ä˜Ôô	�ô 	ä˜Ôá‹SˆÜ˜œR¤Ô$Ø�‰”bœ* R›.Ô)Ø�‰”bœ* R›.Ô)Ø�‰�cœ: b›>Ô*Ø�‰�cœ: b›>Ô*Ø�‰�bœ* R›.Ô)Ø�‰�bœ* R›.Ô)ä˜Ô/°Ó3´bÑ8Ô9Ø�‰”bœ* R›.Ô)Ø×ÑœœZ¨›^Ô,Ø×ÑœœZ¨›^Ô,Ü˜Ô/°Ó3´RÔ8Ø�‰”bœ* R›.Õ)r   c                 ó  •  " S S[         5      n " S S[        5      n[        X!5         " S SU5      n[        U[        5        U R	                  [        U5       Vs/ s H  oDR                  5       PM     snSS/5        g s  snf )Nc                   ó   • \ rS rSrSrg)Ú#Test.test_implementedBy.<locals>.I2éò   r   Nr   r   r   r   r   rŒ   ò   r=   r   r   c                   ó   • \ rS rSrSrg)Ú#Test.test_implementedBy.<locals>.C1éõ   r   Nr   r   r   r   ÚC1r�   õ   r=   r   r‘   c                   ó   • \ rS rSrSrg)Ú#Test.test_implementedBy.<locals>.C2éú   r   Nr   r   r   r   ÚC2r“   ú   r=   r   r•   r   )r   r)   r   r   rF   r   rG   )rN   r   r‘   r•   rP   s        r   Útest_implementedByÚTest.test_implementedByð   sp   € ô	”ô 	ô	”ô 	ô 	˜Ôô	�ô 	ô 	˜œBÔà×Ñ¬}¸RÔ/@ÓAÒ/@¨!Ÿ)™)ž+Ñ/@ÑAØ ˜õ	'ùÒAs   ÁBc                 ó¸  •  " S S5      n[         R                  " SUR                  UR                  5      n " S S5      n[         R                  " SUR                  UR                  5      n " S SX5      nU R	                  UR                  X45        U" 5       nU" 5       nU R	                  UR
                  S5        U R	                  UR
                  S5        SUl        U R	                  UR
                  S5        U R	                  UR
                  S5        U" 5       nU R	                  UR
                  S5        U R	                  UR                  S5        SUl        U R	                  UR                  S5        SUl        U R	                  UR                  S5        UR                    U R                  UR                  R                  UR                  5        g )	Nc                   ó   • \ rS rSrSrSrg)Ú<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.Ai
  é   r   N)r   r   r   r   Úar   r   r   r   r0   rš   
  ó   † Ø‹Ar   r0   c                   ó   • \ rS rSrSrSrg)Ú<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.Bi  r›   r   N)r   r   r   r   Úbr   r   r   r   r,   rŸ     r�   r   r,   c                   ó   • \ rS rSrSrg)Ú<Test.test_odd_metaclass_that_doesnt_subclass_type.<locals>.Ci  r   Nr   r   r   r   r3   r¢     r=   r   r3   r›   é   )
r   Ú	MetaClassÚ	__bases__Ú__dict__rF   rœ   r    rO   ÚassertIsÚ	__class__)rN   r0   r,   r3   rœ   ÚaarO   s          r   Ú,test_odd_metaclass_that_doesnt_subclass_typeÚ1Test.test_odd_metaclass_that_doesnt_subclass_type  s_  € ÷	ñ 	ô �MŠM˜#˜qŸ{™{¨A¯J©JÓ7ˆ÷	ñ 	ô �MŠM˜#˜qŸ{™{¨A¯J©JÓ7ˆô	�ô 	ð 	×Ñ˜Ÿ™ q fÔ-á‹CˆÙ‹SˆØ×Ñ˜Ÿ™˜aÔ Ø×Ñ˜Ÿ™˜qÔ!àˆŒØ×Ñ˜Ÿ™˜aÔ Ø×Ñ˜Ÿ™˜qÔ!á‹CˆØ×Ñ˜Ÿ™˜aÔ Ø×Ñ˜Ÿ™˜aÔ àˆŒØ×Ñ˜Ÿ™˜aÔ àˆŒØ×Ñ˜Ÿ™˜aÔ Ø	�Šà�‰�a—k‘k×+Ñ+¨Q¯[©[Õ9r   r   N)r   r   r   r   rQ   r_   rk   rˆ   r–   rª   r   r   r   r   r6   r6   V   s"   † ò:3òx9ò*'ò"(*òl'õ$+:r   r6   )Ú__doc__ÚunittestÚzope.interfacer   r   r   r   r   r   r	   r
   Úzope.interface.testsr   r   r   r   r    r#   r&   r)   r¤   r¥   r,   r0   r3   ÚTestCaser6   r   r   r   Ú<module>r±      sæ   ðñó
 å $Ý *Ý .Ý -Ý +Ý (Ý &Ý %Ý $ô	ˆô 	ô	ˆô 	ô	ˆô 	ô	ˆ"ô 	ô	ˆô 	ô	ˆô 	÷	ñ 	ð 
‡m‚m�E˜3Ÿ=™=¨"Ó-€ôˆô ô	ˆô 	ñ ��2Ô ô	ˆˆ1ô 	ñ ��3Ô ôW:ˆ8×Ñõ W:r   