§
    Çtºf®  ã                   ó¶   — 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dS )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dS )ÚFrameInfoTestc                 ó¨   — ddl m} |j        \  }}}}|                      |d¦  «         |j        ||fD ]}|                      ||j        u ¦  «         Œd S )Nr   ©Úadvisory_testingÚmodule)Úzope.interface.testsr   ÚmoduleLevelFrameInfoÚassertEqualÚ__dict__Ú
assertTrueÚ
my_globals©Úselfr   Úkindr   Úf_localsÚ	f_globalsÚds          ú_/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/zope/interface/tests/test_advice.pyÚtest_w_modulezFrameInfoTest.test_w_module"   s~   € Ø9Ð9Ð9Ð9Ð9Ð9à 0Ô Eñ	ˆˆvØ	�9Ø×Ò˜˜xÑ(Ô(Ð(Ø” (¨IÐ5ð 	>ð 	>ˆAØ�OŠO˜AÐ!1Ô!<Ð<Ñ=Ô=Ð=Ð=ð	>ð 	>ó    c                 ó°   — ddl m} |j        j        \  }}}}|                      |d¦  «         |j        |fD ]}|                      ||j        u ¦  «         Œd S )Nr   r   Úclass)r	   r   ÚNewStyleClassÚclassLevelFrameInfor   r   r   r   r   s          r   Útest_w_classzFrameInfoTest.test_w_class*   sƒ   € Ø9Ð9Ð9Ð9Ð9Ð9ð 'Ô4ÔHñ	ˆØ	Ø	Ø	Ø×Ò˜˜wÑ'Ô'Ð'à” )Ð+ð 	>ð 	>ˆAØ�OŠO˜AÐ!1Ô!<Ð<Ñ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó~  — ddl m}  |t          j        ¦   «         ¦  «        \  }}}}|                      |d¦  «         t          j        ¦   «         }|                      ||j        ¦  «         |                      |t          ¦   «         ¦  «         |j        |fD ]%}|                      |t          ¦   «         u ¦  «         Œ&d S )Nr   ©ÚgetFrameInfozfunction call)
Úzope.interface.advicer   ÚsysÚ	_getframer   r   Úlocalsr   r   Úglobals)r   r   r   r   r   r   Úframer   s           r   Útest_inside_function_callz'FrameInfoTest.test_inside_function_call5   sÂ   € Ø6Ð6Ð6Ð6Ð6Ð6Ø,8¨L½¼¹¼Ñ,IÔ,IÑ)ˆˆf�h 	Ø×Ò˜˜Ñ/Ô/Ð/å”‘”ˆØ×Ò˜ 5¤>Ñ2Ô2Ð2Ø×Ò˜¥6¡8¤8Ñ,Ô,Ð,à” )Ð+ð 	,ð 	,ˆAØ�OŠO˜A¥¡¤˜NÑ+Ô+Ð+Ð+ð	,ð 	,r   c                 ó0  — ddl m} d|i}i }t          t          ||¦  «         |                      |d         d¦  «         |                      |d         |u ¦  «         |                      |d         d u ¦  «         |                      |d         |u ¦  «         d S )	Nr   r   r   r   Úexecr   r   r   )r    r   r(   Ú_FUNKY_EXECr   r   )r   r   Ú_globalsÚ_localss       r   Útest_inside_execzFrameInfoTest.test_inside_execA   s©   € Ø6Ð6Ð6Ð6Ð6Ð6Ø" LÐ1ˆØˆÝ�[˜( GÑ,Ô,Ð,Ø×Ò˜ œ¨&Ñ1Ô1Ð1Ø�Š˜ 
Ô+¨wÐ6Ñ7Ô7Ð7Ø�Š˜ Ô)¨TÐ1Ñ2Ô2Ð2Ø�Š˜ Ô,°Ð8Ñ9Ô9Ð9Ð9Ð9r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r&   r,   © r   r   r   r       sP   € € € € € ð>ð >ð >ð	>ð 	>ð 	>ð
,ð 
,ð 
,ð:ð :ð :ð :ð :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dS )ÚTest_isClassAdvisorc                 ó   — ddl m}  ||i |¤ŽS )Nr   )ÚisClassAdvisor)r    r4   )r   ÚargsÚkwr4   s       r   Ú_callFUTzTest_isClassAdvisor._callFUTT   s)   € Ø8Ð8Ð8Ð8Ð8Ð8Øˆ~˜tÐ* rÐ*Ð*Ð*r   c                 óX   — |                       |                      | ¦  «        d¦  «         d S )NF©r   r7   ©r   s    r   Útest_w_non_functionz'Test_isClassAdvisor.test_w_non_functionX   s*   € Ø×Ò˜Ÿš tÑ,Ô,¨eÑ4Ô4Ð4Ð4Ð4r   c                 ó^   — d„ }|                       |                      |¦  «        d¦  «         d S )Nc                  ó   — t          ¦   «         ‚©N©ÚNotImplementedErrorr0   r   r   Úfooz7Test_isClassAdvisor.test_w_normal_function.<locals>.foo]   ó   € Ý%Ñ'Ô'Ð'r   Fr9   )r   rA   s     r   Útest_w_normal_functionz*Test_isClassAdvisor.test_w_normal_function[   s;   € ð	(ð 	(ð 	(ð 	×Ò˜Ÿš sÑ+Ô+¨UÑ3Ô3Ð3Ð3Ð3r   c                 ó„   — d„ }t          ¦   «         |_        |                      |                      |¦  «        d¦  «         d S )Nc                  ó   — t          ¦   «         ‚r>   r?   r0   r   r   Úbarz8Test_isClassAdvisor.test_w_advisor_function.<locals>.bard   rB   r   T)ÚobjectÚpreviousMetaclassr   r7   )r   rF   s     r   Útest_w_advisor_functionz+Test_isClassAdvisor.test_w_advisor_functionb   sG   € ð	(ð 	(ð 	(õ !'¡¤ˆÔØ×Ò˜Ÿš sÑ+Ô+¨TÑ2Ô2Ð2Ð2Ð2r   N)r-   r.   r/   r7   r;   rC   rI   r0   r   r   r2   r2   R   sP   € € € € € ð+ð +ð +ð5ð 5ð 5ð4ð 4ð 4ð3ð 3ð 3ð 3ð 3r   r2   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTest_determineMetaclassc                 ó   — ddl m}  ||i |¤ŽS )Nr   )ÚdetermineMetaclass)r    rM   )r   r5   r6   rM   s       r   r7   z Test_determineMetaclass._callFUTm   s*   € Ø<Ð<Ð<Ð<Ð<Ð<Ø!Ð! 4Ð.¨2Ð.Ð.Ð.r   c                 ó€   —  G d„ dt           ¦  «        }|                      |                      d|¦  «        |¦  «         d S )Nc                   ó   — e Zd ZdS )úDTest_determineMetaclass.test_empty_w_explicit_metatype.<locals>.MetaN©r-   r.   r/   r0   r   r   ÚMetarP   s   ó   € € € € € ØˆDr   rR   r0   ©Útyper   r7   ©r   rR   s     r   Útest_empty_w_explicit_metatypez6Test_determineMetaclass.test_empty_w_explicit_metatypeq   sX   € ð	ð 	ð 	ð 	ð 	•4ñ 	ô 	ð 	ð 	×Ò˜Ÿš r¨4Ñ0Ô0°$Ñ7Ô7Ð7Ð7Ð7r   c                 óŠ   —  G d„ dt           ¦  «        }|                      |                      |f¦  «        t           ¦  «         d S )Nc                   ó   — e Zd ZdS )ú1Test_determineMetaclass.test_single.<locals>.MetaNrQ   r0   r   r   rR   rZ   z   rS   r   rR   rT   rV   s     r   Útest_singlez#Test_determineMetaclass.test_singlex   sX   € ð	ð 	ð 	ð 	ð 	•4ñ 	ô 	ð 	ð 	×Ò˜Ÿš¨ wÑ/Ô/µÑ6Ô6Ð6Ð6Ð6r   c                 ó¶   —  G d„ dt           ¦  «        } G d„ dt           |¬¦  «        }|                      |                      |t           f¦  «        |¦  «         d S )Nc                   ó   — e Zd ZdS )ú<Test_determineMetaclass.test_meta_of_class.<locals>.MetametaNrQ   r0   r   r   ÚMetametar^   �   rS   r   r_   c                   ó   — e Zd ZdS )ú8Test_determineMetaclass.test_meta_of_class.<locals>.MetaNrQ   r0   r   r   rR   ra   „   rS   r   rR   ©Ú	metaclassrT   )r   r_   rR   s      r   Útest_meta_of_classz*Test_determineMetaclass.test_meta_of_class   s‹   € ð	ð 	ð 	ð 	ð 	•tñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	•4 8ð 	ñ 	ô 	ð 	ð 	×Ò˜Ÿš¨­d |Ñ4Ô4°hÑ?Ô?Ð?Ð?Ð?r   c                 óò   —  G d„ dt           ¦  «        } G d„ d|¦  «        } G d„ dt           |¬¦  «        } G d„ d	t           |¬¦  «        }|                      |                      ||f¦  «        |¦  «         d S )
Nc                   ó   — e Zd ZdS )úGTest_determineMetaclass.test_multiple_in_hierarchy_py3k.<locals>.Meta_ANrQ   r0   r   r   ÚMeta_Arg   ‹   rS   r   rh   c                   ó   — e Zd ZdS )úGTest_determineMetaclass.test_multiple_in_hierarchy_py3k.<locals>.Meta_BNrQ   r0   r   r   ÚMeta_Brj   Ž   rS   r   rk   c                   ó   — e Zd ZdS )úBTest_determineMetaclass.test_multiple_in_hierarchy_py3k.<locals>.ANrQ   r0   r   r   ÚArm   ‘   rS   r   rn   rb   c                   ó   — e Zd ZdS )úBTest_determineMetaclass.test_multiple_in_hierarchy_py3k.<locals>.BNrQ   r0   r   r   ÚBrp   ”   rS   r   rq   rT   ©r   rh   rk   rn   rq   s        r   Útest_multiple_in_hierarchy_py3kz7Test_determineMetaclass.test_multiple_in_hierarchy_py3k‰   sæ   € ð	ð 	ð 	ð 	ð 	•Tñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�Vñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	• ð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	• ð 	ñ 	ô 	ð 	ð 	×Ò˜Ÿš¨¨1 vÑ.Ô.°Ñ7Ô7Ð7Ð7Ð7r   c                 óì   —  G d„ dt           ¦  «        } G d„ dt           ¦  «        } G d„ dt           |¬¦  «        } G d„ d	t           |¬¦  «        }|                      t          | j        ||f¦  «         d S )
Nc                   ó   — e Zd ZdS )úKTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k.<locals>.Meta_ANrQ   r0   r   r   rh   rv   ›   rS   r   rh   c                   ó   — e Zd ZdS )úKTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k.<locals>.Meta_BNrQ   r0   r   r   rk   rx   ž   rS   r   rk   c                   ó   — e Zd ZdS )úFTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k.<locals>.ANrQ   r0   r   r   rn   rz   ¡   rS   r   rn   rb   c                   ó   — e Zd ZdS )úFTest_determineMetaclass.test_multiple_not_in_hierarchy_py3k.<locals>.BNrQ   r0   r   r   rq   r|   ¤   rS   r   rq   )rU   ÚassertRaisesÚ	TypeErrorr7   rr   s        r   Ú#test_multiple_not_in_hierarchy_py3kz;Test_determineMetaclass.test_multiple_not_in_hierarchy_py3k™   sÞ   € ð	ð 	ð 	ð 	ð 	•Tñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	•Tñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	• ð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	• ð 	ñ 	ô 	ð 	ð 	×Ò�) T¤]°Q¸°FÑ;Ô;Ð;Ð;Ð;r   N)	r-   r.   r/   r7   rW   r[   rd   rs   r   r0   r   r   rK   rK   k   sq   € € € € € ð/ð /ð /ð8ð 8ð 8ð7ð 7ð 7ð@ð @ð @ð8ð 8ð 8ð <ð <ð <ð <ð <r   rK   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTest_minimalBasesc                 ó$   — ddl m}  ||¦  «        S )Nr   )ÚminimalBases)r    rƒ   )r   Úklassesrƒ   s      r   r7   zTest_minimalBases._callFUT¬   s$   € Ø6Ð6Ð6Ð6Ð6Ð6Øˆ|˜GÑ$Ô$Ð$r   c                 óX   — |                       |                      g ¦  «        g ¦  «         d S r>   r9   r:   s    r   Ú
test_emptyzTest_minimalBases.test_empty°   s*   € Ø×Ò˜Ÿš rÑ*Ô*¨BÑ/Ô/Ð/Ð/Ð/r   c                 óp   — |                       |                      t          g¦  «        t          g¦  «         d S r>   )r   r7   rU   r:   s    r   Útest_w_newstyle_metaz&Test_minimalBases.test_w_newstyle_meta³   s.   € Ø×Ò˜Ÿš­ vÑ.Ô.µ°Ñ7Ô7Ð7Ð7Ð7r   c                 óv   —  G d„ d¦  «        }|                       |                      |g¦  «        |g¦  «         d S )Nc                   ó   — e Zd ZdS )ú2Test_minimalBases.test_w_newstyle_class.<locals>.CNrQ   r0   r   r   ÚCr‹   ¸   rS   r   rŒ   r9   )r   rŒ   s     r   Útest_w_newstyle_classz'Test_minimalBases.test_w_newstyle_class¶   sX   € ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	×Ò˜Ÿš¨ sÑ+Ô+¨a¨SÑ1Ô1Ð1Ð1Ð1r   c                 ó0  —  G d„ d¦  «        } G d„ d|¦  «        } G d„ d|¦  «        } G d„ d¦  «        }|                       |                      |||g¦  «        |g¦  «         |                       |                      ||g¦  «        |g¦  «         |                       |                      ||g¦  «        |g¦  «         |                       |                      ||g¦  «        |g¦  «         |                       |                      |||g¦  «        ||g¦  «         d S )	Nc                   ó   — e Zd ZdS )ú@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.ANrQ   r0   r   r   rn   r�   ¿   rS   r   rn   c                   ó   — e Zd ZdS )ú@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.BNrQ   r0   r   r   rq   r’   Â   rS   r   rq   c                   ó   — e Zd ZdS )ú@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.CNrQ   r0   r   r   rŒ   r”   Å   rS   r   rŒ   c                   ó   — e Zd ZdS )ú@Test_minimalBases.test_simple_hierarchy_skips_implied.<locals>.DNrQ   r0   r   r   ÚDr–   È   rS   r   r—   r9   )r   rn   rq   rŒ   r—   s        r   Ú#test_simple_hierarchy_skips_impliedz5Test_minimalBases.test_simple_hierarchy_skips_implied½   s|  € ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	×Ò˜Ÿš¨¨1¨a yÑ1Ô1°A°3Ñ7Ô7Ð7Ø×Ò˜Ÿš¨¨1 vÑ.Ô.°°Ñ4Ô4Ð4Ø×Ò˜Ÿš¨¨1 vÑ.Ô.°°Ñ4Ô4Ð4Ø×Ò˜Ÿš¨¨1 vÑ.Ô.°°Ñ4Ô4Ð4Ø×Ò˜Ÿš¨¨1¨a yÑ1Ô1°A°q°6Ñ:Ô:Ð:Ð:Ð:r   c                 ó–   —  G d„ d¦  «        } G d„ d¦  «        }|                       |                      |||g¦  «        ||g¦  «         d S )Nc                   ó   — e Zd ZdS )ú@Test_minimalBases.test_repeats_kicked_to_end_of_queue.<locals>.ANrQ   r0   r   r   rn   r›   Ó   rS   r   rn   c                   ó   — e Zd ZdS )ú@Test_minimalBases.test_repeats_kicked_to_end_of_queue.<locals>.BNrQ   r0   r   r   rq   r�   Ö   rS   r   rq   r9   )r   rn   rq   s      r   Ú#test_repeats_kicked_to_end_of_queuez5Test_minimalBases.test_repeats_kicked_to_end_of_queueÑ   s†   € ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	×Ò˜Ÿš¨¨1¨a yÑ1Ô1°A°q°6Ñ:Ô:Ð:Ð:Ð:r   N)	r-   r.   r/   r7   r†   rˆ   r�   r˜   rž   r0   r   r   r�   r�   ª   sn   € € € € € ð%ð %ð %ð0ð 0ð 0ð8ð 8ð 8ð2ð 2ð 2ð;ð ;ð ;ð(;ð ;ð ;ð ;ð ;r   r�   )	Ú__doc__r!   ÚunittestÚTestCaser   r)   r2   rK   r�   r0   r   r   ú<module>r¢      sê   ððð ð €
€
€
Ø €€€ð):ð ):ð ):ð ):ð ):�HÔ%ñ ):ô ):ð ):ðX€ð3ð 3ð 3ð 3ð 3˜(Ô+ñ 3ô 3ð 3ð2<<ð <<ð <<ð <<ð <<˜hÔ/ñ <<ô <<ð <<ð~/;ð /;ð /;ð /;ð /;˜Ô)ñ /;ô /;ð /;ð /;ð /;r   