Mercurial > cpython-lru_cache-weakref
annotate Lib/lib2to3/tests/support.py @ 54294:dba767bc3155 legacy-trunk
remove mention of old ctypes version
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 23 May 2009 20:59:09 +0000 |
| parents | 119e4323400d |
| children | 7700408f65fc |
| rev | line source |
|---|---|
| 45906 | 1 """Support code for test_*.py files""" |
| 2 # Author: Collin Winter | |
| 3 | |
| 4 # Python imports | |
| 5 import unittest | |
| 6 import sys | |
| 7 import os | |
| 8 import os.path | |
| 9 import re | |
| 10 from textwrap import dedent | |
| 11 | |
| 12 # Local imports | |
|
53934
119e4323400d
Merged revisions 72491-72493 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48978
diff
changeset
|
13 from lib2to3 import pytree, refactor |
|
119e4323400d
Merged revisions 72491-72493 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48978
diff
changeset
|
14 from lib2to3.pgen2 import driver |
| 45906 | 15 |
| 16 test_dir = os.path.dirname(__file__) | |
| 17 proj_dir = os.path.normpath(os.path.join(test_dir, "..")) | |
| 18 grammar_path = os.path.join(test_dir, "..", "Grammar.txt") | |
| 19 grammar = driver.load_grammar(grammar_path) | |
| 20 driver = driver.Driver(grammar, convert=pytree.convert) | |
| 21 | |
| 22 def parse_string(string): | |
| 23 return driver.parse_string(reformat(string), debug=True) | |
| 24 | |
| 25 def run_all_tests(test_mod=None, tests=None): | |
| 26 if tests is None: | |
| 27 tests = unittest.TestLoader().loadTestsFromModule(test_mod) | |
| 28 unittest.TextTestRunner(verbosity=2).run(tests) | |
| 29 | |
| 30 def reformat(string): | |
|
53934
119e4323400d
Merged revisions 72491-72493 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48978
diff
changeset
|
31 return dedent(string) + u"\n\n" |
| 45906 | 32 |
|
48978
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
33 def get_refactorer(fixers=None, options=None): |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
34 """ |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
35 A convenience function for creating a RefactoringTool for tests. |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
36 |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
37 fixers is a list of fixers for the RefactoringTool to use. By default |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
38 "lib2to3.fixes.*" is used. options is an optional dictionary of options to |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
39 be passed to the RefactoringTool. |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
40 """ |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
41 if fixers is not None: |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
42 fixers = ["lib2to3.fixes.fix_" + fix for fix in fixers] |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
43 else: |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
44 fixers = refactor.get_fixers_from_package("lib2to3.fixes") |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
45 options = options or {} |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
46 return refactor.RefactoringTool(fixers, options, explicit=True) |
|
75c5a2c9376e
Merged revisions 66174-66175,66177 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
45906
diff
changeset
|
47 |
| 45906 | 48 def all_project_files(): |
| 49 for dirpath, dirnames, filenames in os.walk(proj_dir): | |
| 50 for filename in filenames: | |
| 51 if filename.endswith(".py"): | |
| 52 yield os.path.join(dirpath, filename) | |
| 53 | |
| 54 TestCase = unittest.TestCase |
