U
    ÌZjœ$  ã                   @   sr   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dd„ ZdS )zPure-Python hookable tests
é    Nc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚPermissionProxyTestsc                 C   s   ddl m} |S )Nr   )ÚPermissionProxy)Úzope.component.securityr   )Úselfr   © r   úe/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/zope/component/tests/test_security.pyÚ_getTargetClass   s    z$PermissionProxyTests._getTargetClassc                 C   s   |   ¡ |ƒS ©N)r   )r   Úwrappedr   r   r   Ú_makeOne   s    zPermissionProxyTests._makeOnec                 C   st   ddl m} ddl m} ddl m} G dd„ d|ƒ}||ƒG dd„ dtƒƒ}|ƒ }|  |¡}|  ||ƒ||ƒ¡ d S )	Nr   ©Ú	Interface)Úimplementer)Ú
providedByc                   @   s   e Zd ZdS )zGPermissionProxyTests.test_proxy_delegates___provided_by__.<locals>.IFooN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚIFoo    s   r   c                   @   s   e Zd ZdS )zFPermissionProxyTests.test_proxy_delegates___provided_by__.<locals>.FooNr   r   r   r   r   ÚFoo"   s   r   )Úzope.interfacer   r   r   Úobjectr   ÚassertEqual)r   r   r   r   r   r   ÚfooÚproxyr   r   r   Ú$test_proxy_delegates___provided_by__   s    
z9PermissionProxyTests.test_proxy_delegates___provided_by__N)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 )
ÚTest__checkerc                 O   s   ddl m} |||ŽS )Nr   )Ú_checker)r   r   )r   ÚargsÚkwr   r   r   r   Ú_callFUT,   s    zTest__checker._callFUTc                 C   s@   ddl m} |  tƒ ddd¡}|  |jd|i¡ |  |j¡ d S )Nr   ©ÚCheckerPublicúzope.Publicr   Ú__call__)Úzope.security.checkerr"   r    r   r   Úget_permissionsÚassertFalseÚset_permissions)r   r"   Úcheckerr   r   r   Ú0test_no_allowed_attributes_no_allowed_interfaces0   s    z>Test__checker.test_no_allowed_attributes_no_allowed_interfacesc                 C   sh   ddl m} G dd„ d|ƒ}G dd„ d|ƒ}|  tƒ d||fd¡}|  |jdddd	œ¡ |  |j¡ d S )
Nr   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )z5Test__checker.test_w_allowed_interfaces.<locals>.IFooc                 S   s   d S r	   r   ©r   r   r   r   Úbar9   s    z9Test__checker.test_w_allowed_interfaces.<locals>.IFoo.barc                 S   s   d S r	   r   r+   r   r   r   Úbaz;   s    z9Test__checker.test_w_allowed_interfaces.<locals>.IFoo.bazN)r   r   r   r,   r-   r   r   r   r   r   8   s   r   c                   @   s   e Zd Zdd„ ZdS )z6Test__checker.test_w_allowed_interfaces.<locals>.ISpamc                 S   s   d S r	   r   r+   r   r   r   Úqux>   s    z:Test__checker.test_w_allowed_interfaces.<locals>.ISpam.quxN)r   r   r   r.   r   r   r   r   ÚISpam=   s   r/   Útestingr   )r,   r-   r.   )r   r   r    r   r   r&   r'   r(   )r   r   r   r/   r)   r   r   r   Útest_w_allowed_interfaces6   s    
ÿz'Test__checker.test_w_allowed_interfacesc                 C   s6   |   tƒ ddd¡}|  |jdddœ¡ |  |j¡ d S )Nr0   r   )r   r,   )r    r   r   r&   r'   r(   )r   r)   r   r   r   Útest_w_allowed_attributesE   s
    ÿz'Test__checker.test_w_allowed_attributesN)r   r   r   r    r*   r1   r2   r   r   r   r   r   *   s   r   c                   @   sD   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S )ÚTest_proxifyc                 O   s   ddl m} |||ŽS )Nr   )Úproxify)r   r4   )r   r   r   r4   r   r   r   r    N   s    zTest_proxify._callFUTc                 C   s   G dd„ dt ƒ}|ƒ S )Nc                   @   s   e Zd Zdd„ ZdS )z+Test_proxify._makeContext.<locals>._Contextc                 S   s   d S r	   r   r+   r   r   r   r,   T   s    z/Test_proxify._makeContext.<locals>._Context.barN©r   r   r   r,   r   r   r   r   Ú_ContextS   s   r6   )r   )r   r6   r   r   r   Ú_makeContextR   s    zTest_proxify._makeContextc                 C   s    |   ¡ }| jt| j|dd� d S )Nr0   )Ú
permission)r7   ÚassertRaisesÚ
ValueErrorr    )r   Úctxr   r   r   Útest_no_checker_no_providesX   s    z(Test_proxify.test_no_checker_no_providesc                 C   s<   ddl m} G dd„ d|ƒ}|  ¡ }| jt| j||d� d S )Nr   r   c                   @   s   e Zd Zdd„ ZdS )z8Test_proxify.test_no_checker_no_permission.<locals>.IFooc                 S   s   d S r	   r   r+   r   r   r   r,   _   s    z<Test_proxify.test_no_checker_no_permission.<locals>.IFoo.barNr5   r   r   r   r   r   ^   s   r   )Úprovides)r   r   r7   r9   r:   r    )r   r   r   r;   r   r   r   Útest_no_checker_no_permission\   s    z*Test_proxify.test_no_checker_no_permissionc                 C   s†   ddl m} ddlm} ddlm} G dd„ d|ƒ}|  ¡ }| j||dd�}|  ||ƒ|k¡ |j	}|  
|jd	|i¡ |  |j¡ d S )
Nr   r   r!   ©ÚgetProxiedObjectc                   @   s   e Zd Zdd„ ZdS )zKTest_proxify.test_no_checker_w_provides_and_permission_public.<locals>.IFooc                 S   s   d S r	   r   r+   r   r   r   r,   i   s    zOTest_proxify.test_no_checker_w_provides_and_permission_public.<locals>.IFoo.barNr5   r   r   r   r   r   h   s   r   r#   ©r=   r8   r,   )r   r   r%   r"   Ú
zope.proxyr@   r7   r    Ú
assertTrueÚ__Security_checker__r   r&   r'   r(   )r   r   r"   r@   r   r;   r   r)   r   r   r   Ú0test_no_checker_w_provides_and_permission_publicd   s    z=Test_proxify.test_no_checker_w_provides_and_permission_publicc                 C   sz   ddl m} ddlm} G dd„ d|ƒ}|  ¡ }| j||dd�}|  ||ƒ|k¡ |j}|  |j	ddi¡ |  
|j¡ d S )	Nr   r   r?   c                   @   s   e Zd Zdd„ ZdS )zNTest_proxify.test_no_checker_w_provides_and_permission_protected.<locals>.IFooc                 S   s   d S r	   r   r+   r   r   r   r,   v   s    zRTest_proxify.test_no_checker_w_provides_and_permission_protected.<locals>.IFoo.barNr5   r   r   r   r   r   u   s   r   r0   rA   r,   )r   r   rB   r@   r7   r    rC   rD   r   r&   r'   r(   )r   r   r@   r   r;   r   r)   r   r   r   Ú3test_no_checker_w_provides_and_permission_protectedr   s    z@Test_proxify.test_no_checker_w_provides_and_permission_protectedc                 C   sL   ddl m} tƒ }|  ¡ }|  ||¡}|  ||ƒ|k¡ |  |j|k¡ d S )Nr   r?   )rB   r@   r   r7   r    rC   rD   )r   r@   Z_CHECKERr;   r   r   r   r   Útest_w_checker   s    zTest_proxify.test_w_checkerN)
r   r   r   r    r7   r<   r>   rE   rF   rG   r   r   r   r   r3   L   s   r3   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTest_protectedFactoryc                 O   s   ddl m} |||ŽS )Nr   )ÚprotectedFactory)r   rI   )r   r   r   rI   r   r   r   r    Š   s    zTest_protectedFactory._callFUTc                 C   st   ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}|  ||d¡}|  |j|k¡ |ƒ }|  |j	j
d	|i¡ d S )
Nr   r   r!   c                   @   s   e Zd Zdd„ ZdS )zCTest_protectedFactory.test_public_not_already_proxied.<locals>.IFooc                 S   s   d S r	   r   r+   r   r   r   r,   ’   s    zGTest_protectedFactory.test_public_not_already_proxied.<locals>.IFoo.barNr5   r   r   r   r   r   ‘   s   r   c                   @   s   e Zd Zdd„ ZdS )zGTest_protectedFactory.test_public_not_already_proxied.<locals>._Factoryc                 S   s   d S r	   r   r+   r   r   r   r,   •   s    zKTest_protectedFactory.test_public_not_already_proxied.<locals>._Factory.barNr5   r   r   r   r   Ú_Factory”   s   rJ   r#   r,   )r   r   r%   r"   r   r    rC   Úfactoryr   rD   r&   )r   r   r"   r   rJ   Ú	protectedr   r   r   r   Útest_public_not_already_proxiedŽ   s    
ÿz5Test_protectedFactory.test_public_not_already_proxiedc                 C   sr   ddl m} ddlm} G dd„ d|ƒ}G dd„ dtƒ}|  ||d¡}|  |j|k¡ |ƒ }|  ||ƒd	g¡ d S )
Nr   r   )ÚgetTestProxyItemsc                   @   s   e Zd Zdd„ ZdS )zBTest_protectedFactory.test_nonpublic_already_proxied.<locals>.IFooc                 S   s   d S r	   r   r+   r   r   r   r,   ¡   s    zFTest_protectedFactory.test_nonpublic_already_proxied.<locals>.IFoo.barNr5   r   r   r   r   r       s   r   c                   @   s   e Zd ZdZdd„ ZdS )zFTest_protectedFactory.test_nonpublic_already_proxied.<locals>._Factory)Úonec                 S   s   d S r	   r   r+   r   r   r   r,   ¥   s    zJTest_protectedFactory.test_nonpublic_already_proxied.<locals>._Factory.barN)r   r   r   Ú	__slots__r,   r   r   r   r   rJ   £   s   rJ   r0   )r,   r0   )	r   r   Zzope.security.proxyrN   r   r    rC   rK   r   )r   r   rN   r   rJ   rL   r   r   r   r   Útest_nonpublic_already_proxied�   s    z4Test_protectedFactory.test_nonpublic_already_proxiedN)r   r   r   r    rM   rQ   r   r   r   r   rH   ˆ   s   rH   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dd„ ZdS )ÚTest_securityAdapterFactoryc                 O   s   ddl m} |||ŽS )Nr   )ÚsecurityAdapterFactory)r   rS   )r   r   r   rS   r   r   r   r    ¯   s    z$Test_securityAdapterFactory._callFUTc                 C   s.   G dd„ dt ƒ}|  |  |d dd¡|k¡ d S )Nc                   @   s   e Zd ZdS )zVTest_securityAdapterFactory.test_no_permission_untrusted_no_location.<locals>._FactoryNr   r   r   r   r   rJ   ´   s   rJ   F©r   rC   r    ©r   rJ   r   r   r   Ú(test_no_permission_untrusted_no_location³   s    ÿzDTest_securityAdapterFactory.test_no_permission_untrusted_no_locationc                 C   s.   G dd„ dt ƒ}|  |  |ddd¡|k¡ d S )Nc                   @   s   e Zd ZdS )zOTest_securityAdapterFactory.test_public_untrusted_no_location.<locals>._FactoryNr   r   r   r   r   rJ   º   s   rJ   r#   FrT   rU   r   r   r   Ú!test_public_untrusted_no_location¹   s    ÿz=Test_securityAdapterFactory.test_public_untrusted_no_locationc                 C   s:   ddl m} G dd„ dtƒ}|  |  ||dd¡|k¡ d S )Nr   r!   c                   @   s   e Zd ZdS )zVTest_securityAdapterFactory.test_CheckerPublic_untrusted_no_location.<locals>._FactoryNr   r   r   r   r   rJ   Á   s   rJ   F)r%   r"   r   rC   r    )r   r"   rJ   r   r   r   Ú(test_CheckerPublic_untrusted_no_location¿   s
    ÿzDTest_securityAdapterFactory.test_CheckerPublic_untrusted_no_locationc                 C   s@   ddl m} G dd„ dtƒ}|  |ddd¡}|  t||ƒ¡ d S )Nr   )ÚLocatingUntrustedAdapterFactoryc                   @   s   e Zd ZdS )zRTest_securityAdapterFactory.test_protected_untrusted_no_location.<locals>._FactoryNr   r   r   r   r   rJ   È   s   rJ   r0   F)Úzope.security.adapterrY   r   r    rC   Ú
isinstance)r   rY   rJ   r   r   r   r   Ú$test_protected_untrusted_no_locationÆ   s    z@Test_securityAdapterFactory.test_protected_untrusted_no_locationc                 C   s@   ddl m} G dd„ dtƒ}|  |d dd¡}|  t||ƒ¡ d S )Nr   ©ÚLocatingTrustedAdapterFactoryc                   @   s   e Zd ZdS )zTTest_securityAdapterFactory.test_no_permission_trusted_no_location.<locals>._FactoryNr   r   r   r   r   rJ   Ï   s   rJ   FT©rZ   r^   r   r    rC   r[   ©r   r^   rJ   r   r   r   r   Ú&test_no_permission_trusted_no_locationÍ   s    zBTest_securityAdapterFactory.test_no_permission_trusted_no_locationc                 C   s@   ddl m} G dd„ dtƒ}|  |ddd¡}|  t||ƒ¡ d S )Nr   r]   c                   @   s   e Zd ZdS )zMTest_securityAdapterFactory.test_public_trusted_no_location.<locals>._FactoryNr   r   r   r   r   rJ   Ö   s   rJ   r#   FTr_   r`   r   r   r   Útest_public_trusted_no_locationÔ   s    z;Test_securityAdapterFactory.test_public_trusted_no_locationc                 C   sL   ddl m} ddlm} G dd„ dtƒ}|  ||dd¡}|  t||ƒ¡ d S )Nr   r]   r!   c                   @   s   e Zd ZdS )zTTest_securityAdapterFactory.test_CheckerPublic_trusted_no_location.<locals>._FactoryNr   r   r   r   r   rJ   Þ   s   rJ   FT)rZ   r^   r%   r"   r   r    rC   r[   )r   r^   r"   rJ   r   r   r   r   Ú&test_CheckerPublic_trusted_no_locationÛ   s
    zBTest_securityAdapterFactory.test_CheckerPublic_trusted_no_locationc                 C   s@   ddl m} G dd„ dtƒ}|  |ddd¡}|  t||ƒ¡ d S )Nr   r]   c                   @   s   e Zd ZdS )zPTest_securityAdapterFactory.test_protected_trusted_no_location.<locals>._FactoryNr   r   r   r   r   rJ   å   s   rJ   r0   FTr_   r`   r   r   r   Ú"test_protected_trusted_no_locationã   s    z>Test_securityAdapterFactory.test_protected_trusted_no_locationc                 C   s@   ddl m} G dd„ dtƒ}|  |ddd¡}|  t||ƒ¡ d S )Nr   r]   c                   @   s   e Zd ZdS )zOTest_securityAdapterFactory.test_protected_trusted_w_location.<locals>._FactoryNr   r   r   r   r   rJ   ì   s   rJ   r0   Tr_   r`   r   r   r   Ú!test_protected_trusted_w_locationê   s    z=Test_securityAdapterFactory.test_protected_trusted_w_locationN)r   r   r   r    rV   rW   rX   r\   ra   rb   rc   rd   re   r   r   r   r   rR   ­   s   rR   c                	   C   s2   t  t  t¡t  t¡t  t¡t  t¡t  t¡f¡S r	   )ÚunittestZ	TestSuiteZ	makeSuiter   r   r3   rH   rR   r   r   r   r   Ú
test_suiteò   s    ûrg   )	Ú__doc__rf   ZTestCaser   r   r3   rH   rR   rg   r   r   r   r   Ú<module>   s   "<%E