diff options
Diffstat (limited to 'Lib/lib2to3/tests/test_refactor.py')
-rw-r--r-- | Lib/lib2to3/tests/test_refactor.py | 59 |
1 files changed, 24 insertions, 35 deletions
diff --git a/Lib/lib2to3/tests/test_refactor.py b/Lib/lib2to3/tests/test_refactor.py index 9e3b8fb..c737aa5 100644 --- a/Lib/lib2to3/tests/test_refactor.py +++ b/Lib/lib2to3/tests/test_refactor.py @@ -2,18 +2,24 @@ Unit tests for refactor.py. """ +from __future__ import with_statement + import sys import os import codecs -import io +import operator import re +import StringIO import tempfile import shutil import unittest +import warnings from lib2to3 import refactor, pygram, fixer_base from lib2to3.pgen2 import token +from . import support + TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data") FIXER_DIR = os.path.join(TEST_DATA_DIR, "fixers") @@ -127,7 +133,7 @@ from __future__ import print_function""" self.assertEqual(top_fixes, [with_head, no_head]) name_fixes = d.pop(token.NAME) self.assertEqual(name_fixes, [simple, no_head]) - for fixes in d.values(): + for fixes in d.itervalues(): self.assertEqual(fixes, [no_head]) def test_fixer_loading(self): @@ -167,7 +173,7 @@ from __future__ import print_function""" results = [] rt = MyRT(_DEFAULT_FIXERS) save = sys.stdin - sys.stdin = io.StringIO("def parrot(): pass\n\n") + sys.stdin = StringIO.StringIO("def parrot(): pass\n\n") try: rt.refactor_stdin() finally: @@ -180,42 +186,32 @@ from __future__ import print_function""" def check_file_refactoring(self, test_file, fixers=_2TO3_FIXERS, options=None, mock_log_debug=None, actually_write=True): - test_file = self.init_test_file(test_file) - old_contents = self.read_file(test_file) + tmpdir = tempfile.mkdtemp(prefix="2to3-test_refactor") + self.addCleanup(shutil.rmtree, tmpdir) + # make a copy of the tested file that we can write to + shutil.copy(test_file, tmpdir) + test_file = os.path.join(tmpdir, os.path.basename(test_file)) + os.chmod(test_file, 0o644) + + def read_file(): + with open(test_file, "rb") as fp: + return fp.read() + + old_contents = read_file() rt = self.rt(fixers=fixers, options=options) if mock_log_debug: rt.log_debug = mock_log_debug rt.refactor_file(test_file) - self.assertEqual(old_contents, self.read_file(test_file)) + self.assertEqual(old_contents, read_file()) if not actually_write: return rt.refactor_file(test_file, True) - new_contents = self.read_file(test_file) + new_contents = read_file() self.assertNotEqual(old_contents, new_contents) return new_contents - def init_test_file(self, test_file): - tmpdir = tempfile.mkdtemp(prefix="2to3-test_refactor") - self.addCleanup(shutil.rmtree, tmpdir) - shutil.copy(test_file, tmpdir) - test_file = os.path.join(tmpdir, os.path.basename(test_file)) - os.chmod(test_file, 0o644) - return test_file - - def read_file(self, test_file): - with open(test_file, "rb") as fp: - return fp.read() - - def refactor_file(self, test_file, fixers=_2TO3_FIXERS): - test_file = self.init_test_file(test_file) - old_contents = self.read_file(test_file) - rt = self.rt(fixers=fixers) - rt.refactor_file(test_file, True) - new_contents = self.read_file(test_file) - return old_contents, new_contents - def test_refactor_file(self): test_file = os.path.join(FIXER_DIR, "parrot_example.py") self.check_file_refactoring(test_file, _DEFAULT_FIXERS) @@ -235,7 +231,7 @@ from __future__ import print_function""" re.escape(os.sep + os.path.basename(test_file)) for message in debug_messages: if "Not writing changes" in message: - self.assertRegex(message, message_regex) + self.assertRegexpMatches(message, message_regex) break else: self.fail("%r not matched in %r" % (message_regex, debug_messages)) @@ -295,13 +291,6 @@ from __future__ import print_function""" finally: os.linesep = old_sep - def test_crlf_unchanged(self): - fn = os.path.join(TEST_DATA_DIR, "crlf.py") - old, new = self.refactor_file(fn) - self.assertIn(b"\r\n", old) - self.assertIn(b"\r\n", new) - self.assertNotIn(b"\r\r\n", new) - def test_refactor_docstring(self): rt = self.rt() |