
    
`i[;                     x   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ej        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d&dZej
                            d ej        d!fej        d!fej        d"fg          d#eded	dfd$            Zd&d%ZdS )'z(Tests for ReST-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                 |    t          |           }|j        |k    sJ |j        |k    sJ |j        J |j        rJ dS )zTest parsing short description.N)r   short_descriptiondescriptionlong_descriptionmeta)r
   r   	docstrings      t/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/docstring_parser/tests/test_rest.pytest_short_descriptionr   
   sZ     fI&(2222 H,,,,%---~    z?source, expected_short_desc, expected_long_desc, expected_blank))z#Short description

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

            Long description
            r	   r   T)za
            Short description

            Long description
            Second line
            r	   Long description
Second lineT)"Short description
Long descriptionr	   r   F)zH
            Short description
            Long description
            r	   r   F)z$
Short description
Long description
r	   r   F)z`
            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   zxsource, expected_short_desc, expected_long_desc, expected_blank_short_desc, expected_blank_long_desc, expected_full_desc))zB
            Short description
            :meta: asd
            r	   NFFr	   )z_
            Short description
            Long description
            :meta: asd
            r	   r   FFr   )zu
            Short description
            First line
                Second line
            :meta: asd
            r	   First line
    Second lineFFz,Short description
First line
    Second line)zv
            Short description

            First line
                Second line
            :meta: asd
            r	   r   TF-Short description

First line
    Second line)zw
            Short description

            First line
                Second line

            :meta: asd
            r	   r   TTr    )z$
            :meta: asd
            NNFFNexpected_blank_short_descexpected_blank_long_descexpected_full_descc                     t          |           }|j        |k    sJ |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_descriptionr   lenr   )r
   r   r   r!   r"   r#   r   s          r   test_meta_newlinesr(   j   s    v fI&*=====%);;;;;26OOOOO15MMMMM $66666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	   r%   r   r   asd
1
    2
3Nr   r   r'   r   argsr   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   meta1r*   r%   meta2herp   meta3derpNr+   r-   s    r   test_multiple_metar7      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	   r%   r   )r   eneduerabeasdNr+   r-   s    r   test_meta_with_argsr=      s    	 I &*=====y~!####>!!%C%C%CCCCC>!(E111111r   c                  D   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 t          d          } t          | 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        J | j        d         j        rJ dS )zTest parsing params.r	   r   a)  
        Short description

        :param name: description 1
        :param int priority: description 2
        :param str? sender: description 3
        :param str? message: description 4, defaults to 'hello'
        :param str? multiline: long description 5,
        defaults to 'bye'
           nameNzdescription 1r%   priorityintzdescription 2r4   senderstrzdescription 3r0   messagez"description 4, defaults to 'hello'z'hello'   	multilinez%long description 5,
defaults to 'bye'z'bye'z}
        Short description

        :param a: description a
        :type a: int
        :param int b: description b
        azdescription a)r   r'   paramsarg_name	type_namer   defaultis_optionalr-   s    r   test_paramsrN     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	 I y  A%%%%A'3....A(E1111A*o====A&..."......r   c                     t          d          } | j        J | j        J t          | j                  dk    sJ t          d          } | j        J | j        j        J | j        j        dk    sJ | j        j        rJ | j        | j        gk    sJ t          d          } | j        J | j        j        dk    sJ | j        j        dk    sJ | j        j        rJ | j        | j        gk    sJ t          d          } | j        J | j        j        dk    sJ | j        j        dk    sJ | j        j        rJ | j        | j        gk    sJ dS )	zTest parsing returns.#
        Short description
        Nr   zA
        Short description
        :returns: description
        r   zE
        Short description
        :returns int: description
        rB   zU
        Short description
        :returns: description
        :rtype: int
        r   returnsmany_returnsr'   rK   r   is_generatorr-   s    r   test_returnsrU   I  s   	 I
 $$$!---y%&&!++++	 I (((&...(M9999 ----!i&7%88888	 I (((&%////(M9999 ----!i&7%88888	 I (((&%////(M9999 ----!i&7%8888888r   c                     t          d          } | j        J | j        J t          | j                  dk    sJ t          d          } | j        J | j        j        J | j        j        dk    sJ | j        j        sJ | j        J t          | j                  dk    sJ | j        d         | j        k    sJ t          d          } | j        J | j        j        dk    sJ | j        j        dk    sJ | j        j        sJ | j        J t          | j                  dk    sJ | j        d         | j        k    sJ dS )	zTest parsing yields.rP   Nr   z@
        Short description
        :yields: description
        r   r%   zD
        Short description
        :yields int: description
        rB   rQ   r-   s    r   test_yieldsrW   z  s   	 I
 $$$!---y%&&!++++	 I (((&...(M9999))))!---y%&&!++++!!$	(99999	 I (((&%////(M9999))))!---y%&&!++++!!$	(9999999r   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.rP   r   z@
        Short description
        :raises: description
        r%   Nr   zK
        Short description
        :raises ValueError: description
        
ValueError)r   r'   raisesrK   r   r-   s    r   test_raisesr[     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)pytestrZ   r   r    r   r   test_broken_metar`     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:c                      t          d          } | j        J | j        j        dk    sJ | j        j        dk    sJ t          d          } | j        J | j        j        J | j        j        dk    sJ dS )zTest parsing deprecation notes.z1:deprecation: 1.1.0 this function will be removedNz1.1.0zthis function will be removedz+:deprecation: this function will be removed)r   deprecationversionr   r-   s    r   test_deprecationrd     s    IJJI ,,, (G3333 ,0OOOOOCDDI ,,, (000 ,0OOOOOOOr   zrendering_style, expectedzShort description.

Long description.

:param int foo: a description
:param int bar: another description
:returns float: a returnzShort description.

Long description.

:param foo:
    a description
:type foo: int
:param bar:
    another description
:type bar: int
:returns:
    a return
:rtype: floatrendering_stylec                 R    t          d          }t          ||           |k    sJ dS )zTest composez
        Short description.

        Long description.

        :param int foo: a description
        :param int bar: another description
        :return float: a return
        re   N)r   r   )re   r   r   s      r   test_composerh     s?    X 	
 
I 9o>>>(JJJJJJr   c                  n    d} t          |           }t          j        }t          ||          | k    sJ dS )z=Test abbreviated docstring with only return type information.z!Short description.

:rtype: floatrg   N)r   r   EXPANDEDr   )stringr   re   s      r   test_short_rtyperl     s>    2FfI$-O9o>>>&HHHHHHr   )r   N) __doc__typingTr^   docstring_parser.commonr   r   docstring_parser.restr   r   markparametrizerD   r   boolr   Optionalr(   r.   r7   r=   rN   rU   rW   r[   r`   rd   COMPACTCLEANrj   rh   rl   r_   r   r   <module>rx      s<   . .      > > > > > > > > 0 0 0 0 0 0 0 0   	 	3 # $   	 	 E; ; ;> >~  	
 
  > >~ L L L	Q Qd$$C$ 
3$  $	$
 #$ 
3$ 
$ $ $eQ Qd$$? ? ? ?$3 3 3 302 2 2 2?/ ?/ ?/ ?/D.9 .9 .9 .9b%: %: %: %:P< < < <<   $
P 
P 
P 
P  "'		
  '		
 #	
+%( (RK. KC KD K K KS( (RK"I I I I I Ir   