
    
`iJ                        d Z ddlZddlZddlmZmZ ddlmZm	Z	 ej
                            dg d          deded	dfd
            Zej
                            dg d          dedededed	df
d            Zej
                            dg d          dedej        e         dej        e         deded	df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ej
                            dg d          deded	dfd            Zej
                            dd g          deded	dfd!            Zej
                            dd"g          deded	dfd#            Zd%d$ZdS )&z*Tests for epydoc-style docstring routines.    N)
ParseErrorRenderingStylecomposeparsezsource, expected)) N)
NShort descriptionr   z
Short description
r   z
   Short description
r   sourceexpectedreturnc                 b    t          |           }|j        |k    sJ |j        J |j        rJ dS )zTest parsing short description.N)r   short_descriptionlong_descriptionmeta)r   r   	docstrings      v/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/docstring_parser/tests/test_epydoc.pytest_short_descriptionr   
   sF     fI&(2222%---~    z?source, expected_short_desc, expected_long_desc, expected_blank))#Short description

Long descriptionr   Long descriptionT)I
            Short description

            Long description
            r   r   T)a
            Short description

            Long description
            Second line
            r   Long description
Second lineT)"Short description
Long descriptionr   r   F)H
            Short description
            Long description
            r   r   F)$
Short description
Long description
r   r   F)`
            Short description
            Long description
            Second line
            r   r   Fexpected_short_descexpected_long_descexpected_blankc                     t          |           }|j        |k    sJ |j        |k    sJ |j        |k    sJ |j        rJ dS )zTest parsing long description.N)r   r   r   blank_after_short_descriptionr   )r   r"   r#   r$   r   s        r   test_long_descriptionr'      sb    L fI&*=====%);;;;;2nDDDD~r   zdsource, expected_short_desc, expected_long_desc, expected_blank_short_desc, expected_blank_long_desc))B
            Short description
            @meta: asd
            r   NFF)_
            Short description
            Long description
            @meta: asd
            r   r   FF)u
            Short description
            First line
                Second line
            @meta: asd
            r   First line
    Second lineFF)v
            Short description

            First line
                Second line
            @meta: asd
            r   r+   TF)w
            Short description

            First line
                Second line

            @meta: asd
            r   r+   TT)$
            @meta: asd
            NNFFexpected_blank_short_descexpected_blank_long_descc                     t          |           }|j        |k    sJ |j        |k    sJ |j        |k    sJ |j        |k    sJ t          |j                  dk    sJ dS )z2Test parsing newlines around description sections.   N)r   r   r   r&   blank_after_long_descriptionlenr   )r   r"   r#   r/   r0   r   s         r   test_meta_newlinesr5   i   s    f fI&*=====%);;;;;26OOOOO15MMMMMy~!######r   c                      t          d          } | j        dk    sJ t          | j                  dk    sJ | j        d         j        dgk    sJ | j        d         j        dk    sJ dS )z*Test parsing multiline meta documentation.ze
        Short description

        @meta: asd
            1
                2
            3
        r   r2   r   r   asd
1
    2
3Nr   r   r4   r   argsdescriptionr   s    r   $test_meta_with_multiline_descriptionr<      s    		 	I &*=====y~!####>!!fX---->!(,>>>>>>>r   c                     t          d          } | j        dk    sJ t          | j                  dk    sJ | j        d         j        dgk    sJ | j        d         j        dk    sJ | j        d         j        dgk    sJ | j        d         j        d	k    sJ | j        d
         j        dgk    sJ | j        d
         j        dk    sJ dS )zTest parsing multiple meta.z
        Short description

        @meta1: asd
            1
                2
            3
        @meta2: herp
        @meta3: derp
        r      r   meta1r7   r2   meta2herp   meta3derpNr8   r;   s    r   test_multiple_metarE      s    		 I &*=====y~!####>!!gY....>!(,>>>>>>!!gY....>!(F2222>!!gY....>!(F222222r   c                      t          d          } | j        dk    sJ t          | j                  dk    sJ | j        d         j        g dk    sJ | j        d         j        dk    sJ dS )z,Test parsing meta with additional arguments.zD
        Short description

        @meta ene due rabe: asd
        r   r2   r   )r   eneduerabeasdNr8   r;   s    r   test_meta_with_argsrK      s    	 I &*=====y~!####>!!%C%C%CCCCC>!(E111111r   c                     t          d          } t          | j                  dk    sJ t          d          } t          | j                  dk    sJ | j        d         j        dk    sJ | j        d         j        J | j        d         j        dk    sJ | j        d         j        J | j        d         j        rJ | j        d         j        d	k    sJ | j        d         j        d
k    sJ | j        d         j        dk    sJ | j        d         j        rJ | j        d         j        J | j        d         j        dk    sJ | j        d         j        dk    sJ | j        d         j        dk    sJ | j        d         j        sJ | j        d         j        J | j        d         j        dk    sJ | j        d         j        dk    sJ | j        d         j        dk    sJ | j        d         j        sJ | j        d         j        dk    sJ | j        d         j        dk    sJ | j        d         j        dk    sJ | j        d         j        dk    sJ | j        d         j        sJ | j        d         j        dk    sJ dS )zTest parsing params.r   r   a  
        Short description

        @param name: description 1
        @param priority: description 2
        @type priority: int
        @param sender: description 3
        @type sender: str?
        @param message: description 4, defaults to 'hello'
        @type message: str?
        @param multiline: long description 5,
        defaults to 'bye'
        @type multiline: str?
           nameNzdescription 1r2   priorityintzdescription 2rB   senderstrzdescription 3r>   messagez"description 4, defaults to 'hello'z'hello'   	multilinez%long description 5,
defaults to 'bye'z'bye')r   r4   paramsarg_name	type_namer:   defaultis_optionalr;   s    r   test_paramsr[      s   )**Iy  A%%%%	 I  y  A%%%%A'61111A(000A*o====A&..."....A':5555A(E1111A*o===="....A&...A'83333A(E1111A*o====A****A&...A'94444A(E1111'+OOOOOA****A&)3333A';6666A(E1111'3	4 	4 	4 	4 A****A&'111111r   c                  V   t          d          } | j        J t          d          } | j        J | j        j        J | j        j        dk    sJ | j        j        rJ t          d          } | j        J | j        j        dk    sJ | j        j        dk    sJ | j        j        rJ dS )zTest parsing returns.#
        Short description
        Nz@
        Short description
        @return: description
        r:   zT
        Short description
        @return: description
        @rtype: int
        rP   r   returnsrX   r:   is_generatorr;   s    r   test_returnsra   3  s    	 I
 $$$	 I (((&...(M9999 ----	 I (((&%////(M9999 ------r   c                  V   t          d          } | j        J t          d          } | j        J | j        j        J | j        j        dk    sJ | j        j        sJ t          d          } | j        J | j        j        dk    sJ | j        j        dk    sJ | j        j        sJ dS )zTest parsing yields.r]   Nz?
        Short description
        @yield: description
        r:   zS
        Short description
        @yield: description
        @ytype: int
        rP   r^   r;   s    r   test_yieldsrc   T  s    	 I
 $$$	 I (((&...(M9999))))	 I (((&%////(M9999))))))r   c                     t          d          } t          | j                  dk    sJ t          d          } t          | j                  dk    sJ | j        d         j        J | j        d         j        dk    sJ t          d          } t          | j                  dk    sJ | j        d         j        dk    sJ | j        d         j        dk    sJ dS )	zTest parsing raises.r]   r   z?
        Short description
        @raise: description
        r2   Nr:   zJ
        Short description
        @raise ValueError: description
        
ValueError)r   r4   raisesrX   r:   r;   s    r   test_raisesrg   u  s	   	 I
 y  A%%%%	 I y  A%%%%A(000A*m;;;;	 I y  A%%%%A(L8888A*m;;;;;;r   c                  $   t          j        t                    5  t          d           ddd           n# 1 swxY w Y   t          j        t                    5  t          d           ddd           n# 1 swxY w Y   t          j        t                    5  t          d           ddd           n# 1 swxY w Y   t          j        t                    5  t          d           ddd           n# 1 swxY w Y   t          d           dS )zTest parsing broken meta.@Nz@param herp derpz@param: invalidz@param with too many args: descz@sthstrange: desc)pytestrf   r   r    r   r   test_broken_metarl     s   	z	"	"  c


               
z	"	" " " !!!" " " " " " " " " " " " " " " 
z	"	" ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
z	"	" 1 1/0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

sB   6::A66A:=A:B66B:=B:C66C:=C:))r   r   )r	   r   r
   r   r   )r   r   )r   r   )r   z/Short description

Long description
Second line)r   r   )r   r   )r    r   )r!   z.Short description
Long description
Second line)r(   zShort description
@meta: asd)r)   z-Short description
Long description
@meta: asd)r*   z7Short description
First line
    Second line
@meta: asd)r,   z8Short description

First line
    Second line
@meta: asd)r-   z9Short description

First line
    Second line

@meta: asd)r.   z
@meta: asd)z}
            Short description

            @meta: asd
                1
                    2
                3
            z3Short description

@meta: asd
    1
        2
    3)z
            Short description

            @meta1: asd
                1
                    2
                3
            @meta2: herp
            @meta3: derp
            zNShort description

@meta1: asd
    1
        2
    3
@meta2: herp
@meta3: derp)zP
            Short description

            @meta ene due rabe: asd
            z*Short description

@meta ene due rabe: asd)  
            Short description

            @param name: description 1
            @param priority: description 2
            @type priority: int
            @param sender: description 3
            @type sender: str?
            @type message: str?
            @param message: description 4, defaults to 'hello'
            @type multiline: str?
            @param multiline: long description 5,
                defaults to 'bye'
            a)  Short description

@param name: description 1
@type priority: int
@param priority: description 2
@type sender: str?
@param sender: description 3
@type message: str?
@param message: description 4, defaults to 'hello'
@type multiline: str?
@param multiline: long description 5,
    defaults to 'bye')zK
            Short description
            @raise: description
            z%Short description
@raise: description)zV
            Short description
            @raise ValueError: description
            z0Short description
@raise ValueError: descriptionc                 J    t          t          |                     |k    sJ dS )zTest compose in default mode.Nr   r   r   s     r   test_composerp     s*    P 5==!!X------r   )rm   a=  Short description

@param name:
    description 1
@type priority: int
@param priority:
    description 2
@type sender: str?
@param sender:
    description 3
@type message: str?
@param message:
    description 4, defaults to 'hello'
@type multiline: str?
@param multiline:
    long description 5,
    defaults to 'bye'c                 b    t          t          |           t          j                  |k    sJ dS )zTest compose in clean mode.rendering_styleN)r   r   r   CLEANro   s     r   test_compose_cleanru   p  s?    R 	f~/CDDD	 	 	 	 	 	r   )rm   aM  Short description

@param name:
    description 1
@type priority:
    int
@param priority:
    description 2
@type sender:
    str?
@param sender:
    description 3
@type message:
    str?
@param message:
    description 4, defaults to 'hello'
@type multiline:
    str?
@param multiline:
    long description 5,
    defaults to 'bye'c                 b    t          t          |           t          j                  |k    sJ dS )zTest compose in expanded mode.rr   N)r   r   r   EXPANDEDro   s     r   test_compose_expandedrx     s?    Z 	f~/FGGG	 	 	 	 	 	r   c                  R    d} t          |           }t          |          | k    sJ dS )z=Test abbreviated docstring with only return type information.z!Short description.

@rtype: floatN)r   r   )stringr   s     r   test_short_rtyper{     s1    2FfI9''''''r   )r   N)__doc__typingTrj   docstring_parser.commonr   r   docstring_parser.epydocr   r   markparametrizerR   r   boolr'   Optionalr5   r<   rE   rK   r[   ra   rc   rg   rl   rp   ru   rx   r{   rk   r   r   <module>r      s   0 0      > > > > > > > > 2 2 2 2 2 2 2 2   	 	3 # $   	 	 E; ; ;> >~  	
 
  > >~ :F F FJ JV$$C$ 
3$  $	$
 #$ 
$ $ $WJ JV$ ? ? ? ?$3 3 3 302 2 2 232 32 32 32l. . . .B* * * *B< < < <<   $ B B BE EL. . . . . .ME EL.
  	
"% %Ls c d   M% %L $	
&) )T#     U) )T( ( ( ( ( (r   