Ë
    š”eJ  ã                   óÄ   — d Z ddlZddlZ G d„ dej                  «      ZdZ G d„ dej                  «      Z G d„ d	ej                  «      Z G d
„ dej                  «      Zy)as  Tests for advice

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

PEAK is a Python application framework that interoperates with (but does
not require) Zope 3 and Twisted.  It provides tools for manipulating UML
models, object-relational persistence, aspect-oriented programming, and more.
Visit the PEAK home page at http://peak.telecommunity.com for more information.
é    Nc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚFrameInfoTestc                 ó¸   — ddl m} |j                  \  }}}}| j                  |d«       |j                  ||fD ]  }| j                  ||j                  u «       Œ! y )Nr   ©Úadvisory_testingÚmodule)Úzope.interface.testsr   ÚmoduleLevelFrameInfoÚassertEqualÚ__dict__Ú
assertTrueÚ
my_globals©Úselfr   Úkindr   Úf_localsÚ	f_globalsÚds          úB/usr/lib/python3/dist-packages/zope/interface/tests/test_advice.pyÚtest_w_modulezFrameInfoTest.test_w_module"   s^   € Ý9à 0× EÑ Eñ	ˆˆvØ	�9Ø×Ñ˜˜xÔ(Ø—‘ (¨IÐ5ò 	>ˆAØ�O‰O˜AÐ!1×!<Ñ!<Ð<Õ=ñ	>ó    c                 óÊ   — ddl m} |j                  j                  \  }}}}| j	                  |d«       |j
                  |fD ]  }| j                  ||j                  u «       Œ! y )Nr   r   Úclass)r	   r   ÚNewStyleClassÚclassLevelFrameInfor   r   r   r   r   s          r   Útest_w_classzFrameInfoTest.test_w_class*   sf   € Ý9ð '×4Ñ4×HÑHñ	ˆØ	Ø	Ø	Ø×Ñ˜˜wÔ'à—‘ )Ð+ò 	>ˆAØ�O‰O˜AÐ!1×!<Ñ!<Ð<Õ=ñ	>r   c                 ó  — ddl m}  |t        j                  «       «      \  }}}}| j	                  |d«       | j                  |t        «       u «       |j                  |fD ]  }| j                  |t        «       u «       Œ y )Nr   ©ÚgetFrameInfozfunction call)	Úzope.interface.advicer   ÚsysÚ	_getframer   r   Úlocalsr   Úglobals)r   r   r   r   r   r   r   s          r   Útest_inside_function_callz'FrameInfoTest.test_inside_function_call5   sk   € Ý6Ù,8¼¿¹»Ó,IÑ)ˆˆf�h 	Ø×Ñ˜˜Ô/Ø�‰˜¤F£HÐ,Ô-Ø—‘ )Ð+ò 	,ˆAØ�O‰O˜A¤£˜NÕ+ñ	,r   c                 óì   — ddl m} d|i}i }t        t        ||«       | j	                  |d   d«       | j                  |d   |u «       | j                  |d   d u «       | j                  |d   |u «       y )	Nr   r   r   r   Úexecr   r   r   )r    r   r'   Ú_FUNKY_EXECr   r   )r   r   Ú_globalsÚ_localss       r   Útest_inside_execzFrameInfoTest.test_inside_exec=   sv   € Ý6Ø" LÐ1ˆØˆÜŒ[˜( GÔ,Ø×Ñ˜ ™¨&Ô1Ø�‰˜ 
Ñ+¨wÐ6Ô7Ø�‰˜ Ñ)¨TÐ1Ô2Ø�‰˜ Ñ,°Ð8Õ9r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r%   r+   © r   r   r   r       s   „ ò>ò	>ò,ó:r   r   zMimport sys
kind, module, f_locals, f_globals = getFrameInfo(sys._getframe())
c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_isClassAdvisorc                 ó   — ddl m}  ||i |¤ŽS )Nr   )ÚisClassAdvisor)r    r3   )r   ÚargsÚkwr3   s       r   Ú_callFUTzTest_isClassAdvisor._callFUTO   s   € Ý8Ù˜tÐ* rÑ*Ð*r   c                 óF   — | j                  | j                  | «      d«       y )NF©r   r6   ©r   s    r   Útest_w_non_functionz'Test_isClassAdvisor.test_w_non_functionS   s   € Ø×Ñ˜Ÿ™ tÓ,¨eÕ4r   c                 óL   — d„ }| j                  | j                  |«      d«       y )Nc                  ó   — t        «       ‚©N©ÚNotImplementedErrorr/   r   r   Úfooz7Test_isClassAdvisor.test_w_normal_function.<locals>.fooW   ó   € Ü%Ó'Ð'r   Fr8   )r   r@   s     r   Útest_w_normal_functionz*Test_isClassAdvisor.test_w_normal_functionV   s    € ò	(à×Ñ˜Ÿ™ sÓ+¨UÕ3r   c                 ój   — d„ }t        «       |_        | j                  | j                  |«      d«       y )Nc                  ó   — t        «       ‚r=   r>   r/   r   r   Úbarz8Test_isClassAdvisor.test_w_advisor_function.<locals>.bar\   rA   r   T)ÚobjectÚpreviousMetaclassr   r6   )r   rE   s     r   Útest_w_advisor_functionz+Test_isClassAdvisor.test_w_advisor_function[   s*   € ò	(ä &£ˆÔØ×Ñ˜Ÿ™ sÓ+¨TÕ2r   N)r,   r-   r.   r6   r:   rB   rH   r/   r   r   r1   r1   M   s   „ ò+ò5ò4ó
3r   r1   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_determineMetaclassc                 ó   — ddl m}  ||i |¤ŽS )Nr   )ÚdetermineMetaclass)r    rL   )r   r4   r5   rL   s       r   r6   z Test_determineMetaclass._callFUTd   s   € Ý<Ù! 4Ð.¨2Ñ.Ð.r   c                 óf   —  G d„ dt         «      }| j                  | j                  d|«      |«       y )Nc                   ó   — e Zd Zy)úDTest_determineMetaclass.test_empty_w_explicit_metatype.<locals>.MetaN©r,   r-   r.   r/   r   r   ÚMetarO   i   ó   „ Ør   rQ   r/   ©Útyper   r6   ©r   rQ   s     r   Útest_empty_w_explicit_metatypez6Test_determineMetaclass.test_empty_w_explicit_metatypeh   s)   € ô	”4ô 	à×Ñ˜Ÿ™ r¨4Ó0°$Õ7r   c                 ón   —  G d„ dt         «      }| j                  | j                  |f«      t         «       y )Nc                   ó   — e Zd Zy)ú1Test_determineMetaclass.test_single.<locals>.MetaNrP   r/   r   r   rQ   rY   n   rR   r   rQ   rS   rU   s     r   Útest_singlez#Test_determineMetaclass.test_singlem   s)   € ô	”4ô 	à×Ñ˜Ÿ™¨ wÓ/´Õ6r   c                 ó’   —  G d„ dt         «      } G d„ dt         |¬«      }| j                  | j                  |t         f«      |«       y )Nc                   ó   — e Zd Zy)ú<Test_determineMetaclass.test_meta_of_class.<locals>.MetametaNrP   r/   r   r   ÚMetametar]   s   rR   r   r^   c                   ó   — e Zd Zy)ú8Test_determineMetaclass.test_meta_of_class.<locals>.MetaNrP   r/   r   r   rQ   r`   u   rR   r   rQ   ©Ú	metaclassrS   )r   r^   rQ   s      r   Útest_meta_of_classz*Test_determineMetaclass.test_meta_of_classr   s;   € ô	”tô 	ô	”4 8õ 	ð 	×Ñ˜Ÿ™¨¬d |Ó4°hÕ?r   c                 óÂ   —  G d„ dt         «      } G d„ d|«      } G d„ dt         |¬«      } G d„ d	t         |¬«      }| j                  | j                  ||f«      |«       y )
Nc                   ó   — e Zd Zy)úGTest_determineMetaclass.test_multiple_in_hierarchy_py3k.<locals>.Meta_ANrP   r/   r   r   ÚMeta_Arf   {   rR   r   rg   c                   ó   — e Zd Zy)úGTest_determineMetaclass.test_multiple_in_hierarchy_py3k.<locals>.Meta_BNrP   r/   r   r   ÚMeta_Bri   ~   rR   r   rj   c                   ó   — e Zd Zy)úBTest_determineMetaclass.test_multiple_in_hierarchy_py3k.<locals>.ANrP   r/   r   r   ÚArl   �   rR   r   rm   ra   c                   ó   — e Zd Zy)úBTest_determineMetaclass.test_multiple_in_hierarchy_py3k.<locals>.BNrP   r/   r   r   ÚBro   „   rR   r   rp   rS   ©r   rg   rj   rm   rp   s        r   Útest_multiple_in_hierarchy_py3kz7Test_determineMetaclass.test_multiple_in_hierarchy_py3kz   sU   € ô	”Tô 	ô	�Vô 	ô	” õ 	ô	” õ 	ð 	×Ñ˜Ÿ™¨¨1 vÓ.°Õ7r   c                 óÊ   —  G d„ dt         «      } G d„ dt         «      } G d„ dt         |¬«      } G d„ d	t         |¬«      }| j                  t        | j                  ||f«       y )
Nc                   ó   — e Zd Zy)úKTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k.<locals>.Meta_ANrP   r/   r   r   rg   ru   ‹   rR   r   rg   c                   ó   — e Zd Zy)úKTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k.<locals>.Meta_BNrP   r/   r   r   rj   rw   Ž   rR   r   rj   c                   ó   — e Zd Zy)úFTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k.<locals>.ANrP   r/   r   r   rm   ry   ‘   rR   r   rm   ra   c                   ó   — e Zd Zy)úFTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k.<locals>.BNrP   r/   r   r   rp   r{   ”   rR   r   rp   )rT   ÚassertRaisesÚ	TypeErrorr6   rq   s        r   Ú#test_multiple_not_in_hierarchy_py3kz;Test_determineMetaclass.test_multiple_not_in_hierarchy_py3kŠ   sR   € ô	”Tô 	ô	”Tô 	ô	” õ 	ô	” õ 	ð 	×Ñœ) T§]¡]°Q¸°FÕ;r   N)	r,   r-   r.   r6   rV   rZ   rc   rr   r~   r/   r   r   rJ   rJ   b   s!   „ ò/ò8ò
7ò
@ò8ó <r   rJ   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_minimalBasesc                 ó   — ddl m}  ||«      S )Nr   )ÚminimalBases)r    r‚   )r   Úklassesr‚   s      r   r6   zTest_minimalBases._callFUTœ   s   € Ý6Ù˜GÓ$Ð$r   c                 óF   — | j                  | j                  g «      g «       y r=   r8   r9   s    r   Ú
test_emptyzTest_minimalBases.test_empty    s   € Ø×Ñ˜Ÿ™ rÓ*¨BÕ/r   c                 óZ   — | j                  | j                  t        g«      t        g«       y r=   )r   r6   rT   r9   s    r   Útest_w_newstyle_metaz&Test_minimalBases.test_w_newstyle_meta£   s   € Ø×Ñ˜Ÿ™¬ vÓ.´°Õ7r   c                 ó^   —  G d„ d«      }| j                  | j                  |g«      |g«       y )Nc                   ó   — e Zd Zy)ú2Test_minimalBases.test_w_newstyle_class.<locals>.CNrP   r/   r   r   ÚCrŠ   §   rR   r   r‹   r8   )r   r‹   s     r   Útest_w_newstyle_classz'Test_minimalBases.test_w_newstyle_class¦   s)   € ÷	ñ 	à×Ñ˜Ÿ™¨ sÓ+¨a¨SÕ1r   c                 óÆ  —  G d„ d«      } G d„ d|«      } G d„ d|«      } G d„ d«      }| j                  | j                  |||g«      |g«       | j                  | j                  ||g«      |g«       | j                  | j                  ||g«      |g«       | j                  | j                  ||g«      |g«       | j                  | j                  |||g«      ||g«       y )	Nc                   ó   — e Zd Zy)ú@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.ANrP   r/   r   r   rm   r�   ¬   rR   r   rm   c                   ó   — e Zd Zy)ú@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.BNrP   r/   r   r   rp   r‘   ®   rR   r   rp   c                   ó   — e Zd Zy)ú@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.CNrP   r/   r   r   r‹   r“   °   rR   r   r‹   c                   ó   — e Zd Zy)ú@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.DNrP   r/   r   r   ÚDr•   ²   rR   r   r–   r8   )r   rm   rp   r‹   r–   s        r   Ú#test_simple_hierarchy_skips_impliedz5Test_minimalBases.test_simple_hierarchy_skips_implied«   sÏ   € ÷	ñ 	ô	�ô 	ô	�ô 	÷	ñ 	à×Ñ˜Ÿ™¨¨1¨a yÓ1°A°3Ô7Ø×Ñ˜Ÿ™¨¨1 vÓ.°°Ô4Ø×Ñ˜Ÿ™¨¨1 vÓ.°°Ô4Ø×Ñ˜Ÿ™¨¨1 vÓ.°°Ô4Ø×Ñ˜Ÿ™¨¨1¨a yÓ1°A°q°6Õ:r   c                 óx   —  G d„ d«      } G d„ d«      }| j                  | j                  |||g«      ||g«       y )Nc                   ó   — e Zd Zy)ú@Test_minimalBases.test_repeats_kicked_to_end_of_queue.<locals>.ANrP   r/   r   r   rm   rš   »   rR   r   rm   c                   ó   — e Zd Zy)ú@Test_minimalBases.test_repeats_kicked_to_end_of_queue.<locals>.BNrP   r/   r   r   rp   rœ   ½   rR   r   rp   r8   )r   rm   rp   s      r   Ú#test_repeats_kicked_to_end_of_queuez5Test_minimalBases.test_repeats_kicked_to_end_of_queueº   s9   € ÷	ñ 	÷	ñ 	à×Ñ˜Ÿ™¨¨1¨a yÓ1°A°q°6Õ:r   N)	r,   r-   r.   r6   r…   r‡   rŒ   r—   r�   r/   r   r   r€   r€   š   s    „ ò%ò0ò8ò2ò
;ó;r   r€   )	Ú__doc__Úunittestr!   ÚTestCaser   r(   r1   rJ   r€   r/   r   r   ú<module>r¡      sc   ðñó Û 
ô%:�H×%Ñ%ô %:ðP€ô
3˜(×+Ñ+ô 3ô*5<˜h×/Ñ/ô 5<ôp%;˜×)Ñ)õ %;r   