
    Og}                        d Z ddlZd 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 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d Zy)zTests for ZCML directives.
    Nc                 4    	 dd l }| S # t        $ r d cY S w xY w)Nr   c                      y N selfs    Y/var/www/djangounited/venv/lib/python3.12/site-packages/zope/component/tests/test_zcml.py<lambda>z"skipIfNoSecurity.<locals>.<lambda>   s        )zope.securityImportError)testfunczopes     r	   skipIfNoSecurityr      s(    ! O  !  !s    c                       e Zd Zd Zd Zy)Test_handlerc                     ddl m}  ||i |S )Nr   handler)zope.component.zcmlr   )r   argskwr   s       r	   _callFUTzTest_handler._callFUT       /###r   c                 .   ddl m} ddlm} ddlm}m} ddlm}  |       dfd	}|j                  |       	 | j                  d|||       | j                  j                  |      |u        |j                          y # |j                          w xY w)	Nr   )
Components)getSiteManager)compIApp)_BLANKc                     S r   r   )contextregistrys    r	   dummyz=Test_handler.test_uses_configured_site_manager.<locals>.dummy'       Or   registerUtilityr   )zope.interface.registryr   zope.componentr   #zope.component.testfiles.componentsr   r   zope.component._compatr    sethookr   
assertTrue
getUtilityreset)r   r   r   r   r   r    r$   r#   s          @r	   !test_uses_configured_site_managerz.Test_handler.test_uses_configured_site_manager    sv    61B1<	u%	#MM+T4@OOH//5=>  "N  "s   6B BN)__name__
__module____qualname__r   r/   r   r   r	   r   r      s    $#r   r   c                       e Zd Zd Zd Zd Zy)Test__rolledUpFactoryc                     ddl m}  ||i |S )Nr   )_rolledUpFactory)r   r6   )r   r   r   r6   s       r	   r   zTest__rolledUpFactory._callFUT4   s    8,,,r   c                     t               }t               fd}| j                  |g      }| j                  |j                  |u        | j                   ||      u        y )Nc                     S r   r   )obj_CREATEDs    r	   _factoryz5Test__rolledUpFactory.test_with_one.<locals>._factory;   r%   r   objectr   r,   factory)r   _OBJr;   rolledr:   s       @r	   test_with_onez#Test__rolledUpFactory.test_with_one8   sP    x8	z*(23t01r   c                    t               }t               t               t               fd}fd}fd}| j                  |||g      }| j                  |j                  |u        | j                   ||      u        y )Nc                     S r   r   )r9   	_CREATED1s    r	   	_factory1z;Test__rolledUpFactory.test_with_multiple.<locals>._factory1F   	    r   c                     S r   r   )r9   	_CREATED2s    r	   	_factory2z;Test__rolledUpFactory.test_with_multiple.<locals>._factory2H   rF   r   c                     S r   r   )r9   	_CREATED3s    r	   	_factory3z;Test__rolledUpFactory.test_with_multiple.<locals>._factory3J   rF   r   r<   )	r   r?   rE   rI   rL   r@   rD   rH   rK   s	         @@@r	   test_with_multiplez(Test__rolledUpFactory.test_with_multipleA   sm    xH	H	H					9i@A)34t	12r   N)r0   r1   r2   r   rA   rM   r   r   r	   r4   r4   2   s    -23r   r4   c                   l    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
d        Ze
d	        Ze
d
        Zd Zy)Test_adapterc                     ddl m}  ||i |S )Nr   adapter)r   rR   )r   r   r   rR   s       r	   r   zTest_adapter._callFUTS   r   r   c                     ddl m} ddlm}  G d d|      }t	               }| j                  || j                  |g |g|       y )Nr   	InterfaceComponentConfigurationErrorc                       e Zd Zy)-Test_adapter.test_empty_factory.<locals>.IFooNr0   r1   r2   r   r   r	   IFoorY   Z       r   r[   zope.interfacerU   r   rW   _makeConfigContextassertRaisesr   )r   rU   rW   r[   _cfg_ctxs        r	   test_empty_factoryzTest_adapter.test_empty_factoryW   s?    ,C	9 	%'5--2	{D	Jr   c                     ddl m} ddlm}  G d d|      } G d d|      } G d d	t              } G d
 dt              }t               }| j                  || j                  |||g||g|       y )Nr   rT   rV   c                       e Zd Zy)>Test_adapter.test_multiple_factory_multiple_for_.<locals>.IFooNrZ   r   r   r	   r[   re   c   r\   r   r[   c                       e Zd Zy)>Test_adapter.test_multiple_factory_multiple_for_.<locals>.IBarNrZ   r   r   r	   IBarrg   e   r\   r   rh   c                       e Zd Zy)=Test_adapter.test_multiple_factory_multiple_for_.<locals>.FooNrZ   r   r   r	   Foorj   g   r\   r   rk   c                       e Zd Zy)=Test_adapter.test_multiple_factory_multiple_for_.<locals>.BarNrZ   r   r   r	   Barrm   i   r\   r   rn   r^   rU   r   rW   r=   r_   r`   r   )r   rU   rW   r[   rh   rk   rn   ra   s           r	   #test_multiple_factory_multiple_for_z0Test_adapter.test_multiple_factory_multiple_for_`   sk    ,C	9 		9 		& 		& 	%'5--C:*3T):D	Br   c                 |     G d dt               }t               }| j                  t        | j                  ||g       y )Nc                       e Zd Zd Zy)>Test_adapter.test_no_for__factory_not_adapts.<locals>._Factoryc                     || _         y r   r"   r   r"   s     r	   __init__zGTest_adapter.test_no_for__factory_not_adapts.<locals>._Factory.__init__s   	    &r   Nr0   r1   r2   rw   r   r   r	   _Factoryrs   r       'r   rz   r=   r_   r`   	TypeErrorr   r   rz   ra   s      r	   test_no_for__factory_not_adaptsz,Test_adapter.test_no_for__factory_not_adaptsp   s2    	'v 	' &')T]]HxjIr   c                 F   ddl m}  G d d|      } G d d|      }ddlm}m} ddl m}  ||       ||       |d	       G d
 dt                                   }t               }| j                  ||g       |j                  d   d   }	| j                  |	d   d   d	       y )Nr   rT   c                       e Zd Zy)'Test_adapter.test_no_name.<locals>.IFooNrZ   r   r   r	   r[   r   z   r\   r   r[   c                       e Zd Zy)'Test_adapter.test_no_name.<locals>.IBarNrZ   r   r   r	   rh   r   |   r\   r   rh   )rR   namedimplementerbarc                       e Zd Zd Zy)+Test_adapter.test_no_name.<locals>._Factoryc                     || _         y r   ru   rv   s     r	   rw   z4Test_adapter.test_no_name.<locals>._Factory.__init__   rx   r   Nry   r   r   r	   rz   r      s    'r   rz      r      )r^   rU   r(   rR   r   r   r=   r_   r   _actionsassertEqual)
r   rU   r[   rh   rR   r   r   rz   ra   actions
             r	   test_no_namezTest_adapter.test_no_namex   s    ,	9 		9 	1.		T		u	'v 	' 
 
 
	' &'h
+!!!$Q'*E2r   c                     ddl m} ddlm}  ||       G d dt                     }t               }| j                  t        | j                  ||g       y )Nr   rT   rQ   c                       e Zd Zd Zy)]Test_adapter.test_no_for__factory_adapts_no_provides_factory_not_implements.<locals>._Factoryc                     || _         y r   ru   rv   s     r	   rw   zfTest_adapter.test_no_for__factory_adapts_no_provides_factory_not_implements.<locals>._Factory.__init__   rx   r   Nry   r   r   r	   rz   r      s    'r   rz   )	r^   rU   zope.component._declarationrR   r=   r_   r`   r}   r   )r   rU   rR   rz   ra   s        r	   >test_no_for__factory_adapts_no_provides_factory_not_implementszKTest_adapter.test_no_for__factory_adapts_no_provides_factory_not_implements   sJ    ,7			'v 	' 
	' &')T]]HxjIr   c                    ddl m} ddlm} ddlm}  G d d|      } G d dt              } G d	 d
t              }t               }| j                  |||g||gd       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d|f|df       | j                  |d   d   d       | j                  |d   d   j                  |       | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   provideInterfacer   c                       e Zd Zy)CTest_adapter.test_multiple_factory_single_for__w_name.<locals>.IFooNrZ   r   r   r	   r[   r      r\   r   r[   c                       e Zd Zy)BTest_adapter.test_multiple_factory_single_for__w_name.<locals>.FooNrZ   r   r   r	   rk   r      r\   r   rk   c                       e Zd Zy)BTest_adapter.test_multiple_factory_single_for__w_name.<locals>.BarNrZ   r   r   r	   rn   r      r\   r   rn   test)name   r   r   callablediscriminatorrR   r   registerAdapter   r      TESTING )r^   rU   zope.component.interfacer   r   r   r=   r_   r   r   lenr   r>   )	r   rU   r   r   r[   rk   rn   ra   r   s	            r	   (test_multiple_factory_single_for__w_namez5Test_adapter.test_multiple_factory_single_for__w_name   sk   ,=/	9 		& 		& 	%'hc
D9+FKX../3**1-a0"5!!!$Q'
+W50#i\4@	B*,=>*22C8*YL9*D1*F3*I6**1-a0"5!!!$Q'
+-=>0$7"d4**1-a0"5!!!$Q'
+-=>0$7"i9r   c                 6   ddl m} ddlm} ddlm}  G d d|      } G d dt              }t               }| j                  ||g||gd	
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d|f|df       | j                  |d   d   d       |d   d   }| j                  t        ||             | j                  |j                  j                  |u        | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       y )Nr   rT   LocatingUntrustedAdapterFactoryr   c                       e Zd Zy)FTest_adapter.test_single_factory_single_for_w_permission.<locals>.IFooNrZ   r   r   r	   r[   r      r\   r   r[   c                       e Zd Zy)ETest_adapter.test_single_factory_single_for_w_permission.<locals>.FooNrZ   r   r   r	   rk   r      r\   r   rk   testing)
permissionr   r   r   r   r   rR   r   r   r   r   r   r   r   r^   rU   zope.security.adapterr   r   r   r=   r_   r   r   r   r   r,   
isinstancer>   	r   rU   r   r   r[   rk   ra   r   factory_proxys	            r	   +test_single_factory_single_for_w_permissionz8Test_adapter.test_single_factory_single_for_w_permission   s   ,I/	9 		& 	%'hti[YOX../3**1-a0"5!!!$Q'
+W50#i\4<	>*,=>vq) 	
=79 	:--55<=*YL9*D1*B/*I6r   c                 "   ddl m} ddlm} ddlm}  G d d|      } G d dt              }t               }| j                  ||g||gd	
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d|f|df       | j                  |d   d   d       |d   d   }| j                  t        ||             | j                  |j                  |u        | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       y )Nr   rT   r   r   c                       e Zd Zy)PTest_adapter.test_single_factory_single_for_w_locate_no_permission.<locals>.IFooNrZ   r   r   r	   r[   r      r\   r   r[   c                       e Zd Zy)OTest_adapter.test_single_factory_single_for_w_locate_no_permission.<locals>.FooNrZ   r   r   r	   rk   r      r\   r   rk   T)locater   r   r   r   r   rR   r   r   r   r   r   r   r   r   r   s	            r	   5test_single_factory_single_for_w_locate_no_permissionzBTest_adapter.test_single_factory_single_for_w_locate_no_permission   s   ,I/	9 		& 	%'hti[FX../3**1-a0"5!!!$Q'
+W50#i\4<	>*,=>vq)
=79 	:--45*YL9*D1*B/*I6r   c                 "   ddl m} ddlm} ddlm}  G d d|      } G d dt              }t               }| j                  ||g||gd	
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d|f|df       | j                  |d   d   d       |d   d   }| j                  t        ||             | j                  |j                  |u        | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       y )Nr   rT   TrustedAdapterFactoryr   c                       e Zd Zy)QTest_adapter.test_single_factory_single_for_w_trusted_no_permission.<locals>.IFooNrZ   r   r   r	   r[   r      r\   r   r[   c                       e Zd Zy)PTest_adapter.test_single_factory_single_for_w_trusted_no_permission.<locals>.FooNrZ   r   r   r	   rk   r      r\   r   rk   T)trustedr   r   r   r   r   rR   r   r   r   r   r   r   r   )r^   rU   r   r   r   r   r=   r_   r   r   r   r   r,   r   r>   )	r   rU   r   r   r[   rk   ra   r   r   s	            r	   6test_single_factory_single_for_w_trusted_no_permissionzCTest_adapter.test_single_factory_single_for_w_trusted_no_permission   s   ,?/	9 		& 	%'hti[$GX../3**1-a0"5!!!$Q'
+W50#i\4<	>*,=>vq)
=2GHI--45*YL9*D1*B/*I6r   c           	         ddl m} ddl m} ddlm} ddlm}  G d d|      } ||       ||       G d d	t                            }t               }| j                  ||g       | j                  t        |j                        d
       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d|f|df       | j                  |d   d||f|ddf       y )Nr   rT   r   rQ   r   c                       e Zd Zy)UTest_adapter.test_no_for__no_provides_factory_adapts_factory_implements.<locals>.IFooNrZ   r   r   r	   r[   r     r\   r   r[   c                       e Zd Zd Zy)YTest_adapter.test_no_for__no_provides_factory_adapts_factory_implements.<locals>._Factoryc                     || _         y r   ru   rv   s     r	   rw   zbTest_adapter.test_no_for__no_provides_factory_adapts_factory_implements.<locals>._Factory.__init__  rx   r   Nry   r   r   r	   rz   r     s    'r   rz   r   r   r   r   r   rR   r   r   r   r   )r^   rU   r   r   rR   r   r   r=   r_   r   r   r   r   )	r   rU   r   rR   r   r[   rz   ra   r   s	            r	   :test_no_for__no_provides_factory_adapts_factory_implementszGTest_adapter.test_no_for__no_provides_factory_adapts_factory_implements  s   ,.7/	9 				T		'v 	' 
 
	' &'h
+X../3**1-a0"5!!!$Q'
+W50#i\4<	>+X	|Ti)	*r   N)r0   r1   r2   r   rb   rp   r   r   r   r   r   r   r   r   r   r   r   r	   rO   rO   Q   sk    $JB J3(J$:L 7 7: 7 78 7 76*r   rO   c                   <    e Zd Zd ZeZd Zed        Zed        Zy)Test_zcml_functionalc                     ddl m}  |        y )Nr   )	clearZCML)zope.component.tests.examplesr   )r   r   s     r	   setUpzTest_zcml_functional.setUp/  s
    ;r   c                 <    ddl m} d|z  }|j                  |       y )Nr   )	xmlconfigz        <configure xmlns='http://namespaces.zope.org/zope'
                   i18n_domain="zope">
           <include package="zope.component" file="meta.zcml" />
           %s
        </configure>)zope.configurationr   string)r   snippetr   templates       r	   _runSnippetz Test_zcml_functional._runSnippet4  s&    0
 "" 	"r   c                    ddl m} ddlm} ddlm} ddlm}m} ddl	m
} | j                  d        |       } ||      } ||      }	| j                   ||	             | j                  t         ||	            |u        y )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as
             r	   )test_with_proxy_factory_public_permissionz>Test_zcml_functional.test_with_proxy_factory_public_permission?  sn     	';?;6  	 YqE
#034:;r   c                    ddl m} ddlm} ddlm} ddlm} ddlm	} ddl
m} | j                  d        |       } ||      } ||      }	| j                   ||	             | j                  t         ||	            |u        y )	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   zope.location.locationr   r   r,   r   )
r   r   r   r   r   r   r   r   r   r   s
             r	   test_located_proxy_factoryz/Test_zcml_functional.test_located_proxy_factoryY  sq     	';?768  	 YqE
#034EFr   N)	r0   r1   r2   r   tearDownr   r   r   r   r   r   r	   r   r   ,  s=     H# < <2 G Gr   r   c                   l    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ed	        Zed
        Zed        Zy)Test_subscriberc                     ddl m}  ||i |S )Nr   )
subscriber)r   r   )r   r   r   r   s       r	   r   zTest_subscriber._callFUTv  s    24&2&&r   c                 j    ddl m} t               }| j                  t        | j
                  ||f       y )Nr   rT   r^   rU   r_   r`   r}   r   )r   rU   ra   s      r	   test_no_factory_no_handlerz*Test_subscriber.test_no_factory_no_handlerz  s+    ,%')--I<	Ar   c                     ddl m}  G d d|      }d }t               }| j                  t        | j
                  ||f||       y )Nr   rT   c                       e Zd Zy)BTest_subscriber.test_no_factory_w_handler_w_provides.<locals>.IFooNrZ   r   r   r	   r[   r    r\   r   r[   c                       y r   r   r   s    r	   _handlerzFTest_subscriber.test_no_factory_w_handler_w_provides.<locals>._handler      r   )r   providesr   )r   rU   r[   r  ra   s        r	   $test_no_factory_w_handler_w_providesz4Test_subscriber.test_no_factory_w_handler_w_provides  sF    ,	9 		%')--I<19D 	 	Jr   c                     ddl m}  G d dt              }d }t               }| j	                  t
        | j                  ||f||       y )Nr   rT   c                       e Zd Zy)5Test_subscriber.test_w_factory_w_handler.<locals>.FooNrZ   r   r   r	   rk   r    r\   r   rk   c                       y r   r   r  s    r	   r  z:Test_subscriber.test_w_factory_w_handler.<locals>._handler  r  r   r   r^   rU   r=   r_   r`   r}   r   )r   rU   rk   r  ra   s        r	   test_w_factory_w_handlerz(Test_subscriber.test_w_factory_w_handler  sE    ,	& 		%')--I<19 	 	;r   c                     ddl m}  G d dt              }t               }| j	                  t
        | j                  ||f|       y )Nr   rT   c                       e Zd Zy)7Test_subscriber.test_w_factory_no_provides.<locals>.FooNrZ   r   r   r	   rk   r    r\   r   rk   r  )r   rU   rk   ra   s       r	   test_w_factory_no_providesz*Test_subscriber.test_w_factory_no_provides  s9    ,	& 	%')--I<	Fr   c                     ddl m}  G d d|      } G d dt              }t               }| j	                  t
        | j                  |||       y )Nr   rT   c                       e Zd Zy)QTest_subscriber.test_w_factory_w_provides_no_for_factory_wo_adapter.<locals>.IFooNrZ   r   r   r	   r[   r    r\   r   r[   c                       e Zd Zy)PTest_subscriber.test_w_factory_w_provides_no_for_factory_wo_adapter.<locals>.FooNrZ   r   r   r	   rk   r    r\   r   rk   r>   r  r  )r   rU   r[   rk   ra   s        r	   3test_w_factory_w_provides_no_for_factory_wo_adapterzCTest_subscriber.test_w_factory_w_provides_no_for_factory_wo_adapter  sI    ,	9 		& 	%')--14t 	 	Er   c                 N   ddl m} ddlm} ddlm} d }t               }| j                  ||f|       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d	   |       | j                  |d
   d        | j                  |d   d   d       | j                  |d   d   |       | j                  |d   d   |f       | j                  |d   d   d       | j                  |d   d   d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d	   |       | j                  |d
   d        | j                  |d   d|f       y )Nr   rT   r   r   c                       y r   r   r  s    r	   r  zGTest_subscriber.test_no_factory_w_handler_no_provides.<locals>._handler  r  r   r   r   r   r   r   r   registerHandlerr   r   r   r   )r^   rU   r   r   r   r   r_   r   r   r   r   )r   rU   r   r   r  ra   r   s          r	   %test_no_factory_w_handler_no_providesz5Test_subscriber.test_no_factory_w_handler_no_provides  s   ,=/	%'hh?X../3**1-a0"5!!!$Q'
+W50$7*,=>*H5*YL9*B/*I6**1-a0"5!!!$Q'
+-=>0$7"i9r   c                    ddl m} ddlm} ddlm}  G d d|      } G d dt              }d	 }t               }| j                  ||f||
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d   d       | j                  |d   d   |       | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   c                       e Zd Zy)7Test_subscriber.test_w_factory_w_provides.<locals>.IFooNrZ   r   r   r	   r[   r!    r\   r   r[   c                       e Zd Zy)6Test_subscriber.test_w_factory_w_provides.<locals>.FooNrZ   r   r   r	   rk   r#    r\   r   rk   c                       y r   r   r  s    r	   r  z;Test_subscriber.test_w_factory_w_provides.<locals>._handler  r  r   )r  r   r   r   r   r   r   registerSubscriptionAdapterr   r   r   r   r   r^   rU   r   r   r   r   r=   r_   r   r   r   r   )	r   rU   r   r   r[   rk   r  ra   r   s	            r	   test_w_factory_w_providesz)Test_subscriber.test_w_factory_w_provides  sI   ,=/	9 		& 		%'hcDAX../3**1-a0"5!!!$Q'
+W50$7*,IJ*C0*YL9*D1*B/*I6**1-a0"5!!!$Q'
+-=>0$7"d4**1-a0"5!!!$Q'
+-=>0$7"i9r   c                 
   ddl m} ddlm} ddlm} ddlm}  G d d|      } G d d	t              }t               }| j                  ||f||d
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d   d       |d   d   }	| j                  t        |	|             | j                  |	j                   j                   |u        | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   r   c                       e Zd Zy)DTest_subscriber.test_w_factory_w_provides_w_permission.<locals>.IFooNrZ   r   r   r	   r[   r*    r\   r   r[   c                       e Zd Zy)CTest_subscriber.test_w_factory_w_provides_w_permission.<locals>.FooNrZ   r   r   r	   rk   r,    r\   r   rk   r   )r  r   r   r   r   r   r   r   r%  r   r   r   r   r   r^   rU   r   r   r   r   r   r   r=   r_   r   r   r   r   r,   r   r>   
r   rU   r   r   r   r[   rk   ra   r   r   s
             r	   &test_w_factory_w_provides_w_permissionz6Test_subscriber.test_w_factory_w_provides_w_permission  s{   ,I=/	9 		& 	%'hc#	 	 	;X../3**1-a0"5!!!$Q'
+W50$7*,IJvq) 	
=79 	:--55<=*YL9*D1*B/*I6**1-a0"5!!!$Q'
+-=>0$7"d4**1-a0"5!!!$Q'
+-=>0$7"i9r   c                    ddl m} ddlm} ddlm} ddlm}  G d d|      } G d d	t              }t               }| j                  ||f||d
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d   d       |d   d   }	| j                  t        |	|             | j                  |	j                   |u        | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   r   c                       e Zd Zy)NTest_subscriber.test_w_factory_w_provides_wo_permission_w_locate.<locals>.IFooNrZ   r   r   r	   r[   r2    r\   r   r[   c                       e Zd Zy)MTest_subscriber.test_w_factory_w_provides_wo_permission_w_locate.<locals>.FooNrZ   r   r   r	   rk   r4    r\   r   rk   T)r  r   r   r   r   r   r   r   r%  r   r   r   r   r   r-  r.  s
             r	   0test_w_factory_w_provides_wo_permission_w_locatez@Test_subscriber.test_w_factory_w_provides_wo_permission_w_locate  so   ,I=/	9 		& 	%'hcDNX../3**1-a0"5!!!$Q'
+W50$7*,IJvq) 	
=79 	:--45*YL9*D1*B/*I6**1-a0"5!!!$Q'
+-=>0$7"d4**1-a0"5!!!$Q'
+-=>0$7"i9r   c                    ddl m} ddlm} ddlm} ddlm}  G d d|      } G d d	t              }t               }| j                  ||f||d
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d   d       |d   d   }	| j                  t        |	|             | j                  |	j                   |u        | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   r   c                       e Zd Zy)OTest_subscriber.test_w_factory_w_provides_wo_permission_w_trusted.<locals>.IFooNrZ   r   r   r	   r[   r8  C  r\   r   r[   c                       e Zd Zy)NTest_subscriber.test_w_factory_w_provides_wo_permission_w_trusted.<locals>.FooNrZ   r   r   r	   rk   r:  E  r\   r   rk   T)r  r   r   r   r   r   r   r   r%  r   r   r   r   r   )r^   rU   r   r   r   r   r   r   r=   r_   r   r   r   r   r,   r   r>   )
r   rU   r   r   r   r[   rk   ra   r   r   s
             r	   1test_w_factory_w_provides_wo_permission_w_trustedzATest_subscriber.test_w_factory_w_provides_wo_permission_w_trusted=  so   ,?=/	9 		& 	%'hcD$OX../3**1-a0"5!!!$Q'
+W50$7*,IJvq) 	
=-/ 	0--45*YL9*D1*B/*I6**1-a0"5!!!$Q'
+-=>0$7"d4**1-a0"5!!!$Q'
+-=>0$7"i9r   N)r0   r1   r2   r   r   r	  r  r  r  r  r'  r   r/  r5  r;  r   r   r	   r   r   t  sm    'A	J	;F	E:4#:J (: (:T ': ':R ': ':r   r   c                   R    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zed
        Zy)Test_utilityc                     ddl m}  ||i |S )Nr   )utility)r   r?  )r   r   r   r?  s       r	   r   zTest_utility._callFUTj  r   r   c                      G d dt               }t         }t               }| j                  t        | j                  |||       y )Nc                       e Zd Zy)9Test_utility.test_w_factory_w_component.<locals>._FactoryNrZ   r   r   r	   rz   rB  o  r\   r   rz   )r>   	componentr|   )r   rz   
_COMPONENTra   s       r	   test_w_factory_w_componentz'Test_utility.test_w_factory_w_componentn  s>    	v 	
%')T]]H193= 	 	?r   c                 |     G d dt               }t               }| j                  t        | j                  ||       y )Nc                       e Zd Zy)OTest_utility.test_w_factory_wo_provides_factory_no_implements.<locals>._FactoryNrZ   r   r   r	   rz   rH  x  r\   r   rz   r>   r|   r~   s      r	   0test_w_factory_wo_provides_factory_no_implementsz=Test_utility.test_w_factory_wo_provides_factory_no_implementsw  s7    	v 	%')--8 	 	Er   c                 j    t         }t               }| j                  t        | j                  ||       y )NrC  r|   )r   rD  ra   s      r	   2test_w_component_wo_provides_component_no_providesz?Test_utility.test_w_component_wo_provides_component_no_provides~  s0    
%')--Z 	 	Ir   c                    ddl m} ddlm} ddlm}  G d d|      } G d dt              }t               }| j                  |||	       | j                  t        |j                        d
       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d|df       | j                  |d   d   d       | j                  |d   d   d        | j                  |d   d
   |       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d|i       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   c                       e Zd Zy)4Test_utility.test_w_factory_w_provides.<locals>.IFooNrZ   r   r   r	   r[   rP    r\   r   r[   c                       e Zd Zy)3Test_utility.test_w_factory_w_provides.<locals>.FooNrZ   r   r   r	   rk   rR    r\   r   rk   r  r   r   r   r   r   r?  r   r   r&   r   r   r   r   r>   r&  )r   rU   r   r   r[   rk   ra   r   s           r	   r'  z&Test_utility.test_w_factory_w_provides  s   ,=/	9 		& 	%'hd;X../3**1-a0"5!!!$Q'
+W509dB2GH*,=>*D1*D1*B/*I6	3'78**1-a0"5!!!$Q'
+-=>0$7"d4r   c                    ddl m} ddl m} ddlm} ddlm}  G d d|      } ||       G d d	t                     }t               }| j                  ||
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d|df       | j                  |d   d   d       | j                  |d   d   d        | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d|i       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   r   c                       e Zd Zy)HTest_utility.test_w_factory_wo_provides_factory_implements.<locals>.IFooNrZ   r   r   r	   r[   rU    r\   r   r[   c                       e Zd Zy)GTest_utility.test_w_factory_wo_provides_factory_implements.<locals>.FooNrZ   r   r   r	   rk   rW    s    r   rk   rI  r   r   r   r   r   r?  r   r   r&   r   r   r   r   r>   )r^   rU   r   r   r   r   r   r=   r_   r   r   r   r   )	r   rU   r   r   r   r[   rk   ra   r   s	            r	   -test_w_factory_wo_provides_factory_implementsz:Test_utility.test_w_factory_wo_provides_factory_implements  s   ,.=/	9 		T		& 	 
	%'h,X../3**1-a0"5!!!$Q'
+W509dB2GH*,=>*D1*D1*B/*I6	3'78**1-a0"5!!!$Q'
+-=>0$7"d4r   c                 v   ddl m} ddlm} ddlm}  G d d|      }t               }t               }| j                  ||d|       | j                  t        |j                        d	       | j                  |j                  d   d   d
       |j                  d   d   }| j                  |d   |       | j                  |d   d|df       | j                  |d   d   d       | j                  |d   d   |       | j                  |d   d	   |       | j                  |d   d   d       | j                  |d   d   d       | j                  |j                  d   d   d
       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   c                       e Zd Zy)=Test_utility.test_w_component_w_provides_w_name.<locals>.IFooNrZ   r   r   r	   r[   r[    r\   r   r[   r   )rC  r   r  r   r   r   r   r   r?  r   r&   r   r   r   r   r&  )r   rU   r   r   r[   rD  ra   r   s           r	   "test_w_component_w_provides_w_namez/Test_utility.test_w_component_w_provides_w_name  s   ,=/	9 	X
%'h*!D 	 	2X../3**1-a0"5!!!$Q'
+W509dF2KL*,=>*J7*D1*F3*I6**1-a0"5!!!$Q'
+-=>0$7"d4r   c                    ddl m}m}m} ddlm}  G d d|      } ||       |d       G d dt                            } |       }t               }| j                  ||	       |j                  d   d
   }	| j                  |	d   d
   |       | j                  |	d   d   |       | j                  |	d   d   d       y )Nr   )rU   r   r   r   c                       e Zd Zy)?Test_utility.test_w_component_wo_provides_wo_name.<locals>.IFooNrZ   r   r   r	   r[   r_    r\   r   r[   fooc                       e Zd Zy)>Test_utility.test_w_component_wo_provides_wo_name.<locals>.FooNrZ   r   r   r	   rk   rb    s     r   rk   rL  r   r   r   r   )r^   rU   r   r   r   r   r=   r_   r   r   r   )
r   rU   r   r   r   r[   rk   r`  ra   r   s
             r	   $test_w_component_wo_provides_wo_namez1Test_utility.test_w_component_wo_provides_wo_name  s    @@/	9 		T		u	& 	 
 
	e%'h#.!!!$Q'*C0*D1*E2r   c                    ddl m} ddl m} ddlm} ddlm}  G d d|      } G d d	t              } |       } |||       t               }| j                  ||
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }	| j                  |	d   |       | j                  |	d   d|df       | j                  |	d   d   d       | j                  |	d   d   |       | j                  |	d   d   |       | j                  |	d   d   d       | j                  |	d   d   d       | j                  |j                  d   d   d       |j                  d   d   }	| j                  |	d   |       | j                  |	d   d        | j                  |	d   d|f       y )Nr   rT   )directlyProvidesr   r   c                       e Zd Zy)JTest_utility.test_w_component_wo_provides_component_provides.<locals>.IFooNrZ   r   r   r	   r[   rg    r\   r   r[   c                       e Zd Zy)ITest_utility.test_w_component_wo_provides_component_provides.<locals>.FooNrZ   r   r   r	   rk   ri    r\   r   rk   rL  r   r   r   r   r   r?  r   r   r&   r   r   r   )r^   rU   re  r   r   r   r   r=   r_   r   r   r   r   )
r   rU   re  r   r   r[   rk   rD  ra   r   s
             r	   /test_w_component_wo_provides_component_providesz<Test_utility.test_w_component_wo_provides_component_provides  s   ,3=/	9 		& 	U
T*%'h*5X../3**1-a0"5!!!$Q'
+W509dB2GH*,=>*J7*D1*B/*I6**1-a0"5!!!$Q'
+-=>0$7"d4r   c                 >   ddl m} ddlm} ddlm} ddlm} ddlm	}  G d d|      } G d	 d
t              } |       }t               }	| j                  |	||d       | j                  t        |	j                        d       | j                  |	j                  d   d   d       |	j                  d   d   }
| j                  |
d   |       | j                  |
d   d|df       | j                  |
d   d   d       |
d   d   }| j!                  t#        ||             | j!                   ||      |u        | j                  |j$                  j&                  ddi       | j                  |
d   d   |       | j                  |
d   d   d       | j                  |
d   d   d       | j                  |	j                  d   d   d       |	j                  d   d   }
| j                  |
d   |       | j                  |
d   d        | j                  |
d   d|f       y )Nr   rT   )removeAllProxiesr   )PermissionProxyr   c                       e Zd Zd Zy)CTest_utility.test_w_component_w_provides_w_permission.<locals>.IFooc                      y r   r   r   s    r	   r   zGTest_utility.test_w_component_w_provides_w_permission.<locals>.IFoo.bar      r   Nr0   r1   r2   r   r   r   r	   r[   ro        r   r[   c                       e Zd Zd Zy)BTest_utility.test_w_component_w_provides_w_permission.<locals>.Fooc                      y r   r   r   s    r	   r   zFTest_utility.test_w_component_w_provides_w_permission.<locals>.Foo.bar  rq  r   Nrr  r   r   r	   rk   ru    rs  r   rk   r   )rC  r  r   r   r   r   r   r   r?  r   r   r&   r   r   r   r   )r^   rU   r   rl  r   r   zope.component.securityrm  r   r   r=   r_   r   r   r   r   r,   r   __Security_checker__get_permissions)r   rU   rl  r   rm  r   r[   rk   rD  ra   r   component_proxys               r	   (test_w_component_w_provides_w_permissionz5Test_utility.test_w_component_w_provides_w_permission  s   ,/=;/	9 		& 	 U
%'h*)-) 	 	EX../3**1-a0"5!!!$Q'
+W509dB2GH*,=> .+
?ODE(9ZGH==MM+	-*D1*B/*I6**1-a0"5!!!$Q'
+-=>0$7"d4r   N)r0   r1   r2   r   rE  rJ  rM  r'  rX  r\  rc  rj  r   r{  r   r   r	   r=  r=  h  sE    $?EI5:5>583"5> $5 $5r   r=  c                       e Zd Zd Zd Zd Zy)Test_interfacec                     ddl m}  ||i |S )Nr   )	interface)r   r  )r   r   r   r  s       r	   r   zTest_interface._callFUT5  s    1$%"%%r   c                    ddl m} ddlm}  G d d|      }t	               }| j                  ||       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d	   d        | j                  |d
   d|d f       y )Nr   rT   r   c                       e Zd Zy)1Test_interface.test_wo_name_wo_type.<locals>.IFooNrZ   r   r   r	   r[   r  <  r\   r   r[   r   r   r   r   r   r   	r^   rU   r   r   r_   r   r   r   r   )r   rU   r   r[   ra   r   s         r	   test_wo_name_wo_typez#Test_interface.test_wo_name_wo_type9  s    ,=	9 	%'h%X../3**1-a0"5!!!$Q'
+-=>0$7"dD)9:r   c                    ddl m} ddlm}  G d d|      } G d d|      }t	               }| j                  ||d|	       | j                  t        |j                        d
       | j                  |j                  d   d   d       |j                  d   d
   }| j                  |d   |       | j                  |d   d        | j                  |d   d||f       y )Nr   rT   r   c                       e Zd Zy)/Test_interface.test_w_name_w_type.<locals>.IFooNrZ   r   r   r	   r[   r  J  r\   r   r[   c                       e Zd Zy)/Test_interface.test_w_name_w_type.<locals>.IBarNrZ   r   r   r	   rh   r  L  r\   r   rh   r`  )r   r   r   r   r   r   r   r  )r   rU   r   r[   rh   ra   r   s          r	   test_w_name_w_typez!Test_interface.test_w_name_w_typeG  s    ,=	9 		9 	%'h5t<X../3**1-a0"5!!!$Q'
+-=>0$7%t)<=r   N)r0   r1   r2   r   r  r  r   r   r	   r}  r}  3  s    &;>r   r}  c                   l    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ed	        Zed
        Zed        Zy)	Test_viewc                     ddl m}  ||i |S )Nr   )view)r   r  )r   r   r   r  s       r	   r   zTest_view._callFUTZ  s    ,T R  r   c           
          ddl m} ddlm}  G d d|      } G d d|      } G d d	t              }t               }| j                  || j                  ||f|d
||f|       y )Nr   rT   rV   c                       e Zd Zy)CTest_view.test_w_allowed_interface_wo_permission.<locals>.IViewTypeNrZ   r   r   r	   	IViewTyper  a  r\   r   r  c                       e Zd Zd Zd Zy)?Test_view.test_w_allowed_interface_wo_permission.<locals>.IViewc                       y r   r   r   r   r	   r`  zCTest_view.test_w_allowed_interface_wo_permission.<locals>.IView.food  rq  r   c                       y r   r   r   r   r	   r   zCTest_view.test_w_allowed_interface_wo_permission.<locals>.IView.barf  rq  r   Nr0   r1   r2   r`  r   r   r   r	   IViewr  c      r   r  c                       e Zd Zd Zd Zd Zy)?Test_view.test_w_allowed_interface_wo_permission.<locals>._Viewc                     || _         y r   ru   rv   s     r	   rw   zHTest_view.test_w_allowed_interface_wo_permission.<locals>._View.__init__i  rx   r   c                       y r   r   r   r   r	   r`  zCTest_view.test_w_allowed_interface_wo_permission.<locals>._View.fook  rq  r   c                       y r   r   r   r   r	   r   zCTest_view.test_w_allowed_interface_wo_permission.<locals>._View.barm  rq  r   Nr0   r1   r2   rw   r`  r   r   r   r	   _Viewr  h      'r   r  r   )for_allowed_interfacero   )r   rU   rW   r  r  r  ra   s          r	   &test_w_allowed_interface_wo_permissionz0Test_view.test_w_allowed_interface_wo_permission^  si    ,C		 		I 	
	F 	 &'5--E8Y/8).D;@ 	 	Br   c           
          ddl m} ddlm}  G d d|      } G d dt              }t               }| j                  || j                  ||f|d||fd	
       y )Nr   rT   rV   c                       e Zd Zy)DTest_view.test_w_allowed_attributes_wo_permission.<locals>.IViewTypeNrZ   r   r   r	   r  r  x  r\   r   r  c                       e Zd Zd Zd Zd Zy)@Test_view.test_w_allowed_attributes_wo_permission.<locals>._Viewc                     || _         y r   ru   rv   s     r	   rw   zITest_view.test_w_allowed_attributes_wo_permission.<locals>._View.__init__{  rx   r   c                       y r   r   r   r   r	   r`  zDTest_view.test_w_allowed_attributes_wo_permission.<locals>._View.foo}  rq  r   c                       y r   r   r   r   r	   r   zDTest_view.test_w_allowed_attributes_wo_permission.<locals>._View.bar  rq  r   Nr  r   r   r	   r  r  z  r  r   r  r   r`  r   )r  allowed_attributesro   r   rU   rW   r  r  ra   s         r	   'test_w_allowed_attributes_wo_permissionz1Test_view.test_w_allowed_attributes_wo_permissionu  s]    ,C		 		F 	 &'5--E8Y/8).D<J 	 	Lr   c           
          ddl m} ddlm}  G d d|      }t	               }| j                  || j                  |d|d||f       y )	Nr   rT   rV   c                       e Zd Zy)4Test_view.test_w_factory_as_empty.<locals>.IViewTypeNrZ   r   r   r	   r  r    r\   r   r  r   r   r  r]   )r   rU   rW   r  ra   s        r	   test_w_factory_as_emptyz!Test_view.test_w_factory_as_empty  sJ    ,C		 	%'5--2y"/8).D 	 	Fr   c           
          ddl m} ddlm}  G d d|      } G d dt              } G d d	t              }t               }| j                  || j                  |||f|d
||f       y )Nr   rT   rV   c                       e Zd Zy)BTest_view.test_w_multiple_factory_multiple_for_.<locals>.IViewTypeNrZ   r   r   r	   r  r    r\   r   r  c                       e Zd Zy)<Test_view.test_w_multiple_factory_multiple_for_.<locals>.FooNrZ   r   r   r	   rk   r    r\   r   rk   c                       e Zd Zy)<Test_view.test_w_multiple_factory_multiple_for_.<locals>.BarNrZ   r   r   r	   rn   r    r\   r   rn   r   r  ro   )r   rU   rW   r  rk   rn   ra   s          r	   %test_w_multiple_factory_multiple_for_z/Test_view.test_w_multiple_factory_multiple_for_  sf    ,C		 		& 		& 	%'5--C:y"/8).D 	 	Fr   c           	          ddl m} ddlm}  G d d|      } G d dt              }t               }| j                  || j                  ||f|dd	
       y )Nr   rT   rV   c                       e Zd Zy)1Test_view.test_w_for__as_empty.<locals>.IViewTypeNrZ   r   r   r	   r  r    r\   r   r  c                       e Zd Zd Zy)-Test_view.test_w_for__as_empty.<locals>._Viewc                     || _         y r   ru   rv   s     r	   rw   z6Test_view.test_w_for__as_empty.<locals>._View.__init__  rx   r   Nry   r   r   r	   r  r    r{   r   r  r   r   r  ro   r  s         r	   test_w_for__as_emptyzTest_view.test_w_for__as_empty  sT    ,C		 		'F 	' &'5--E8Y.0 	 	2r   c                    ddl m} ddlm} ddlm}  G d d|      } G d dt              }t               }| j                  ||f|d	|f
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d||fd	|f       | j                  |d   d   d       | j                  |d   d   |       | j                  |d   d   ||f       | j                  |d   d   |       | j                  |d   d   d	       | j                  |d   d   d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   c                       e Zd Zy)STest_view.test_w_single_factory_single_for__wo_permission_w_name.<locals>.IViewTypeNrZ   r   r   r	   r  r    r\   r   r  c                       e Zd Zd Zy)OTest_view.test_w_single_factory_single_for__wo_permission_w_name.<locals>._Viewc                     || _         y r   ru   rv   s     r	   rw   zXTest_view.test_w_single_factory_single_for__wo_permission_w_name.<locals>._View.__init__  rx   r   Nry   r   r   r	   r  r    r{   r   r  r   r  r   r   r   r   r   r  r   r   r   r   r   r   r   )r^   rU   r   r   r   r   r=   r_   r   r   r   r   )r   rU   r   r   r  r  ra   r   s           r	   6test_w_single_factory_single_for__wo_permission_w_namez@Test_view.test_w_single_factory_single_for__wo_permission_w_name  s   ,/=		 		'F 	' &'h)V9,OX../3**1-a0"5!!!$Q'
+W50 9i"8&)L	N*,=>*E2*Y	,BC*I6*F3*I6**1-a0"5!!!$Q'
+-=>0$7"i9**1-a0"5!!!$Q'
+-=>0$7"i9**1-a0"5!!!$Q'
+-=>0$7"i9r   c                    ddl m} ddlm}  G d d|      } G d dt              } G d d	t              }t               }| j                  |||g|d
|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d||fd
|f       | j                  |d   d   d       |d   d   }| j                  |j                  |u        t	               }	t	               }
 ||	|
      }| j                  t        ||             | j                  |j                  |
u        | j                  t        |j                  |             | j                  |j                  j                  |	u        | j                  |d   d   ||f       | j                  |d   d   |       | j                  |d   d   d
       | j                  |d   d   d       y )Nr   rT   r   c                       e Zd Zy)NTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>.IViewTypeNrZ   r   r   r	   r  r    r\   r   r  c                       e Zd Zd Zy)JTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>._Viewc                     || _         y r   ru   rv   s     r	   rw   zSTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>._View.__init__  rx   r   Nry   r   r   r	   r  r    r{   r   r  c                       e Zd Zd Zy)KTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>._View2c                      || _         || _        y r   r"   requestr   r"   r  s      r	   rw   zTTest_view.test_w_multiple_factory_single_for__wo_permission.<locals>._View2.__init__      &&r   Nry   r   r   r	   _View2r        'r   r  r   r  r   r   r   r   r  r   r   r   r   r   r   r   )r^   rU   r   r   r=   r_   r   r   r   r,   r>   r   r  r"   )r   rU   r   r  r  r  ra   r   r>   r"   r  r  s               r	   1test_w_multiple_factory_single_for__wo_permissionz;Test_view.test_w_multiple_factory_single_for__wo_permission  s   ,/		 		'F 	'	'V 	' &'hB%< 	 	)**1-a0"5!!!$Q'
+W50 9i"8"iH	J*,=>.#501((w(
401/0
4<<78,,78*Y	,BC*I6*B/*I6r   c                 J   ddl m} ddlm}  G d d|      } G d dt              }t               }| j                  ||g|d|fd	
       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d||fd|f       | j                  |d   d   d       |d   d   }t	               }t	               }	 |||	      }
| j                  |
j                  |u        | j                  |
j                  |	u        | j                  |j                  |u        | j                  |d   d   ||f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       y )Nr   rT   r   c                       e Zd Zy)KTest_view.test_w_single_factory_single_for__w_permission.<locals>.IViewTypeNrZ   r   r   r	   r  r    r\   r   r  c                       e Zd Zd Zy)GTest_view.test_w_single_factory_single_for__w_permission.<locals>._Viewc                      || _         || _        y r   r  r  s      r	   rw   zPTest_view.test_w_single_factory_single_for__w_permission.<locals>._View.__init__  r  r   Nry   r   r   r	   r  r     r  r   r  r   r   )r  r   r   r   r   r   r  r   r   r   r   r   r   r   )r^   rU   r   r   r=   r_   r   r   r   r,   r"   r  r>   )r   rU   r   r  r  ra   r   r>   r"   r  r  s              r	   .test_w_single_factory_single_for__w_permissionz8Test_view.test_w_single_factory_single_for__w_permission  s   ,/		 		'F 	' &'hBi\!* 	 	,**1-a0"5!!!$Q'
+W50 9i"8"iH	J*,=>.#((w(/0/0501*Y	,BC*I6*B/*I6r   c           	         ddl m} ddlm}  G d d|      } G d dt              }t               }| j                  ||g|d|fd	d
       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d||fd|f       | j                  |d   d   d       |d   d   }|j                  }| j                  |j                  dd	i       y )Nr   rT   r   c                       e Zd Zy)]Test_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs.<locals>.IViewTypeNrZ   r   r   r	   r  r    r\   r   r  c                       e Zd Zd Zd Zy)YTest_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs.<locals>._Viewc                      || _         || _        y r   r  r  s      r	   rw   zbTest_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs.<locals>._View.__init__!  r  r   c                      y r   r   r   s    r	   r   z]Test_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs.<locals>._View.bar$  rq  r   Nr0   r1   r2   rw   r   r   r   r	   r  r         'r   r  r   r   )r   )r  r   r  r   r   r   r   r  r   r   r   r^   rU   r   r   r=   r_   r   r   r   checkerry  	r   rU   r   r  r  ra   r   r>   r  s	            r	   @test_w_single_factory_single_for__w_permission_and_allowed_attrszJTest_view.test_w_single_factory_single_for__w_permission_and_allowed_attrs  s   ,/		 		F 	 &'hBi\!*x 	 	I**1-a0"5!!!$Q'
+W50 9i"8"iH	J*,=>.#//005)2DEr   c           	         ddl m} ddlm}  G d d|      } G d dt              }t               }| j                  ||g|d|fd	|f
       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d||fd|f       | j                  |d   d   d       |d   d   }|j                  }| j                  |j                  dd	i       y )Nr   rT   r   c                       e Zd Zd Zy)]Test_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>.IViewTypec                      y r   r   r   s    r	   r   zaTest_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>.IViewType.bar9  rq  r   Nrr  r   r   r	   r  r  8  rs  r   r  c                       e Zd Zd Zd Zy)YTest_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>._Viewc                      || _         || _        y r   r  r  s      r	   rw   zbTest_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>._View.__init__<  r  r   c                      y r   r   r   s    r	   r   z]Test_view.test_w_single_factory_single_for__w_permission_and_allowed_iface.<locals>._View.bar?  rq  r   Nr  r   r   r	   r  r  ;  r  r   r  r   r   )r  r   r  r   r   r   r   r  r   r   r   r  r  s	            r	   @test_w_single_factory_single_for__w_permission_and_allowed_ifacezJTest_view.test_w_single_factory_single_for__w_permission_and_allowed_iface4  s   ,/		 		F 	 &'hBi\!*yl 	 	L**1-a0"5!!!$Q'
+W50 9i"8"iH	J*,=>.#//005)2DEr   N)r0   r1   r2   r   r  r  r  r  r  r  r  r   r  r  r  r   r   r	   r  r  X  sp    !B.L$FF2(:T"7H 7 7> F F2 F Fr   r  c                   4    e Zd Zd Zd Zd Zd Zed        Zy)Test_resourcec                     ddl m}  ||i |S )Nr   )resource)r   r  )r   r   r   r  s       r	   r   zTest_resource._callFUTR  s    0$$$r   c           	          ddl m} ddlm}  G d d|      } G d d|      } G d d	t              }t               }| j                  || j                  ||f|d
|       y )Nr   rT   rV   c                       e Zd Zy)KTest_resource.test_w_allowed_interface_wo_permission.<locals>.IResourceTypeNrZ   r   r   r	   IResourceTyper  Y  r\   r   r   c                       e Zd Zd Zd Zy)CTest_resource.test_w_allowed_interface_wo_permission.<locals>.IViewc                       y r   r   r   r   r	   r`  zGTest_resource.test_w_allowed_interface_wo_permission.<locals>.IView.foo\  rq  r   c                       y r   r   r   r   r	   r   zGTest_resource.test_w_allowed_interface_wo_permission.<locals>.IView.bar^  rq  r   Nr  r   r   r	   r  r  [  r  r   r  c                       e Zd Zd Zd Zd Zy)GTest_resource.test_w_allowed_interface_wo_permission.<locals>._Resourcec                     || _         y r   ru   rv   s     r	   rw   zPTest_resource.test_w_allowed_interface_wo_permission.<locals>._Resource.__init__a  rx   r   c                       y r   r   r   r   r	   r`  zKTest_resource.test_w_allowed_interface_wo_permission.<locals>._Resource.fooc  rq  r   c                       y r   r   r   r   r	   r   zKTest_resource.test_w_allowed_interface_wo_permission.<locals>._Resource.bare  rq  r   Nr  r   r   r	   	_Resourcer  `  r  r   r
  r   )r  ro   )r   rU   rW   r   r  r
  ra   s          r	   r  z4Test_resource.test_w_allowed_interface_wo_permissionV  sa    ,C	I 		I 	
	 	 &'5--$ylM2.3 	 	5r   c           	          ddl m} ddlm}  G d d|      } G d dt              }t               }| j                  || j                  ||f|dd	
       y )Nr   rT   rV   c                       e Zd Zy)LTest_resource.test_w_allowed_attributes_wo_permission.<locals>.IResourceTypeNrZ   r   r   r	   r   r  p  r\   r   r   c                       e Zd Zd Zd Zd Zy)HTest_resource.test_w_allowed_attributes_wo_permission.<locals>._Resourcec                     || _         y r   ru   rv   s     r	   rw   zQTest_resource.test_w_allowed_attributes_wo_permission.<locals>._Resource.__init__s  rx   r   c                       y r   r   r   r   r	   r`  zLTest_resource.test_w_allowed_attributes_wo_permission.<locals>._Resource.foou  rq  r   c                       y r   r   r   r   r	   r   zLTest_resource.test_w_allowed_attributes_wo_permission.<locals>._Resource.barw  rq  r   Nr  r   r   r	   r
  r  r  r  r   r
  r   r  )r  ro   )r   rU   rW   r   r
  ra   s         r	   r  z5Test_resource.test_w_allowed_attributes_wo_permissionm  sU    ,C	I 		 	 &'5--$ylM2/= 	 	?r   c                    ddl m} ddlm} ddlm}  G d d|      } G d dt              }t               }| j                  |||d	       | j                  t        |j                        d
       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   dd	||f       | j                  |d   d   d       | j                  |d   d   |       | j                  |d   d   |f       | j                  |d   d
   |       | j                  |d   d   d	       | j                  |d   d   d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   d        | j                  |d   d|f       y )Nr   rT   r   r   c                       e Zd Zy)>Test_resource.test_wo_permission_w_name.<locals>.IResourceTypeNrZ   r   r   r	   r   r    r\   r   r   c                       e Zd Zd Zd Zd Zy):Test_resource.test_wo_permission_w_name.<locals>._Resourcec                     || _         y r   ru   rv   s     r	   rw   zCTest_resource.test_wo_permission_w_name.<locals>._Resource.__init__  rx   r   c                       y r   r   r   r   r	   r`  z>Test_resource.test_wo_permission_w_name.<locals>._Resource.foo  rq  r   c                       y r   r   r   r   r	   r   z>Test_resource.test_wo_permission_w_name.<locals>._Resource.bar  rq  r   Nr  r   r   r	   r
  r    r  r   r
  r   r   r   r   r   r   r  r   r   r   r   r   r   r   r&  )r   rU   r   r   r   r
  ra   r   s           r	   test_wo_permission_w_namez'Test_resource.test_wo_permission_w_name  sQ   ,=/	I 		 	 &'h	=&AX../3**1-a0"5!!!$Q'
+W50$fmYG	I*,=>*I6*],<=*I6*F3*I6**1-a0"5!!!$Q'
+-=>0$7"m)<=**1-a0"5!!!$Q'
+-=>0$7"i9r   c                    ddl m} ddlm}  G d d|      } G d dt              }t               }| j                  |||dd	d
       | j                  t        |j                        d       | j                  |j                  d   d   d       |j                  d   d   }| j                  |d   |       | j                  |d   dd||f       | j                  |d   d   d       |d   d   }| j                  |j                  |u        t	               } ||      }	|	j                  }
| j                  |
j                  dd	i       | j                  |	j                  |u        | j                  |d   d   |f       | j                  |d   d   |       | j                  |d   d   d       | j                  |d   d   d       y )Nr   rT   r   c                       e Zd Zy)6Test_resource.test_w_permission.<locals>.IResourceTypeNrZ   r   r   r	   r   r    r\   r   r   c                       e Zd Zd Zd Zd Zy)2Test_resource.test_w_permission.<locals>._Resourcec                     || _         y r   ru   rv   s     r	   rw   z;Test_resource.test_w_permission.<locals>._Resource.__init__  rx   r   c                       y r   r   r   r   r	   r`  z6Test_resource.test_w_permission.<locals>._Resource.foo  rq  r   c                       y r   r   r   r   r	   r   z6Test_resource.test_w_permission.<locals>._Resource.bar  rq  r   Nr  r   r   r	   r
  r     r  r   r
  r   r   )r`  )r   r  r   r   r   r   r   r  r   r   r`  r   r   r   r   )r^   rU   r   r   r=   r_   r   r   r   r   r,   r>   rx  ry  r"   )r   rU   r   r   r
  ra   r   r>   r"   r  r  s              r	   test_w_permissionzTest_resource.test_w_permission  s   ,/	I 		 	 &'h	=&!*x 	 	IX../3**1-a0"5!!!$Q'
+W50$fmYG	I*,=>.#945(7#//005)2DE((G34*],<=*I6*F3*I6r   N)	r0   r1   r2   r   r  r  r  r   r$  r   r   r	   r  r  P  s+    %5.?$':R !7 !7r   r  c                  .     G d dt               }  |        S )Nc                       e Zd ZdZd Zd Zy)$_makeConfigContext.<locals>._Contextr   c                     g | _         y r   )r   r   s    r	   rw   z-_makeConfigContext.<locals>._Context.__init__  s	    DMr   c                 >    | j                   j                  ||f       y r   )r   append)r   r   r   s      r	   r   z+_makeConfigContext.<locals>._Context.action  s    MM  $,r   N)r0   r1   r2   inforw   r   r   r   r	   _Contextr'    s    		-r   r,  )r=   )r,  s    r	   r_   r_     s    -6 - :r   c                     t        j                  t        j                  t              t        j                  t              t        j                  t
              t        j                  t              t        j                  t              t        j                  t              t        j                  t              t        j                  t              t        j                  t              f	      S r   )unittest	TestSuite	makeSuiter   r4   rO   r   r=  r}  r  r  r   r   r   r	   
test_suiter1    s    <(01<(?+<(>*9%=)/0
 
 
r   )__doc__r.  r   TestCaser   r4   rO   r   r   r=  r}  r  r  r_   r1  r   r   r	   <module>r4     s    #8$$ #03H-- 3>Y*8$$ Y*vFG8,, FGPq:h'' q:hI58$$ I5V">X&& ">JuF!! uFpz7H%% z7zr   