B
    A!p\
                 @   s  d Z ddlZddlZddlmZmZmZ ddlZddlZddl	m
Z
 ddlmZ eeeedZejde y
ejZW n ek
r   dZY nX ejddd	d
 Zejdddd Zejdd Zdd Zejddedfdedfdedfddd feededfeededfeededfeeddedfeeddd fg	d d! Zejd"eed#eed$eed%gd&d' Zejd(d)d* eeD d+d, Zejd-d. Zej d.d/d0 Z!d1d2 Z"dS )3znon regression tests for pylint, which requires a too specific configuration
to be incorporated in the automatic functional test framework
    N)abspathdirnamejoin)epylintZregrtest_data   module)Zscopec             C   s   t jS )N)	testutilsZTestReporter)reporter r
   4lib/python3.7/site-packages/pylint/test/test_regr.pyr	   %   s    r	   c             C   s   dgS )NIr
   )disabler
   r
   r   r   *   s    r   c             c   s   | V  | j   dS )zVcall reporter.finalize() to cleanup
    pending messages if a test finished badly
    N)r	   finalize)Zlinterr
   r
   r   finalize_linter/   s    r   c                s    fddS )Nc                s   |  kS )Nr
   )got)expectedr
   r   <lambda>9   s    zEquals.<locals>.<lambda>r
   )r   r
   )r   r   Equals8   s    r   zfile_name, checkzpackage.__init__ Zprecedence_testZ import_package_subpackage_modulezpylint.checkers.__init__c             C   s   d| kS )N__path__r
   )xr
   r
   r   r   B   s    r   zclassdoc_usage.pyzmodule_global.pyzdecimal_inference.pyZabsimpz	string.pyZbad_packagec             C   s   d| kS )NzUnused import missingr
   )r   r
   r
   r   r   G   s    c             C   s(   |  | | j  }||s$td S )N)checkr	   r   stripAssertionError)r   	file_namer   r   r
   r
   r   test_package<   s    
r   r   zimport_assign.pyz"special_attr_scope_lookup_crash.pyZtry_finally_disable_msg_crashc             C   s   |  | d S )N)r   )r   r   r
   r
   r   
test_crashP   s    	r   fnamec             C   s   g | ]}| d r|qS )z	_crash.py)endswith).0r   r
   r
   r   
<listcomp>]   s    r    c             C   s"   | tt|  |j   d S )N)r   r   	REGR_DATAr	   r   r   )r   r   r
   r
   r   test_descriptor_crash\   s    r"   c              c   s6   t  } tjdd d V  tjd t |  d S )Nr   r   )osgetcwdsyspathinsertpopchdir)cwdr
   r
   r   modify_pathd   s
    r+   c             C   sl   d}|  | t| jd  }||gks.ttttd |  d t| jd  }|dgkshtd S )Nzpackage.__init__Z	by_modulepackage__init__)	r   listZstatskeysr   r#   r)   r   r!   )r   filenamecheckedr
   r
   r   test_check_package___init__m   s    

r2   c              C   s   t jd} | d }ddddddd	g}d
d | D |ks@ttt |dsXttt |d}t	|dks|t|d 
 jdkst|d jdkstd S )Nzpylint.lintZPyLinterZOptionsManagerMixInobjectZMessagesHandlerMixInZReportsHandlerMixInZBaseTokenCheckerZBaseCheckerZOptionsProviderMixInc             S   s   g | ]
}|j qS r
   )name)r   cr
   r
   r   r       s    z+test_pylint_config_attr.<locals>.<listcomp>Zconfigr   r   ZoptparseZValues)astroidZMANAGERZast_from_module_nameZ	ancestorsr   r.   ZInstancegetattrZigetattrlenrootr4   )modZpylinterZexpectZinferredr
   r
   r   test_pylint_config_attrz   s    r;   )#__doc__r%   r#   os.pathr   r   r   Zpytestr6   Zpylint.testutilsr   Zpylintr   __file__r!   r&   r'   Zpypy_version_infoZPYPY_VERSION_INFOAttributeErrorZfixturer	   r   r   r   ZmarkZparametrizer   r   listdirr"   r+   Zusefixturesr2   r;   r
   r
   r
   r   <module>   sL   

	



	 	