U
    ÌZj/  ã                   @   sà   d Z ddlZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG d	d
„ d
ejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZ	G dd„ dejƒZ
G dd„ dejƒZeƒ ZG dd„ deƒZG dd„ deƒZdd„ ZdS )zTests for z.c.hooks
é    Nc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTest_read_propertyc                 C   s   ddl m} |S )Nr   )Úread_property)Úzope.component.hooksr   )Úselfr   © r   úb/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/zope/component/tests/test_hooks.pyÚ_getTargetClass   s    z"Test_read_property._getTargetClassc                    sR   G ‡ fdd„dt ƒ}|ƒ }ˆ  |jd¡ d|_ˆ  |jd¡ |`ˆ  |jd¡ d S )Nc                       s   e Zd Z”  ¡ dd„ ƒZdS )z1Test_read_property.test_via_instance.<locals>.Fooc                 S   s   dS ©NÚBARr   ©r   r   r   r   Úbar   s    z5Test_read_property.test_via_instance.<locals>.Foo.barN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   ÚFoo   s   r   r
   ZBAZ)ÚobjectÚassertEqualr   )r   r   Zfoor   r   r   Útest_via_instance   s    z$Test_read_property.test_via_instancec                    sF   G ‡ fdd„dt ƒ}|j}ˆ  t|ˆ  ¡ ƒ¡ ˆ  | t ƒ ¡d¡ d S )Nc                       s   e Zd Z”  ¡ dd„ ƒZdS )z.Test_read_property.test_via_class.<locals>.Fooc                 S   s   dS r	   r   r   r   r   r   r   '   s    z2Test_read_property.test_via_class.<locals>.Foo.barNr   r   r   r   r   r   &   s   r   r
   )r   r   Ú
assertTrueÚ
isinstancer   r   Úfunc)r   r   r   r   r   r   Útest_via_class%   s    z!Test_read_property.test_via_classN)r   r   r   r   r   r   r   r   r   r   r      s   r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚSiteInfoTestsc                 C   s   ddl m} |S )Nr   )ÚSiteInfo)r   r   )r   r   r   r   r   r   1   s    zSiteInfoTests._getTargetClassc                 C   s
   |   ¡ ƒ S ©N)r   r   r   r   r   Ú_makeOne5   s    zSiteInfoTests._makeOnec                 C   s<   ddl m} |ƒ }|  ¡ }|  |jd ¡ |  |j|k¡ d S )Nr   ©ÚgetGlobalSiteManager)Úzope.component.globalregistryr   r   r   Úsiter   Úsm)r   r   ÚgsmÚsir   r   r   Útest_initial8   s
    zSiteInfoTests.test_initialc                    s†   t ƒ ‰G ‡fdd„dt ƒ‰ G ‡ fdd„dt ƒ}|  ¡ }|ƒ |_|  d|jk¡ |  |jˆk¡ |  d|jk¡ |`|  d|jk¡ d S )Nc                       s   e Zd Z” ZdS )z2SiteInfoTests.test_adapter_hook.<locals>._RegistryN)r   r   r   Úadapter_hookr   )Ú_hookr   r   Ú	_RegistryA   s   r'   c                       s   e Zd Z” ƒ ZdS )z5SiteInfoTests.test_adapter_hook.<locals>._SiteManagerN)r   r   r   Úadaptersr   )r'   r   r   Ú_SiteManagerC   s   r)   r%   )r   r   r!   ÚassertFalseÚ__dict__r   r%   )r   r)   r#   r   )r'   r&   r   Útest_adapter_hook?   s    zSiteInfoTests.test_adapter_hookN)r   r   r   r   r   r$   r,   r   r   r   r   r   /   s   r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTest_setSitec                 C   s   ddl m} ||ƒS )Nr   )ÚsetSite)r   r.   )r   r    r.   r   r   r   Ú_callFUTP   s    zTest_setSite._callFUTc              	   C   sž   ddl m} ddlm} |ƒ }tƒ }tƒ }tƒ }tƒ }||_||_||_t	||d�� |  
d ¡ W 5 Q R X |  |j|k¡ |  |jd k¡ |  d|jk¡ d S )Nr   ©Úhooksr   ©Úsiteinfor%   )Úzope.componentr1   r   r   r   Ú_DummySiteInfor!   r    ZadapterhookÚ_Monkeyr/   r   r*   r+   )r   r1   r   r"   Ú_SM2Ú_SITEZ_HOOKr3   r   r   r   Útest_w_NoneT   s    zTest_setSite.test_w_Nonec              	      sˆ   ddl m} tƒ ‰ G ‡ fdd„dtƒ}tƒ }|ƒ }t||d�� |  |¡ W 5 Q R X |  |jˆ k¡ |  |j|k¡ |  	d|j
k¡ d S )Nr   r0   c                       s   e Zd Z‡ fdd„ZdS )z'Test_setSite.test_w_site.<locals>._Sitec                    s   ˆ S r   r   r   ©r7   r   r   ÚgetSiteManageri   s    z6Test_setSite.test_w_site.<locals>._Site.getSiteManagerN©r   r   r   r;   r   r:   r   r   Ú_Siteh   s   r=   r2   r%   )r4   r1   r   r5   r6   r/   r   r!   r    r*   r+   )r   r1   r=   r3   Ú_siter   r:   r   Útest_w_sitee   s    zTest_setSite.test_w_siteN©r   r   r   r/   r9   r?   r   r   r   r   r-   N   s   r-   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTest_getSitec                 C   s   ddl m} |ƒ S )Nr   )ÚgetSite)r   rB   )r   rB   r   r   r   r/   v   s    zTest_getSite._callFUTc              	   C   sR   ddl m} ddlm} |ƒ }tƒ }t||d�� |  |  ¡ d k¡ W 5 Q R X d S ©Nr   r0   r   r2   )r4   r1   r   r   r5   r6   r   r/   )r   r1   r   r"   r3   r   r   r   r9   z   s    zTest_getSite.test_w_Nonec              	   C   sj   ddl m} ddlm} |ƒ }tƒ }tƒ }tƒ }||_||_t||d�� |  	|  
¡ |k¡ W 5 Q R X d S rC   )r4   r1   r   r   r   r5   r!   r    r6   r   r/   )r   r1   r   r"   r7   r8   r3   r   r   r   r?   ‚   s    zTest_getSite.test_w_siteNr@   r   r   r   r   rA   t   s   rA   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	Test_sitec                 C   s   ddl m} ||ƒS )Nr   )r    )r   r    )r   Znew_siter    r   r   r   r/   ‘   s    zTest_site._callFUTc              
      sÖ   ddl m} ddlm} |ƒ }tƒ ‰ G ‡ fdd„dtƒ}|ƒ }tƒ }|  |jd k¡ |  |jt	k¡ t
||d��\ |  |¡�& |  |j|k¡ |  |jˆ k¡ W 5 Q R X |  |jd k¡ |  |j|k¡ W 5 Q R X d S )Nr   r0   r   c                       s   e Zd Z‡ fdd„ZdS )z Test_site.test_it.<locals>._Sitec                    s   ˆ S r   r   r   r:   r   r   r;   ›   s    z/Test_site.test_it.<locals>._Site.getSiteManagerNr<   r   r:   r   r   r=   š   s   r=   r2   )r4   r1   r   r   r   r5   r   r    r!   Ú_SMr6   r/   )r   r1   r   r"   r=   r>   r3   r   r:   r   Útest_it•   s    zTest_site.test_itN©r   r   r   r/   rF   r   r   r   r   rD   �   s   rD   c                   @   s.   e Zd Zd
dd„Zdd„ Zdd„ Zdd	„ ZdS )ÚTest_getSiteManagerNc                 C   s   ddl m} ||ƒS )Nr   )r;   )r   r;   )r   Úcontextr;   r   r   r   r/   «   s    zTest_getSiteManager._callFUTc              	   C   s^   ddl m} ddlm} |ƒ }tƒ }tƒ }||_t||d�� |  |  	¡ |k¡ W 5 Q R X d S rC   ©
r4   r1   r   r   r   r5   r!   r6   r   r/   ©r   r1   r   r"   r7   r3   r   r   r   Útest_default¯   s    z Test_getSiteManager.test_defaultc              	   C   sb   ddl m} ddlm} |ƒ }tƒ }tƒ }||_t||d�� |  |  	tƒ ¡|k¡ W 5 Q R X d S rC   rJ   rK   r   r   r   Ú+test_w_explicit_context_no_IComponentLookup¹   s    z?Test_getSiteManager.test_w_explicit_context_no_IComponentLookupc              	   C   s¶   ddl m} ddlm} ddlm} ddlm} G dd„ dtƒ}|ƒ }| 	||f|d¡ tƒ }t
ƒ }||_tƒ }	t||d	�� |  |	¡}
W 5 Q R X |  t|
|ƒ¡ |  |
j|	k¡ d S )
Nr   ©Ú	Interfacer0   r   )ÚIComponentLookupc                   @   s   e Zd Zdd„ ZdS )zOTest_getSiteManager.test_w_explicit_context_w_IComponentLookup.<locals>._Lookupc                 S   s
   || _ d S r   )rI   )r   rI   r   r   r   Ú__init__É   s    zXTest_getSiteManager.test_w_explicit_context_w_IComponentLookup.<locals>._Lookup.__init__N)r   r   r   rQ   r   r   r   r   Ú_LookupÈ   s   rR   Ú r2   )Úzope.interfacerO   r4   r1   r   r   Úzope.component.interfacesrP   r   ZregisterAdapterr5   r!   r6   r/   r   r   rI   )r   rO   r1   r   rP   rR   r"   r7   r3   rI   r!   r   r   r   Ú*test_w_explicit_context_w_IComponentLookupÃ   s    z>Test_getSiteManager.test_w_explicit_context_w_IComponentLookup)N)r   r   r   r/   rL   rM   rV   r   r   r   r   rH   ©   s   


rH   c                   @   s&   e Zd Zd	dd„Zdd„ Zdd„ ZdS )
ÚTest_adapter_hookrS   Nc                 C   s   ddl m} |||||ƒS )Nr   )r%   )r   r%   )r   Ú	interfacer   ÚnameÚdefaultr%   r   r   r   r/   Ù   s    zTest_adapter_hook._callFUTc              	      sº   ddl m} ddlm} ddlm} G dd„ d|ƒ}|ƒ }tƒ ‰ tƒ }tƒ }g ‰‡ ‡fdd„}tƒ }	||	_t	||	d	�� |  
||d
|¡}
W 5 Q R X |  |
ˆ k¡ |  ˆ||d
|fg¡ d S )Nr   rN   r0   r   c                   @   s   e Zd ZdS )z,Test_adapter_hook.test_success.<locals>.IFooN©r   r   r   r   r   r   r   ÚIFooá   s   r\   c                    s   ˆ  | |||f¡ ˆ S r   ©Úappend©rX   r   rY   rZ   ©Z_ADAPTERÚ_calledr   r   Ú_adapter_hookè   s    z5Test_adapter_hook.test_success.<locals>._adapter_hookr2   r   )rT   rO   r4   r1   r   r   r   r5   r%   r6   r/   r   r   ©r   rO   r1   r   r\   r"   Z_DEFAULTZ_CONTEXTrb   r3   Úadapterr   r`   r   Útest_successÝ   s     zTest_adapter_hook.test_successc              	      sÀ   ddl m} ddlm} ddlm} ddlm‰  G dd„ d|ƒ}|ƒ }tƒ }tƒ }g ‰‡ ‡fdd	„}t	ƒ }	||	_
t||	d
�� |  ||d|¡}
W 5 Q R X |  |
|k¡ |  ˆ||d|fg¡ d S )Nr   rN   r0   r   )ÚComponentLookupErrorc                   @   s   e Zd ZdS )z0Test_adapter_hook.test_hook_raises.<locals>.IFooNr[   r   r   r   r   r\   ÷   s   r\   c                    s   ˆ  | |||f¡ ˆ dƒ‚d S )NZtestingr]   r_   ©rf   ra   r   r   rb   ý   s    z9Test_adapter_hook.test_hook_raises.<locals>._adapter_hookr2   r   )rT   rO   r4   r1   r   r   rU   rf   r   r5   r%   r6   r/   r   r   rc   r   rg   r   Útest_hook_raisesò   s     z"Test_adapter_hook.test_hook_raises)rS   N)r   r   r   r/   re   rh   r   r   r   r   rW   ×   s   
rW   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTest_setHooksc                 C   s   ddl m} |ƒ S )Nr   )ÚsetHooks)r   rj   )r   rj   r   r   r   r/   
  s    zTest_setHooks._callFUTc              	   C   sz   dd l }ddlm} G dd„ dtƒ}|ƒ }|ƒ }t|jj||d�� |  ¡  W 5 Q R X |  |j	|j
¡ |  |j	|j¡ d S )Nr   r0   c                   @   s   e Zd Zdd„ Zdd„ ZdS )z$Test_setHooks.test_it.<locals>._Hookc                 S   s
   d | _ d S r   ©Ú_hookedr   r   r   r   rQ     s    z-Test_setHooks.test_it.<locals>._Hook.__init__c                 S   s
   || _ d S r   rk   )r   Úvaluer   r   r   Úsethook  s    z,Test_setHooks.test_it.<locals>._Hook.sethookN)r   r   r   rQ   rn   r   r   r   r   Ú_Hook  s   ro   ©r%   r;   )Úzope.component._apir4   r1   r   r6   Ú	componentÚ_apir/   r   rl   r%   r;   ©r   Zzoper1   ro   r%   r;   r   r   r   rF     s    þzTest_setHooks.test_itNrG   r   r   r   r   ri     s   ri   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTest_resetHooksc                 C   s   ddl m} |ƒ S )Nr   )Ú
resetHooks)r   rv   )r   rv   r   r   r   r/   "  s    zTest_resetHooks._callFUTc              	   C   s¢   dd l }ddlm} G dd„ dtƒ}|ƒ }|ƒ }t|jj||d��, t|jdƒ |  	d|jj
k¡ |  ¡  W 5 Q R X |  	|j¡ |  	|j¡ |  d|jj
k¡ d S )Nr   r0   c                   @   s   e Zd Zdd„ Zdd„ ZdS )z&Test_resetHooks.test_it.<locals>._Hookc                 S   s
   d| _ d S )NF©Ú_resetr   r   r   r   rQ   *  s    z/Test_resetHooks.test_it.<locals>._Hook.__init__c                 S   s
   d| _ d S )NTrw   r   r   r   r   Úreset,  s    z,Test_resetHooks.test_it.<locals>._Hook.resetN)r   r   r   rQ   ry   r   r   r   r   ro   )  s   ro   rp   r%   )rq   r4   r1   r   r6   rr   rs   Úgetattrr3   r   r+   r/   rx   r*   rt   r   r   r   rF   &  s    þzTest_resetHooks.test_itNrG   r   r   r   r   ru      s   ru   c                   @   s   e Zd ZeZdZdS )r5   N)r   r   r   rE   r!   r    r   r   r   r   r5   A  s   r5   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )r6   c                    s@   ˆ | _ t‡ fdd„|D ƒƒ| _| ¡ D ]\}}tˆ ||ƒ q&d S )Nc                    s   g | ]}|t ˆ |ƒf‘qS r   )rz   )Ú.0Úkey©Úmoduler   r   Ú
<listcomp>I  s     z$_Monkey.__init__.<locals>.<listcomp>)r~   ÚdictÚ
to_restoreÚitemsÚsetattr)r   r~   Úkwr|   rm   r   r}   r   rQ   G  s    z_Monkey.__init__c                 C   s   | S r   r   r   r   r   r   Ú	__enter__M  s    z_Monkey.__enter__c                 C   s&   | j  ¡ D ]\}}t| j||ƒ q
d S r   )r�   r‚   rƒ   r~   )r   Úexc_typeÚexc_valÚexc_tbr|   rm   r   r   r   Ú__exit__P  s    z_Monkey.__exit__N)r   r   r   rQ   r…   r‰   r   r   r   r   r6   E  s   r6   c                   C   sR   t  t  t¡t  t¡t  t¡t  t¡t  t¡t  t¡t  t	¡t  t
¡t  t¡f	¡S r   )ÚunittestZ	TestSuiteZ	makeSuiter   r   r-   rA   rD   rH   rW   ri   ru   r   r   r   r   Ú
test_suiteU  s    ÷r‹   )Ú__doc__rŠ   ZTestCaser   r   r-   rA   rD   rH   rW   ri   ru   r   rE   r5   r6   r‹   r   r   r   r   Ú<module>   s   &.1 