
    fC                         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      z/var/dept/share/cheung/public_html/OutSchool/python/env/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)   /       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'    D It can be used to annotate any class or object, because it promises	 nothing.r   r   c                       e Zd ZdZy)ZTest_asStructuredText.test_asStructuredText_empty_with_multiline_docstring.<locals>.IEmpty 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;   I       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_docstring4   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,   rL   rE   s   r
   rG   rJ   \       $^4Lr   rG   r   rF   r   r   r    r   r   r   r"   rG   rF   s       @r
   1test_asStructuredText_with_attribute_no_docstringzGTest_asStructuredText.test_asStructuredText_with_attribute_no_docstringQ   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   rE   r   r   )rG   rH   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>.IHasAttributerK   rL   This attribute is documented.NrM   rE   s   r
   rG   rU   n       $^%DFLr   rG   rO   rP   s       @r
   3test_asStructuredText_with_attribute_with_docstringzITest_asStructuredText.test_asStructuredText_with_attribute_with_docstringc   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,   rb   r   r   r
   r[   r^          r   r[   r   r   r   r"   r[   s       r
   6test_asStructuredText_with_method_no_args_no_docstringzLTest_asStructuredText.test_asStructuredText_with_method_no_args_no_docstringv   ?    ,;;  
 	 	 	z2H=r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r[   r\   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 ra   r   firstseconds     r
   rb   zpTest_asStructuredText.test_asStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethod.aMethod   rc   r   Nrd   r   r   r
   r[   rk      re   r   r[   r   rf   s       r
   >test_asStructuredText_with_method_positional_args_no_docstringzTTest_asStructuredText.test_asStructuredText_with_method_positional_args_no_docstring   rh   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r[   r\   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 ra   r   rn   ro   rests      r
   rb   ziTest_asStructuredText.test_asStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethod.aMethod   rc   r   Nrd   r   r   r
   r[   rs      re   r   r[   r   rf   s       r
   7test_asStructuredText_with_method_starargs_no_docstringzMTest_asStructuredText.test_asStructuredText_with_method_starargs_no_docstring   rh   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r[   r\   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 ra   r   rn   ro   kws      r
   rb   zgTest_asStructuredText.test_asStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethod.aMethod   rc   r   Nrd   r   r   r
   r[   rz      re   r   r[   r   rf   s       r
   5test_asStructuredText_with_method_kwargs_no_docstringzKTest_asStructuredText.test_asStructuredText_with_method_kwargs_no_docstring   rh   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r[   r\   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
   rb   zbTest_asStructuredText.test_asStructuredText_with_method_with_docstring.<locals>.IHasMethod.aMethod       r   Nrd   r   r   r
   r[   r          r   r[   r   rf   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   rE   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 ra   r   r   r   r
   method4zZTest_asStructuredText.test_asStructuredText_derived_ignores_base.<locals>.IDerived.method4   rc   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   rE   s   r
   r   r      +    g&Eg{3Er   r   rO   r   r   r"   r   r   rF   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/   rC   rQ   rX   rg   rp   rw   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   r8   r9   r   r   c                       e Zd ZdZy)^Test_asReStructuredText.test_asReStructuredText_empty_with_multiline_docstring.<locals>.IEmptyr<   Nr+   r   r   r
   r&   r   -  r=   r   r&   r>   rA   s        r
   6test_asReStructuredText_empty_with_multiline_docstringzNTest_asReStructuredText.test_asReStructuredText_empty_with_multiline_docstring  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   rE   r   r   )``IHasAttribute``rH   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>.IHasAttributerK   rL   NrM   rE   s   r
   rG   r   @  rN   r   rG   rO   rP   s       @r
   3test_asReStructuredText_with_attribute_no_docstringzKTest_asReStructuredText.test_asReStructuredText_with_attribute_no_docstring5  rR   r   c                     ddl m ddl m} dj                  g d      } G fdd|      }| j	                  | j                  |      |       y )Nr   rE   r   r   )r   rH   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>.IHasAttributerK   rL   rV   NrM   rE   s   r
   rG   r   R  rW   r   rG   rO   rP   s       @r
   5test_asReStructuredText_with_attribute_with_docstringzMTest_asReStructuredText.test_asReStructuredText_with_attribute_with_docstringG  rY   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )``IHasMethod``r\   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 ra   r   r   r   r
   rb   zlTest_asReStructuredText.test_asReStructuredText_with_method_no_args_no_docstring.<locals>.IHasMethod.aMethodg  rc   r   Nrd   r   r   r
   r[   r   d  re   r   r[   r   rf   s       r
   8test_asReStructuredText_with_method_no_args_no_docstringzPTest_asReStructuredText.test_asReStructuredText_with_method_no_args_no_docstringZ  rh   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r   r\   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 ra   r   rm   s     r
   rb   ztTest_asReStructuredText.test_asReStructuredText_with_method_positional_args_no_docstring.<locals>.IHasMethod.aMethody  rc   r   Nrd   r   r   r
   r[   r   v  re   r   r[   r   rf   s       r
   @test_asReStructuredText_with_method_positional_args_no_docstringzXTest_asReStructuredText.test_asReStructuredText_with_method_positional_args_no_docstringl  rh   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r   r\   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 ra   r   ru   s      r
   rb   zmTest_asReStructuredText.test_asReStructuredText_with_method_starargs_no_docstring.<locals>.IHasMethod.aMethod  rc   r   Nrd   r   r   r
   r[   r     re   r   r[   r   rf   s       r
   9test_asReStructuredText_with_method_starargs_no_docstringzQTest_asReStructuredText.test_asReStructuredText_with_method_starargs_no_docstring~  rh   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r   r\   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 ra   r   r|   s      r
   rb   zkTest_asReStructuredText.test_asReStructuredText_with_method_kwargs_no_docstring.<locals>.IHasMethod.aMethod  rc   r   Nrd   r   r   r
   r[   r     re   r   r[   r   rf   s       r
   7test_asReStructuredText_with_method_kwargs_no_docstringzOTest_asReStructuredText.test_asReStructuredText_with_method_kwargs_no_docstring  rh   r   c                     ddl m} dj                  g d      } G d d|      }| j                  | j	                  |      |       y )Nr   r   r   )r   r\   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
   rb   zfTest_asReStructuredText.test_asReStructuredText_with_method_with_docstring.<locals>.IHasMethod.aMethod  r   r   Nrd   r   r   r
   r[   r     r   r   r[   r   rf   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   rE   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 ra   r   r   r   r
   r   z[Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IBase.method1  rc   r   c                       y ra   r   r   r   r
   r   z[Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IBase.method2  rc   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 ra   r   r   r   r
   r   z^Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerived.method4  rc   r   c                       yr   r   r   r   r
   r   z^Test_asReStructuredText.test_asReStructuredText_derived_ignores_base.<locals>.IDerived.method5  r   r   Nr   rE   s   r
   r   r     r   r   r   rO   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      sA    )
@:::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levelr}   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    
 a<H-- a<Ha<h// a<H&Nx00 &Nr   