U
    ÌZj}Ë  ã                   @   sÊ   d Z ddlZdd„ 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dd„ Zdd„ ZdS )zTests for ZCML directives.
é    Nc                 C   s.   zdd l }W n tk
r(   dd„  Y S X | S )Nr   c                 S   s   d S ©N© ©Úselfr   r   úa/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/zope/component/tests/test_zcml.pyÚ<lambda>   ó    z"skipIfNoSecurity.<locals>.<lambda>)Zzope.securityÚImportError)ZtestfuncZzoper   r   r   ÚskipIfNoSecurity   s
    r
   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTest_handlerc                 O   s   ddl m} |||ŽS )Nr   ©Úhandler)Úzope.component.zcmlr   )r   ÚargsÚkwr   r   r   r   Ú_callFUT   s    zTest_handler._callFUTc                    sŠ   ddl m} ddlm} ddlm}m} ddlm} |ƒ ‰ d	‡ fdd„	}| 	|¡ z(|  d|||¡ |  ˆ  |¡|k¡ W 5 | 
¡  X d S )
Nr   )Ú
Components)ÚgetSiteManager)ÚcompÚIApp)Ú_BLANKc                    s   ˆ S r   r   ©Úcontext©Úregistryr   r   Údummy'   s    z=Test_handler.test_uses_configured_site_manager.<locals>.dummyÚregisterUtility)N)Zzope.interface.registryr   Úzope.componentr   Ú#zope.component.testfiles.componentsr   r   Zzope.component._compatr   ZsethookÚresetr   Ú
assertTrueZ
getUtility)r   r   r   r   r   r   r   r   r   r   Ú!test_uses_configured_site_manager    s    
z.Test_handler.test_uses_configured_site_managerN)Ú__name__Ú
__module__Ú__qualname__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__rolledUpFactoryc                 O   s   ddl m} |||ŽS )Nr   )Ú_rolledUpFactory)r   r&   )r   r   r   r&   r   r   r   r   4   s    zTest__rolledUpFactory._callFUTc                    sJ   t ƒ }t ƒ ‰ ‡ fdd„}|  |g¡}|  |j|k¡ |  ||ƒˆ k¡ d S )Nc                    s   ˆ S r   r   ©Úobj©Z_CREATEDr   r   Ú_factory;   s    z5Test__rolledUpFactory.test_with_one.<locals>._factory©Úobjectr   r    Úfactory)r   Ú_OBJr*   Úrolledr   r)   r   Útest_with_one8   s    z#Test__rolledUpFactory.test_with_onec                    sr   t ƒ }t ƒ ‰ t ƒ ‰t ƒ ‰‡ fdd„}‡fdd„}‡fdd„}|  |||g¡}|  |j|k¡ |  ||ƒˆk¡ d S )Nc                    s   ˆ S r   r   r'   )Ú	_CREATED1r   r   Ú	_factory1F   s    z;Test__rolledUpFactory.test_with_multiple.<locals>._factory1c                    s   ˆ S r   r   r'   )Ú	_CREATED2r   r   Ú	_factory2H   s    z;Test__rolledUpFactory.test_with_multiple.<locals>._factory2c                    s   ˆ S r   r   r'   )Ú	_CREATED3r   r   Ú	_factory3J   s    z;Test__rolledUpFactory.test_with_multiple.<locals>._factory3r+   )r   r.   r2   r4   r6   r/   r   )r1   r3   r5   r   Útest_with_multipleA   s    z(Test__rolledUpFactory.test_with_multipleN)r"   r#   r$   r   r0   r7   r   r   r   r   r%   2   s   	r%   c                   @   sp   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
dd„ ƒZe
dd„ ƒZe
dd„ ƒZdd„ ZdS )ÚTest_adapterc                 O   s   ddl m} |||ŽS )Nr   ©Úadapter)r   r:   )r   r   r   r:   r   r   r   r   S   s    zTest_adapter._callFUTc                 C   sJ   ddl m} ddlm} G dd„ d|ƒ}tƒ }|  || j|g |g|¡ d S )Nr   ©Ú	Interface©ÚComponentConfigurationErrorc                   @   s   e Zd ZdS )z-Test_adapter.test_empty_factory.<locals>.IFooN©r"   r#   r$   r   r   r   r   ÚIFooZ   s   r@   ©Úzope.interfacer<   r   r>   Ú_makeConfigContextÚassertRaisesr   )r   r<   r>   r@   Ú_cfg_ctxr   r   r   Útest_empty_factoryW   s        ÿzTest_adapter.test_empty_factoryc                 C   s€   ddl m} ddlm} G dd„ d|ƒ}G dd„ d|ƒ}G dd	„ d	tƒ}G d
d„ dtƒ}tƒ }|  || j|||g||g|¡ d S )Nr   r;   r=   c                   @   s   e Zd ZdS )z>Test_adapter.test_multiple_factory_multiple_for_.<locals>.IFooNr?   r   r   r   r   r@   c   s   r@   c                   @   s   e Zd ZdS )z>Test_adapter.test_multiple_factory_multiple_for_.<locals>.IBarNr?   r   r   r   r   ÚIBare   s   rG   c                   @   s   e Zd ZdS )z=Test_adapter.test_multiple_factory_multiple_for_.<locals>.FooNr?   r   r   r   r   ÚFoog   s   rH   c                   @   s   e Zd ZdS )z=Test_adapter.test_multiple_factory_multiple_for_.<locals>.BarNr?   r   r   r   r   ÚBari   s   rI   ©rB   r<   r   r>   r,   rC   rD   r   )r   r<   r>   r@   rG   rH   rI   rE   r   r   r   Ú#test_multiple_factory_multiple_for_`   s       þz0Test_adapter.test_multiple_factory_multiple_for_c                 C   s.   G dd„ dt ƒ}tƒ }|  t| j||g¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z>Test_adapter.test_no_for__factory_not_adapts.<locals>._Factoryc                 S   s
   || _ d S r   r   ©r   r   r   r   r   Ú__init__s   s    zGTest_adapter.test_no_for__factory_not_adapts.<locals>._Factory.__init__N©r"   r#   r$   rM   r   r   r   r   Ú_Factoryr   s   rO   ©r,   rC   rD   Ú	TypeErrorr   ©r   rO   rE   r   r   r   Útest_no_for__factory_not_adaptsp   s    z,Test_adapter.test_no_for__factory_not_adaptsc           
      C   sª   ddl m} G dd„ d|ƒ}G dd„ d|ƒ}ddlm}m} ddl m} ||ƒ||ƒ|d	ƒG d
d„ dtƒƒƒƒ}tƒ }|  ||g¡ |j	d d }	|  
|	d d d	¡ d S )Nr   r;   c                   @   s   e Zd ZdS )z'Test_adapter.test_no_name.<locals>.IFooNr?   r   r   r   r   r@   z   s   r@   c                   @   s   e Zd ZdS )z'Test_adapter.test_no_name.<locals>.IBarNr?   r   r   r   r   rG   |   s   rG   )r:   Únamed©ÚimplementerÚbarc                   @   s   e Zd Zdd„ ZdS )z+Test_adapter.test_no_name.<locals>._Factoryc                 S   s
   || _ d S r   r   rL   r   r   r   rM   „   s    z4Test_adapter.test_no_name.<locals>._Factory.__init__NrN   r   r   r   r   rO   €   s   rO   é   r   é   )rB   r<   r   r:   rT   rV   r,   rC   r   Ú_actionsÚassertEqual)
r   r<   r@   rG   r:   rT   rV   rO   rE   Úactionr   r   r   Útest_no_namex   s    zTest_adapter.test_no_namec                 C   sN   ddl m} ddlm} ||ƒG dd„ dtƒƒ}tƒ }|  t| j||g¡ d S )Nr   r;   r9   c                   @   s   e Zd Zdd„ ZdS )z]Test_adapter.test_no_for__factory_adapts_no_provides_factory_not_implements.<locals>._Factoryc                 S   s
   || _ d S r   r   rL   r   r   r   rM   ‘   s    zfTest_adapter.test_no_for__factory_adapts_no_provides_factory_not_implements.<locals>._Factory.__init__NrN   r   r   r   r   rO   �   s   rO   )	rB   r<   Úzope.component._declarationr:   r,   rC   rD   rQ   r   )r   r<   r:   rO   rE   r   r   r   Ú>test_no_for__factory_adapts_no_provides_factory_not_implementsŒ   s    zKTest_adapter.test_no_for__factory_adapts_no_provides_factory_not_implementsc           	      C   s  ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd„ dtƒ}G d	d
„ d
tƒ}tƒ }| j|||g||gdd� |  	t
|jƒd¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d|f|df¡ |  	|d d d¡ |  	|d d j|¡ |  	|d d |f¡ |  	|d d |¡ |  	|d d d¡ |  	|d d d¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ d S )Nr   r;   ©ÚprovideInterfacer   c                   @   s   e Zd ZdS )zCTest_adapter.test_multiple_factory_single_for__w_name.<locals>.IFooNr?   r   r   r   r   r@   š   s   r@   c                   @   s   e Zd ZdS )zBTest_adapter.test_multiple_factory_single_for__w_name.<locals>.FooNr?   r   r   r   r   rH   œ   s   rH   c                   @   s   e Zd ZdS )zBTest_adapter.test_multiple_factory_single_for__w_name.<locals>.BarNr?   r   r   r   r   rI   ž   s   rI   Útest)Únameé   r   rX   ÚcallableÚdiscriminatorr:   r   ÚregisterAdapteré   rY   é   ÚTESTINGÚ )rB   r<   Úzope.component.interfacera   r   r   r,   rC   r   r[   ÚlenrZ   r-   )	r   r<   ra   r   r@   rH   rI   rE   r\   r   r   r   Ú(test_multiple_factory_single_for__w_name–   s>    
ÿz5Test_adapter.test_multiple_factory_single_for__w_namec           	      C   sZ  ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j||g||gd	d
� |  	t
|jƒd¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d|f|df¡ |  	|d d d¡ |d d }|  t||ƒ¡ |  |jj|k¡ |  	|d d |f¡ |  	|d d |¡ |  	|d d d¡ |  	|d d d¡ d S )Nr   r;   ©ÚLocatingUntrustedAdapterFactoryr   c                   @   s   e Zd ZdS )zFTest_adapter.test_single_factory_single_for_w_permission.<locals>.IFooNr?   r   r   r   r   r@   Á   s   r@   c                   @   s   e Zd ZdS )zETest_adapter.test_single_factory_single_for_w_permission.<locals>.FooNr?   r   r   r   r   rH   Ã   s   rH   Útesting)Ú
permissionrd   r   rX   re   rf   r:   rk   r   rg   rh   rY   ri   rj   ©rB   r<   Úzope.security.adapterrp   r   r   r,   rC   r   r[   rm   rZ   r    Ú
isinstancer-   ©	r   r<   rp   r   r@   rH   rE   r\   Úfactory_proxyr   r   r   Ú+test_single_factory_single_for_w_permission¼   s0    
ÿÿz8Test_adapter.test_single_factory_single_for_w_permissionc           	      C   sX  ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j||g||gd	d
� |  	t
|jƒd¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d|f|df¡ |  	|d d d¡ |d d }|  t||ƒ¡ |  |j|k¡ |  	|d d |f¡ |  	|d d |¡ |  	|d d d¡ |  	|d d d¡ d S )Nr   r;   ro   r   c                   @   s   e Zd ZdS )zPTest_adapter.test_single_factory_single_for_w_locate_no_permission.<locals>.IFooNr?   r   r   r   r   r@   ß   s   r@   c                   @   s   e Zd ZdS )zOTest_adapter.test_single_factory_single_for_w_locate_no_permission.<locals>.FooNr?   r   r   r   r   rH   á   s   rH   T)Úlocaterd   r   rX   re   rf   r:   rk   r   rg   rh   rY   ri   rj   rs   rv   r   r   r   Ú5test_single_factory_single_for_w_locate_no_permissionÚ   s0    
ÿÿzBTest_adapter.test_single_factory_single_for_w_locate_no_permissionc           	      C   sX  ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j||g||gd	d
� |  	t
|jƒd¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d|f|df¡ |  	|d d d¡ |d d }|  t||ƒ¡ |  |j|k¡ |  	|d d |f¡ |  	|d d |¡ |  	|d d d¡ |  	|d d d¡ d S )Nr   r;   ©ÚTrustedAdapterFactoryr   c                   @   s   e Zd ZdS )zQTest_adapter.test_single_factory_single_for_w_trusted_no_permission.<locals>.IFooNr?   r   r   r   r   r@   ü   s   r@   c                   @   s   e Zd ZdS )zPTest_adapter.test_single_factory_single_for_w_trusted_no_permission.<locals>.FooNr?   r   r   r   r   rH   þ   s   rH   T)Útrustedrd   r   rX   re   rf   r:   rk   r   rg   rh   rY   ri   rj   )rB   r<   rt   r|   r   r   r,   rC   r   r[   rm   rZ   r    ru   r-   )	r   r<   r|   r   r@   rH   rE   r\   rw   r   r   r   Ú6test_single_factory_single_for_w_trusted_no_permission÷   s,    
ÿzCTest_adapter.test_single_factory_single_for_w_trusted_no_permissionc           	   	   C   sö   ddl m} ddl m} ddlm} ddlm} G dd„ d|ƒ}||ƒ||ƒG dd	„ d	tƒƒƒ}tƒ }|  	||g¡ |  
t|jƒd
¡ |  
|jd d d¡ |jd d }|  
|d |¡ |  
|d d|f|df¡ |  
|d d||f|ddf¡ d S )Nr   r;   rU   r9   r   c                   @   s   e Zd ZdS )zUTest_adapter.test_no_for__no_provides_factory_adapts_factory_implements.<locals>.IFooNr?   r   r   r   r   r@     s   r@   c                   @   s   e Zd Zdd„ ZdS )zYTest_adapter.test_no_for__no_provides_factory_adapts_factory_implements.<locals>._Factoryc                 S   s
   || _ d S r   r   rL   r   r   r   rM     s    zbTest_adapter.test_no_for__no_provides_factory_adapts_factory_implements.<locals>._Factory.__init__NrN   r   r   r   r   rO     s   rO   rd   r   rX   re   rf   r:   rk   r   rg   rj   )rB   r<   rV   r^   r:   r   r   r,   rC   r   r[   rm   rZ   )	r   r<   rV   r:   r   r@   rO   rE   r\   r   r   r   Ú:test_no_for__no_provides_factory_adapts_factory_implements  s.    
ÿ

 ÿÿzGTest_adapter.test_no_for__no_provides_factory_adapts_factory_implementsN)r"   r#   r$   r   rF   rK   rS   r]   r_   rn   r
   rx   rz   r~   r   r   r   r   r   r8   Q   s   	
&


r8   c                   @   s8   e Zd Zdd„ ZeZdd„ Zedd„ ƒZedd„ ƒZd	S )
ÚTest_zcml_functionalc                 C   s   ddl m} |ƒ  d S )Nr   )Ú	clearZCML)Zzope.component.tests.examplesr�   )r   r�   r   r   r   ÚsetUp/  s    zTest_zcml_functional.setUpc                 C   s"   ddl m} d| }| |¡ d S )Nr   )Ú	xmlconfigzÅ        <configure xmlns='http://namespaces.zope.org/zope'
                   i18n_domain="zope">
           <include package="zope.component" file="meta.zcml" />
           %s
        </configure>)Zzope.configurationrƒ   Ústring)r   Zsnippetrƒ   Útemplater   r   r   Ú_runSnippet4  s
    ûz Test_zcml_functional._runSnippetc           
      C   sˆ   ddl m} ddlm} ddlm} ddlm}m} ddl	m
} |  d¡ |ƒ }||ƒ}||ƒ}	|  ||	ƒ¡ |  t||	ƒƒ|k¡ d S )Nr   ©ÚisProxy©ÚremoveSecurityProxy©ÚContent)ÚI1ÚA1©ÚProxyFactorya  
            <adapter
            for="zope.component.testfiles.components.IContent"
            provides="zope.component.testfiles.adapter.I1"
            factory="zope.component.testfiles.adapter.A1"
            permission="zope.Public"
            trusted="yes"
             />)Ú
zope.proxyrˆ   Úzope.security.proxyrŠ   r   rŒ   Ú zope.component.testfiles.adapterr�   rŽ   Úzope.security.checkerr�   r†   r    Útype)
r   rˆ   rŠ   rŒ   r�   rŽ   r�   ÚobÚpÚar   r   r   Ú)test_with_proxy_factory_public_permission?  s    
z>Test_zcml_functional.test_with_proxy_factory_public_permissionc           
      C   s�   ddl m} ddlm} ddlm} ddlm} ddlm	} ddl
m} |  d¡ |ƒ }||ƒ}||ƒ}	|  ||	ƒ¡ |  t||	ƒƒ|k¡ d S )	Nr   r‡   r‰   r‹   )r�   r�   )ÚLocationProxya  
        <adapter
          for="zope.component.testfiles.components.IContent"
          provides="zope.component.testfiles.adapter.I1"
          factory="zope.component.testfiles.adapter.A1"
          trusted="yes"
          locate="yes"
          />
        )r‘   rˆ   r’   rŠ   r   rŒ   r“   r�   r”   r�   Zzope.location.locationrš   r†   r    r•   )
r   rˆ   rŠ   rŒ   r�   r�   rš   r–   r—   r˜   r   r   r   Útest_located_proxy_factoryY  s    
	z/Test_zcml_functional.test_located_proxy_factoryN)	r"   r#   r$   r‚   ZtearDownr†   r
   r™   r›   r   r   r   r   r€   ,  s   
r€   c                   @   sp   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
edd„ ƒZedd„ ƒZedd„ ƒZdS )ÚTest_subscriberc                 O   s   ddl m} |||ŽS )Nr   )Ú
subscriber)r   r�   )r   r   r   r�   r   r   r   r   v  s    zTest_subscriber._callFUTc                 C   s*   ddl m} tƒ }|  t| j||f¡ d S )Nr   r;   ©rB   r<   rC   rD   rQ   r   )r   r<   rE   r   r   r   Útest_no_factory_no_handlerz  s      ÿz*Test_subscriber.test_no_factory_no_handlerc                 C   sH   ddl m} G dd„ d|ƒ}dd„ }tƒ }| jt| j||f||d� d S )Nr   r;   c                   @   s   e Zd ZdS )zBTest_subscriber.test_no_factory_w_handler_w_provides.<locals>.IFooNr?   r   r   r   r   r@   ‚  s   r@   c                  W   s   d S r   r   ©r   r   r   r   Ú_handler„  s    zFTest_subscriber.test_no_factory_w_handler_w_provides.<locals>._handler)r   Úprovidesrž   )r   r<   r@   r¡   rE   r   r   r   Ú$test_no_factory_w_handler_w_provides€  s       þz4Test_subscriber.test_no_factory_w_handler_w_providesc                 C   sH   ddl m} G dd„ dtƒ}dd„ }tƒ }| jt| j||f||d� d S )Nr   r;   c                   @   s   e Zd ZdS )z5Test_subscriber.test_w_factory_w_handler.<locals>.FooNr?   r   r   r   r   rH   �  s   rH   c                  W   s   d S r   r   r    r   r   r   r¡   �  s    z:Test_subscriber.test_w_factory_w_handler.<locals>._handlerr   ©rB   r<   r,   rC   rD   rQ   r   )r   r<   rH   r¡   rE   r   r   r   Útest_w_factory_w_handler‹  s       þz(Test_subscriber.test_w_factory_w_handlerc                 C   s<   ddl m} G dd„ dtƒ}tƒ }|  t| j||f|¡ d S )Nr   r;   c                   @   s   e Zd ZdS )z7Test_subscriber.test_w_factory_no_provides.<locals>.FooNr?   r   r   r   r   rH   ˜  s   rH   r¤   )r   r<   rH   rE   r   r   r   Útest_w_factory_no_provides–  s       ÿz*Test_subscriber.test_w_factory_no_providesc                 C   sL   ddl m} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| jt| j|||d� d S )Nr   r;   c                   @   s   e Zd ZdS )zQTest_subscriber.test_w_factory_w_provides_no_for_factory_wo_adapter.<locals>.IFooNr?   r   r   r   r   r@      s   r@   c                   @   s   e Zd ZdS )zPTest_subscriber.test_w_factory_w_provides_no_for_factory_wo_adapter.<locals>.FooNr?   r   r   r   r   rH   ¢  s   rH   ©r-   r¢   r¤   )r   r<   r@   rH   rE   r   r   r   Ú3test_w_factory_w_provides_no_for_factory_wo_adapterž  s      þzCTest_subscriber.test_w_factory_w_provides_no_for_factory_wo_adapterc                 C   s\  ddl m} ddlm} ddlm} dd„ }tƒ }| j||f|d� |  t	|j
ƒd¡ |  |j
d d d¡ |j
d d	 }|  |d
 |¡ |  |d d ¡ |  |d d d¡ |  |d d	 |¡ |  |d d |f¡ |  |d d d¡ |  |d d d¡ |  |j
d	 d d¡ |j
d	 d	 }|  |d
 |¡ |  |d d ¡ |  |d d|f¡ d S )Nr   r;   r`   r   c                  W   s   d S r   r   r    r   r   r   r¡   ­  s    zGTest_subscriber.test_no_factory_w_handler_no_provides.<locals>._handlerrh   r   rX   re   rf   r   ZregisterHandlerrd   rk   rY   rj   )rB   r<   rl   ra   r   r   rC   r   r[   rm   rZ   )r   r<   ra   r   r¡   rE   r\   r   r   r   Ú%test_no_factory_w_handler_no_provides©  s*    z5Test_subscriber.test_no_factory_w_handler_no_providesc           	      C   sê  ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd„ dtƒ}d	d
„ }tƒ }| j||f||d� |  	t
|jƒd¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d d¡ |  	|d d |¡ |  	|d d |f¡ |  	|d d |¡ |  	|d d d¡ |  	|d d d¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ d S )Nr   r;   r`   r   c                   @   s   e Zd ZdS )z7Test_subscriber.test_w_factory_w_provides.<locals>.IFooNr?   r   r   r   r   r@   Ç  s   r@   c                   @   s   e Zd ZdS )z6Test_subscriber.test_w_factory_w_provides.<locals>.FooNr?   r   r   r   r   rH   É  s   rH   c                  W   s   d S r   r   r    r   r   r   r¡   Ë  s    z;Test_subscriber.test_w_factory_w_provides.<locals>._handler)r¢   rd   r   rX   re   rf   r   ÚregisterSubscriptionAdapterrh   rY   rk   ri   rj   ©rB   r<   rl   ra   r   r   r,   rC   r   r[   rm   rZ   )	r   r<   ra   r   r@   rH   r¡   rE   r\   r   r   r   Útest_w_factory_w_providesÃ  s:    z)Test_subscriber.test_w_factory_w_providesc           
      C   s
  ddl m} ddlm} ddlm} ddlm} G dd„ d|ƒ}G dd	„ d	tƒ}t	ƒ }| j
||f||d
d� |  t|jƒd¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d d¡ |d d }	|  t|	|ƒ¡ |  |	jj|k¡ |  |d d |f¡ |  |d d |¡ |  |d d d¡ |  |d d d¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d|f¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d|f¡ d S )Nr   r;   ro   r`   r   c                   @   s   e Zd ZdS )zDTest_subscriber.test_w_factory_w_provides_w_permission.<locals>.IFooNr?   r   r   r   r   r@   î  s   r@   c                   @   s   e Zd ZdS )zCTest_subscriber.test_w_factory_w_provides_w_permission.<locals>.FooNr?   r   r   r   r   rH   ð  s   rH   rq   )r¢   rr   rd   r   rX   re   rf   r   rª   rh   rY   rk   ri   rj   ©rB   r<   rt   rp   rl   ra   r   r   r,   rC   r   r[   rm   rZ   r    ru   r-   ©
r   r<   rp   ra   r   r@   rH   rE   r\   rw   r   r   r   Ú&test_w_factory_w_provides_w_permissionè  sH     ÿÿz6Test_subscriber.test_w_factory_w_provides_w_permissionc           
      C   s  ddl m} ddlm} ddlm} ddlm} G dd„ d|ƒ}G dd	„ d	tƒ}t	ƒ }| j
||f||d
d� |  t|jƒd¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d d¡ |d d }	|  t|	|ƒ¡ |  |	j|k¡ |  |d d |f¡ |  |d d |¡ |  |d d d¡ |  |d d d¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d|f¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d|f¡ d S )Nr   r;   ro   r`   r   c                   @   s   e Zd ZdS )zNTest_subscriber.test_w_factory_w_provides_wo_permission_w_locate.<locals>.IFooNr?   r   r   r   r   r@     s   r@   c                   @   s   e Zd ZdS )zMTest_subscriber.test_w_factory_w_provides_wo_permission_w_locate.<locals>.FooNr?   r   r   r   r   rH     s   rH   T)r¢   ry   rd   r   rX   re   rf   r   rª   rh   rY   rk   ri   rj   r­   r®   r   r   r   Ú0test_w_factory_w_provides_wo_permission_w_locate  sB    ÿz@Test_subscriber.test_w_factory_w_provides_wo_permission_w_locatec           
      C   s  ddl m} ddlm} ddlm} ddlm} G dd„ d|ƒ}G dd	„ d	tƒ}t	ƒ }| j
||f||d
d� |  t|jƒd¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d d¡ |d d }	|  t|	|ƒ¡ |  |	j|k¡ |  |d d |f¡ |  |d d |¡ |  |d d d¡ |  |d d d¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d|f¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d d ¡ |  |d d|f¡ d S )Nr   r;   r{   r`   r   c                   @   s   e Zd ZdS )zOTest_subscriber.test_w_factory_w_provides_wo_permission_w_trusted.<locals>.IFooNr?   r   r   r   r   r@   C  s   r@   c                   @   s   e Zd ZdS )zNTest_subscriber.test_w_factory_w_provides_wo_permission_w_trusted.<locals>.FooNr?   r   r   r   r   rH   E  s   rH   T)r¢   r}   rd   r   rX   re   rf   r   rª   rh   rY   rk   ri   rj   )rB   r<   rt   r|   rl   ra   r   r   r,   rC   r   r[   rm   rZ   r    ru   r-   )
r   r<   r|   ra   r   r@   rH   rE   r\   rw   r   r   r   Ú1test_w_factory_w_provides_wo_permission_w_trusted=  sB    ÿzATest_subscriber.test_w_factory_w_provides_wo_permission_w_trustedN)r"   r#   r$   r   rŸ   r£   r¥   r¦   r¨   r©   r¬   r
   r¯   r°   r±   r   r   r   r   rœ   t  s   %
*
)rœ   c                   @   s`   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zedd„ ƒZdS )ÚTest_utilityc                 O   s   ddl m} |||ŽS )Nr   )Úutility)r   r³   )r   r   r   r³   r   r   r   r   j  s    zTest_utility._callFUTc                 C   s4   G dd„ dt ƒ}t }tƒ }| jt| j|||d� d S )Nc                   @   s   e Zd ZdS )z9Test_utility.test_w_factory_w_component.<locals>._FactoryNr?   r   r   r   r   rO   o  s   rO   )r-   Ú	componentrP   )r   rO   Ú
_COMPONENTrE   r   r   r   Útest_w_factory_w_componentn  s    þz'Test_utility.test_w_factory_w_componentc                 C   s.   G dd„ dt ƒ}tƒ }| jt| j||d� d S )Nc                   @   s   e Zd ZdS )zOTest_utility.test_w_factory_wo_provides_factory_no_implements.<locals>._FactoryNr?   r   r   r   r   rO   x  s   rO   ©r-   rP   rR   r   r   r   Ú0test_w_factory_wo_provides_factory_no_implementsw  s      ÿz=Test_utility.test_w_factory_wo_provides_factory_no_implementsc                 C   s"   t }tƒ }| jt| j||d� d S )N©r´   rP   )r   rµ   rE   r   r   r   Ú2test_w_component_wo_provides_component_no_provides~  s      ÿz?Test_utility.test_w_component_wo_provides_component_no_providesc                 C   sŠ  ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j|||d	� |  	t
|jƒd
¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d|df¡ |  	|d d d¡ |  	|d d d ¡ |  	|d d
 |¡ |  	|d d d¡ |  	|d d d¡ |  	|d d|i¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ d S )Nr   r;   r`   r   c                   @   s   e Zd ZdS )z4Test_utility.test_w_factory_w_provides.<locals>.IFooNr?   r   r   r   r   r@   ˆ  s   r@   c                   @   s   e Zd ZdS )z3Test_utility.test_w_factory_w_provides.<locals>.FooNr?   r   r   r   r   rH   Š  s   rH   r§   rh   r   rX   re   rf   r³   rk   r   r   rd   rY   rj   r   r-   r«   )r   r<   ra   r   r@   rH   rE   r\   r   r   r   r¬   „  s.    z&Test_utility.test_w_factory_w_providesc           	      C   sœ  ddl m} ddl m} ddlm} ddlm} G dd„ d|ƒ}||ƒG dd	„ d	tƒƒ}tƒ }| j	||d
� |  
t|jƒd¡ |  
|jd d d¡ |jd d }|  
|d |¡ |  
|d d|df¡ |  
|d d d¡ |  
|d d d ¡ |  
|d d |¡ |  
|d d d¡ |  
|d d d¡ |  
|d d|i¡ |  
|jd d d¡ |jd d }|  
|d |¡ |  
|d d ¡ |  
|d d|f¡ d S )Nr   r;   rU   r`   r   c                   @   s   e Zd ZdS )zHTest_utility.test_w_factory_wo_provides_factory_implements.<locals>.IFooNr?   r   r   r   r   r@   ¦  s   r@   c                   @   s   e Zd ZdS )zGTest_utility.test_w_factory_wo_provides_factory_implements.<locals>.FooNr?   r   r   r   r   rH   ¨  s   rH   r·   rh   r   rX   re   rf   r³   rk   r   r   rd   rY   rj   r   r-   )rB   r<   rV   rl   ra   r   r   r,   rC   r   r[   rm   rZ   )	r   r<   rV   ra   r   r@   rH   rE   r\   r   r   r   Ú-test_w_factory_wo_provides_factory_implements¡  s2    z:Test_utility.test_w_factory_wo_provides_factory_implementsc                 C   sn  ddl m} ddlm} ddlm} G dd„ d|ƒ}tƒ }tƒ }| j||d|d� |  	t
|jƒd	¡ |  	|jd d d
¡ |jd d }|  	|d |¡ |  	|d d|df¡ |  	|d d d¡ |  	|d d |¡ |  	|d d	 |¡ |  	|d d d¡ |  	|d d d¡ |  	|jd d d
¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ d S )Nr   r;   r`   r   c                   @   s   e Zd ZdS )z=Test_utility.test_w_component_w_provides_w_name.<locals>.IFooNr?   r   r   r   r   r@   Ä  s   r@   rb   )r´   rc   r¢   rh   r   rX   re   rf   r³   r   r   rd   rY   rj   rk   r«   )r   r<   ra   r   r@   rµ   rE   r\   r   r   r   Ú"test_w_component_w_provides_w_nameÀ  s2     ÿz/Test_utility.test_w_component_w_provides_w_namec           
      C   s¸   ddl m}m}m} ddlm} G dd„ d|ƒ}||ƒ|dƒG dd„ dtƒƒƒ}|ƒ }tƒ }| j||d	� |j	d d
 }	|  
|	d d
 |¡ |  
|	d d |¡ |  
|	d d d¡ d S )Nr   )r<   rV   rT   r   c                   @   s   e Zd ZdS )z?Test_utility.test_w_component_wo_provides_wo_name.<locals>.IFooNr?   r   r   r   r   r@   ß  s   r@   Úfooc                   @   s   e Zd ZdS )z>Test_utility.test_w_component_wo_provides_wo_name.<locals>.FooNr?   r   r   r   r   rH   á  s   rH   r¹   rX   r   rh   rd   )rB   r<   rV   rT   r   r   r,   rC   r   rZ   r[   )
r   r<   rV   rT   r   r@   rH   r½   rE   r\   r   r   r   Ú$test_w_component_wo_provides_wo_nameÜ  s    z1Test_utility.test_w_component_wo_provides_wo_namec           
      C   s�  ddl m} ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd	„ d	tƒ}|ƒ }|||ƒ tƒ }| j	||d
� |  
t|jƒd¡ |  
|jd d d¡ |jd d }	|  
|	d |¡ |  
|	d d|df¡ |  
|	d d d¡ |  
|	d d |¡ |  
|	d d |¡ |  
|	d d d¡ |  
|	d d d¡ |  
|jd d d¡ |jd d }	|  
|	d |¡ |  
|	d d ¡ |  
|	d d|f¡ d S )Nr   r;   )ÚdirectlyProvidesr`   r   c                   @   s   e Zd ZdS )zJTest_utility.test_w_component_wo_provides_component_provides.<locals>.IFooNr?   r   r   r   r   r@   ò  s   r@   c                   @   s   e Zd ZdS )zITest_utility.test_w_component_wo_provides_component_provides.<locals>.FooNr?   r   r   r   r   rH   ô  s   rH   r¹   rh   r   rX   re   rf   r³   rk   r   r   rd   rY   rj   )rB   r<   r¿   rl   ra   r   r   r,   rC   r   r[   rm   rZ   )
r   r<   r¿   ra   r   r@   rH   rµ   rE   r\   r   r   r   Ú/test_w_component_wo_provides_component_providesí  s2    
z<Test_utility.test_w_component_wo_provides_component_providesc                 C   sÄ  ddl m} ddlm} ddlm} ddlm} ddlm	} G dd„ d|ƒ}G d	d
„ d
t
ƒ}|ƒ }tƒ }	| j|	||dd� |  t|	jƒd¡ |  |	jd d d¡ |	jd d }
|  |
d |¡ |  |
d d|df¡ |  |
d d d¡ |
d d }|  t||ƒ¡ |  ||ƒ|k¡ |  |jjddi¡ |  |
d d |¡ |  |
d d d¡ |  |
d d d¡ |  |	jd d d¡ |	jd d }
|  |
d |¡ |  |
d d ¡ |  |
d d|f¡ d S )Nr   r;   )ÚremoveAllProxiesr`   )ÚPermissionProxyr   c                   @   s   e Zd Zdd„ ZdS )zCTest_utility.test_w_component_w_provides_w_permission.<locals>.IFooc                 S   s   d S r   r   r   r   r   r   rW     s    zGTest_utility.test_w_component_w_provides_w_permission.<locals>.IFoo.barN©r"   r#   r$   rW   r   r   r   r   r@     s   r@   c                   @   s   e Zd Zdd„ ZdS )zBTest_utility.test_w_component_w_provides_w_permission.<locals>.Fooc                 S   s   d S r   r   r   r   r   r   rW     s    zFTest_utility.test_w_component_w_provides_w_permission.<locals>.Foo.barNrÃ   r   r   r   r   rH     s   rH   rq   )r´   r¢   rr   rh   r   rX   re   rf   r³   rk   r   r   rW   rd   rY   rj   )rB   r<   r‘   rÁ   rl   ra   Zzope.component.securityrÂ   r   r   r,   rC   r   r[   rm   rZ   r    ru   Ú__Security_checker__Úget_permissions)r   r<   rÁ   ra   rÂ   r   r@   rH   rµ   rE   r\   Zcomponent_proxyr   r   r   Ú(test_w_component_w_provides_w_permission  sB     ÿ
ÿz5Test_utility.test_w_component_w_provides_w_permissionN)r"   r#   r$   r   r¶   r¸   rº   r¬   r»   r¼   r¾   rÀ   r
   rÆ   r   r   r   r   r²   h  s   	r²   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTest_interfacec                 O   s   ddl m} |||ŽS )Nr   )Ú	interface)r   rÈ   )r   r   r   rÈ   r   r   r   r   5  s    zTest_interface._callFUTc                 C   sª   ddl m} ddlm} G dd„ d|ƒ}tƒ }|  ||¡ |  t|jƒd¡ |  |jd d d¡ |jd d }|  |d |¡ |  |d	 d ¡ |  |d
 d|d f¡ d S )Nr   r;   r`   c                   @   s   e Zd ZdS )z1Test_interface.test_wo_name_wo_type.<locals>.IFooNr?   r   r   r   r   r@   <  s   r@   rX   r   re   rf   r   rk   ©	rB   r<   rl   ra   rC   r   r[   rm   rZ   )r   r<   ra   r@   rE   r\   r   r   r   Útest_wo_name_wo_type9  s    z#Test_interface.test_wo_name_wo_typec                 C   sÀ   ddl m} ddlm} G dd„ d|ƒ}G dd„ d|ƒ}tƒ }| j||d|d	� |  t|jƒd
¡ |  |jd d d¡ |jd d
 }|  |d |¡ |  |d d ¡ |  |d d||f¡ d S )Nr   r;   r`   c                   @   s   e Zd ZdS )z/Test_interface.test_w_name_w_type.<locals>.IFooNr?   r   r   r   r   r@   J  s   r@   c                   @   s   e Zd ZdS )z/Test_interface.test_w_name_w_type.<locals>.IBarNr?   r   r   r   r   rG   L  s   rG   r½   )rc   r•   rX   r   re   rf   r   rÉ   )r   r<   ra   r@   rG   rE   r\   r   r   r   Útest_w_name_w_typeG  s    z!Test_interface.test_w_name_w_typeN)r"   r#   r$   r   rÊ   rË   r   r   r   r   rÇ   3  s   rÇ   c                   @   sp   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
edd„ ƒZedd„ ƒZedd„ ƒZdS )Ú	Test_viewc                 O   s   ddl m} |||ŽS )Nr   )Úview)r   rÍ   )r   r   r   rÍ   r   r   r   r   Z  s    zTest_view._callFUTc              
   C   st   ddl m} ddlm} G dd„ d|ƒ}G dd„ d|ƒ}G dd	„ d	tƒ}tƒ }| j|| j||f|d
||f|d� d S )Nr   r;   r=   c                   @   s   e Zd ZdS )zCTest_view.test_w_allowed_interface_wo_permission.<locals>.IViewTypeNr?   r   r   r   r   Ú	IViewTypea  s   rÎ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )z?Test_view.test_w_allowed_interface_wo_permission.<locals>.IViewc                   S   s   d S r   r   r   r   r   r   r½   d  s    zCTest_view.test_w_allowed_interface_wo_permission.<locals>.IView.fooc                   S   s   d S r   r   r   r   r   r   rW   f  s    zCTest_view.test_w_allowed_interface_wo_permission.<locals>.IView.barN©r"   r#   r$   r½   rW   r   r   r   r   ÚIViewc  s   rÐ   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z?Test_view.test_w_allowed_interface_wo_permission.<locals>._Viewc                 S   s
   || _ d S r   r   rL   r   r   r   rM   i  s    zHTest_view.test_w_allowed_interface_wo_permission.<locals>._View.__init__c                   S   s   d S r   r   r   r   r   r   r½   k  s    zCTest_view.test_w_allowed_interface_wo_permission.<locals>._View.fooc                   S   s   d S r   r   r   r   r   r   rW   m  s    zCTest_view.test_w_allowed_interface_wo_permission.<locals>._View.barN©r"   r#   r$   rM   r½   rW   r   r   r   r   Ú_Viewh  s   rÒ   rk   )Úfor_Úallowed_interfacerJ   )r   r<   r>   rÎ   rÐ   rÒ   rE   r   r   r   Ú&test_w_allowed_interface_wo_permission^  s        ýz0Test_view.test_w_allowed_interface_wo_permissionc              
   C   sd   ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j|| j||f|d||fd	d
� d S )Nr   r;   r=   c                   @   s   e Zd ZdS )zDTest_view.test_w_allowed_attributes_wo_permission.<locals>.IViewTypeNr?   r   r   r   r   rÎ   x  s   rÎ   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z@Test_view.test_w_allowed_attributes_wo_permission.<locals>._Viewc                 S   s
   || _ d S r   r   rL   r   r   r   rM   {  s    zITest_view.test_w_allowed_attributes_wo_permission.<locals>._View.__init__c                   S   s   d S r   r   r   r   r   r   r½   }  s    zDTest_view.test_w_allowed_attributes_wo_permission.<locals>._View.fooc                   S   s   d S r   r   r   r   r   r   rW     s    zDTest_view.test_w_allowed_attributes_wo_permission.<locals>._View.barNrÑ   r   r   r   r   rÒ   z  s   rÒ   rk   ©r½   rW   )rÓ   Úallowed_attributesrJ   ©r   r<   r>   rÎ   rÒ   rE   r   r   r   Ú'test_w_allowed_attributes_wo_permissionu  s        ýz1Test_view.test_w_allowed_attributes_wo_permissionc              	   C   sP   ddl m} ddlm} G dd„ d|ƒ}tƒ }| j|| j|d|d||fd� d S )	Nr   r;   r=   c                   @   s   e Zd ZdS )z4Test_view.test_w_factory_as_empty.<locals>.IViewTypeNr?   r   r   r   r   rÎ   Š  s   rÎ   r   rk   ©rÓ   rA   )r   r<   r>   rÎ   rE   r   r   r   Útest_w_factory_as_empty‡  s        þz!Test_view.test_w_factory_as_emptyc              	   C   st   ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}G dd	„ d	tƒ}tƒ }| j|| j|||f|d
||fd� d S )Nr   r;   r=   c                   @   s   e Zd ZdS )zBTest_view.test_w_multiple_factory_multiple_for_.<locals>.IViewTypeNr?   r   r   r   r   rÎ   ”  s   rÎ   c                   @   s   e Zd ZdS )z<Test_view.test_w_multiple_factory_multiple_for_.<locals>.FooNr?   r   r   r   r   rH   –  s   rH   c                   @   s   e Zd ZdS )z<Test_view.test_w_multiple_factory_multiple_for_.<locals>.BarNr?   r   r   r   r   rI   ˜  s   rI   rk   rÚ   rJ   )r   r<   r>   rÎ   rH   rI   rE   r   r   r   Ú%test_w_multiple_factory_multiple_for_‘  s        þz/Test_view.test_w_multiple_factory_multiple_for_c              	   C   s^   ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j|| j||f|dd	d
� d S )Nr   r;   r=   c                   @   s   e Zd ZdS )z1Test_view.test_w_for__as_empty.<locals>.IViewTypeNr?   r   r   r   r   rÎ   ¢  s   rÎ   c                   @   s   e Zd Zdd„ ZdS )z-Test_view.test_w_for__as_empty.<locals>._Viewc                 S   s
   || _ d S r   r   rL   r   r   r   rM   ¥  s    z6Test_view.test_w_for__as_empty.<locals>._View.__init__NrN   r   r   r   r   rÒ   ¤  s   rÒ   rk   r   rÚ   rJ   rØ   r   r   r   Útest_w_for__as_emptyŸ  s        þzTest_view.test_w_for__as_emptyc                 C   sL  ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j||f|d	|fd
� |  	t
|jƒd¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d||fd	|f¡ |  	|d d d¡ |  	|d d |¡ |  	|d d ||f¡ |  	|d d |¡ |  	|d d d	¡ |  	|d d d¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ d S )Nr   r;   r   r`   c                   @   s   e Zd ZdS )zSTest_view.test_w_single_factory_single_for__wo_permission_w_name.<locals>.IViewTypeNr?   r   r   r   r   rÎ   °  s   rÎ   c                   @   s   e Zd Zdd„ ZdS )zOTest_view.test_w_single_factory_single_for__wo_permission_w_name.<locals>._Viewc                 S   s
   || _ d S r   r   rL   r   r   r   rM   ³  s    zXTest_view.test_w_single_factory_single_for__wo_permission_w_name.<locals>._View.__init__NrN   r   r   r   r   rÒ   ²  s   rÒ   rb   rÚ   rY   r   rX   re   rf   rÍ   r   rg   rh   rd   ri   rj   rk   )rB   r<   r   r   rl   ra   r,   rC   r   r[   rm   rZ   )r   r<   r   ra   rÎ   rÒ   rE   r\   r   r   r   Ú6test_w_single_factory_single_for__wo_permission_w_name¬  sF    
ÿz@Test_view.test_w_single_factory_single_for__wo_permission_w_namec                 C   sš  ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}G dd	„ d	tƒ}tƒ }| j|||g|d
|fd� |  |jd d d¡ |jd d }|  |d |¡ |  |d d||fd
|f¡ |  |d d d¡ |d d }|  	|j
|k¡ tƒ }	tƒ }
||	|
ƒ}|  	t||ƒ¡ |  	|j|
k¡ |  	t|j|ƒ¡ |  	|jj|	k¡ |  |d d ||f¡ |  |d d |¡ |  |d d d
¡ |  |d d d¡ d S )Nr   r;   r   c                   @   s   e Zd ZdS )zNTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>.IViewTypeNr?   r   r   r   r   rÎ   Ù  s   rÎ   c                   @   s   e Zd Zdd„ ZdS )zJTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>._Viewc                 S   s
   || _ d S r   r   rL   r   r   r   rM   Ü  s    zSTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>._View.__init__NrN   r   r   r   r   rÒ   Û  s   rÒ   c                   @   s   e Zd Zdd„ ZdS )zKTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>._View2c                 S   s   || _ || _d S r   ©r   Úrequest©r   r   rà   r   r   r   rM   ß  s    zTTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>._View2.__init__NrN   r   r   r   r   Ú_View2Þ  s   râ   rk   rÚ   r   rX   re   rf   rÍ   r   rg   rh   rd   rY   ri   rj   )rB   r<   r   r   r,   rC   r   r[   rZ   r    r-   ru   rà   r   )r   r<   r   rÎ   rÒ   râ   rE   r\   r-   r   rà   rÍ   r   r   r   Ú1test_w_multiple_factory_single_for__wo_permissionÖ  s:    ÿ
ÿ
z;Test_view.test_w_multiple_factory_single_for__wo_permissionc                 C   sf  ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j||g|d|fd	d
� |  |jd d d¡ |jd d }|  |d |¡ |  |d d||fd|f¡ |  |d d d¡ |d d }tƒ }tƒ }	|||	ƒ}
|  	|
j
|k¡ |  	|
j|	k¡ |  	|j|k¡ |  |d d ||f¡ |  |d d |¡ |  |d d d¡ |  |d d d¡ d S )Nr   r;   r   c                   @   s   e Zd ZdS )zKTest_view.test_w_single_factory_single_for__w_permission.<locals>.IViewTypeNr?   r   r   r   r   rÎ   þ  s   rÎ   c                   @   s   e Zd Zdd„ ZdS )zGTest_view.test_w_single_factory_single_for__w_permission.<locals>._Viewc                 S   s   || _ || _d S r   rß   rá   r   r   r   rM     s    zPTest_view.test_w_single_factory_single_for__w_permission.<locals>._View.__init__NrN   r   r   r   r   rÒ      s   rÒ   rk   rq   )rÓ   rr   r   rX   re   rf   rÍ   r   rg   rh   rd   rY   ri   rj   )rB   r<   r   r   r,   rC   r   r[   rZ   r    r   rà   r-   )r   r<   r   rÎ   rÒ   rE   r\   r-   r   rà   rÍ   r   r   r   Ú.test_w_single_factory_single_for__w_permissionú  s4    ÿ
ÿ
z8Test_view.test_w_single_factory_single_for__w_permissionc           	   	   C   sæ   ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j||g|d|fd	d
d� |  |jd d d¡ |jd d }|  |d |¡ |  |d d||fd|f¡ |  |d d d¡ |d d }|j	}|  |j
dd	i¡ d S )Nr   r;   r   c                   @   s   e Zd ZdS )z]Test_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs.<locals>.IViewTypeNr?   r   r   r   r   rÎ     s   rÎ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )zYTest_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs.<locals>._Viewc                 S   s   || _ || _d S r   rß   rá   r   r   r   rM   !  s    zbTest_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs.<locals>._View.__init__c                 S   s   d S r   r   r   r   r   r   rW   $  s    z]Test_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs.<locals>._View.barN©r"   r#   r$   rM   rW   r   r   r   r   rÒ      s   rÒ   rk   rq   )rW   )rÓ   rr   r×   r   rX   re   rf   rÍ   r   rg   rW   ©rB   r<   r   r   r,   rC   r   r[   rZ   ÚcheckerrÅ   ©	r   r<   r   rÎ   rÒ   rE   r\   r-   rç   r   r   r   Ú@test_w_single_factory_single_for__w_permission_and_allowed_attrs  s&     ÿ
ÿzJTest_view.test_w_single_factory_single_for__w_permission_and_allowed_attrsc           	   	   C   sè   ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j||g|d|fd	|fd
� |  |jd d d¡ |jd d }|  |d |¡ |  |d d||fd|f¡ |  |d d d¡ |d d }|j	}|  |j
dd	i¡ d S )Nr   r;   r   c                   @   s   e Zd Zdd„ ZdS )z]Test_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>.IViewTypec                 S   s   d S r   r   r   r   r   r   rW   9  s    zaTest_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>.IViewType.barNrÃ   r   r   r   r   rÎ   8  s   rÎ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )zYTest_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>._Viewc                 S   s   || _ || _d S r   rß   rá   r   r   r   rM   <  s    zbTest_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>._View.__init__c                 S   s   d S r   r   r   r   r   r   rW   ?  s    z]Test_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>._View.barNrå   r   r   r   r   rÒ   ;  s   rÒ   rk   rq   )rÓ   rr   rÔ   r   rX   re   rf   rÍ   r   rg   rW   ræ   rè   r   r   r   Ú@test_w_single_factory_single_for__w_permission_and_allowed_iface4  s&     ÿ
ÿzJTest_view.test_w_single_factory_single_for__w_permission_and_allowed_ifaceN)r"   r#   r$   r   rÕ   rÙ   rÛ   rÜ   rÝ   rÞ   rã   r
   rä   ré   rê   r   r   r   r   rÌ   X  s   
*$

rÌ   c                   @   s8   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zed	d
„ ƒZdS )ÚTest_resourcec                 O   s   ddl m} |||ŽS )Nr   )Úresource)r   rì   )r   r   r   rì   r   r   r   r   R  s    zTest_resource._callFUTc              	   C   sn   ddl m} ddlm} G dd„ d|ƒ}G dd„ d|ƒ}G dd	„ d	tƒ}tƒ }| j|| j||f|d
|d� d S )Nr   r;   r=   c                   @   s   e Zd ZdS )zKTest_resource.test_w_allowed_interface_wo_permission.<locals>.IResourceTypeNr?   r   r   r   r   ÚIResourceTypeY  s   rí   c                   @   s   e Zd Zdd„ Zdd„ ZdS )zCTest_resource.test_w_allowed_interface_wo_permission.<locals>.IViewc                   S   s   d S r   r   r   r   r   r   r½   \  s    zGTest_resource.test_w_allowed_interface_wo_permission.<locals>.IView.fooc                   S   s   d S r   r   r   r   r   r   rW   ^  s    zGTest_resource.test_w_allowed_interface_wo_permission.<locals>.IView.barNrÏ   r   r   r   r   rÐ   [  s   rÐ   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )zGTest_resource.test_w_allowed_interface_wo_permission.<locals>._Resourcec                 S   s
   || _ d S r   r   rL   r   r   r   rM   a  s    zPTest_resource.test_w_allowed_interface_wo_permission.<locals>._Resource.__init__c                   S   s   d S r   r   r   r   r   r   r½   c  s    zKTest_resource.test_w_allowed_interface_wo_permission.<locals>._Resource.fooc                   S   s   d S r   r   r   r   r   r   rW   e  s    zKTest_resource.test_w_allowed_interface_wo_permission.<locals>._Resource.barNrÑ   r   r   r   r   Ú	_Resource`  s   rî   rk   )rÔ   rJ   )r   r<   r>   rí   rÐ   rî   rE   r   r   r   rÕ   V  s       ýz4Test_resource.test_w_allowed_interface_wo_permissionc              	   C   s^   ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j|| j||f|dd	d
� d S )Nr   r;   r=   c                   @   s   e Zd ZdS )zLTest_resource.test_w_allowed_attributes_wo_permission.<locals>.IResourceTypeNr?   r   r   r   r   rí   p  s   rí   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )zHTest_resource.test_w_allowed_attributes_wo_permission.<locals>._Resourcec                 S   s
   || _ d S r   r   rL   r   r   r   rM   s  s    zQTest_resource.test_w_allowed_attributes_wo_permission.<locals>._Resource.__init__c                   S   s   d S r   r   r   r   r   r   r½   u  s    zLTest_resource.test_w_allowed_attributes_wo_permission.<locals>._Resource.fooc                   S   s   d S r   r   r   r   r   r   rW   w  s    zLTest_resource.test_w_allowed_attributes_wo_permission.<locals>._Resource.barNrÑ   r   r   r   r   rî   r  s   rî   rk   rÖ   )r×   rJ   )r   r<   r>   rí   rî   rE   r   r   r   rÙ   m  s       ýz5Test_resource.test_w_allowed_attributes_wo_permissionc                 C   sæ  ddl m} ddlm} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }|  |||d	¡ |  	t
|jƒd
¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d dd	||f¡ |  	|d d d¡ |  	|d d |¡ |  	|d d |f¡ |  	|d d
 |¡ |  	|d d d	¡ |  	|d d d¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ |  	|jd d d¡ |jd d }|  	|d |¡ |  	|d d ¡ |  	|d d|f¡ d S )Nr   r;   r`   r   c                   @   s   e Zd ZdS )z>Test_resource.test_wo_permission_w_name.<locals>.IResourceTypeNr?   r   r   r   r   rí   ƒ  s   rí   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z:Test_resource.test_wo_permission_w_name.<locals>._Resourcec                 S   s
   || _ d S r   r   rL   r   r   r   rM   †  s    zCTest_resource.test_wo_permission_w_name.<locals>._Resource.__init__c                   S   s   d S r   r   r   r   r   r   r½   ˆ  s    z>Test_resource.test_wo_permission_w_name.<locals>._Resource.fooc                   S   s   d S r   r   r   r   r   r   rW   Š  s    z>Test_resource.test_wo_permission_w_name.<locals>._Resource.barNrÑ   r   r   r   r   rî   …  s   rî   rb   rd   r   rX   re   rf   rì   r   rg   rh   rY   ri   rj   rk   r«   )r   r<   ra   r   rí   rî   rE   r\   r   r   r   Útest_wo_permission_w_name  s<    

ÿz'Test_resource.test_wo_permission_w_namec                 C   sn  ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}tƒ }| j|||dd	d
d� |  t|j	ƒd¡ |  |j	d d d¡ |j	d d }|  |d |¡ |  |d dd||f¡ |  |d d d¡ |d d }|  
|j|k¡ tƒ }||ƒ}	|	j}
|  |
jdd	i¡ |  
|	j|k¡ |  |d d |f¡ |  |d d |¡ |  |d d d¡ |  |d d d¡ d S )Nr   r;   r   c                   @   s   e Zd ZdS )z6Test_resource.test_w_permission.<locals>.IResourceTypeNr?   r   r   r   r   rí   ¬  s   rí   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z2Test_resource.test_w_permission.<locals>._Resourcec                 S   s
   || _ d S r   r   rL   r   r   r   rM   ¯  s    z;Test_resource.test_w_permission.<locals>._Resource.__init__c                   S   s   d S r   r   r   r   r   r   r½   ±  s    z6Test_resource.test_w_permission.<locals>._Resource.fooc                   S   s   d S r   r   r   r   r   r   rW   ³  s    z6Test_resource.test_w_permission.<locals>._Resource.barNrÑ   r   r   r   r   rî   ®  s   rî   rb   rq   )r½   )rr   r×   rd   r   rX   re   rf   rì   r   rg   r½   rh   rY   ri   rj   )rB   r<   r   r   r,   rC   r   r[   rm   rZ   r    r-   rÄ   rÅ   r   )r   r<   r   rí   rî   rE   r\   r-   r   rì   rç   r   r   r   Útest_w_permission¨  s8     ÿ

ÿzTest_resource.test_w_permissionN)	r"   r#   r$   r   rÕ   rÙ   rï   r
   rð   r   r   r   r   rë   P  s   )rë   c                  C   s   G dd„ dt ƒ} | ƒ S )Nc                   @   s    e Zd ZdZdd„ Zdd„ ZdS )z$_makeConfigContext.<locals>._Contextrj   c                 S   s
   g | _ d S r   )rZ   r   r   r   r   rM   Ð  s    z-_makeConfigContext.<locals>._Context.__init__c                 _   s   | j  ||f¡ d S r   )rZ   Úappend)r   r   r   r   r   r   r\   Ò  s    z+_makeConfigContext.<locals>._Context.actionN)r"   r#   r$   ÚinforM   r\   r   r   r   r   Ú_ContextÎ  s   ró   )r,   )ró   r   r   r   rC   Í  s    rC   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%   r8   rœ   r²   rÇ   rÌ   rë   r€   r   r   r   r   Ú
test_suiteÖ  s    ÷rõ   )Ú__doc__rô   r
   ZTestCaser   r%   r8   r€   rœ   r²   rÇ   rÌ   rë   rC   rõ   r   r   r   r   Ú<module>   s"    \H u L% y}	