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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45906
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1 """Support code for test_*.py files"""
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2 # Author: Collin Winter
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4 # Python imports
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5 import unittest
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6 import sys
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7 import os
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
8 import os.path
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
9 import re
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
10 from textwrap import dedent
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
11
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
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
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
15
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
16 test_dir = os.path.dirname(__file__)
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
17 proj_dir = os.path.normpath(os.path.join(test_dir, ".."))
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
18 grammar_path = os.path.join(test_dir, "..", "Grammar.txt")
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
19 grammar = driver.load_grammar(grammar_path)
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
20 driver = driver.Driver(grammar, convert=pytree.convert)
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
21
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
22 def parse_string(string):
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
23 return driver.parse_string(reformat(string), debug=True)
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
24
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
25 def run_all_tests(test_mod=None, tests=None):
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
26 if tests is None:
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
27 tests = unittest.TestLoader().loadTestsFromModule(test_mod)
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
28 unittest.TextTestRunner(verbosity=2).run(tests)
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
29
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
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
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
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
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
48 def all_project_files():
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
49 for dirpath, dirnames, filenames in os.walk(proj_dir):
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
50 for filename in filenames:
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
51 if filename.endswith(".py"):
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
52 yield os.path.join(dirpath, filename)
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
53
302625fa6a2a Import lib2to3.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
54 TestCase = unittest.TestCase