B >4@sdZddlZddlZddlZddlmZddlmZmZddl m Z ej eZej ej edZej eddZe eZe eZejd=e jeejd Z e jeejd Zd d Zdd d ZddZdddZddZej Z dS)z Support code for test_*.py filesN)dedent)pytreerefactor)driverz..z Grammar.txtprint)convertcCstjt|ddS)NT)debug)r parse_stringreformat)stringr :/opt/alt/python37/lib64/python3.7/lib2to3/tests/support.pyr sr cCs,|dkrt|}tjdd|dS)N) verbosity)unittestZ TestLoaderZloadTestsFromModuleZTextTestRunnerrun)Ztest_modZtestsr r r run_all_testssrcCs t|dS)Nz )r)r r r r r "sr lib2to3csB|dk rfdd|D}ntd}|p0i}tj||ddS)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. Ncsg|]}d|qS)z .fixes.fix_r ).0Zfix) fixer_pkgr r .sz"get_refactorer..z.fixesT)Zexplicit)rZget_fixers_from_packageZRefactoringTool)rZfixersZoptionsr )rr get_refactorer%s rccsFx@ttD]2\}}}x&|D]}|drtj||VqWq WdS)Nz.py)oswalkproj_direndswithpathjoin)dirpathZdirnames filenamesfilenamer r r all_project_files4s  r!)NN)rNN)!__doc__rrZos.pathtextwraprrrrZ lib2to3.pgen2rZ pgen2_driverrdirname__file__Ztest_dirnormpathrrZ grammar_pathZ load_grammarZgrammarZgrammar_no_print_statementkeywordsZDriverrZdriver_no_print_statementr rr rr!ZTestCaser r r r s,