
    *e                        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                  z    e Zd ZdZdZ eddg          Zej        dk     re	                    d           ddZ
dS )ParserSuiteT.zparse*.testparse-errors.test)patternexclude   
   zparse-python310.testtestcaser   returnNonec                $    t          |           d S N)test_parserselfr   s     3lib/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      sl        IOM<O;PQQQE
'!!+,,,     r$   r   r   r   r   r   c           	        t                      }d|_        d|_        | j                            d          rd|_        nt          j        |_        d                    | j	                  }t          |          }t          ||          \  }}|                    |          }	 t          t          |d          ddt          |          |d          }|                    |                              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.testr   
asciimain__main__)fnammoduleerrorsoptionsraise_on_errorNzInvalid parser output (, line ))r	   force_uppercase_builtinshide_error_codesfileendswithpython_versionr   PYTHON3_VERSIONjoininputr   r   apply_changesr
   bytesr   str_with_optionssplitr   messagesr   outputline)	r   r8   sourcecommentschanges_naes	            r"   r   r      sa   
 iiG'+G$#G}.// :!(!)!9YYx~&&F !((H$Xw77JGQ##G,,G&'""'??
 
 
 w''--d33   J\hm\\HM\\\    s   "AC; ;
DDDr>   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_caseO   s    """""r$   Nr%   )r&   r'   r(   r)   r*   r+   r#   r/   r$   r"   rS   rS   J   s;        I !E# # # # # #r$   rS   c           
        	 t          d                    | j                  | d          }|j        t          j        d d         k    rt                       t          t          d                    | j                  d          t          dt          |          |d           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)Nr1   r      zutf-8r4   T)r7   r8   r9   zNo errors reportedzInvalid compiler output (r:   r;   )r   rB   rC   r@   r,   r-   r   r
   rE   INPUT_FILE_NAMEr   AssertionErrorr   module_with_blockerr   rI   rH   r>   rJ   )r   r8   rQ   s      r"   rU   rU   S   s3   
		(. 9 98QG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   B0B2 2
D<A DDr%   )__doc__
__future__r   r,   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   rX   rS   rU   r/   r$   r"   <module>rf      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 ' ' ' ' ' '	 	 	 	 	) 	 	 	# # # #P # # # # #i # # #
 
 
 
 
 
r$   