diff options
author | Benjamin Peterson <benjamin@python.org> | 2009-05-09 19:42:23 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2009-05-09 19:42:23 (GMT) |
commit | d481e3d7914d20238c62c76991255b3b2b5e4a17 (patch) | |
tree | fb9a3831c561486f09fde515d41410c3f8753007 /Lib/lib2to3/tests/test_refactor.py | |
parent | b0ba27dff1442fe6dc7b00ce7d8488afb159d9b8 (diff) | |
download | cpython-d481e3d7914d20238c62c76991255b3b2b5e4a17.zip cpython-d481e3d7914d20238c62c76991255b3b2b5e4a17.tar.gz cpython-d481e3d7914d20238c62c76991255b3b2b5e4a17.tar.bz2 |
Merged revisions 72494 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
................
r72494 | benjamin.peterson | 2009-05-08 20:01:14 -0500 (Fri, 08 May 2009) | 21 lines
Merged revisions 72491-72493 via svnmerge from
svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3
........
r72491 | benjamin.peterson | 2009-05-08 19:33:27 -0500 (Fri, 08 May 2009) | 7 lines
make 2to3 use unicode internally on 2.x
This started out as a fix for #2660, but became this large refactoring
when I realized the dire state this was in. 2to3 now uses
tokenize.detect_encoding to decode the files correctly into unicode.
........
r72492 | benjamin.peterson | 2009-05-08 19:35:38 -0500 (Fri, 08 May 2009) | 1 line
remove compat code
........
r72493 | benjamin.peterson | 2009-05-08 19:54:15 -0500 (Fri, 08 May 2009) | 1 line
add a test for \r\n newlines
........
................
Diffstat (limited to 'Lib/lib2to3/tests/test_refactor.py')
-rw-r--r-- | Lib/lib2to3/tests/test_refactor.py | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/Lib/lib2to3/tests/test_refactor.py b/Lib/lib2to3/tests/test_refactor.py index 5a49f01..e55f555 100644 --- a/Lib/lib2to3/tests/test_refactor.py +++ b/Lib/lib2to3/tests/test_refactor.py @@ -14,7 +14,8 @@ from lib2to3 import refactor, pygram, fixer_base from . import support -FIXER_DIR = os.path.join(os.path.dirname(__file__), "data/fixers") +TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data") +FIXER_DIR = os.path.join(TEST_DATA_DIR, "fixers") sys.path.append(FIXER_DIR) try: @@ -22,6 +23,8 @@ try: finally: sys.path.pop() +_2TO3_FIXERS = refactor.get_fixers_from_package("lib2to3.fixes") + class TestRefactoringTool(unittest.TestCase): def setUp(self): @@ -121,19 +124,40 @@ class TestRefactoringTool(unittest.TestCase): +def cheese(): pass""".splitlines() self.assertEqual(diff_lines[:-1], expected) + def check_file_refactoring(self, test_file, fixers=_2TO3_FIXERS): + def read_file(): + with open(test_file, "rb") as fp: + return fp.read() + old_contents = read_file() + rt = self.rt(fixers=fixers) + + rt.refactor_file(test_file) + self.assertEqual(old_contents, read_file()) + + try: + rt.refactor_file(test_file, True) + self.assertNotEqual(old_contents, read_file()) + finally: + with open(test_file, "wb") as fp: + fp.write(old_contents) + def test_refactor_file(self): test_file = os.path.join(FIXER_DIR, "parrot_example.py") - old_contents = open(test_file, "r").read() - rt = self.rt() + self.check_file_refactoring(test_file, _DEFAULT_FIXERS) - rt.refactor_file(test_file) - self.assertEqual(old_contents, open(test_file, "r").read()) + def test_file_encoding(self): + fn = os.path.join(TEST_DATA_DIR, "different_encoding.py") + self.check_file_refactoring(fn) - rt.refactor_file(test_file, True) + def test_crlf_newlines(self): + old_sep = os.linesep + os.linesep = "\r\n" try: - self.assertNotEqual(old_contents, open(test_file, "r").read()) + fn = os.path.join(TEST_DATA_DIR, "crlf.py") + fixes = refactor.get_fixers_from_package("lib2to3.fixes") + self.check_file_refactoring(fn, fixes) finally: - open(test_file, "w").write(old_contents) + os.linesep = old_sep def test_refactor_docstring(self): rt = self.rt() |