[Python-checkins] cpython (3.2): Stop trying to write into the stdlib during lib2to3 tests (#12331).
eric.araujo
python-checkins at python.org
Mon Aug 1 14:45:25 CEST 2011
http://hg.python.org/cpython/rev/2b5a0c4e052b
changeset: 71665:2b5a0c4e052b
branch: 3.2
user: Éric Araujo <merwok at netwok.org>
date: Sun Jul 31 17:58:46 2011 +0200
summary:
Stop trying to write into the stdlib during lib2to3 tests (#12331).
This prevents tests from failing when run from a Python installed in a
read-only directory.
files:
Lib/lib2to3/tests/test_refactor.py | 18 +++++++++++-------
Misc/NEWS | 3 +++
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/Lib/lib2to3/tests/test_refactor.py b/Lib/lib2to3/tests/test_refactor.py
--- a/Lib/lib2to3/tests/test_refactor.py
+++ b/Lib/lib2to3/tests/test_refactor.py
@@ -177,22 +177,26 @@
self.assertEqual(results, expected)
def check_file_refactoring(self, test_file, fixers=_2TO3_FIXERS):
+ 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)
rt.refactor_file(test_file)
self.assertEqual(old_contents, read_file())
- try:
- rt.refactor_file(test_file, True)
- new_contents = read_file()
- self.assertNotEqual(old_contents, new_contents)
- finally:
- with open(test_file, "wb") as fp:
- fp.write(old_contents)
+ rt.refactor_file(test_file, True)
+ new_contents = read_file()
+ self.assertNotEqual(old_contents, new_contents)
return new_contents
def test_refactor_file(self):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -140,6 +140,9 @@
Tests
-----
+- Issue #12331: The test suite for lib2to3 can now run from an installed
+ Python.
+
- Issue #12626: In regrtest, allow to filter tests using a glob filter
with the ``-m`` (or ``--match``) option. This works with all test cases
using the unittest module. This is useful with long test suites
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list