U
    ,WX                     @   sz  d Z ddlZG dd dejZG dd dejZG dd dejZG d	d
 d
ejZG dd dejZG dd dejZG dd dejZ	G dd dejZ
G dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd  d ejZG d!d" d"ejZG d#d$ d$ejZG d%d& d&ejZG d'd( d(ejZdad)d* Zd+d, ZdS )-z Tests for z.c._api
    Nc                   @   sT   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
dd Zdd ZdS )Test_getSiteManagerr   setUptearDownc                 O   s   ddl m} |||S )Nr   )getSiteManager)zope.component._apir   )selfargskwr    r   @/usr/lib/python3/dist-packages/zope/component/tests/test__api.py_callFUT   s    zTest_getSiteManager._callFUTc                 C   s(   ddl m} |  }| || d S )Nr   IComponentLookup)zope.component.interfacesr   r   
assertTrue
providedBy)r   r   smr   r   r   test_sm_is_IComponentLookup   s    z/Test_getSiteManager.test_sm_is_IComponentLookupc                 C   s8   ddl m} |  }| ||k | |  |k d S )Nr   )base)zope.component.globalregistryr   r   r   )r   r   r   r   r   r   test_sm_is_singleton    s    z(Test_getSiteManager.test_sm_is_singletonc                 C   s   |  | d |  k d S N)r   r   r   r   r   r   test_w_None&   s    zTest_getSiteManager.test_w_Nonec                 C   s2   ddl m} t }||}| | ||k d S )Nr   ConformsToIComponentLookup)zope.component.tests.examplesr   objectr   r   )r   r   sitemanagercontextr   r   r   (test_getSiteManager_w_conforming_context)   s    z<Test_getSiteManager.test_getSiteManager_w_conforming_contextc                 C   s"   ddl m} | || jt  d S )Nr   ComponentLookupError)r   r#   assertRaisesr   r   r   r#   r   r   r   0test_getSiteManager_w_invalid_context_no_adapter/   s    zDTest_getSiteManager.test_getSiteManager_w_invalid_context_no_adapterc                    sh   ddl m} ddlm} ddlm} | }t   fdd}|||f|d | | 	t  k d S )Nr   	InterfacegetGlobalSiteManagerr   c                    s    S r   r   )xr   r   r   _adapt9   s    zSTest_getSiteManager.test_getSiteManager_w_invalid_context_w_adapter.<locals>._adapt )
zope.interfacer(   r   r*   r   r   r   registerAdapterr   r   )r   r(   r*   r   gsmr-   r   r,   r   /test_getSiteManager_w_invalid_context_w_adapter3   s    zCTest_getSiteManager.test_getSiteManager_w_invalid_context_w_adapterN)__name__
__module____qualname__zope.component.testingr   r   r   r   r   r   r!   r&   r2   r   r   r   r   r      s   r   c                   @   s4   e Zd ZddlmZmZ dd Zdd Zdd Zd	S )
Test_getAdapterInContextr   r   c                 O   s   ddl m} |||S )Nr   )getAdapterInContext)zope.componentr8   )r   r	   r
   r8   r   r   r   r   C   s    z!Test_getAdapterInContext._callFUTc                 C   sD   ddl m} ddlm} G dd d|}| j|| jt |d d d S )Nr   r'   r"   c                   @   s   e Zd ZdS )z0Test_getAdapterInContext.test_miss.<locals>.IFooNr3   r4   r5   r   r   r   r   IFooJ   s   r;   r    r/   r(   r   r#   r$   r   r   r   r(   r#   r;   r   r   r   	test_missG   s       z"Test_getAdapterInContext.test_missc                 C   s*  ddl m} ddl m} ddlm} ddlm} ddlm} G dd d|}G d	d
 d
|}||G dd dt	}||G dd dt	}	||G dd dt	}
G dd d|}| }|
||f|d |d|fd}|
|	|f|d |
 }| j||||d}| |j|	k | |j|k d S )Nr   r'   implementer
Componentsr)   r   c                   @   s   e Zd ZdS )z6Test_getAdapterInContext.test_hit_via_sm.<locals>.IFooNr:   r   r   r   r   r;   U   s   r;   c                   @   s   e Zd ZdS )z6Test_getAdapterInContext.test_hit_via_sm.<locals>.IBarNr:   r   r   r   r   IBarW   s   rD   c                   @   s   e Zd Zdd ZdS )z8Test_getAdapterInContext.test_hit_via_sm.<locals>.Globalc                 S   s
   || _ d S r   r<   r   r    r   r   r   __init__[   s    zATest_getAdapterInContext.test_hit_via_sm.<locals>.Global.__init__Nr3   r4   r5   rF   r   r   r   r   GlobalY   s   rH   c                   @   s   e Zd Zdd ZdS )z7Test_getAdapterInContext.test_hit_via_sm.<locals>.Localc                 S   s
   || _ d S r   r<   rE   r   r   r   rF   _   s    z@Test_getAdapterInContext.test_hit_via_sm.<locals>.Local.__init__NrG   r   r   r   r   Local]   s   rI   c                   @   s   e Zd ZdS )z5Test_getAdapterInContext.test_hit_via_sm.<locals>.BarNr:   r   r   r   r   Bara   s   rJ   c                   @   s   e Zd Zdd ZdS )z9Test_getAdapterInContext.test_hit_via_sm.<locals>.Contextc                 S   s
   || _ d S r   r   r   r   r   r   r   rF   e   s    zBTest_getAdapterInContext.test_hit_via_sm.<locals>.Context.__init__NrG   r   r   r   r   Contextd   s   rM   r.   sm1basesr<   r/   r(   rA   zope.interface.registryrC   r9   r*   r   r   r   r0   r   r   	__class__r    r   r(   rA   rC   r*   r   r;   rD   rH   rI   rJ   rM   r1   rN   baradaptedr   r   r   test_hit_via_smO   s,    z(Test_getAdapterInContext.test_hit_via_smN)	r3   r4   r5   r6   r   r   r   r?   rW   r   r   r   r   r7   ?   s   r7   c                   @   sL   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
dd ZdS )Test_queryAdapterInContextr   r   c                 O   s   ddl m} |||S )Nr   queryAdapterInContext)r9   rZ   )r   r	   r
   rZ   r   r   r   r   u   s    z#Test_queryAdapterInContext._callFUTc                 C   sD   ddl m} ddlm} G dd d|}| |t |d dd  d S )Nr   r'   rY   c                   @   s   e Zd ZdS )z2Test_queryAdapterInContext.test_miss.<locals>.IFooNr:   r   r   r   r   r;   |   s   r;   r<   )r/   r(   r9   rZ   assertEqualr   )r   r(   rZ   r;   r   r   r   r?   y   s     z$Test_queryAdapterInContext.test_missc                    sb   ddl m} ddlm} G dd d| t G  fdddt}| ||  d dk d S )	Nr   r'   rY   c                   @   s   e Zd ZdS )zATest_queryAdapterInContext.test_w_object_conforming.<locals>.IFooNr:   r   r   r   r   r;      s   r;   c                       s   e Zd Zd fdd	ZdS )z@Test_queryAdapterInContext.test_w_object_conforming.<locals>.FooNc                    s   | krS |S r   r   r   ifacedefaultr;   _adaptedr   r   __conform__   s    zLTest_queryAdapterInContext.test_w_object_conforming.<locals>.Foo.__conform__)Nr3   r4   r5   ra   r   r_   r   r   Foo   s   rc   r<   )r/   r(   r9   rZ   r   r   r   r(   rZ   rc   r   r_   r   test_w_object_conforming   s    z3Test_queryAdapterInContext.test_w_object_conformingc                    s^   ddl m} ddlm} G dd d| t G  fdddt}| || d dd  d S )	Nr   r'   rY   c                   @   s   e Zd ZdS )zTTest_queryAdapterInContext.test___conform___raises_TypeError_via_class.<locals>.IFooNr:   r   r   r   r   r;      s   r;   c                       s   e Zd Zd fdd	ZdS )zSTest_queryAdapterInContext.test___conform___raises_TypeError_via_class.<locals>.FooNc                    s   | krS |S r   r   r\   r_   r   r   ra      s    z_Test_queryAdapterInContext.test___conform___raises_TypeError_via_class.<locals>.Foo.__conform__)Nrb   r   r_   r   r   rc      s   rc   r<   )r/   r(   r9   rZ   r   r[   rd   r   r_   r   +test___conform___raises_TypeError_via_class   s    zFTest_queryAdapterInContext.test___conform___raises_TypeError_via_classc                 C   sX   ddl m} ddlm} G dd d|}t }G dd dt}| jt|| |d d d S )	Nr   r'   rY   c                   @   s   e Zd ZdS )zSTest_queryAdapterInContext.test___conform___raises_TypeError_via_inst.<locals>.IFooNr:   r   r   r   r   r;      s   r;   c                   @   s   e Zd ZdddZdS )zRTest_queryAdapterInContext.test___conform___raises_TypeError_via_inst.<locals>.FooNc                 S   s   t d S r   )	TypeErrorr\   r   r   r   ra      s    z^Test_queryAdapterInContext.test___conform___raises_TypeError_via_inst.<locals>.Foo.__conform__)Nrb   r   r   r   r   rc      s   rc   r<   )r/   r(   r9   rZ   r   r$   rg   )r   r(   rZ   r;   r`   rc   r   r   r   *test___conform___raises_TypeError_via_inst   s       zETest_queryAdapterInContext.test___conform___raises_TypeError_via_instc                 C   sn   ddl m} ddl m} ddlm} G dd d|}||G dd dt}| }| |||d d	|k d S )
Nr   r'   r@   rY   c                   @   s   e Zd ZdS )zCTest_queryAdapterInContext.test_w_object_implementing.<locals>.IFooNr:   r   r   r   r   r;      s   r;   c                   @   s   e Zd ZdS )zBTest_queryAdapterInContext.test_w_object_implementing.<locals>.FooNr:   r   r   r   r   rc      s   rc   r<   )r/   r(   rA   r9   rZ   r   r   )r   r(   rA   rZ   r;   rc   Zfoor   r   r   test_w_object_implementing   s    z5Test_queryAdapterInContext.test_w_object_implementingN)r3   r4   r5   r6   r   r   r   r?   re   rf   rh   ri   r   r   r   r   rX   q   s   rX   c                   @   sL   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
dd ZdS )Test_getAdapterr   r   c                 O   s   ddl m} |||S )Nr   )
getAdapter)r9   rk   )r   r	   r
   rk   r   r   r   r      s    zTest_getAdapter._callFUTc                 C   sB   ddl m} ddlm} G dd d|}| || jt |d d S )Nr   r'   r"   c                   @   s   e Zd ZdS )z5Test_getAdapter.test_anonymous_nonesuch.<locals>.IFooNr:   r   r   r   r   r;      s   r;   r.   r=   r>   r   r   r   test_anonymous_nonesuch   s       z'Test_getAdapter.test_anonymous_nonesuchc                 C   sB   ddl m} ddlm} G dd d|}| || jt |d d S )Nr   r'   r"   c                   @   s   e Zd ZdS )z1Test_getAdapter.test_named_nonesuch.<locals>.IFooNr:   r   r   r   r   r;      s   r;   rU   r=   r>   r   r   r   test_named_nonesuch   s       z#Test_getAdapter.test_named_nonesuchc           
      C   s   ddl m} ddl m} ddlm} G dd d|}G dd d|}||G d	d
 d
t}||G dd dt}| ||f|d | }| ||d}	| |	j	|k | |	j
|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )z0Test_getAdapter.test_anonymous_hit.<locals>.IFooNr:   r   r   r   r   r;      s   r;   c                   @   s   e Zd ZdS )z0Test_getAdapter.test_anonymous_hit.<locals>.IBarNr:   r   r   r   r   rD      s   rD   c                   @   s   e Zd ZdS )z/Test_getAdapter.test_anonymous_hit.<locals>.BarNr:   r   r   r   r   rJ      s   rJ   c                   @   s   e Zd Zdd ZdS )z/Test_getAdapter.test_anonymous_hit.<locals>.Bazc                 S   s
   || _ d S r   r<   rE   r   r   r   rF      s    z8Test_getAdapter.test_anonymous_hit.<locals>.Baz.__init__NrG   r   r   r   r   Baz   s   rn   r.   r/   r(   rA   r9   r*   r   r0   r   r   rS   r    
r   r(   rA   r*   r;   rD   rJ   rn   rU   rV   r   r   r   test_anonymous_hit   s    z"Test_getAdapter.test_anonymous_hitc                 C   s   ddl m} ddl m} ddlm} G dd d|}||G dd dt}| |d	|d
 t }| ||d
}| |j	|k | |j
|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )zDTest_getAdapter.test_anonymous_hit_registered_for_None.<locals>.IFooNr:   r   r   r   r   r;      s   r;   c                   @   s   e Zd Zdd ZdS )zCTest_getAdapter.test_anonymous_hit_registered_for_None.<locals>.Bazc                 S   s
   || _ d S r   r<   rE   r   r   r   rF      s    zLTest_getAdapter.test_anonymous_hit_registered_for_None.<locals>.Baz.__init__NrG   r   r   r   r   rn      s   rn   r   r.   ro   )r   r(   rA   r*   r;   rn   ZctxrV   r   r   r   &test_anonymous_hit_registered_for_None   s    z6Test_getAdapter.test_anonymous_hit_registered_for_Nonec           
      C   s   ddl m} ddl m} ddlm} G dd d|}G dd d|}||G d	d
 d
t}||G dd dt}| ||f|d | }| ||d}	| |	j	|k | |	j
|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )z,Test_getAdapter.test_named_hit.<locals>.IFooNr:   r   r   r   r   r;      s   r;   c                   @   s   e Zd ZdS )z,Test_getAdapter.test_named_hit.<locals>.IBarNr:   r   r   r   r   rD      s   rD   c                   @   s   e Zd ZdS )z+Test_getAdapter.test_named_hit.<locals>.BarNr:   r   r   r   r   rJ      s   rJ   c                   @   s   e Zd Zdd ZdS )z+Test_getAdapter.test_named_hit.<locals>.Bazc                 S   s
   || _ d S r   r<   rE   r   r   r   rF     s    z4Test_getAdapter.test_named_hit.<locals>.Baz.__init__NrG   r   r   r   r   rn      s   rn   namedro   rp   r   r   r   test_named_hit   s    zTest_getAdapter.test_named_hitNr3   r4   r5   r6   r   r   r   rl   rm   rq   rr   rt   r   r   r   r   rj      s   rj   c                   @   sL   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
dd ZdS )Test_queryAdapterr   r   c                 O   s   ddl m} |||S )Nr   )queryAdapter)r9   rw   )r   r	   r
   rw   r   r   r   r     s    zTest_queryAdapter._callFUTc                 C   s:   ddl m} G dd d|}| | t |ddd d S )Nr   r'   c                   @   s   e Zd ZdS )z7Test_queryAdapter.test_anonymous_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   r.   	<default>r/   r(   r[   r   r   r   r(   r;   r   r   r   rl     s
    z)Test_queryAdapter.test_anonymous_nonesuchc                 C   s8   ddl m} G dd d|}| | t |dd  d S )Nr   r'   c                   @   s   e Zd ZdS )z3Test_queryAdapter.test_named_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   rU   ry   rz   r   r   r   rm     s    z%Test_queryAdapter.test_named_nonesuchc           
      C   s   ddl m} ddl m} ddlm} G dd d|}G dd d|}||G d	d
 d
t}||G dd dt}| ||f|d | }| ||d}	| |	j	|k | |	j
|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )z2Test_queryAdapter.test_anonymous_hit.<locals>.IFooNr:   r   r   r   r   r;   #  s   r;   c                   @   s   e Zd ZdS )z2Test_queryAdapter.test_anonymous_hit.<locals>.IBarNr:   r   r   r   r   rD   %  s   rD   c                   @   s   e Zd ZdS )z1Test_queryAdapter.test_anonymous_hit.<locals>.BarNr:   r   r   r   r   rJ   '  s   rJ   c                   @   s   e Zd Zdd ZdS )z1Test_queryAdapter.test_anonymous_hit.<locals>.Bazc                 S   s
   || _ d S r   r<   rE   r   r   r   rF   ,  s    z:Test_queryAdapter.test_anonymous_hit.<locals>.Baz.__init__NrG   r   r   r   r   rn   *  s   rn   r.   ro   rp   r   r   r   rq     s    z$Test_queryAdapter.test_anonymous_hitc           
      C   s   ddl m} ddl m} ddlm} G dd d|}G dd d|}||G d	d
 d
t}||G dd dt}| ||f|d | }| ||d}	| |	j	|k | |	j
|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )z.Test_queryAdapter.test_named_hit.<locals>.IFooNr:   r   r   r   r   r;   8  s   r;   c                   @   s   e Zd ZdS )z.Test_queryAdapter.test_named_hit.<locals>.IBarNr:   r   r   r   r   rD   :  s   rD   c                   @   s   e Zd ZdS )z-Test_queryAdapter.test_named_hit.<locals>.BarNr:   r   r   r   r   rJ   <  s   rJ   c                   @   s   e Zd Zdd ZdS )z-Test_queryAdapter.test_named_hit.<locals>.Bazc                 S   s
   || _ d S r   r<   rE   r   r   r   rF   A  s    z6Test_queryAdapter.test_named_hit.<locals>.Baz.__init__NrG   r   r   r   r   rn   ?  s   rn   rs   ro   rp   r   r   r   rt   4  s    z Test_queryAdapter.test_named_hitc                 C   s,  ddl m} ddl m} ddlm} ddlm} ddlm} G dd d|}G d	d
 d
|}||G dd dt	}||G dd dt	}	||G dd dt	}
G dd d|}| }|
||f|d |d|fd}|
|	|f|d |
 }| j||d||d}| |j|	k | |j|k d S )Nr   r'   r@   rB   r)   r   c                   @   s   e Zd ZdS )z+Test_queryAdapter.test_nested.<locals>.IFooNr:   r   r   r   r   r;   O  s   r;   c                   @   s   e Zd ZdS )z+Test_queryAdapter.test_nested.<locals>.IBarNr:   r   r   r   r   rD   Q  s   rD   c                   @   s   e Zd Zdd ZdS )z-Test_queryAdapter.test_nested.<locals>.Globalc                 S   s
   || _ d S r   r<   rE   r   r   r   rF   U  s    z6Test_queryAdapter.test_nested.<locals>.Global.__init__NrG   r   r   r   r   rH   S  s   rH   c                   @   s   e Zd Zdd ZdS )z,Test_queryAdapter.test_nested.<locals>.Localc                 S   s
   || _ d S r   r<   rE   r   r   r   rF   Y  s    z5Test_queryAdapter.test_nested.<locals>.Local.__init__NrG   r   r   r   r   rI   W  s   rI   c                   @   s   e Zd ZdS )z*Test_queryAdapter.test_nested.<locals>.BarNr:   r   r   r   r   rJ   [  s   rJ   c                   @   s   e Zd Zdd ZdS )z.Test_queryAdapter.test_nested.<locals>.Contextc                 S   s
   || _ d S r   rK   rL   r   r   r   rF   _  s    z7Test_queryAdapter.test_nested.<locals>.Context.__init__NrG   r   r   r   r   rM   ^  s   rM   r.   rN   rO   r<   rQ   rT   r   r   r   test_nestedI  s,    zTest_queryAdapter.test_nestedN)r3   r4   r5   r6   r   r   r   rl   rm   rq   rt   r{   r   r   r   r   rv   
  s   rv   c                   @   sL   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
dd ZdS )Test_getMultiAdapterr   r   c                 O   s   ddl m} |||S )Nr   )getMultiAdapter)r9   r}   )r   r	   r
   r}   r   r   r   r   o  s    zTest_getMultiAdapter._callFUTc                 C   sH   ddl m} ddlm} G dd d|}| || jt t f|d d S )Nr   r'   r"   c                   @   s   e Zd ZdS )z:Test_getMultiAdapter.test_anonymous_nonesuch.<locals>.IFooNr:   r   r   r   r   r;   v  s   r;   r.   r=   r>   r   r   r   rl   s  s     
  z,Test_getMultiAdapter.test_anonymous_nonesuchc                 C   sH   ddl m} ddlm} G dd d|}| || jt t f|d d S )Nr   r'   r"   c                   @   s   e Zd ZdS )z6Test_getMultiAdapter.test_named_nonesuch.<locals>.IFooNr:   r   r   r   r   r;   ~  s   r;   rU   r=   r>   r   r   r   rm   {  s     
  z(Test_getMultiAdapter.test_named_nonesuchc                 C   s  ddl m} ddl m} ddlm} G dd d|}G dd d|}G d	d
 d
|}||G dd dt}||G dd dt}||G dd dt}	| |	||f|d | }
| }| |
|f|d}| |j	|	k | |j
|
k | |j|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )z5Test_getMultiAdapter.test_anonymous_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd ZdS )z5Test_getMultiAdapter.test_anonymous_hit.<locals>.IBarNr:   r   r   r   r   rD     s   rD   c                   @   s   e Zd ZdS )z5Test_getMultiAdapter.test_anonymous_hit.<locals>.IBazNr:   r   r   r   r   IBaz  s   r~   c                   @   s   e Zd ZdS )z4Test_getMultiAdapter.test_anonymous_hit.<locals>.BarNr:   r   r   r   r   rJ     s   rJ   c                   @   s   e Zd ZdS )z4Test_getMultiAdapter.test_anonymous_hit.<locals>.BazNr:   r   r   r   r   rn     s   rn   c                   @   s   e Zd Zdd ZdS )z;Test_getMultiAdapter.test_anonymous_hit.<locals>.FooAdapterc                 S   s   || | _ | _d S r   firstsecondr   r   r   r   r   r   rF     s    zDTest_getMultiAdapter.test_anonymous_hit.<locals>.FooAdapter.__init__NrG   r   r   r   r   
FooAdapter  s   r   r.   r/   r(   rA   r9   r*   r   r0   r   r   rS   r   r   r   r(   rA   r*   r;   rD   r~   rJ   rn   r   rU   bazrV   r   r   r   rq     s0       z'Test_getMultiAdapter.test_anonymous_hitc                 C   s   ddl m} ddl m} ddlm} G dd d|}G dd d|}G d	d
 d
|}||G dd dt}||G dd dt}| ||d f|d | }	t }
| |	|
f|d}| |j	|k | |j
|	k | |j|
k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )zITest_getMultiAdapter.test_anonymous_hit_registered_for_None.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd ZdS )zITest_getMultiAdapter.test_anonymous_hit_registered_for_None.<locals>.IBarNr:   r   r   r   r   rD     s   rD   c                   @   s   e Zd ZdS )zITest_getMultiAdapter.test_anonymous_hit_registered_for_None.<locals>.IBazNr:   r   r   r   r   r~     s   r~   c                   @   s   e Zd ZdS )zHTest_getMultiAdapter.test_anonymous_hit_registered_for_None.<locals>.BarNr:   r   r   r   r   rJ     s   rJ   c                   @   s   e Zd Zdd ZdS )zOTest_getMultiAdapter.test_anonymous_hit_registered_for_None.<locals>.FooAdapterc                 S   s   || | _ | _d S r   r   r   r   r   r   rF     s    zXTest_getMultiAdapter.test_anonymous_hit_registered_for_None.<locals>.FooAdapter.__init__NrG   r   r   r   r   r     s   r   r.   r   )r   r(   rA   r*   r;   rD   r~   rJ   r   rU   r   rV   r   r   r   rr     s,       z;Test_getMultiAdapter.test_anonymous_hit_registered_for_Nonec                 C   s  ddl m} ddl m} ddlm} G dd d|}G dd d|}G d	d
 d
|}||G dd dt}||G dd dt}||G dd dt}	| |	||f|d | }
| }| |
|f|d}| |j	|	k | |j
|
k | |j|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )z1Test_getMultiAdapter.test_named_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd ZdS )z1Test_getMultiAdapter.test_named_hit.<locals>.IBarNr:   r   r   r   r   rD     s   rD   c                   @   s   e Zd ZdS )z1Test_getMultiAdapter.test_named_hit.<locals>.IBazNr:   r   r   r   r   r~     s   r~   c                   @   s   e Zd ZdS )z0Test_getMultiAdapter.test_named_hit.<locals>.BarNr:   r   r   r   r   rJ     s   rJ   c                   @   s   e Zd ZdS )z0Test_getMultiAdapter.test_named_hit.<locals>.BazNr:   r   r   r   r   rn     s   rn   c                   @   s   e Zd Zdd ZdS )z7Test_getMultiAdapter.test_named_hit.<locals>.FooAdapterc                 S   s   || | _ | _d S r   r   r   r   r   r   rF     s    z@Test_getMultiAdapter.test_named_hit.<locals>.FooAdapter.__init__NrG   r   r   r   r   r     s   r   rs   r   r   r   r   r   rt     s0       z#Test_getMultiAdapter.test_named_hitNru   r   r   r   r   r|   k  s   r|   c                   @   sT   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
dd Zdd ZdS )Test_queryMultiAdapterr   r   c                 O   s   ddl m} |||S )Nr   )queryMultiAdapter)r9   r   )r   r	   r
   r   r   r   r   r     s    zTest_queryMultiAdapter._callFUTc                 C   s@   ddl m} G dd d|}| | t t f|ddd d S )Nr   r'   c                   @   s   e Zd ZdS )z<Test_queryMultiAdapter.test_anonymous_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   r.   rx   ry   rz   r   r   r   rl     s    z.Test_queryMultiAdapter.test_anonymous_nonesuchc                 C   s>   ddl m} G dd d|}| | t t f|dd  d S )Nr   r'   c                   @   s   e Zd ZdS )z8Test_queryMultiAdapter.test_named_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   rU   ry   rz   r   r   r   rm     s
    z*Test_queryMultiAdapter.test_named_nonesuchc                 C   s  ddl m} ddl m} ddlm} G dd d|}G dd d|}G d	d
 d
|}||G dd dt}||G dd dt}||G dd dt}	| |	||f|d | }
| }| |
|f|d}| |j	|	k | |j
|
k | |j|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )z7Test_queryMultiAdapter.test_anonymous_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd ZdS )z7Test_queryMultiAdapter.test_anonymous_hit.<locals>.IBarNr:   r   r   r   r   rD     s   rD   c                   @   s   e Zd ZdS )z7Test_queryMultiAdapter.test_anonymous_hit.<locals>.IBazNr:   r   r   r   r   r~     s   r~   c                   @   s   e Zd ZdS )z6Test_queryMultiAdapter.test_anonymous_hit.<locals>.BarNr:   r   r   r   r   rJ     s   rJ   c                   @   s   e Zd ZdS )z6Test_queryMultiAdapter.test_anonymous_hit.<locals>.BazNr:   r   r   r   r   rn     s   rn   c                   @   s   e Zd Zdd ZdS )z=Test_queryMultiAdapter.test_anonymous_hit.<locals>.FooAdapterc                 S   s   || | _ | _d S r   r   r   r   r   r   rF     s    zFTest_queryMultiAdapter.test_anonymous_hit.<locals>.FooAdapter.__init__NrG   r   r   r   r   r     s   r   r.   r   r   r   r   r   rq     s0       z)Test_queryMultiAdapter.test_anonymous_hitc                 C   s  ddl m} ddl m} ddlm} G dd d|}G dd d|}G d	d
 d
|}||G dd dt}||G dd dt}||G dd dt}	| |	||f|d | }
| }| |
|f|d}| |j	|	k | |j
|
k | |j|k d S )Nr   r'   r@   r)   c                   @   s   e Zd ZdS )z3Test_queryMultiAdapter.test_named_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd ZdS )z3Test_queryMultiAdapter.test_named_hit.<locals>.IBarNr:   r   r   r   r   rD     s   rD   c                   @   s   e Zd ZdS )z3Test_queryMultiAdapter.test_named_hit.<locals>.IBazNr:   r   r   r   r   r~     s   r~   c                   @   s   e Zd ZdS )z2Test_queryMultiAdapter.test_named_hit.<locals>.BarNr:   r   r   r   r   rJ     s   rJ   c                   @   s   e Zd ZdS )z2Test_queryMultiAdapter.test_named_hit.<locals>.BazNr:   r   r   r   r   rn     s   rn   c                   @   s   e Zd Zdd ZdS )z9Test_queryMultiAdapter.test_named_hit.<locals>.FooAdapterc                 S   s   || | _ | _d S r   r   r   r   r   r   rF     s    zBTest_queryMultiAdapter.test_named_hit.<locals>.FooAdapter.__init__NrG   r   r   r   r   r     s   r   rs   r   r   r   r   r   rt     s0       z%Test_queryMultiAdapter.test_named_hitc                 C   sr  ddl m} ddl m} ddlm} ddlm} ddlm} G dd d|}G d	d
 d
|}G dd d|}||G dd dt	}	||G dd dt	}
||G dd dt	}||G dd dt	}G dd d|}| }|
|||f|d |d|fd}|
|||f|d |	 }|
 }| j||f|d||d}| |j|k | |j|k | |j|k d S )Nr   r'   r@   rB   r)   r   c                   @   s   e Zd ZdS )z0Test_queryMultiAdapter.test_nested.<locals>.IFooNr:   r   r   r   r   r;   /  s   r;   c                   @   s   e Zd ZdS )z0Test_queryMultiAdapter.test_nested.<locals>.IBarNr:   r   r   r   r   rD   1  s   rD   c                   @   s   e Zd ZdS )z0Test_queryMultiAdapter.test_nested.<locals>.IBazNr:   r   r   r   r   r~   3  s   r~   c                   @   s   e Zd ZdS )z/Test_queryMultiAdapter.test_nested.<locals>.BarNr:   r   r   r   r   rJ   5  s   rJ   c                   @   s   e Zd ZdS )z/Test_queryMultiAdapter.test_nested.<locals>.BazNr:   r   r   r   r   rn   8  s   rn   c                   @   s   e Zd Zdd ZdS )z2Test_queryMultiAdapter.test_nested.<locals>.Globalc                 S   s   || | _ | _d S r   r   r   r   r   r   rF   =  s    z;Test_queryMultiAdapter.test_nested.<locals>.Global.__init__NrG   r   r   r   r   rH   ;  s   rH   c                   @   s   e Zd Zdd ZdS )z1Test_queryMultiAdapter.test_nested.<locals>.Localc                 S   s   || | _ | _d S r   r   r   r   r   r   rF   A  s    z:Test_queryMultiAdapter.test_nested.<locals>.Local.__init__NrG   r   r   r   r   rI   ?  s   rI   c                   @   s   e Zd Zdd ZdS )z3Test_queryMultiAdapter.test_nested.<locals>.Contextc                 S   s
   || _ d S r   rK   rL   r   r   r   rF   D  s    z<Test_queryMultiAdapter.test_nested.<locals>.Context.__init__NrG   r   r   r   r   rM   C  s   rM   r.   rN   rO   r<   )r/   r(   rA   rR   rC   r9   r*   r   r   r   r0   r   r   rS   r   r   )r   r(   rA   rC   r*   r   r;   rD   r~   rJ   rn   rH   rI   rM   r1   rN   rU   r   rV   r   r   r   r{   )  s6    z"Test_queryMultiAdapter.test_nestedc                    s   ddl m} ddl m} ddlm  G dd d|}G dd d|}G d	d
 d
|}||G dd dt}||G dd dt}G  fdddt}| }	| }
| j|	|
f|d| d}| |d k d S )Nr   r'   r@   r"   c                   @   s   e Zd ZdS )z8Test_queryMultiAdapter.test_wo_sitemanager.<locals>.IFooNr:   r   r   r   r   r;   U  s   r;   c                   @   s   e Zd ZdS )z8Test_queryMultiAdapter.test_wo_sitemanager.<locals>.IBarNr:   r   r   r   r   rD   W  s   rD   c                   @   s   e Zd ZdS )z8Test_queryMultiAdapter.test_wo_sitemanager.<locals>.IBazNr:   r   r   r   r   r~   Y  s   r~   c                   @   s   e Zd ZdS )z7Test_queryMultiAdapter.test_wo_sitemanager.<locals>.BarNr:   r   r   r   r   rJ   [  s   rJ   c                   @   s   e Zd ZdS )z7Test_queryMultiAdapter.test_wo_sitemanager.<locals>.BazNr:   r   r   r   r   rn   ^  s   rn   c                       s   e Zd Z fddZdS )z;Test_queryMultiAdapter.test_wo_sitemanager.<locals>.Contextc                    s    d S r   r   r   r]   r"   r   r   ra   b  s    zGTest_queryMultiAdapter.test_wo_sitemanager.<locals>.Context.__conform__Nrb   r   r"   r   r   rM   a  s   rM   r.   r<   )r/   r(   rA   r   r#   r   r   r   r   r(   rA   r;   rD   r~   rJ   rn   rM   rU   r   rV   r   r"   r   test_wo_sitemanagerQ  s    z*Test_queryMultiAdapter.test_wo_sitemanagerN)r3   r4   r5   r6   r   r   r   rl   rm   rq   rt   r{   r   r   r   r   r   r     s   (r   c                   @   s<   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dS )Test_getAdaptersr   r   c                 O   s   ddl m} |||S )Nr   )getAdapters)r9   r   )r   r	   r
   r   r   r   r   r   n  s    zTest_getAdapters._callFUTc                 C   s<   ddl m} G dd d|}| t| t f|g  d S )Nr   r'   c                   @   s   e Zd ZdS )z,Test_getAdapters.test_nonesuch.<locals>.IFooNr:   r   r   r   r   r;   t  s   r;   )r/   r(   r[   listr   r   rz   r   r   r   test_nonesuchr  s    zTest_getAdapters.test_nonesuchc           	      C   s   ddl m} ddlm} G dd d|}G dd dt}G dd	 d	t}| }||d
| |j|d
|dd t| t f|}| t	|d dd |D }| 
d|k | 
d|k d S )Nr   r'   r)   c                   @   s   e Zd ZdS )z'Test_getAdapters.test_hit.<locals>.IFooNr:   r   r   r   r   r;   {  s   r;   c                   @   s   e Zd Zdd ZdS )z-Test_getAdapters.test_hit.<locals>.BarAdapterc                 S   s
   || _ d S r   r<   rE   r   r   r   rF   ~  s    z6Test_getAdapters.test_hit.<locals>.BarAdapter.__init__NrG   r   r   r   r   
BarAdapter}  s   r   c                   @   s   e Zd Zdd ZdS )z-Test_getAdapters.test_hit.<locals>.BazAdapterc                 S   s
   || _ d S r   r<   rE   r   r   r   rF     s    z6Test_getAdapters.test_hit.<locals>.BazAdapter.__init__NrG   r   r   r   r   
BazAdapter  s   r   r   rU   name   c                 S   s   g | ]\}}||j jfqS r   rS   r3   ).0r+   yr   r   r   
<listcomp>  s     z-Test_getAdapters.test_hit.<locals>.<listcomp>)r.   r   )rU   r   )r/   r(   r9   r*   r   r0   r   r   r[   lenr   )	r   r(   r*   r;   r   r   r1   tuplesnamesr   r   r   test_hitx  s    zTest_getAdapters.test_hitc                    s   ddl m} ddl m} ddlm  G dd d|}G dd d|}G d	d
 d
|}||G dd dt}||G dd dt}G  fdddt}| }	| }
| j|	|
f|| d}| |g  d S )Nr   r'   r@   r"   c                   @   s   e Zd ZdS )z2Test_getAdapters.test_wo_sitemanager.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd ZdS )z2Test_getAdapters.test_wo_sitemanager.<locals>.IBarNr:   r   r   r   r   rD     s   rD   c                   @   s   e Zd ZdS )z2Test_getAdapters.test_wo_sitemanager.<locals>.IBazNr:   r   r   r   r   r~     s   r~   c                   @   s   e Zd ZdS )z1Test_getAdapters.test_wo_sitemanager.<locals>.BarNr:   r   r   r   r   rJ     s   rJ   c                   @   s   e Zd ZdS )z1Test_getAdapters.test_wo_sitemanager.<locals>.BazNr:   r   r   r   r   rn     s   rn   c                       s   e Zd Z fddZdS )z5Test_getAdapters.test_wo_sitemanager.<locals>.Contextc                    s    d S r   r   r   r"   r   r   ra     s    zATest_getAdapters.test_wo_sitemanager.<locals>.Context.__conform__Nrb   r   r"   r   r   rM     s   rM   r<   )r/   r(   rA   r   r#   r   r   r[   r   r   r"   r   r     s    z$Test_getAdapters.test_wo_sitemanagerN
r3   r4   r5   r6   r   r   r   r   r   r   r   r   r   r   r   j  s
   r   c                   @   s<   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dS )Test_subscribersr   r   c                 O   s   ddl m} |||S )Nr   )subscribers)r9   r   )r   r	   r
   r   r   r   r   r     s    zTest_subscribers._callFUTc                 C   s:   ddl m} G dd d|}| tf|}| |g  d S )Nr   r'   c                   @   s   e Zd ZdS )z,Test_subscribers.test_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   )r/   r(   r   r   r[   r   r(   r;   r   r   r   r   r     s    zTest_subscribers.test_nonesuchc           	      C   s   ddl m} ddlm} G dd d|}G dd dt}G dd	 d	t}| }||d
| ||d
| | t f|}| t|d dd |D }| 	d|k | 	d	|k d S )Nr   r'   r)   c                   @   s   e Zd ZdS )z'Test_subscribers.test_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd Zdd ZdS )z-Test_subscribers.test_hit.<locals>.BarAdapterc                 S   s
   || _ d S r   r<   rE   r   r   r   rF     s    z6Test_subscribers.test_hit.<locals>.BarAdapter.__init__NrG   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )z-Test_subscribers.test_hit.<locals>.BazAdapterc                 S   s
   || _ d S r   r<   rE   r   r   r   rF     s    z6Test_subscribers.test_hit.<locals>.BazAdapter.__init__NrG   r   r   r   r   r     s   r   r   r   c                 S   s   g | ]}|j jqS r   r   )r   r+   r   r   r   r     s     z-Test_subscribers.test_hit.<locals>.<listcomp>)
r/   r(   r9   r*   r   ZregisterSubscriptionAdapterr   r[   r   r   )	r   r(   r*   r;   r   r   r1   r   r   r   r   r   r     s    zTest_subscribers.test_hitc                    s`   ddl m} ddlm  G dd d|}G  fdddt}| jtf|| d}| |g  d S )	Nr   r'   r"   c                   @   s   e Zd ZdS )z2Test_subscribers.test_wo_sitemanager.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                       s   e Zd Z fddZdS )z5Test_subscribers.test_wo_sitemanager.<locals>.Contextc                    s    d S r   r   r   r"   r   r   ra     s    zATest_subscribers.test_wo_sitemanager.<locals>.Context.__conform__Nrb   r   r"   r   r   rM     s   rM   r<   )r/   r(   r   r#   r   r   r[   )r   r(   r;   rM   r   r   r"   r   r     s    z$Test_subscribers.test_wo_sitemanagerNr   r   r   r   r   r     s
   r   c                   @   s4   e Zd ZddlmZmZ dd Zdd Zdd Zd	S )
Test_handler   r   c                 O   s   ddl m} |||S )Nr   )handle)r9   r   )r   r	   r
   r   r   r   r   r     s    zTest_handle._callFUTc                 C   s.   ddl m} G dd d|}| tf|}d S )Nr   r'   c                   @   s   e Zd ZdS )z'Test_handle.test_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   )r/   r(   r   r   r   r   r   r   r     s    zTest_handle.test_nonesuchc           	         s   ddl m} ddlm} ddlm} G dd d|}||G dd dt}g   fd	d
} fdd}| }|||f |||f | |  | t	 d  | 
d k | 
d k d S )Nr   r)   r'   r@   c                   @   s   e Zd ZdS )z"Test_handle.test_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd ZdS )z!Test_handle.test_hit.<locals>.FooNr:   r   r   r   r   rc     s   rc   c                    s     d d S )N_barappendr<   Z_calledr   r   r     s    z"Test_handle.test_hit.<locals>._barc                    s     d d S )N_bazr   r<   r   r   r   r     s    z"Test_handle.test_hit.<locals>._bazr   r   r   )r9   r*   r/   r(   rA   r   ZregisterHandlerr   r[   r   r   )	r   r*   r(   rA   r;   rc   r   r   r1   r   r   r   r     s     zTest_handle.test_hitN	r3   r4   r5   r6   r   r   r   r   r   r   r   r   r   r     s   r   c                   @   sL   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
dd ZdS )Test_getUtilityr   r   c                 O   s   ddl m} |||S )Nr   )
getUtility)r   r   )r   r	   r
   r   r   r   r   r     s    zTest_getUtility._callFUTc                 C   s<   ddl m} ddlm} G dd d|}| || j| d S )Nr   r'   r"   c                   @   s   e Zd ZdS )z5Test_getUtility.test_anonymous_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   r/   r(   r   r#   r$   r   r>   r   r   r   rl     s    z'Test_getUtility.test_anonymous_nonesuchc                 C   s@   ddl m} ddlm} G dd d|}| j|| j|dd d S )Nr   r'   r"   c                   @   s   e Zd ZdS )z1Test_getUtility.test_named_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   rU   r   r   r>   r   r   r   rm     s      z#Test_getUtility.test_named_nonesuchc                 C   sT   ddl m} ddlm} G dd d|}t }| || | | ||k d S )Nr   r'   r)   c                   @   s   e Zd ZdS )z0Test_getUtility.test_anonymous_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   r/   r(   r9   r*   r   registerUtilityr   r   r   r(   r*   r;   objr   r   r   rq     s    z"Test_getUtility.test_anonymous_hitc                 C   s\   ddl m} ddlm} G dd d|}t }| j||dd | | j|dd|k d S )Nr   r'   r)   c                   @   s   e Zd ZdS )z,Test_getUtility.test_named_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   rU   r   r   r   r   r   r   rt     s    zTest_getUtility.test_named_hitc           
      C   s   ddl m} ddlm} ddlm} G dd dt}G dd d|}t }t }||}||}	| || | | j	||	d	|k d S )
Nr   r'   r)   r   c                   @   s   e Zd Zdd Zdd ZdS )z5Test_getUtility.test_w_conforming_context.<locals>.SMc                 S   s
   || _ d S r   Z_objr   r   r   r   r   rF   '  s    z>Test_getUtility.test_w_conforming_context.<locals>.SM.__init__c                 S   s   | j S r   r   r   Z	interfacer   r^   r   r   r   queryUtility)  s    zBTest_getUtility.test_w_conforming_context.<locals>.SM.queryUtilityNr3   r4   r5   rF   r   r   r   r   r   SM&  s   r   c                   @   s   e Zd ZdS )z7Test_getUtility.test_w_conforming_context.<locals>.IFooNr:   r   r   r   r   r;   +  s   r;   r<   
r/   r(   r9   r*   r   r   r   r   r   r   
r   r(   r*   r   r   r;   obj1obj2r   r    r   r   r   test_w_conforming_context"  s    z)Test_getUtility.test_w_conforming_contextN)r3   r4   r5   r6   r   r   r   rl   rm   rq   rt   r   r   r   r   r   r     s   		r   c                   @   s\   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dd Z
dd Zdd Zdd ZdS )Test_queryUtilityr   r   c                 O   s   ddl m} |||S )Nr   )r   )r   r   )r   r	   r
   r   r   r   r   r   9  s    zTest_queryUtility._callFUTc                 C   s2   ddl m} G dd d|}| | |d  d S )Nr   r'   c                   @   s   e Zd ZdS )z7Test_queryUtility.test_anonymous_nonesuch.<locals>.IFooNr:   r   r   r   r   r;   ?  s   r;   r/   r(   r[   r   rz   r   r   r   rl   =  s    z)Test_queryUtility.test_anonymous_nonesuchc                 C   s>   ddl m} G dd d|}t }| | j||d|k d S )Nr   r'   c                   @   s   e Zd ZdS )zATest_queryUtility.test_anonymous_nonesuch_w_default.<locals>.IFooNr:   r   r   r   r   r;   E  s   r;   )r^   r/   r(   r   r   r   r   r(   r;   r   r   r   r   !test_anonymous_nonesuch_w_defaultC  s    z3Test_queryUtility.test_anonymous_nonesuch_w_defaultc                 C   s6   ddl m} G dd d|}| | j|ddd  d S )Nr   r'   c                   @   s   e Zd ZdS )z3Test_queryUtility.test_named_nonesuch.<locals>.IFooNr:   r   r   r   r   r;   L  s   r;   rU   r   r   rz   r   r   r   rm   J  s    z%Test_queryUtility.test_named_nonesuchc                 C   s@   ddl m} G dd d|}t }| | j|d|d|k d S )Nr   r'   c                   @   s   e Zd ZdS )z=Test_queryUtility.test_named_nonesuch_w_default.<locals>.IFooNr:   r   r   r   r   r;   R  s   r;   rU   )r   r^   r   r   r   r   r   test_named_nonesuch_w_defaultP  s    z/Test_queryUtility.test_named_nonesuch_w_defaultc                 C   sT   ddl m} ddlm} G dd d|}t }| || | | ||k d S )Nr   r'   r)   c                   @   s   e Zd ZdS )z2Test_queryUtility.test_anonymous_hit.<locals>.IFooNr:   r   r   r   r   r;   Z  s   r;   r   r   r   r   r   rq   W  s    z$Test_queryUtility.test_anonymous_hitc                 C   s\   ddl m} ddlm} G dd d|}t }| j||dd | | j|dd|k d S )Nr   r'   r)   c                   @   s   e Zd ZdS )z.Test_queryUtility.test_named_hit.<locals>.IFooNr:   r   r   r   r   r;   c  s   r;   rU   r   r   r   r   r   r   rt   `  s    z Test_queryUtility.test_named_hitc           
      C   s   ddl m} ddlm} ddlm} G dd dt}G dd d|}t }t }||}||}	| || | | j	||	d	|k d S )
Nr   r'   r)   r   c                   @   s   e Zd Zdd Zdd ZdS )z7Test_queryUtility.test_w_conforming_context.<locals>.SMc                 S   s
   || _ d S r   r   r   r   r   r   rF   n  s    z@Test_queryUtility.test_w_conforming_context.<locals>.SM.__init__c                 S   s   | j S r   r   r   r   r   r   r   p  s    zDTest_queryUtility.test_w_conforming_context.<locals>.SM.queryUtilityNr   r   r   r   r   r   m  s   r   c                   @   s   e Zd ZdS )z9Test_queryUtility.test_w_conforming_context.<locals>.IFooNr:   r   r   r   r   r;   r  s   r;   r<   r   r   r   r   r   r   i  s    z+Test_queryUtility.test_w_conforming_contextN)r3   r4   r5   r6   r   r   r   rl   r   rm   r   rq   rt   r   r   r   r   r   r   5  s   		r   c                   @   s4   e Zd ZddlmZmZ dd Zdd Zdd Zd	S )
Test_getUtilitiesForr   r   c                 O   s   ddl m} |||S )Nr   )getUtilitiesFor)r   r   )r   r	   r
   r   r   r   r   r     s    zTest_getUtilitiesFor._callFUTc                 C   s6   ddl m} G dd d|}| t| |g  d S )Nr   r'   c                   @   s   e Zd ZdS )z0Test_getUtilitiesFor.test_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   r/   r(   r[   r   r   rz   r   r   r   r     s    z"Test_getUtilitiesFor.test_nonesuchc                 C   s   ddl m} ddlm} G dd d|}t }t }| || | j||dd t| |}| t	|d | 
d	|f|k | 
d|f|k d S )
Nr   r'   r)   c                   @   s   e Zd ZdS )z+Test_getUtilitiesFor.test_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   rU   r   r   r.   r/   r(   r9   r*   r   r   r   r   r[   r   r   )r   r(   r*   r;   r   r   r   r   r   r   r     s    zTest_getUtilitiesFor.test_hitNr   r   r   r   r   r   |  s   r   c                   @   s4   e Zd ZddlmZmZ dd Zdd Zdd Zd	S )
!Test_getAllUtilitiesRegisteredForr   r   c                 O   s   ddl m} |||S )Nr   )getAllUtilitiesRegisteredFor)r9   r   )r   r	   r
   r   r   r   r   r     s    z*Test_getAllUtilitiesRegisteredFor._callFUTc                 C   s6   ddl m} G dd d|}| t| |g  d S )Nr   r'   c                   @   s   e Zd ZdS )z=Test_getAllUtilitiesRegisteredFor.test_nonesuch.<locals>.IFooNr:   r   r   r   r   r;     s   r;   r   rz   r   r   r   r     s    z/Test_getAllUtilitiesRegisteredFor.test_nonesuchc           	      C   s   ddl m} ddlm} G dd d|}G dd d|}t }t }t }| || | j||dd	 | || t| |}| t	|d
 | 
||k | 
||k | 
||k d S )Nr   r'   r)   c                   @   s   e Zd ZdS )z8Test_getAllUtilitiesRegisteredFor.test_hit.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                   @   s   e Zd ZdS )z8Test_getAllUtilitiesRegisteredFor.test_hit.<locals>.IBarNr:   r   r   r   r   rD     s   rD   rU   r      r   )	r   r(   r*   r;   rD   r   r   r   Zutsr   r   r   r     s    z*Test_getAllUtilitiesRegisteredFor.test_hitNr   r   r   r   r   r     s   r   c                   @   s4   e Zd ZddlmZmZ dd Zdd Zdd Zd	S )
Test_getNextUtilityr   r   c                 O   s   ddl m} |||S )Nr   )getNextUtility)r9   r   )r   r	   r
   r   r   r   r   r     s    zTest_getNextUtility._callFUTc                 C   sN   ddl m} ddlm} | }td|}||td | || j|td d S )Nr   r)   r"   globalmyutil)	r9   r*   Zzope.component.interfacer#   _makeMyUtilityr   
IMyUtilityr$   r   )r   r*   r#   r1   gutilr   r   r   test_global  s    
   zTest_getNextUtility.test_globalc           
      C   s   ddl m} ddlm} ddlm} | }td|}||td |d|fd}|d	|fd}td
|}||td | 	|||k | 	| 
|td|k td|}	||	td | 	||	|k | 	| 
|	td|k d S )Nr   r)   r   rB   r   r   rN   rO   sm1_1oneone-one)r9   r*   r   r   rR   rC   r   r   r   r   r   )
r   r*   r   rC   r1   r   rN   r   util1util1_1r   r   r   r{     s     


zTest_getNextUtility.test_nestedN)	r3   r4   r5   r6   r   r   r   r   r{   r   r   r   r   r     s   	r   c                   @   s<   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dS )Test_queryNextUtilityr   r   c                 O   s   ddl m} |||S )Nr   )queryNextUtility)r9   r   )r   r	   r
   r   r   r   r   r     s    zTest_queryNextUtility._callFUTc                 C   sD   ddl m} | }td|}||td | | |tdd  d S )Nr   r)   r   r   )r9   r*   r   r   r   r[   r   )r   r*   r1   r   r   r   r   r     s
    
z!Test_queryNextUtility.test_globalc                 C   s   ddl m} ddlm} | }td|}||td |d|fd}|d|fd}td	|}||td td
|}||td | }	td|	}
|	|
td |	f|j |_| | 	|td|
k | | 	|td|k d S )Nr   r)   rB   r   r   rN   rO   r   r   r   Zmy_custom_util)
r9   r*   rR   rC   r   r   r   	__bases__r   r   )r   r*   rC   r1   r   rN   r   r   r   Z
myregistryZcustom_utilr   r   r   r{     s&    



z!Test_queryNextUtility.test_nestedc                    sX   ddl m} ddlm  G dd d|}G  fdddt}| | | |dd  d S )	Nr   r'   r"   c                   @   s   e Zd ZdS )z7Test_queryNextUtility.test_wo_sitemanager.<locals>.IFooNr:   r   r   r   r   r;     s   r;   c                       s   e Zd Z fddZdS )z:Test_queryNextUtility.test_wo_sitemanager.<locals>.Contextc                    s    d S r   r   r   r"   r   r   ra   	  s    zFTest_queryNextUtility.test_wo_sitemanager.<locals>.Context.__conform__Nrb   r   r"   r   r   rM     s   rM   r   )r/   r(   r   r#   r   r[   r   )r   r(   r;   rM   r   r"   r   r     s
    z)Test_queryNextUtility.test_wo_sitemanagerN)
r3   r4   r5   r6   r   r   r   r   r{   r   r   r   r   r   r     s
   r   c                   @   s4   e Zd ZddlmZmZ dd Zdd Zdd Zd	S )
Test_createObjectr   r   c                 O   s   ddl m} |||S )Nr   )createObject)r9   r   )r   r	   r
   r   r   r   r   r     s    zTest_createObject._callFUTc                 C   s    ddl m} | || jd d S Nr   r"   Znonesuchr   r#   r$   r   r%   r   r   r   r?     s    zTest_createObject.test_missc                    sn   ddl m  t g fddG  fdddt}| }| | jd|dk | d	i fg d S )
Nr   IFactoryc                     s     | |f S r   r   )r	   r
   )_factory_called_objectr   r   _factory  s    z,Test_createObject.test_hit.<locals>._factoryc                       s"   e Zd Zdd Z fddZdS )z+Test_createObject.test_hit.<locals>.Contextc                 S   s   | S r   r   r   r   r   r   ra   "  s    z7Test_createObject.test_hit.<locals>.Context.__conform__c                    s   | kr|dkrS |S Ntestr   r   r]   r   r^   r   r   r   r   r   $  s    z8Test_createObject.test_hit.<locals>.Context.queryUtilityNr3   r4   r5   ra   r   r   r   r   r   rM   !  s   rM   r   r<   r   )r   r   r   r   r   r[   )r   rM   r    r   )r   r   r   r   r   r     s    zTest_createObject.test_hitN	r3   r4   r5   r6   r   r   r   r?   r   r   r   r   r   r     s   r   c                   @   s4   e Zd ZddlmZmZ dd Zdd Zdd Zd	S )
Test_getFactoryInterfacesr   r   c                 O   s   ddl m} |||S )Nr   )getFactoryInterfaces)r9   r   )r   r	   r
   r   r   r   r   r   1  s    z"Test_getFactoryInterfaces._callFUTc                 C   s    ddl m} | || jd d S r   r   r%   r   r   r   r?   5  s    z#Test_getFactoryInterfaces.test_missc                    st   ddl m  ddlm} G dd d|G fdddtG  fdd	d	t}| }| | jd
|dg d S )Nr   r   r'   c                   @   s   e Zd ZdS )z0Test_getFactoryInterfaces.test_hit.<locals>.IFooNr:   r   r   r   r   r;   <  s   r;   c                       s   e Zd Z fddZdS )z4Test_getFactoryInterfaces.test_hit.<locals>._Factoryc                    s    gS r   r   r   r;   r   r   getInterfaces?  s    zBTest_getFactoryInterfaces.test_hit.<locals>._Factory.getInterfacesNr3   r4   r5   r   r   r   r   r   _Factory>  s   r   c                       s"   e Zd Zdd Z fddZdS )z3Test_getFactoryInterfaces.test_hit.<locals>.Contextc                 S   s   | S r   r   r   r   r   r   ra   B  s    z?Test_getFactoryInterfaces.test_hit.<locals>.Context.__conform__c                    s   | kr|dkr S |S r   r   r   r   r   r   r   r   D  s    z@Test_getFactoryInterfaces.test_hit.<locals>.Context.queryUtilityNr   r   r   r   r   rM   A  s   rM   r   r<   )r   r   r/   r(   r   r[   r   )r   r(   rM   r    r   )r   r;   r   r   r   9  s    z"Test_getFactoryInterfaces.test_hitNr   r   r   r   r   r   -  s   r   c                   @   s<   e Zd ZddlmZmZ dd Zdd Zdd Zd	d
 Z	dS )Test_getFactoriesForr   r   c                 O   s   ddl m} |||S )Nr   )getFactoriesFor)r9   r   )r   r	   r
   r   r   r   r   r   P  s    zTest_getFactoriesFor._callFUTc                 C   s6   ddl m} G dd d|}| t| |g  d S )Nr   r'   c                   @   s   e Zd ZdS )z?Test_getFactoriesFor.test_no_factories_registered.<locals>.IFooNr:   r   r   r   r   r;   V  s   r;   r   rz   r   r   r   test_no_factories_registeredT  s    z1Test_getFactoriesFor.test_no_factories_registeredc                    s   ddl m} ddl m} ddl m ddlm  G dd d|}G dd	 d	|}|||G fd
ddt}| G  fdddt}| t| j	|| ddfg | t| j	|| ddfg d S )Nr   r'   r@   r   r   c                   @   s   e Zd ZdS )z@Test_getFactoriesFor.test_w_factory_returning_spec.<locals>.IFooNr:   r   r   r   r   r;   _  s   r;   c                   @   s   e Zd ZdS )z@Test_getFactoriesFor.test_w_factory_returning_spec.<locals>.IBarNr:   r   r   r   r   rD   a  s   rD   c                       s   e Zd Z fddZdS )zDTest_getFactoriesFor.test_w_factory_returning_spec.<locals>._Factoryc                    s    | S r   r   r   r   r   r   r   e  s    zRTest_getFactoriesFor.test_w_factory_returning_spec.<locals>._Factory.getInterfacesNr   r   r   r   r   r   c  s   r   c                       s"   e Zd Zdd Z fddZdS )zCTest_getFactoriesFor.test_w_factory_returning_spec.<locals>.Contextc                 S   s   | S r   r   r   r   r   r   ra   i  s    zOTest_getFactoriesFor.test_w_factory_returning_spec.<locals>.Context.__conform__c                    s   | krdfgS d S r   r   r   r   r   r   r   k  s    zSTest_getFactoriesFor.test_w_factory_returning_spec.<locals>.Context.getUtilitiesForNr3   r4   r5   ra   r   r   r   r   r   rM   h  s   rM   r<   r   )
r/   r(   rA   r   r   r   r   r[   r   r   )r   r(   rA   r;   rD   r   rM   r   )r   r   r   r   test_w_factory_returning_specZ  s     z2Test_getFactoriesFor.test_w_factory_returning_specc                    s   ddl m} ddlm G dd d|G dd d| G  fdd	d	t}| G fd
ddt}| t| j| ddfg | t| j | ddfg d S )Nr   r'   r   c                   @   s   e Zd ZdS )zNTest_getFactoriesFor.test_w_factory_returning_list_of_interfaces.<locals>.IFooNr:   r   r   r   r   r;   v  s   r;   c                   @   s   e Zd ZdS )zNTest_getFactoriesFor.test_w_factory_returning_list_of_interfaces.<locals>.IBarNr:   r   r   r   r   rD   x  s   rD   c                       s   e Zd Z fddZdS )zRTest_getFactoriesFor.test_w_factory_returning_list_of_interfaces.<locals>._Factoryc                    s    gS r   r   r   rD   r;   r   r   r   {  s    z`Test_getFactoriesFor.test_w_factory_returning_list_of_interfaces.<locals>._Factory.getInterfacesNr   r   r   r   r   r   z  s   r   c                       s"   e Zd Zdd Z fddZdS )zQTest_getFactoriesFor.test_w_factory_returning_list_of_interfaces.<locals>.Contextc                 S   s   | S r   r   r   r   r   r   ra     s    z]Test_getFactoriesFor.test_w_factory_returning_list_of_interfaces.<locals>.Context.__conform__c                    s   | krdfgS d S r   r   r   r   r   r   r     s    zaTest_getFactoriesFor.test_w_factory_returning_list_of_interfaces.<locals>.Context.getUtilitiesForNr   r   r   r   r   rM   ~  s   rM   r<   r   )r/   r(   r   r   r   r[   r   r   )r   r(   r   rM   r   )rD   r   r;   r   r   +test_w_factory_returning_list_of_interfacess  s    z@Test_getFactoriesFor.test_w_factory_returning_list_of_interfacesN)
r3   r4   r5   r6   r   r   r   r   r   r   r   r   r   r   r   L  s
   r   c                 C   s^   ddl m} ddl m} ddlm} td kr<G dd d|a|tG dd d|}|| |S )	Nr   r'   r@   r   c                   @   s   e Zd ZdS )r   Nr:   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )z!_makeMyUtility.<locals>.MyUtilityc                 S   s   || _ || _d S r   )idr   )r   r   r   r   r   r   rF     s    z*_makeMyUtility.<locals>.MyUtility.__init__NrG   r   r   r   r   	MyUtility  s   r   )r/   r(   rA   r   r   r   )r   r   r(   rA   r   r   r   r   r   r     s    r   c                   C   s   t t tt tt tt tt tt tt t	t t
t tt tt tt tt tt tt tt tt tt tt tfS r   )unittestZ	TestSuiteZ	makeSuiter   r7   rX   rj   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
test_suite  s*    r   )__doc__r   ZTestCaser   r7   rX   rj   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s0   ,2FSam ;/%<G"$/>