summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEzio Melotti <ezio.melotti@gmail.com>2013-03-16 18:04:44 (GMT)
committerEzio Melotti <ezio.melotti@gmail.com>2013-03-16 18:04:44 (GMT)
commite015b6b1fc5a8ee42c8643ff98b4a1559fe1a551 (patch)
tree10e72da88156ec05df28e8dad4f534b1c14bacaa
parentb1ed05c7a5158e9cf59b48dd12ed96233d2490ce (diff)
downloadcpython-e015b6b1fc5a8ee42c8643ff98b4a1559fe1a551.zip
cpython-e015b6b1fc5a8ee42c8643ff98b4a1559fe1a551.tar.gz
cpython-e015b6b1fc5a8ee42c8643ff98b4a1559fe1a551.tar.bz2
#11420: make test suite pass with -B/DONTWRITEBYTECODE set. Initial patch by Thomas Wouters.
-rw-r--r--Lib/distutils/tests/test_bdist_dumb.py5
-rw-r--r--Lib/test/test_import.py13
-rw-r--r--Lib/test/test_runpy.py37
-rw-r--r--Misc/NEWS3
4 files changed, 36 insertions, 22 deletions
diff --git a/Lib/distutils/tests/test_bdist_dumb.py b/Lib/distutils/tests/test_bdist_dumb.py
index 3378f49..5db3a85 100644
--- a/Lib/distutils/tests/test_bdist_dumb.py
+++ b/Lib/distutils/tests/test_bdist_dumb.py
@@ -87,8 +87,9 @@ class BuildDumbTestCase(support.TempdirManager,
fp.close()
contents = sorted(os.path.basename(fn) for fn in contents)
- wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2],
- 'foo.py', 'foo.pyc']
+ wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], 'foo.py']
+ if not sys.dont_write_bytecode:
+ wanted.append('foo.pyc')
self.assertEqual(contents, sorted(wanted))
def test_finalize_options(self):
diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py
index ea50d34..c17da10 100644
--- a/Lib/test/test_import.py
+++ b/Lib/test/test_import.py
@@ -88,7 +88,8 @@ class ImportTests(unittest.TestCase):
unlink(source)
try:
- imp.reload(mod)
+ if not sys.dont_write_bytecode:
+ imp.reload(mod)
except ImportError, err:
self.fail("import from .pyc/.pyo failed: %s" % err)
finally:
@@ -105,7 +106,10 @@ class ImportTests(unittest.TestCase):
finally:
del sys.path[0]
- @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems")
+ @unittest.skipUnless(os.name == 'posix',
+ "test meaningful only on posix systems")
+ @unittest.skipIf(sys.dont_write_bytecode,
+ "test meaningful only when writing bytecode")
def test_execute_bit_not_copied(self):
# Issue 6070: under posix .pyc files got their execute bit set if
# the .py file had the execute bit set, but they aren't executable.
@@ -132,6 +136,8 @@ class ImportTests(unittest.TestCase):
unload(TESTFN)
del sys.path[0]
+ @unittest.skipIf(sys.dont_write_bytecode,
+ "test meaningful only when writing bytecode")
def test_rewrite_pyc_with_read_only_source(self):
# Issue 6074: a long time ago on posix, and more recently on Windows,
# a read only source file resulted in a read only pyc file, which
@@ -441,7 +447,8 @@ func_filename = func.func_code.co_filename
self.assertEqual(mod.func_filename, self.file_name)
del sys.modules[self.module_name]
mod = self.import_module()
- self.assertEqual(mod.module_filename, self.compiled_name)
+ if not sys.dont_write_bytecode:
+ self.assertEqual(mod.module_filename, self.compiled_name)
self.assertEqual(mod.code_filename, self.file_name)
self.assertEqual(mod.func_filename, self.file_name)
diff --git a/Lib/test/test_runpy.py b/Lib/test/test_runpy.py
index dbcb23d..76858d5 100644
--- a/Lib/test/test_runpy.py
+++ b/Lib/test/test_runpy.py
@@ -170,11 +170,12 @@ class RunModuleTest(unittest.TestCase):
del d1 # Ensure __loader__ entry doesn't keep file open
__import__(mod_name)
os.remove(mod_fname)
- if verbose: print "Running from compiled:", mod_name
- d2 = run_module(mod_name) # Read from bytecode
- self.assertIn("x", d2)
- self.assertTrue(d2["x"] == 1)
- del d2 # Ensure __loader__ entry doesn't keep file open
+ if not sys.dont_write_bytecode:
+ if verbose: print "Running from compiled:", mod_name
+ d2 = run_module(mod_name) # Read from bytecode
+ self.assertIn("x", d2)
+ self.assertTrue(d2["x"] == 1)
+ del d2 # Ensure __loader__ entry doesn't keep file open
finally:
self._del_pkg(pkg_dir, depth, mod_name)
if verbose: print "Module executed successfully"
@@ -192,11 +193,12 @@ class RunModuleTest(unittest.TestCase):
del d1 # Ensure __loader__ entry doesn't keep file open
__import__(mod_name)
os.remove(mod_fname)
- if verbose: print "Running from compiled:", pkg_name
- d2 = run_module(pkg_name) # Read from bytecode
- self.assertIn("x", d2)
- self.assertTrue(d2["x"] == 1)
- del d2 # Ensure __loader__ entry doesn't keep file open
+ if not sys.dont_write_bytecode:
+ if verbose: print "Running from compiled:", pkg_name
+ d2 = run_module(pkg_name) # Read from bytecode
+ self.assertIn("x", d2)
+ self.assertTrue(d2["x"] == 1)
+ del d2 # Ensure __loader__ entry doesn't keep file open
finally:
self._del_pkg(pkg_dir, depth, pkg_name)
if verbose: print "Package executed successfully"
@@ -246,13 +248,14 @@ from ..uncle.cousin import nephew
del d1 # Ensure __loader__ entry doesn't keep file open
__import__(mod_name)
os.remove(mod_fname)
- if verbose: print "Running from compiled:", mod_name
- d2 = run_module(mod_name, run_name=run_name) # Read from bytecode
- self.assertIn("__package__", d2)
- self.assertTrue(d2["__package__"] == pkg_name)
- self.assertIn("sibling", d2)
- self.assertIn("nephew", d2)
- del d2 # Ensure __loader__ entry doesn't keep file open
+ if not sys.dont_write_bytecode:
+ if verbose: print "Running from compiled:", mod_name
+ d2 = run_module(mod_name, run_name=run_name) # Read from bytecode
+ self.assertIn("__package__", d2)
+ self.assertTrue(d2["__package__"] == pkg_name)
+ self.assertIn("sibling", d2)
+ self.assertIn("nephew", d2)
+ del d2 # Ensure __loader__ entry doesn't keep file open
finally:
self._del_pkg(pkg_dir, depth, mod_name)
if verbose: print "Module executed successfully"
diff --git a/Misc/NEWS b/Misc/NEWS
index 790979c..15d6690 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -818,6 +818,9 @@ Extension Modules
Tests
-----
+- Issue #11420: make test suite pass with -B/DONTWRITEBYTECODE set.
+ Initial patch by Thomas Wouters.
+
- Issue #17299: Add test coverage for cPickle with file objects and general IO
objects. Original patch by Aman Shah.