U
    ,W8                     @   s   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dd ZdS )zTests for z.c.interface
    Nc                   @   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_provideInterfacer   setUptearDownc                 O   s   ddl m} |||S )Nr   )provideInterface)zope.component.interfacer   )selfargskwr    r   E/usr/lib/python3/dist-packages/zope/component/tests/test_interface.py_callFUT   s    zTest_provideInterface._callFUTc                 C   s   |  t| jdt  d S )Nxxx)assertRaises	TypeErrorr   objectr   r   r   r   test_w_interface_not_IInterface   s    z5Test_provideInterface.test_w_interface_not_IInterfacec                 C   sH   ddl m} ddlm} G dd d|}|d}| t| jd|| d S )Nr   	Interface)InterfaceClassc                   @   s   e Zd ZdS )zDTest_provideInterface.test_w_iface_type_not_IInterface.<locals>.IFooN__name__
__module____qualname__r   r   r   r   IFoo!   s   r   IBarr   )zope.interfacer   Zzope.interface.interfacer   r   r   r   )r   r   r   r   r   r   r   r    test_w_iface_type_not_IInterface   s
    z6Test_provideInterface.test_w_iface_type_not_IInterfacec                 C   sz   ddl m} ddlm} | }G dd d|}G dd dt}| d|| | || | t	t
||d d S )	Nr   
IInterfacegetGlobalSiteManagerc                   @   s   e Zd ZdS )z0Test_provideInterface.test_w_class.<locals>.IBarNr   r   r   r   r   r   *   s   r   c                   @   s   e Zd ZdS )z/Test_provideInterface.test_w_class.<locals>.FooNr   r   r   r   r   Foo,   s   r#    )zope.interface.interfacesr    zope.component.globalregistryr"   r   r   ZassertFalse
providedByassertEquallenlistZgetUtilitiesFor)r   r    r"   gsmr   r#   r   r   r   test_w_class&   s    z"Test_provideInterface.test_w_classc                 C   s   ddl m} ddlm} ddlm} | }G dd d|}G dd d|}| d	|| | || d
}| |	|||k d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )z=Test_provideInterface.test_wo_name_w_iface_type.<locals>.IFooNr   r   r   r   r   r   7   s   r   c                   @   s   e Zd ZdS )z=Test_provideInterface.test_wo_name_w_iface_type.<locals>.IBarNr   r   r   r   r   r   9   s   r   r$   (zope.component.tests.test_interface.IFoo
r   r   r%   r    r&   r"   r   
assertTruer'   Z
getUtility)r   r   r    r"   r+   r   r   Znmr   r   r   test_wo_name_w_iface_type2   s    z/Test_provideInterface.test_wo_name_w_iface_typec                 C   sv   ddl m} ddlm} ddlm} | }G dd d|}| d| | || |j	|dd}| ||k d S )	Nr   r   r   r!   c                   @   s   e Zd ZdS )z=Test_provideInterface.test_w_name_wo_ifact_type.<locals>.IFooNr   r   r   r   r   r   E   s   r   foo)namer.   )r   r   r    r"   r+   r   Z
registeredr   r   r   test_w_name_wo_ifact_type@   s    z/Test_provideInterface.test_w_name_wo_ifact_typeN)r   r   r   zope.component.testingr   r   r   r   r   r,   r0   r3   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_getInterfacer   r   c                 O   s   ddl m} |||S )Nr   )getInterface)r   r6   )r   r	   r
   r6   r   r   r   r   Q   s    zTest_getInterface._callFUTc                 C   s$   ddl m} | || jt d d S Nr   )ComponentLookupErrornonesuchZzope.component.interfacesr8   r   r   r   r   r8   r   r   r   	test_missU   s      zTest_getInterface.test_missc                 C   sd   ddl m} ddlm} ddlm} | }G dd d|}|||d | | t	 d|k d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )z(Test_getInterface.test_hit.<locals>.IFooNr   r   r   r   r   r   _   s   r   r1   )
r   r   r%   r    r&   r"   registerUtilityr/   r   r   r   r   r    r"   r+   r   r   r   r   test_hitZ   s    zTest_getInterface.test_hitN	r   r   r   r4   r   r   r   r<   r?   r   r   r   r   r5   M   s   r5   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_queryInterfacer   r   c                 O   s   ddl m} |||S )Nr   )queryInterface)r   rB   )r   r	   r
   rB   r   r   r   r   i   s    zTest_queryInterface._callFUTc                 C   s"   t  }| | jd|d|k d S )Nr9   )default)r   r/   r   )r   Z_DEFAULTr   r   r   r<   m   s    zTest_queryInterface.test_missc                 C   s`   ddl m} ddlm} ddlm} | }G dd d|}|||d | | d|k d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )z*Test_queryInterface.test_hit.<locals>.IFooNr   r   r   r   r   r   w   s   r   r1   )	r   r   r%   r    r&   r"   r=   r/   r   r>   r   r   r   r?   r   s    zTest_queryInterface.test_hitNr@   r   r   r   r   rA   e   s   rA   c                   @   sD   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S )Test_searchInterfacer   r   c                 O   s   ddl m} |||S )Nr   )searchInterface)r   rE   )r   r	   r
   rE   r   r   r   r      s    zTest_searchInterface._callFUTc                 C   s   |  | t g  d S Nr(   r   r   r   r   r   r   
test_empty   s    zTest_searchInterface.test_emptyc                 C   sb   ddl m} ddlm} ddlm} | }G dd d|}|||d | | t	 |g d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )z@Test_searchInterface.test_no_search_string_no_base.<locals>.IFooNr   r   r   r   r   r      s   r   r1   
r   r   r%   r    r&   r"   r=   r(   r   r   r>   r   r   r   test_no_search_string_no_base   s    z2Test_searchInterface.test_no_search_string_no_basec                 C   s   ddl m} ddlm} ddlm} | }G dd d|}G dd d|}|||d	 |||d
 | | t	 d|g d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )z?Test_searchInterface.test_w_search_string_no_base.<locals>.IFooNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )z?Test_searchInterface.test_w_search_string_no_base.<locals>.IBarNr   r   r   r   r   r      s   r   r1   barrI   r   r   r    r"   r+   r   r   r   r   r   test_w_search_string_no_base   s    z1Test_searchInterface.test_w_search_string_no_basec                 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
|}|||d |||d | | jt	 |d|g d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )z@Test_searchInterface.test_no_search_string_w_base.<locals>.IBaseNr   r   r   r   r   IBase   s   rN   c                   @   s   e Zd ZdS )z?Test_searchInterface.test_no_search_string_w_base.<locals>.IFooNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )z?Test_searchInterface.test_no_search_string_w_base.<locals>.IBarNr   r   r   r   r   r      s   r   r1   rK   baserI   r   r   r    r"   r+   rN   r   r   r   r   r   test_no_search_string_w_base   s    z1Test_searchInterface.test_no_search_string_w_baseNr   r   r   r4   r   r   r   rH   rJ   rM   rR   r   r   r   r   rD   }   s   
rD   c                   @   sD   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S )Test_searchInterfaceIdsr   r   c                 O   s   ddl m} |||S )Nr   )searchInterfaceIds)r   rU   )r   r	   r
   rU   r   r   r   r      s    z Test_searchInterfaceIds._callFUTc                 C   s   |  | t g  d S rF   rG   r   r   r   r   rH      s    z"Test_searchInterfaceIds.test_emptyc                 C   sb   ddl m} ddlm} ddlm} | }G dd d|}|||d | | t	 dg d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )zCTest_searchInterfaceIds.test_no_search_string_no_base.<locals>.IFooNr   r   r   r   r   r      s   r   r1   rI   r>   r   r   r   rJ      s    z5Test_searchInterfaceIds.test_no_search_string_no_basec                 C   s   ddl m} ddlm} ddlm} | }G dd d|}G dd d|}|||d	 |||d
 | | t	 dd	g d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )zBTest_searchInterfaceIds.test_w_search_string_no_base.<locals>.IFooNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )zBTest_searchInterfaceIds.test_w_search_string_no_base.<locals>.IBarNr   r   r   r   r   r      s   r   r1   rK   rI   rL   r   r   r   rM      s    z4Test_searchInterfaceIds.test_w_search_string_no_basec                 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
|}|||d |||d | | jt	 |ddg d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )zCTest_searchInterfaceIds.test_no_search_string_w_base.<locals>.IBaseNr   r   r   r   r   rN      s   rN   c                   @   s   e Zd ZdS )zBTest_searchInterfaceIds.test_no_search_string_w_base.<locals>.IFooNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )zBTest_searchInterfaceIds.test_no_search_string_w_base.<locals>.IBarNr   r   r   r   r   r      s   r   r1   rK   rO   rI   rQ   r   r   r   rR      s    z4Test_searchInterfaceIds.test_no_search_string_w_baseNrS   r   r   r   r   rT      s   
rT   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_searchInterfaceUtilitiesr   r   c                 O   s   ddl m} |||S )Nr   )searchInterfaceUtilities)r   rW   )r   r	   r
   rW   r   r   r   r      s    z&Test_searchInterfaceUtilities._callFUTc                 C   s   |  | t g  d S rF   rG   r   r   r   r   rH      s    z(Test_searchInterfaceUtilities.test_emptyc                 C   sf   ddl m} ddlm} ddlm} | }G dd d|}|||d | | t	 d|fg d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )zITest_searchInterfaceUtilities.test_no_search_string_no_base.<locals>.IFooNr   r   r   r   r   r      s   r   r1   rI   r>   r   r   r   rJ      s    z;Test_searchInterfaceUtilities.test_no_search_string_no_basec                 C   s   ddl m} ddlm} ddlm} | }G dd d|}G dd d|}|||d	 |||d
 | | t	 dd	|fg d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )zHTest_searchInterfaceUtilities.test_w_search_string_no_base.<locals>.IFooNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )zHTest_searchInterfaceUtilities.test_w_search_string_no_base.<locals>.IBarNr   r   r   r   r   r      s   r   r1   rK   rI   rL   r   r   r   rM      s    z:Test_searchInterfaceUtilities.test_w_search_string_no_basec                 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
|}|||d |||d | | jt	 |dd|fg d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )zITest_searchInterfaceUtilities.test_no_search_string_w_base.<locals>.IBaseNr   r   r   r   r   rN     s   rN   c                   @   s   e Zd ZdS )zHTest_searchInterfaceUtilities.test_no_search_string_w_base.<locals>.IFooNr   r   r   r   r   r   
  s   r   c                   @   s   e Zd ZdS )zHTest_searchInterfaceUtilities.test_no_search_string_w_base.<locals>.IBarNr   r   r   r   r   r     s   r   r1   rK   rO   rI   rQ   r   r   r   rR     s    z:Test_searchInterfaceUtilities.test_no_search_string_w_basec                 C   s   ddl m} ddlm} ddlm} | }G dd d|}G dd d|}|||d	 |||d
 | | jt	 |dd	|fg d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )zPTest_searchInterfaceUtilities.test_no_search_string_w_base_is_same.<locals>.IFooNr   r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )zPTest_searchInterfaceUtilities.test_no_search_string_w_base_is_same.<locals>.IBarNr   r   r   r   r   r     s   r   r1   rK   rO   rI   rL   r   r   r   $test_no_search_string_w_base_is_same  s    zBTest_searchInterfaceUtilities.test_no_search_string_w_base_is_sameN)r   r   r   r4   r   r   r   rH   rJ   rM   rR   rX   r   r   r   r   rV      s   
rV   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Test_getInterfaceAllDocsc                 O   s   ddl m} |||S )Nr   )getInterfaceAllDocs)r   rZ   )r   r	   r
   rZ   r   r   r   r   "  s    z!Test_getInterfaceAllDocs._callFUTc                 C   s&   G dd dt }| | |d d S )Nc                   @   s   e Zd ZdZdZdd ZdS )z2Test_getInterfaceAllDocs.test_w_class.<locals>.Foo	DOCSTRINGNc                 S   s   dS ZBAZNr   r   r   r   r   baz*  s    z6Test_getInterfaceAllDocs.test_w_class.<locals>.Foo.bazr   r   r   __doc__rK   r]   r   r   r   r   r#   '  s   r#   z1zope.component.tests.test_interface.foo
docstring)r   r(   r   )r   r#   r   r   r   r,   &  s    z%Test_getInterfaceAllDocs.test_w_classc                 C   s2   ddl m} G dd d|}| | |d d S )Nr   r   c                   @   s   e Zd ZdZdS )zBTest_getInterfaceAllDocs.test_w_interface_no_members.<locals>.IFoor[   N)r   r   r   r_   r   r   r   r   r   2  s   r   z2zope.component.tests.test_interface.ifoo
docstring)r   r   r(   r   r   r   r   r   r   r   test_w_interface_no_members0  s
    z4Test_getInterfaceAllDocs.test_w_interface_no_membersc                    sB   ddl m  ddl m} G  fddd|}| | |d d S )Nr   	Attributer   c                       s"   e Zd ZdZ ddZdd ZdS )zATest_getInterfaceAllDocs.test_w_interface_w_members.<locals>.IFoor[   rK   zDo barc                 S   s   dS r\   r   r   r   r   r   r]   >  s    zETest_getInterfaceAllDocs.test_w_interface_w_members.<locals>.IFoo.bazNr^   r   rb   r   r   r   ;  s   
r   z=zope.component.tests.test_interface.ifoo
docstring
do bar
baz)r   rc   r   r(   r   r`   r   rb   r   test_w_interface_w_members8  s    z3Test_getInterfaceAllDocs.test_w_interface_w_membersN)r   r   r   r   r,   ra   rd   r   r   r   r   rY      s   
rY   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_nameToInterfacer   r   c                 O   s   ddl m} |||S )Nr   )nameToInterface)r   rf   )r   r	   r
   rf   r   r   r   r   K  s    zTest_nameToInterface._callFUTc                 C   s   |  | t dd k d S NNone)r/   r   r   r   r   r   r   test_w_NoneO  s    z Test_nameToInterface.test_w_Nonec                 C   s$   ddl m} | || jt d d S r7   r:   r;   r   r   r   r<   R  s      zTest_nameToInterface.test_missc                 C   sh   ddl m} ddlm} ddlm} | }G dd d|}|||d | t d}| 	||k d S )Nr   r   r   r!   c                   @   s   e Zd ZdS )z+Test_nameToInterface.test_hit.<locals>.IFooNr   r   r   r   r   r   \  s   r   r1   )
r   r   r%   r    r&   r"   r=   r   r   r/   )r   r   r    r"   r+   r   foundr   r   r   r?   W  s    zTest_nameToInterface.test_hitN)
r   r   r   r4   r   r   r   ri   r<   r?   r   r   r   r   re   G  s
   re   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_interfaceToNamer   r   c                 O   s   ddl m} |||S )Nr   )interfaceToName)r   rl   )r   r	   r
   rl   r   r   r   r   g  s    zTest_interfaceToName._callFUTc                 C   s   |  | t d d d S rg   rG   r   r   r   r   ri   k  s    z Test_interfaceToName.test_w_Nonec                 C   s6   ddl m} G dd d|}| | t |d d S )Nr   r   c                   @   s   e Zd ZdS )z6Test_interfaceToName.test_w_unregistered.<locals>.IFooNr   r   r   r   r   r   p  s   r   r-   )r   r   r(   r   r   r`   r   r   r   test_w_unregisteredn  s
    z(Test_interfaceToName.test_w_unregisteredc                 C   sb   ddl m} ddlm} ddlm} | }G dd d|}|||d | | t	 |d d S )	Nr   r   r   r!   c                   @   s   e Zd ZdS )z4Test_interfaceToName.test_w_registered.<locals>.IFooNr   r   r   r   r   r   z  s   r   r1   r-   rI   r>   r   r   r   test_w_registeredu  s    z&Test_interfaceToName.test_w_registeredN)
r   r   r   r4   r   r   r   ri   rm   rn   r   r   r   r   rk   c  s
   rk   c                   C   sR   t t tt tt tt tt tt tt t	t t
t tf	S rF   )unittestZ	TestSuiteZ	makeSuiter   r5   rA   rD   rT   rV   rY   re   rk   r   r   r   r   
test_suite  s    rp   )r_   ro   ZTestCaser   r5   rA   rD   rT   rV   rY   re   rk   rp   r   r   r   r   <module>   s   :22?'