
    VhDC                         d Z ddlZddlZ G d dej                        Z G d dej                        Z G d dej                        Zy)	zDocumentation tests.
    Nc                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)Test_asStructuredTextc                     ddl m}  ||      S )Nr   )asStructuredText)zope.interface.documentr   )selfifacer   s      R/home/dcms/DCMS/lib/python3.12/site-packages/zope/interface/tests/test_document.py_callFUTzTest_asStructuredText._callFUT   s    <&&    c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   	Interface

)INoDocstring Attributes:	 Methods: c                       e Zd Zy)NTest_asStructuredText.test_asStructuredText_no_docstring.<locals>.INoDocstringN__name__
__module____qualname__ r   r
   r   r   #       r   r   zope.interfacer   joinassertEqualr   r   r   EXPECTEDr   s       r
   "test_asStructuredText_no_docstringz8Test_asStructuredText.test_asStructuredText_no_docstring   ?    ,;;  
 	9 	 	|4h?r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )IEmpty This is an empty interface.r   r   r   c                       e Zd ZdZy)PTest_asStructuredText.test_asStructuredText_empty_with_docstring.<locals>.IEmpty) This is an empty interface.
            Nr   r   r   __doc__r   r   r
   r&   r)   2       r   r&   r   r   r   r"   r&   s       r
   *test_asStructuredText_empty_with_docstringz@Test_asStructuredText.test_asStructuredText_empty_with_docstring(   ?    ,;;  
 	Y 	 	v.9r   c                     ddl m} t        j                  dk  rdnd}dj	                  dddd	| d
| dddddddg      } G d d|      }| j                  | j                  |      |       y )Nr   r                     r   
r&   r'    zD It can be used to annotate any class or object, because it promisesz	 nothing.r   r   c                       e Zd ZdZy)ZTest_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&   r9   N       r   r   r   sysversion_infor   r    r   r   r   indentr"   r&   s        r
   4test_asStructuredText_empty_with_multiline_docstringzJTest_asStructuredText.test_asStructuredText_empty_with_multiline_docstring8   s    , !--7R99*x 3 3hi 
  	Y 	 	v.9r   c                     ddl m ddl m} dj                  g d      } G fdd|      }| j	                  | j                  |      |       y )Nr   	Attributer   r   )IHasAttribute! This interface has an attribute.r   z"  an_attribute -- no documentationr   r   c                   $    e Zd ZdZ W  d      Zy)^Test_asStructuredText.test_asStructuredText_with_attribute_no_docstring.<locals>.IHasAttribute. This interface has an attribute.
            an_attributeNr   r   r   r,   rI   rB   s   r
   rD   rG   c       $^4Lr   rD   r   rC   r   r   r    r   r   r   r"   rD   rC   s       @r
   1test_asStructuredText_with_attribute_no_docstringzGTest_asStructuredText.test_asStructuredText_with_attribute_no_docstringW   C    ,,;;  
 	5I 	5
 	}5x@r   c                     ddl m ddl m} dj                  g d      } G fdd|      }| j	                  | j                  |      |       y )Nr   rB   r   r   )rD   rE   r   z/  an_attribute -- This attribute is documented.r   r   c                   &    e Zd ZdZ W  dd      Zy)`Test_asStructuredText.test_asStructuredText_with_attribute_with_docstring.<locals>.IHasAttributerH   rI   This attribute is documented.NrJ   rB   s   r
   rD   rR   v       $^%DFLr   rD   rL   rM   s       @r
   3test_asStructuredText_with_attribute_with_docstringzITest_asStructuredText.test_asStructuredText_with_attribute_with_docstringj   E    ,,;;  
 	FI 	F 	}5x@r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )
IHasMethod This interface has a method.r   r   z  aMethod() -- no documentationr   c                       e Zd ZdZd Zy)`Test_asStructuredText.test_asStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethod* This interface has a method.
            c                       y Nr   r   r   r
   aMethodzhTest_asStructuredText.test_asStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethod.aMethod       r   Nr   r   r   r,   r_   r   r   r
   rX   r[          r   rX   r   r   r   r"   rX   s       r
   6test_asStructuredText_with_method_no_args_no_docstringzLTest_asStructuredText.test_asStructuredText_with_method_no_args_no_docstring~   ?    ,;;  
 	 	 	z2H=r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )rX   rY   r   r   z,  aMethod(first, second) -- no documentationr   c                       e Zd ZdZd Zy)hTest_asStructuredText.test_asStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethodr\   c                      y r^   r   firstseconds     r
   r_   zpTest_asStructuredText.test_asStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethod.aMethod   r`   r   Nra   r   r   r
   rX   rh      rb   r   rX   r   rc   s       r
   >test_asStructuredText_with_method_positional_args_no_docstringzTTest_asStructuredText.test_asStructuredText_with_method_positional_args_no_docstring   re   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )rX   rY   r   r   z3  aMethod(first, second, *rest) -- no documentationr   c                       e Zd ZdZd Zy)aTest_asStructuredText.test_asStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethodr\   c                      y r^   r   rk   rl   rests      r
   r_   ziTest_asStructuredText.test_asStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethod.aMethod   r`   r   Nra   r   r   r
   rX   rp      rb   r   rX   r   rc   s       r
   7test_asStructuredText_with_method_starargs_no_docstringzMTest_asStructuredText.test_asStructuredText_with_method_starargs_no_docstring   re   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )rX   rY   r   r   z2  aMethod(first, second, **kw) -- no documentationr   c                       e Zd ZdZd Zy)_Test_asStructuredText.test_asStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethodr\   c                      y r^   r   rk   rl   kws      r
   r_   zgTest_asStructuredText.test_asStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethod.aMethod   r`   r   Nra   r   r   r
   rX   rw      rb   r   rX   r   rc   s       r
   5test_asStructuredText_with_method_kwargs_no_docstringzKTest_asStructuredText.test_asStructuredText_with_method_kwargs_no_docstring   re   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )rX   rY   r   r   z)  aMethod() -- This method is documented.r   c                       e Zd ZdZd Zy)ZTest_asStructuredText.test_asStructuredText_with_method_with_docstring.<locals>.IHasMethodr\   c                       yz+This method is documented.
                Nr   r   r   r
   r_   zbTest_asStructuredText.test_asStructuredText_with_method_with_docstring.<locals>.IHasMethod.aMethod       r   Nra   r   r   r
   rX   r~          r   rX   r   rc   s       r
   0test_asStructuredText_with_method_with_docstringzFTest_asStructuredText.test_asStructuredText_with_method_with_docstring   ?    ,;;  
 	 	 	z2H=r   c                     ddl m ddl m} dj                  g d      } G d d|      } G fdd	|      }| j	                  | j                  |      |       y )
Nr   rB   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                       e Zd Zd Zd Zy)OTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IBasec                       y	docstringNr   r   r   r
   method1zWTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IBase.method1   r   r   c                       yr   r   r   r   r
   method2zWTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IBase.method2   r   r   Nr   r   r   r   r   r   r   r
   IBaser      s      r   r   c                   J    e Zd ZdZ W  d      Z W  dd      Zd Zd Zd Zy)	RTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerivedIDerived docattr1attr2	attr2 docc                       yzmethod3 docNr   r   r   r
   method3zZTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerived.method3   r   r   c                       y r^   r   r   r   r
   method4zZTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerived.method4   r`   r   c                       yzmethod5 docNr   r   r   r
   method5zZTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerived.method5  r   r   N	r   r   r   r,   r   r   r   r   r   rB   s   r
   r   r      +    g&Eg{3Er   r   rL   r   r   r"   r   r   rC   s        @r
   *test_asStructuredText_derived_ignores_basez@Test_asStructuredText.test_asStructuredText_derived_ignores_base   sO    ,,;;  
 	 I 	 	u 	 	x0(;r   N)r   r   r   r   r#   r/   r@   rN   rU   rd   rm   rt   r{   r   r   r   r   r
   r   r      sA    '@: :>A&A(>&>&>&>&>('<r   r   c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)Test_asReStructuredTextc                     ddl m}  ||      S )Nr   )asReStructuredText)r   r   )r   r	   r   s      r
   r   z Test_asReStructuredText._callFUT
  s    >!%((r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )z``INoDocstring``r   r   r   c                       e Zd Zy)RTest_asReStructuredText.test_asReStructuredText_no_docstring.<locals>.INoDocstringNr   r   r   r
   r   r     r   r   r   r   r!   s       r
   $test_asReStructuredText_no_docstringz<Test_asReStructuredText.test_asReStructuredText_no_docstring  r$   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )
``IEmpty``r'   r   r   r   c                       e Zd ZdZy)TTest_asReStructuredText.test_asReStructuredText_empty_with_docstring.<locals>.IEmptyr*   Nr+   r   r   r
   r&   r   &  r-   r   r&   r   r.   s       r
   ,test_asReStructuredText_empty_with_docstringzDTest_asReStructuredText.test_asReStructuredText_empty_with_docstring  r0   r   c                     ddl m} t        j                  dk  rdnd}dj	                  dddd	| d
| dddddddg      } G d d|      }| j                  | j                  |      |       y )Nr   r   r2   r5   r   r6   r   r'   r7   z; It can be used to annotate any class or object, because itz promises nothing.r   r   c                       e Zd ZdZy)^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  r:   r   r&   r;   r>   s        r
   6test_asReStructuredText_empty_with_multiline_docstringzNTest_asReStructuredText.test_asReStructuredText_empty_with_multiline_docstring,  s    , !--7R99*x   h()
 "	Y 	 	v.9r   c                     ddl m ddl m} dj                  g d      } G fdd|      }| j	                  | j                  |      |       y )Nr   rB   r   r   )``IHasAttribute``rE   r   z&  ``an_attribute`` -- no documentationr   r   c                   $    e Zd ZdZ W  d      Zy)bTest_asReStructuredText.test_asReStructuredText_with_attribute_no_docstring.<locals>.IHasAttributerH   rI   NrJ   rB   s   r
   rD   r   X  rK   r   rD   rL   rM   s       @r
   3test_asReStructuredText_with_attribute_no_docstringzKTest_asReStructuredText.test_asReStructuredText_with_attribute_no_docstringL  rO   r   c                     ddl m ddl m} dj                  g d      } G fdd|      }| j	                  | j                  |      |       y )Nr   rB   r   r   )r   rE   r   z3  ``an_attribute`` -- This attribute is documented.r   r   c                   &    e Zd ZdZ W  dd      Zy)dTest_asReStructuredText.test_asReStructuredText_with_attribute_with_docstring.<locals>.IHasAttributerH   rI   rS   NrJ   rB   s   r
   rD   r   k  rT   r   rD   rL   rM   s       @r
   5test_asReStructuredText_with_attribute_with_docstringzMTest_asReStructuredText.test_asReStructuredText_with_attribute_with_docstring_  rV   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )``IHasMethod``rY   r   r   z#  ``aMethod()`` -- no documentationr   c                       e Zd ZdZd Zy)dTest_asReStructuredText.test_asReStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethodr\   c                       y r^   r   r   r   r
   r_   zlTest_asReStructuredText.test_asReStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethod.aMethod  r`   r   Nra   r   r   r
   rX   r   ~  rb   r   rX   r   rc   s       r
   8test_asReStructuredText_with_method_no_args_no_docstringzPTest_asReStructuredText.test_asReStructuredText_with_method_no_args_no_docstrings  re   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r   rY   r   r   z0  ``aMethod(first, second)`` -- no documentationr   c                       e Zd ZdZd Zy)lTest_asReStructuredText.test_asReStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethodr\   c                      y r^   r   rj   s     r
   r_   ztTest_asReStructuredText.test_asReStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethod.aMethod  r`   r   Nra   r   r   r
   rX   r     rb   r   rX   r   rc   s       r
   @test_asReStructuredText_with_method_positional_args_no_docstringzXTest_asReStructuredText.test_asReStructuredText_with_method_positional_args_no_docstring  re   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r   rY   r   r   z7  ``aMethod(first, second, *rest)`` -- no documentationr   c                       e Zd ZdZd Zy)eTest_asReStructuredText.test_asReStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethodr\   c                      y r^   r   rr   s      r
   r_   zmTest_asReStructuredText.test_asReStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethod.aMethod  r`   r   Nra   r   r   r
   rX   r     rb   r   rX   r   rc   s       r
   9test_asReStructuredText_with_method_starargs_no_docstringzQTest_asReStructuredText.test_asReStructuredText_with_method_starargs_no_docstring  re   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r   rY   r   r   z6  ``aMethod(first, second, **kw)`` -- no documentationr   c                       e Zd ZdZd Zy)cTest_asReStructuredText.test_asReStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethodr\   c                      y r^   r   ry   s      r
   r_   zkTest_asReStructuredText.test_asReStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethod.aMethod  r`   r   Nra   r   r   r
   rX   r     rb   r   rX   r   rc   s       r
   7test_asReStructuredText_with_method_kwargs_no_docstringzOTest_asReStructuredText.test_asReStructuredText_with_method_kwargs_no_docstring  re   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r   rY   r   r   z-  ``aMethod()`` -- This method is documented.r   c                       e Zd ZdZd Zy)^Test_asReStructuredText.test_asReStructuredText_with_method_with_docstring.<locals>.IHasMethodr\   c                       yr   r   r   r   r
   r_   zfTest_asReStructuredText.test_asReStructuredText_with_method_with_docstring.<locals>.IHasMethod.aMethod  r   r   Nra   r   r   r
   rX   r     r   r   rX   r   rc   s       r
   2test_asReStructuredText_with_method_with_docstringzJTest_asReStructuredText.test_asReStructuredText_with_method_with_docstring  r   r   c                     ddl m ddl m} dj                  g d      } G d d|      } G fdd	|      }| j	                  | j                  |      |       y )
Nr   rB   r   r   )z``IDerived``r   r   z  o ``IBase``r   z  ``attr1`` -- no documentationz  ``attr2`` -- attr2 docr   z  ``method3()`` -- method3 docz#  ``method4()`` -- no documentationz  ``method5()`` -- method5 docr   c                       e Zd Zd Zd Zy)STest_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IBasec                       y r^   r   r   r   r
   r   z[Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IBase.method1  r`   r   c                       y r^   r   r   r   r
   r   z[Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IBase.method2  r`   r   Nr   r   r   r
   r   r     s    r   r   c                   J    e Zd ZdZ W  d      Z W  dd      Zd Zd Zd Zy)	VTest_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerivedr   r   r   r   c                       yr   r   r   r   r
   r   z^Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerived.method3  r   r   c                       y r^   r   r   r   r
   r   z^Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerived.method4  r`   r   c                       yr   r   r   r   r
   r   z^Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerived.method5  r   r   Nr   rB   s   r
   r   r     r   r   r   rL   r   s        @r
   ,test_asReStructuredText_derived_ignores_basezDTest_asReStructuredText.test_asReStructuredText_derived_ignores_base  sO    ,,;;  
 	I 		u 	 	x0(;r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r     sB    )@: :@A&A(>&>&>&>&>('<r   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)Test__justify_and_indentc                 "    ddl m}  |||fi |S )Nr   )_justify_and_indent)r   r   )r   textlevelrz   r   s        r
   r   z!Test__justify_and_indent._callFUT  s    ?"45"55r   c                 r    ddg}dj                  |      }| j                  | j                  |d      |       y )NThree blind miceSee how they runr6   r   r   r    r   )r   LINESr   s      r
   test_simple_level_0z,Test__justify_and_indent.test_simple_level_0  s6    #%78yytQ/6r   c           
          ddg}dj                  |      }| j                  | j                  |d      dj                  |D cg c]  }d|z   	 c}             y c c}w Nr   r   r6      r7   r   r   r   r   lines       r
   test_simple_level_1z,Test__justify_and_indent.test_simple_level_1  U    #%78yytQ/5#A4C$J#AB	D#A   Ac           
          ddg}dj                  |      }| j                  | j                  |d      dj                  |D cg c]  }d|z   	 c}             y c c}w r   r   r   s       r
   test_simple_level_2z,Test__justify_and_indent.test_simple_level_2  r   r   c           
          ddg}dj                  |      }| j                  | j                  |d      dj                  |D cg c]  }d|z   	 c}             y c c}w )Nr   r   z
r   r6   r7   r   r   s       r
   test_simple_w_CRLFz+Test__justify_and_indent.test_simple_w_CRLF  sU    #%78{{5!tQ/5#A4C$J#AB	D#Ar   c                 V    d}d}| j                  | j                  |ddd      |       y )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      )mungewidth)r    r   )r   TEXTr"   s      r
   test_with_mungez(Test__justify_and_indent.test_with_munge  s3    3 	tQarBHMr   N)	r   r   r   r   r   r   r   r   r  r   r   r
   r   r     s$    67
DDD	Nr   r   )r,   r<   unittestTestCaser   r   r   r   r   r
   <module>r     sN    
 q<H-- q<hr<h// r<j&Nx00 &Nr   