B
    \                 @   s   d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z ejeZejejedZejeddZeeZeeZejd= ejeejd	Z
ejeejd	Zd
d ZdddZdd ZdddZdd Zej Z dS )z Support code for test_*.py files    N)dedent)pytreerefactor)driverz..zGrammar.txtprint)convertc             C   s   t jt| ddS )NT)debug)r   parse_stringreformat)string r   &lib/python3.7/lib2to3/tests/support.pyr	      s    r	   c             C   s,   |d krt  | }t jdd| d S )N   )	verbosity)unittestZ
TestLoaderZloadTestsFromModuleZTextTestRunnerrun)Ztest_modZtestsr   r   r   run_all_tests   s    r   c             C   s   t | d S )Nz

)r   )r   r   r   r   r
   "   s    r
   lib2to3c                sB   |dk	r fdd|D }nt  d }|p0i }t j||ddS )a
  
    A convenience function for creating a RefactoringTool for tests.

    fixers is a list of fixers for the RefactoringTool to use. By default
    "lib2to3.fixes.*" is used. options is an optional dictionary of options to
    be passed to the RefactoringTool.
    Nc                s   g | ]} d  | qS )z.fixes.fix_r   ).0Zfix)	fixer_pkgr   r   
<listcomp>.   s    z"get_refactorer.<locals>.<listcomp>z.fixesT)Zexplicit)r   Zget_fixers_from_packageZRefactoringTool)r   ZfixersZoptionsr   )r   r   get_refactorer%   s
    r   c              c   sF   x@t tD ]2\} }}x&|D ]}|drt j| |V  qW qW d S )Nz.py)oswalkproj_direndswithpathjoin)dirpathZdirnames	filenamesfilenamer   r   r   all_project_files4   s    

r!   )NN)r   NN)!__doc__r   r   os.pathtextwrapr   r   r   r   Zlib2to3.pgen2r   Zpgen2_driverr   dirname__file__Ztest_dirnormpathr   r   Zgrammar_pathZload_grammarZgrammarZgrammar_no_print_statementkeywordsZDriverr   Zdriver_no_print_statementr	   r   r
   r   r!   ZTestCaser   r   r   r   <module>   s,   




