
    Og$                         d Z ddlZ G d dej                        Z G d dej                        Z G d dej                        Z G d	 d
ej                        Z G d dej                        Zd Zy)zPure-Python hookable tests
    Nc                       e Zd Zd Zd Zd Zy)PermissionProxyTestsc                     ddl m} |S )Nr   )PermissionProxy)zope.component.securityr   )selfr   s     ]/var/www/djangounited/venv/lib/python3.12/site-packages/zope/component/tests/test_security.py_getTargetClassz$PermissionProxyTests._getTargetClass   s    ;    c                 .     | j                         |      S N)r
   )r   wrappeds     r	   _makeOnezPermissionProxyTests._makeOne   s    %t##%g..r   c                     ddl m} ddl m} ddl m}  G d d|      } ||       G d dt                     } |       }| j                  |      }| j                   ||       ||             y )	Nr   	Interface)implementer)
providedByc                       e Zd Zy)GPermissionProxyTests.test_proxy_delegates___provided_by__.<locals>.IFooN__name__
__module____qualname__ r   r	   IFoor           r   r   c                       e Zd Zy)FPermissionProxyTests.test_proxy_delegates___provided_by__.<locals>.FooNr   r   r   r	   Foor   "   s    r   r    )zope.interfacer   r   r   objectr   assertEqual)r   r   r   r   r   r    fooproxys           r	   $test_proxy_delegates___provided_by__z9PermissionProxyTests.test_proxy_delegates___provided_by__   sc    ,.-	9 		T		& 	 
	ec"E*JsO<r   N)r   r   r   r
   r   r&   r   r   r	   r   r      s    /=r   r   c                   $    e Zd Zd Zd Zd Zd Zy)Test__checkerc                     ddl m}  ||i |S )Nr   )_checker)r   r*   )r   argskwr*   s       r	   _callFUTzTest__checker._callFUT,   s    4$$$r   c                     ddl m} | j                  t               ddd      }| j	                  |j
                  d|i       | j                  |j                         y )Nr   CheckerPubliczope.Publicr   __call__)zope.security.checkerr0   r-   r"   r#   get_permissionsassertFalseset_permissions)r   r0   checkers      r	   0test_no_allowed_attributes_no_allowed_interfacesz>Test__checker.test_no_allowed_attributes_no_allowed_interfaces0   sJ    7---R@00:}2MN001r   c                     ddl m}  G d d|      } G d d|      }| j                  t               d||fd      }| j	                  |j
                  dddd	       | j                  |j                         y )
Nr   r   c                       e Zd Zd Zd Zy)5Test__checker.test_w_allowed_interfaces.<locals>.IFooc                      y r   r   r   s    r	   barz9Test__checker.test_w_allowed_interfaces.<locals>.IFoo.bar9       r   c                      y r   r   r=   s    r	   bazz9Test__checker.test_w_allowed_interfaces.<locals>.IFoo.baz;   r?   r   N)r   r   r   r>   rA   r   r   r	   r   r;   8   s    r   r   c                       e Zd Zd Zy)6Test__checker.test_w_allowed_interfaces.<locals>.ISpamc                      y r   r   r=   s    r	   quxz:Test__checker.test_w_allowed_interfaces.<locals>.ISpam.qux>   r?   r   N)r   r   r   rE   r   r   r	   ISpamrC   =       r   rF   testingr   )r>   rA   rE   )r!   r   r-   r"   r#   r4   r5   r6   )r   r   r   rF   r7   s        r	   test_w_allowed_interfacesz'Test__checker.test_w_allowed_interfaces6   sn    ,	9 	
	I 	 --)dE]BG00 ))IN	P001r   c                     | j                  t               ddd      }| j                  |j                  ddd       | j	                  |j
                         y )NrH   r   )r$   r>   )r-   r"   r#   r4   r5   r6   )r   r7   s     r	   test_w_allowed_attributesz'Test__checker.test_w_allowed_attributesE   sJ    --)RH00 ))<	>001r   N)r   r   r   r-   r8   rI   rK   r   r   r	   r(   r(   *   s    %222r   r(   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	Test_proxifyc                     ddl m}  ||i |S )Nr   )proxify)r   rO   )r   r+   r,   rO   s       r	   r-   zTest_proxify._callFUTN   s    3###r   c                 .     G d dt               } |       S )Nc                       e Zd Zd Zy)+Test_proxify._makeContext.<locals>._Contextc                      y r   r   r=   s    r	   r>   z/Test_proxify._makeContext.<locals>._Context.barT   r?   r   Nr   r   r   r>   r   r   r	   _ContextrR   S   rG   r   rU   )r"   )r   rU   s     r	   _makeContextzTest_proxify._makeContextR   s    	v 	 zr   c                 j    | j                         }| j                  t        | j                  |d       y )NrH   )
permission)rV   assertRaises
ValueErrorr-   )r   ctxs     r	   test_no_checker_no_providesz(Test_proxify.test_no_checker_no_providesX   s+    !*dmmSYOr   c                     ddl m}  G d d|      }| j                         }| j                  t        | j
                  ||       y )Nr   r   c                       e Zd Zd Zy)8Test_proxify.test_no_checker_no_permission.<locals>.IFooc                      y r   r   r=   s    r	   r>   z<Test_proxify.test_no_checker_no_permission.<locals>.IFoo.bar_   r?   r   NrT   r   r   r	   r   r_   ^   rG   r   r   )provides)r!   r   rV   rY   rZ   r-   )r   r   r   r[   s       r	   test_no_checker_no_permissionz*Test_proxify.test_no_checker_no_permission\   s<    ,	9 	 !*dmmS4Hr   c                 B   ddl m} ddlm} ddlm}  G d d|      }| j                         }| j                  ||d      }| j                   ||      |u        |j                  }| j                  |j                  d	|i       | j                  |j                         y )
Nr   r   r/   getProxiedObjectc                       e Zd Zd Zy)KTest_proxify.test_no_checker_w_provides_and_permission_public.<locals>.IFooc                      y r   r   r=   s    r	   r>   zOTest_proxify.test_no_checker_w_provides_and_permission_public.<locals>.IFoo.bari   r?   r   NrT   r   r   r	   r   rg   h   rG   r   r   r1   ra   rX   r>   )r!   r   r3   r0   
zope.proxyre   rV   r-   
assertTrue__Security_checker__r#   r4   r5   r6   )r   r   r0   re   r   r[   r%   r7   s           r	   0test_no_checker_w_provides_and_permission_publicz=Test_proxify.test_no_checker_w_provides_and_permission_publicd   s    ,7/	9 	 !cD]K(/367,,005-2HI001r   c                 6   ddl m} ddlm}  G d d|      }| j	                         }| j                  ||d      }| j                   ||      |u        |j                  }| j                  |j                  ddi       | j                  |j                         y )	Nr   r   rd   c                       e Zd Zd Zy)NTest_proxify.test_no_checker_w_provides_and_permission_protected.<locals>.IFooc                      y r   r   r=   s    r	   r>   zRTest_proxify.test_no_checker_w_provides_and_permission_protected.<locals>.IFoo.barv   r?   r   NrT   r   r   r	   r   rp   u   rG   r   r   rH   ri   r>   )r!   r   rj   re   rV   r-   rk   rl   r#   r4   r5   r6   )r   r   re   r   r[   r%   r7   s          r	   3test_no_checker_w_provides_and_permission_protectedz@Test_proxify.test_no_checker_w_provides_and_permission_protectedr   s    ,/	9 	 !cDYG(/367,,005)2DE001r   c                     ddl m} t               }| j                         }| j	                  ||      }| j                   ||      |u        | j                  |j                  |u        y )Nr   rd   )rj   re   r"   rV   r-   rk   rl   )r   re   _CHECKERr[   r%   s        r	   test_w_checkerzTest_proxify.test_w_checker   sX    /8!c8,(/36722h>?r   N)
r   r   r   r-   rV   r\   rb   rm   rr   ru   r   r   r	   rM   rM   L   s(    $PI22@r   rM   c                       e Zd Zd Zd Zd Zy)Test_protectedFactoryc                     ddl m}  ||i |S )Nr   )protectedFactory)r   ry   )r   r+   r,   ry   s       r	   r-   zTest_protectedFactory._callFUT   s    <,,,r   c                    ddl m} ddlm}  G d d|      } G d dt              }| j                  ||d      }| j                  |j                  |u         |       }| j                  |j                  j                  d	|i       y )
Nr   r   r/   c                       e Zd Zd Zy)CTest_protectedFactory.test_public_not_already_proxied.<locals>.IFooc                      y r   r   r=   s    r	   r>   zGTest_protectedFactory.test_public_not_already_proxied.<locals>.IFoo.bar   r?   r   NrT   r   r   r	   r   r|      rG   r   r   c                       e Zd Zd Zy)GTest_protectedFactory.test_public_not_already_proxied.<locals>._Factoryc                      y r   r   r=   s    r	   r>   zKTest_protectedFactory.test_public_not_already_proxied.<locals>._Factory.bar   r?   r   NrT   r   r   r	   _Factoryr      rG   r   r   r1   r>   )r!   r   r3   r0   r"   r-   rk   factoryr#   rl   r4   )r   r   r0   r   r   	protectedr$   s          r	   test_public_not_already_proxiedz5Test_protectedFactory.test_public_not_already_proxied   sv    ,7	9 		v 	 MM(D-@		))X56k11AA.	0r   c                     ddl m} ddlm}  G d d|      } G d dt              }| j                  ||d      }| j                  |j                  |u         |       }| j                   ||      d	g       y )
Nr   r   )getTestProxyItemsc                       e Zd Zd Zy)BTest_protectedFactory.test_nonpublic_already_proxied.<locals>.IFooc                      y r   r   r=   s    r	   r>   zFTest_protectedFactory.test_nonpublic_already_proxied.<locals>.IFoo.bar   r?   r   NrT   r   r   r	   r   r      rG   r   r   c                       e Zd ZdZd Zy)FTest_protectedFactory.test_nonpublic_already_proxied.<locals>._Factory)onec                      y r   r   r=   s    r	   r>   zJTest_protectedFactory.test_nonpublic_already_proxied.<locals>._Factory.bar   r?   r   N)r   r   r   	__slots__r>   r   r   r	   r   r      s     Ir   r   rH   )r>   rH   )	r!   r   zope.security.proxyr   r"   r-   rk   r   r#   )r   r   r   r   r   r   r$   s          r	   test_nonpublic_already_proxiedz4Test_protectedFactory.test_nonpublic_already_proxied   sl    ,9	9 		v 	 MM(D)<		))X56k*3/2D1EFr   N)r   r   r   r-   r   r   r   r   r	   rw   rw      s    -0Gr   rw   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)Test_securityAdapterFactoryc                     ddl m}  ||i |S )Nr   )securityAdapterFactory)r   r   )r   r+   r,   r   s       r	   r-   z$Test_securityAdapterFactory._callFUT   s    B%t2r22r   c                 l     G d dt               }| j                  | j                  |d dd      |u        y )Nc                       e Zd Zy)VTest_securityAdapterFactory.test_no_permission_untrusted_no_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   Fr"   rk   r-   r   r   s     r	   (test_no_permission_untrusted_no_locationzDTest_securityAdapterFactory.test_no_permission_untrusted_no_location   s3    	v 	heUC#$ 	%r   c                 l     G d dt               }| j                  | j                  |ddd      |u        y )Nc                       e Zd Zy)OTest_securityAdapterFactory.test_public_untrusted_no_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   r1   Fr   r   s     r	   !test_public_untrusted_no_locationz=Test_securityAdapterFactory.test_public_untrusted_no_location   s3    	v 	hueL#$ 	%r   c                 x    ddl m}  G d dt              }| j                  | j	                  ||dd      |u        y )Nr   r/   c                       e Zd Zy)VTest_securityAdapterFactory.test_CheckerPublic_untrusted_no_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   F)r3   r0   r"   rk   r-   )r   r0   r   s      r	   (test_CheckerPublic_untrusted_no_locationzDTest_securityAdapterFactory.test_CheckerPublic_untrusted_no_location   s6    7	v 	hueL#$ 	%r   c                     ddl m}  G d dt              }| j                  |ddd      }| j	                  t        ||             y )Nr   )LocatingUntrustedAdapterFactoryc                       e Zd Zy)RTest_securityAdapterFactory.test_protected_untrusted_no_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   rH   F)zope.security.adapterr   r"   r-   rk   
isinstance)r   r   r   r%   s       r	   $test_protected_untrusted_no_locationz@Test_securityAdapterFactory.test_protected_untrusted_no_location   s9    I	v 	h	5%@
5*IJKr   c                     ddl m}  G d dt              }| j                  |d dd      }| j	                  t        ||             y )Nr   LocatingTrustedAdapterFactoryc                       e Zd Zy)TTest_securityAdapterFactory.test_no_permission_trusted_no_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   FTr   r   r"   r-   rk   r   r   r   r   r%   s       r	   &test_no_permission_trusted_no_locationzBTest_securityAdapterFactory.test_no_permission_trusted_no_location   s9    G	v 	heT:
5*GHIr   c                     ddl m}  G d dt              }| j                  |ddd      }| j	                  t        ||             y )Nr   r   c                       e Zd Zy)MTest_securityAdapterFactory.test_public_trusted_no_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   r1   FTr   r   s       r	   test_public_trusted_no_locationz;Test_securityAdapterFactory.test_public_trusted_no_location   s9    G	v 	hudC
5*GHIr   c                     ddl m} ddlm}  G d dt              }| j                  ||dd      }| j                  t        ||             y )Nr   r   r/   c                       e Zd Zy)TTest_securityAdapterFactory.test_CheckerPublic_trusted_no_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   FT)r   r   r3   r0   r"   r-   rk   r   )r   r   r0   r   r%   s        r	   &test_CheckerPublic_trusted_no_locationzBTest_securityAdapterFactory.test_CheckerPublic_trusted_no_location   s<    G7	v 	hudC
5*GHIr   c                     ddl m}  G d dt              }| j                  |ddd      }| j	                  t        ||             y )Nr   r   c                       e Zd Zy)PTest_securityAdapterFactory.test_protected_trusted_no_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   rH   FTr   r   s       r	   "test_protected_trusted_no_locationz>Test_securityAdapterFactory.test_protected_trusted_no_location   s9    G	v 	h	5$?
5*GHIr   c                     ddl m}  G d dt              }| j                  |ddd      }| j	                  t        ||             y )Nr   r   c                       e Zd Zy)OTest_securityAdapterFactory.test_protected_trusted_w_location.<locals>._FactoryNr   r   r   r	   r   r      r   r   r   rH   Tr   r   s       r	   !test_protected_trusted_w_locationz=Test_securityAdapterFactory.test_protected_trusted_w_location   s9    G	v 	h	4>
5*GHIr   N)r   r   r   r-   r   r   r   r   r   r   r   r   r   r   r   r	   r   r      s:    3%%%LJJJJJr   r   c            	         t        j                  t        j                  t              t        j                  t              t        j                  t
              t        j                  t              t        j                  t              f      S r   )unittest	TestSuite	makeSuiter   r(   rM   rw   r   r   r   r	   
test_suiter      sc    /0=)<(0167  r   )	__doc__r   TestCaser   r(   rM   rw   r   r   r   r   r	   <module>r      sx    =8,, =.2H%% 2D9@8$$ 9@x"GH-- "GJBJ("3"3 BJJr   