
    i,                     L    d Z ddlZddlmZmZ ddlmZ d	dZd	dZd	dZ	d	dZ
y)
z%Tests for generic docstring routines.    N)DocstringStyle
ParseError)parsec                     t        d      } | j                  t        j                  k(  sJ | j                  dk(  sJ | j
                  dk(  sJ | j                  dk(  sJ 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                  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                  dk(  sJ | j                  d   j                  dk(  sJ t        | j                        d
k(  sJ | j                  d   j                  dk(  sJ | j                  d   j                  dk(  sJ | j                  J | j                  j                  dk(  sJ | j                  j                  dk(  sJ | j                  J t        | j                        d
k(  sJ | j                  d   | j                  k(  sJ y)z%Test ReST-style parser autodetection.a  
        Short description

        Long description

        Causing people to indent:

            A lot sometimes

        :param spam: spam desc
        :param int bla: bla desc
        :param str yay:
        :raises ValueError: exc desc
        :returns tuple: ret desc
        Short description@Long description

Causing people to indent:

    A lot sometimesSShort description

Long description

Causing people to indent:

    A lot sometimes   r   spamN	spam desc   blaintbla desc   yaystr 
ValueErrorexc desctupleret desc)r   styler   RESTshort_descriptionlong_descriptiondescriptionlenparamsarg_name	type_nameraisesreturnsmany_returns	docstrings    QC:\Projects\mas-dev\.venv\Lib\site-packages\docstring_parser/tests/test_parser.py	test_restr(      s   	I$ ??n11111&&*====%%	  
   	   y A%%%A''6111A((000A**k999A''5000A((E111A**j888A''5000A((E111A**b000y A%%%A((L888A**j888(((&&'111((J666!!---y%%&!+++!!!$	(9(9999    c                     t        d      } | j                  t        j                  k(  sJ | j                  dk(  sJ | j
                  dk(  sJ | j                  dk(  sJ 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                  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                  dk(  sJ | j                  d   j                  dk(  sJ t        | j                        d
k(  sJ | j                  d   j                  dk(  sJ | j                  d   j                  dk(  sJ | j                  J | j                  j                  dk(  sJ | j                  j                  dk(  sJ | j                  J t        | j                        d
k(  sJ | j                  d   | j                  k(  sJ y)z'Test Google-style parser autodetection.a6  Short description

        Long description

        Causing people to indent:

            A lot sometimes

        Args:
            spam: spam desc
            bla (int): bla desc
            yay (str):

        Raises:
            ValueError: exc desc

        Returns:
            tuple: ret desc
        r   r   r	   r
   r   r   Nr   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   GOOGLEr   r   r   r   r   r    r!   r"   r#   r$   r%   s    r'   test_googler,   >   s   	I, ??n33333&&*====%%	  
   	   y A%%%A''6111A((000A**k999A''5000A((E111A**j888A''5000A((E111A**b000y A%%%A((L888A**j888(((&&'111((J666!!---y%%&!+++!!!$	(9(9999r)   c                     t        d      } | j                  t        j                  k(  sJ | j                  dk(  sJ | j
                  dk(  sJ | j                  dk(  sJ 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                  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                  dk(  sJ | j                  d   j                  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        | j                        d
k(  sJ | j                  d   j                  dk(  sJ | j                  d   j                  dk(  sJ | j                  J | j                  j                  dk(  sJ | j                  j                  dk(  sJ | j                  J t        | j                        d
k(  sJ | j                  d   | j                  k(  sJ y)z)Test numpydoc-style parser autodetection.a  Short description

        Long description

        Causing people to indent:

            A lot sometimes

        Parameters
        ----------
        spam
            spam desc
        bla : int
            bla desc
        yay : str

        Raises
        ------
        ValueError
            exc desc

        Other Parameters
        ----------------
        this_guy : int, optional
            you know him

        Returns
        -------
        tuple
            ret desc

        See Also
        --------
        multiple lines...
        something else?

        Warnings
        --------
        multiple lines...
        none of this is real!
        r   r   r	      r   r   Nr   r   r   r   r   r   r   r   r
   this_guyzyou know himr   r   r   r   )r   r   r   NUMPYDOCr   r   r   r   r   r    r!   is_optionalr"   r#   r$   r%   s    r'   test_numpydocr2   x   s	   (	*IX ??n55555&&*====%%	  
   	   y A%%%A''6111A((000A**k999A''5000A((E111A**j888A''5000A((E111A**222A'':555A((E111A****A**n<<<y A%%%A((L888A**j888(((&&'111((J666!!---y%%&!+++!!!$	(9(9999r)   c                      d} t        j                  t              5  t        | t        j
                         ddd       t        |       }|sJ |j                  t        j                  k(  sJ y# 1 sw Y   8xY w)ziTest autodection for the case where one of the parsers throws an error
    and another one succeeds.
    z=
    Does something useless

    :param 3 + 3 a: a param
    N)pytestr"   r   r   r   r   r   r+   )sourcer&   s     r'   "test_autodetection_error_detectionr6      s`    F 
z	"fn))* 
#
 fI9??n33333 
#	"s   A..A7)returnN)__doc__r4   docstring_parser.commonr   r   docstring_parser.parserr   r(   r,   r2   r6    r)   r'   <module>r<      s)    +  > )3:l7:tR:j4r)   