summaryrefslogtreecommitdiffstats
path: root/Lib/lib2to3/tests/test_refactor.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/lib2to3/tests/test_refactor.py')
-rw-r--r--Lib/lib2to3/tests/test_refactor.py40
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()