
    \j                        d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZmZmZ ddlmZ  G d de          ZddZdZ G d de          ZddZdS )zTests for the mypy parser.    )annotationsN)skip)defaults)parse_mypy_comments)CompileErrorErrors)Options)parse)DataDrivenTestCase	DataSuite)assert_string_arrays_equalfind_test_filesparse_options)get_mypy_commentsc                      e Zd ZdZdZ eddg          Zej        dk     re	                    d           ej        dk     re	                    d	           ej        d
k     re	                    d           ddZ
dS )ParserSuiteT.zparse*.testparse-errors.test)patternexclude      zparse-python312.testr      zparse-python313.testr      zparse-python314.testtestcaser   returnNonec                $    t          |           d S N)test_parserselfr   s     W/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/mypy/test/testparse.pyrun_casezParserSuite.run_case   s    H    Nr   r   r   r    )__name__
__module____qualname__required_out_section	base_pathr   filessysversion_inforemover'    r(   r&   r   r      s        IOM<O;PQQQE
'!!+,,,
'!!+,,,
'!!+,,,     r(   r   r   r   r   r    c           	        t                      }d|_        | j                            d          rd|_        nw| j                            d          rd|_        nU| j                            d          rd|_        n3| j                            d          rd	|_        nt
          j        |_        d
                    | j                  }t          |          }t          ||          \  }}|                    |          }	 t          |          }t          t          |d          dd||dd          }|                                r|                                 |                    |                              d
          }n# t&          $ r}	|	j        }Y d}	~	nd}	~	ww xY wt+          | j        |d| j         d| j         d           dS )zdPerform a single parser test case.

    The argument contains the description of the test case.
    Tzpython310.test)r   
   zpython312.testr   zpython313.testr   zpython314.testr   
asciimain__main__F)fnammoduleerrorsoptionsfile_existseagerNzInvalid parser output (, line ))r	   hide_error_codesfileendswithpython_versionr   PYTHON3_VERSIONjoininputr   r   apply_changesr   r
   bytes	is_errorsraise_errorstr_with_optionssplitr   messagesr   outputline)
r   r=   sourcecommentschanges_r<   naes
             r&   r#   r#   #   s   
 iiG#G}.// 	:!(			 0	1	1 :!(			 0	1	1 :!(			 0	1	1 :!(!)!9YYx~&&F !((H$Xw77JGQ##G,,G&'""
 
 
  	!   w''--d33   J\hm\\HM\\\    s   BF 
F FF rC   c                  $    e Zd ZdZdZdgZd
dZd	S )ParseErrorSuiteTr   r   r   r   r   r    c                $    t          |           d S r"   )test_parse_errorr$   s     r&   r'   zParseErrorSuite.run_case\   s    """""r(   Nr)   )r*   r+   r,   r-   r.   r/   r'   r3   r(   r&   rZ   rZ   W   s;        I !E# # # # # #r(   rZ   c           
        	 t          d                    | j                  | d          }|j        t          j        k     rt          j        |_        |j        t          j        d d         k    rt                       t          |          }t          t          d                    | j                  d          t          d||dd           |                                r|                                 t          d	          # t           $ rK}|j        |j        dk    sJ t%          | j        |j        d
| j         d| j         d           Y d }~d S d }~ww xY w)Nr6   r      zutf-8r9   FT)r<   r=   r>   r?   zNo errors reportedzInvalid compiler output (r@   rA   )r   rG   rH   rE   r   rF   r0   r1   r   r   r
   rJ   INPUT_FILE_NAMErK   rL   AssertionErrorr   module_with_blockerr   rP   rO   rC   rQ   )r   r=   r<   rX   s       r&   r\   r\   `   s}   
		(. 9 98QGG!H$<<<%-%=G"!S%5bqb%999FFF$))HN++W55	
 	
 	
 	
  	!   1222 	
 	
 	
 ,(J6666 	#OJNNNhmNNN	
 	
 	
 	
 	
 	
 	
 	
 	
	
s   DD 
EA EEr)   )__doc__
__future__r   r0   pytestr   mypyr   mypy.config_parserr   mypy.errorsr   r   mypy.optionsr	   
mypy.parser
   mypy.test.datar   r   mypy.test.helpersr   r   r   	mypy.utilr   r   r#   r_   rZ   r\   r3   r(   r&   <module>rm      sn       " " " " " " 



             2 2 2 2 2 2 , , , , , , , ,                   8 8 8 8 8 8 8 8 X X X X X X X X X X ' ' ' ' ' '    )    , , , ,b # # # # #i # # #
 
 
 
 
 
r(   