U
    AcjDC  ã                   @   sN   d Z ddl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dS )	zDocumentation tests.
é    Nc                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTest_asStructuredTextc                 C   s   ddl m} ||ƒS )Nr   )ÚasStructuredText)Úzope.interface.documentr   )ÚselfÚifacer   © r   úF/tmp/pip-unpacked-wheel-dir_2hjr/zope/interface/tests/test_document.pyÚ_callFUT   s    zTest_asStructuredText._callFUTc                 C   sD   ddl m} d ddddg¡}G dd„ d|ƒ}|  |  |¡|¡ d S )	Nr   ©Ú	Interfaceú

ÚINoDocstringú Attributes:ú	 Methods:Ú c                   @   s   e Zd ZdS )zNTest_asStructuredText.test_asStructuredText_no_docstring.<locals>.INoDocstringN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   #   s   ©Úzope.interfacer   ÚjoinÚassertEqualr	   ©r   r   ÚEXPECTEDr   r   r   r   Ú"test_asStructuredText_no_docstring   s    üz8Test_asStructuredText.test_asStructuredText_no_docstringc                 C   sF   ddl m} d dddddg¡}G d	d„ d|ƒ}|  |  |¡|¡ d S )
Nr   r
   r   ÚIEmptyú This is an empty interface.r   r   r   c                   @   s   e Zd ZdZdS )zPTest_asStructuredText.test_asStructuredText_empty_with_docstring.<locals>.IEmptyú) This is an empty interface.
            N©r   r   r   Ú__doc__r   r   r   r   r   2   s   r   ©r   r   r   r   r   r   r   Ú*test_asStructuredText_empty_with_docstring(   s    ûz@Test_asStructuredText.test_asStructuredText_empty_with_docstringc                 C   sr   ddl m} tjdk rdnd}d dddd	|› d
�|› d�ddddddg¡}G dd„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   ©é   é   ú            r   Ú
r   r   ú zD It can be used to annotate any class or object, because it promisesz	 nothing.r   r   c                   @   s   e Zd ZdZdS )zZTest_asStructuredText.test_asStructuredText_empty_with_multiline_docstring.<locals>.IEmptyz� This is an empty interface.

            It can be used to annotate any class or object, because it promises
            nothing.
            Nr   r   r   r   r   r   N   s   ©r   r   ÚsysÚversion_infor   r   r	   ©r   r   Úindentr   r   r   r   r   Ú4test_asStructuredText_empty_with_multiline_docstring8   s$    ózJTest_asStructuredText.test_asStructuredText_empty_with_multiline_docstringc                    sX   ddl m‰  ddl m} d ddddd	d
g¡}G ‡ fdd„d|ƒ}|  |  |¡|¡ d S )Nr   ©Ú	Attributer
   r   ÚIHasAttributeú! This interface has an attribute.r   z"  an_attribute -- no documentationr   r   c                       s   e Zd ZdZ” dƒZdS )z^Test_asStructuredText.test_asStructuredText_with_attribute_no_docstring.<locals>.IHasAttributeú. This interface has an attribute.
            Úan_attributeN©r   r   r   r    r4   r   r/   r   r   r1   c   s   ©r   r0   r   r   r   r	   ©r   r   r   r1   r   r/   r   Ú1test_asStructuredText_with_attribute_no_docstringW   s    ú	zGTest_asStructuredText.test_asStructuredText_with_attribute_no_docstringc                    sX   ddl m‰  ddl m} d ddddd	d
g¡}G ‡ fdd„d|ƒ}|  |  |¡|¡ d S )Nr   r/   r
   r   r1   r2   r   z/  an_attribute -- This attribute is documented.r   r   c                       s   e Zd ZdZ” ddƒZdS )z`Test_asStructuredText.test_asStructuredText_with_attribute_with_docstring.<locals>.IHasAttributer3   r4   úThis attribute is documented.Nr5   r   r/   r   r   r1   v   s   ÿr6   r7   r   r/   r   Ú3test_asStructuredText_with_attribute_with_docstringj   s    ú	zITest_asStructuredText.test_asStructuredText_with_attribute_with_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   Ú
IHasMethodú This interface has a method.r   r   z  aMethod() -- no documentationr   c                   @   s   e Zd ZdZdd„ ZdS )z`Test_asStructuredText.test_asStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethodú* This interface has a method.
            c                   S   s   d S ©Nr   r   r   r   r   ÚaMethodŒ   s    zhTest_asStructuredText.test_asStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethod.aMethodN©r   r   r   r    r?   r   r   r   r   r;   ‰   s   r   ©r   r   r   r;   r   r   r   Ú6test_asStructuredText_with_method_no_args_no_docstring~   s    ú	zLTest_asStructuredText.test_asStructuredText_with_method_no_args_no_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   r;   r<   r   r   z,  aMethod(first, second) -- no documentationr   c                   @   s   e Zd ZdZdd„ ZdS )zhTest_asStructuredText.test_asStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethodr=   c                 S   s   d S r>   r   ©ÚfirstÚsecondr   r   r   r?   Ÿ   s    zpTest_asStructuredText.test_asStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   œ   s   r   rA   r   r   r   Ú>test_asStructuredText_with_method_positional_args_no_docstring‘   s    ú	zTTest_asStructuredText.test_asStructuredText_with_method_positional_args_no_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   r;   r<   r   r   z3  aMethod(first, second, *rest) -- no documentationr   c                   @   s   e Zd ZdZdd„ ZdS )zaTest_asStructuredText.test_asStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethodr=   c                 W   s   d S r>   r   ©rD   rE   Úrestr   r   r   r?   ²   s    ziTest_asStructuredText.test_asStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   ¯   s   r   rA   r   r   r   Ú7test_asStructuredText_with_method_starargs_no_docstring¤   s    ú	zMTest_asStructuredText.test_asStructuredText_with_method_starargs_no_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   r;   r<   r   r   z2  aMethod(first, second, **kw) -- no documentationr   c                   @   s   e Zd ZdZdd„ ZdS )z_Test_asStructuredText.test_asStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethodr=   c                 [   s   d S r>   r   ©rD   rE   Úkwr   r   r   r?   Å   s    zgTest_asStructuredText.test_asStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   Â   s   r   rA   r   r   r   Ú5test_asStructuredText_with_method_kwargs_no_docstring·   s    ú	zKTest_asStructuredText.test_asStructuredText_with_method_kwargs_no_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   r;   r<   r   r   z)  aMethod() -- This method is documented.r   c                   @   s   e Zd ZdZdd„ ZdS )zZTest_asStructuredText.test_asStructuredText_with_method_with_docstring.<locals>.IHasMethodr=   c                   S   s   dS ©z+This method is documented.
                Nr   r   r   r   r   r?   Ø   s    zbTest_asStructuredText.test_asStructuredText_with_method_with_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   Õ   s   r   rA   r   r   r   Ú0test_asStructuredText_with_method_with_docstringÊ   s    ú	zFTest_asStructuredText.test_asStructuredText_with_method_with_docstringc                    st   ddl m‰  ddl m} d ddddd	d
ddddddg¡}G dd„ d|ƒ}G ‡ fdd„d|ƒ}|  |  |¡|¡ d S )Nr   r/   r
   r   ÚIDerivedú IDerived docú This interface extends:z	  o IBaser   z  attr1 -- no documentationz  attr2 -- attr2 docr   z  method3() -- method3 docz  method4() -- no documentationz  method5() -- method5 docr   c                   @   s   e Zd Zdd„ Zdd„ ZdS )zOTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IBasec                   S   s   dS ©Z	docstringNr   r   r   r   r   Úmethod1ñ   s    zWTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IBase.method1c                   S   s   dS rR   r   r   r   r   r   Úmethod2ô   s    zWTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IBase.method2N©r   r   r   rS   rT   r   r   r   r   ÚIBaseð   s   rV   c                       s:   e Zd ZdZ” dƒZ” ddƒZdd„ Zdd„ Zd	d
„ ZdS )zRTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerivedúIDerived docÚattr1Úattr2ú	attr2 docc                   S   s   dS ©zmethod3 docNr   r   r   r   r   Úmethod3ü   s    zZTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerived.method3c                   S   s   d S r>   r   r   r   r   r   Úmethod4ÿ   s    zZTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerived.method4c                   S   s   dS ©zmethod5 docNr   r   r   r   r   Úmethod5  s    zZTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerived.method5N©	r   r   r   r    rX   rY   r\   r]   r_   r   r/   r   r   rO   ÷   s   
r6   ©r   r   r   rV   rO   r   r/   r   Ú*test_asStructuredText_derived_ignores_baseÞ   s&    ôz@Test_asStructuredText.test_asStructuredText_derived_ignores_baseN)r   r   r   r	   r   r"   r.   r8   r:   rB   rF   rI   rL   rN   rb   r   r   r   r   r      s   r   c                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTest_asReStructuredTextc                 C   s   ddl m} ||ƒS )Nr   )ÚasReStructuredText)r   rd   )r   r   rd   r   r   r   r	   
  s    z Test_asReStructuredText._callFUTc                 C   sD   ddl m} d ddddg¡}G dd	„ d	|ƒ}|  |  |¡|¡ d S )
Nr   r
   r   z``INoDocstring``r   r   r   c                   @   s   e Zd ZdS )zRTest_asReStructuredText.test_asReStructuredText_no_docstring.<locals>.INoDocstringNr   r   r   r   r   r     s   r   r   r   r   r   r   Ú$test_asReStructuredText_no_docstring  s    üz<Test_asReStructuredText.test_asReStructuredText_no_docstringc                 C   sF   ddl m} d dddddg¡}G d	d
„ d
|ƒ}|  |  |¡|¡ d S )Nr   r
   r   ú
``IEmpty``r   r   r   r   c                   @   s   e Zd ZdZdS )zTTest_asReStructuredText.test_asReStructuredText_empty_with_docstring.<locals>.IEmptyr   Nr   r   r   r   r   r   &  s   r   r   r!   r   r   r   Ú,test_asReStructuredText_empty_with_docstring  s    ûzDTest_asReStructuredText.test_asReStructuredText_empty_with_docstringc                 C   sr   ddl m} tjdk rdnd}d dddd	|› d
�|› d�ddddddg¡}G dd„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r#   r&   r   r'   rf   r   r(   z; It can be used to annotate any class or object, because itz promises nothing.r   r   c                   @   s   e Zd ZdZdS )z^Test_asReStructuredText.test_asReStructuredText_empty_with_multiline_docstring.<locals>.IEmptyz� This is an empty interface.

            It can be used to annotate any class or object, because it
            promises nothing.
            Nr   r   r   r   r   r   C  s   r   r)   r,   r   r   r   Ú6test_asReStructuredText_empty_with_multiline_docstring,  s$    òzNTest_asReStructuredText.test_asReStructuredText_empty_with_multiline_docstringc                    sX   ddl m‰  ddl m} d ddddd	d
g¡}G ‡ fdd„d|ƒ}|  |  |¡|¡ d S )Nr   r/   r
   r   ú``IHasAttribute``r2   r   z&  ``an_attribute`` -- no documentationr   r   c                       s   e Zd ZdZ” dƒZdS )zbTest_asReStructuredText.test_asReStructuredText_with_attribute_no_docstring.<locals>.IHasAttributer3   r4   Nr5   r   r/   r   r   r1   X  s   r1   r6   r7   r   r/   r   Ú3test_asReStructuredText_with_attribute_no_docstringL  s    ú	zKTest_asReStructuredText.test_asReStructuredText_with_attribute_no_docstringc                    sX   ddl m‰  ddl m} d ddddd	d
g¡}G ‡ fdd„d|ƒ}|  |  |¡|¡ d S )Nr   r/   r
   r   ri   r2   r   z3  ``an_attribute`` -- This attribute is documented.r   r   c                       s   e Zd ZdZ” ddƒZdS )zdTest_asReStructuredText.test_asReStructuredText_with_attribute_with_docstring.<locals>.IHasAttributer3   r4   r9   Nr5   r   r/   r   r   r1   k  s   ÿr1   r6   r7   r   r/   r   Ú5test_asReStructuredText_with_attribute_with_docstring_  s    ú	zMTest_asReStructuredText.test_asReStructuredText_with_attribute_with_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   ú``IHasMethod``r<   r   r   z#  ``aMethod()`` -- no documentationr   c                   @   s   e Zd ZdZdd„ ZdS )zdTest_asReStructuredText.test_asReStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethodr=   c                   S   s   d S r>   r   r   r   r   r   r?   �  s    zlTest_asReStructuredText.test_asReStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   ~  s   r;   r   rA   r   r   r   Ú8test_asReStructuredText_with_method_no_args_no_docstrings  s    ú	zPTest_asReStructuredText.test_asReStructuredText_with_method_no_args_no_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   rl   r<   r   r   z0  ``aMethod(first, second)`` -- no documentationr   c                   @   s   e Zd ZdZdd„ ZdS )zlTest_asReStructuredText.test_asReStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethodr=   c                 S   s   d S r>   r   rC   r   r   r   r?   ”  s    ztTest_asReStructuredText.test_asReStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   ‘  s   r;   r   rA   r   r   r   Ú@test_asReStructuredText_with_method_positional_args_no_docstring†  s    ú	zXTest_asReStructuredText.test_asReStructuredText_with_method_positional_args_no_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   rl   r<   r   r   z7  ``aMethod(first, second, *rest)`` -- no documentationr   c                   @   s   e Zd ZdZdd„ ZdS )zeTest_asReStructuredText.test_asReStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethodr=   c                 W   s   d S r>   r   rG   r   r   r   r?   §  s    zmTest_asReStructuredText.test_asReStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   ¤  s   r;   r   rA   r   r   r   Ú9test_asReStructuredText_with_method_starargs_no_docstring™  s    ú	zQTest_asReStructuredText.test_asReStructuredText_with_method_starargs_no_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   rl   r<   r   r   z6  ``aMethod(first, second, **kw)`` -- no documentationr   c                   @   s   e Zd ZdZdd„ ZdS )zcTest_asReStructuredText.test_asReStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethodr=   c                 [   s   d S r>   r   rJ   r   r   r   r?   º  s    zkTest_asReStructuredText.test_asReStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   ·  s   r;   r   rA   r   r   r   Ú7test_asReStructuredText_with_method_kwargs_no_docstring¬  s    ú	zOTest_asReStructuredText.test_asReStructuredText_with_method_kwargs_no_docstringc                 C   sH   ddl m} d dddddd	g¡}G d
d„ d|ƒ}|  |  |¡|¡ d S )Nr   r
   r   rl   r<   r   r   z-  ``aMethod()`` -- This method is documented.r   c                   @   s   e Zd ZdZdd„ ZdS )z^Test_asReStructuredText.test_asReStructuredText_with_method_with_docstring.<locals>.IHasMethodr=   c                   S   s   dS rM   r   r   r   r   r   r?   Í  s    zfTest_asReStructuredText.test_asReStructuredText_with_method_with_docstring.<locals>.IHasMethod.aMethodNr@   r   r   r   r   r;   Ê  s   r;   r   rA   r   r   r   Ú2test_asReStructuredText_with_method_with_docstring¿  s    ú	zJTest_asReStructuredText.test_asReStructuredText_with_method_with_docstringc                    st   ddl m‰  ddl m} d ddddd	d
ddddddg¡}G dd„ d|ƒ}G ‡ fdd„d|ƒ}|  |  |¡|¡ d S )Nr   r/   r
   r   z``IDerived``rP   rQ   z  o ``IBase``r   z  ``attr1`` -- no documentationz  ``attr2`` -- attr2 docr   z  ``method3()`` -- method3 docz#  ``method4()`` -- no documentationz  ``method5()`` -- method5 docr   c                   @   s   e Zd Zdd„ Zdd„ ZdS )zSTest_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IBasec                   S   s   d S r>   r   r   r   r   r   rS   æ  s    z[Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IBase.method1c                   S   s   d S r>   r   r   r   r   r   rT   é  s    z[Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IBase.method2NrU   r   r   r   r   rV   å  s   rV   c                       s:   e Zd ZdZ” dƒZ” ddƒZdd„ Zdd„ Zd	d
„ ZdS )zVTest_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerivedrW   rX   rY   rZ   c                   S   s   dS r[   r   r   r   r   r   r\   ñ  s    z^Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerived.method3c                   S   s   d S r>   r   r   r   r   r   r]   ô  s    z^Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerived.method4c                   S   s   dS r^   r   r   r   r   r   r_   ÷  s    z^Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerived.method5Nr`   r   r/   r   r   rO   ì  s   
rO   r6   ra   r   r/   r   Ú,test_asReStructuredText_derived_ignores_baseÓ  s&    ôzDTest_asReStructuredText.test_asReStructuredText_derived_ignores_baseN)r   r   r   r	   re   rg   rh   rj   rk   rm   rn   ro   rp   rq   rr   r   r   r   r   rc     s    rc   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTest__justify_and_indentc                 K   s   ddl m} |||f|ŽS )Nr   )Ú_justify_and_indent)r   rt   )r   ÚtextÚlevelrK   rt   r   r   r   r	   ÿ  s    z!Test__justify_and_indent._callFUTc                 C   s*   ddg}d  |¡}|  |  |d¡|¡ d S )NúThree blind miceúSee how they runr'   r   ©r   r   r	   ©r   ÚLINESru   r   r   r   Útest_simple_level_0  s    
z,Test__justify_and_indent.test_simple_level_0c                 C   s:   ddg}d  |¡}|  |  |d¡d  dd„ |D ƒ¡¡ d S )Nrw   rx   r'   é   c                 S   s   g | ]}d | ‘qS ©r(   r   ©Ú.0Úliner   r   r   Ú
<listcomp>  s     z@Test__justify_and_indent.test_simple_level_1.<locals>.<listcomp>ry   rz   r   r   r   Útest_simple_level_1  s
    
ÿz,Test__justify_and_indent.test_simple_level_1c                 C   s:   ddg}d  |¡}|  |  |d¡d  dd„ |D ƒ¡¡ d S )Nrw   rx   r'   r}   c                 S   s   g | ]}d | ‘qS r~   r   r   r   r   r   r‚     s     z@Test__justify_and_indent.test_simple_level_2.<locals>.<listcomp>ry   rz   r   r   r   Útest_simple_level_2  s
    
ÿz,Test__justify_and_indent.test_simple_level_2c                 C   s:   ddg}d  |¡}|  |  |d¡d  dd„ |D ƒ¡¡ d S )Nrw   rx   z
r}   r'   c                 S   s   g | ]}d | ‘qS r~   r   r   r   r   r   r‚     s     z?Test__justify_and_indent.test_simple_w_CRLF.<locals>.<listcomp>ry   rz   r   r   r   Útest_simple_w_CRLF  s
    
ÿz+Test__justify_and_indent.test_simple_w_CRLFc                 C   s&   d}d}|   | j|dddd�|¡ d S )NzTThis is a piece of text longer than 15 characters, 
and split across multiple lines.z_  This is a piece
  of text longer
  than 15 characters,
  and split across
  multiple lines.
 r}   é   )ZmungeÚwidth)r   r	   )r   ZTEXTr   r   r   r   Útest_with_munge  s    z(Test__justify_and_indent.test_with_mungeN)	r   r   r   r	   r|   rƒ   r„   r…   rˆ   r   r   r   r   rs   ý  s   rs   )r    r*   ZunittestZTestCaser   rc   rs   r   r   r   r   Ú<module>   s    u v