Commit 62c09257 authored by Ezio Melotti's avatar Ezio Melotti

#11420: make test suite pass with -B/DONTWRITEBYTECODE set. Initial patch by Thomas Wouters.

parent 7ae0f03c
...@@ -87,8 +87,9 @@ class BuildDumbTestCase(support.TempdirManager, ...@@ -87,8 +87,9 @@ class BuildDumbTestCase(support.TempdirManager,
fp.close() fp.close()
contents = sorted(os.path.basename(fn) for fn in contents) contents = sorted(os.path.basename(fn) for fn in contents)
wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], 'foo.py']
'foo.py', 'foo.pyc'] if not sys.dont_write_bytecode:
wanted.append('foo.pyc')
self.assertEqual(contents, sorted(wanted)) self.assertEqual(contents, sorted(wanted))
def test_finalize_options(self): def test_finalize_options(self):
......
...@@ -88,6 +88,7 @@ class ImportTests(unittest.TestCase): ...@@ -88,6 +88,7 @@ class ImportTests(unittest.TestCase):
unlink(source) unlink(source)
try: try:
if not sys.dont_write_bytecode:
imp.reload(mod) imp.reload(mod)
except ImportError, err: except ImportError, err:
self.fail("import from .pyc/.pyo failed: %s" % err) self.fail("import from .pyc/.pyo failed: %s" % err)
...@@ -105,7 +106,10 @@ class ImportTests(unittest.TestCase): ...@@ -105,7 +106,10 @@ class ImportTests(unittest.TestCase):
finally: finally:
del sys.path[0] 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): def test_execute_bit_not_copied(self):
# Issue 6070: under posix .pyc files got their execute bit set if # 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. # the .py file had the execute bit set, but they aren't executable.
...@@ -132,6 +136,8 @@ class ImportTests(unittest.TestCase): ...@@ -132,6 +136,8 @@ class ImportTests(unittest.TestCase):
unload(TESTFN) unload(TESTFN)
del sys.path[0] 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): def test_rewrite_pyc_with_read_only_source(self):
# Issue 6074: a long time ago on posix, and more recently on Windows, # 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 # a read only source file resulted in a read only pyc file, which
...@@ -441,6 +447,7 @@ func_filename = func.func_code.co_filename ...@@ -441,6 +447,7 @@ func_filename = func.func_code.co_filename
self.assertEqual(mod.func_filename, self.file_name) self.assertEqual(mod.func_filename, self.file_name)
del sys.modules[self.module_name] del sys.modules[self.module_name]
mod = self.import_module() mod = self.import_module()
if not sys.dont_write_bytecode:
self.assertEqual(mod.module_filename, self.compiled_name) self.assertEqual(mod.module_filename, self.compiled_name)
self.assertEqual(mod.code_filename, self.file_name) self.assertEqual(mod.code_filename, self.file_name)
self.assertEqual(mod.func_filename, self.file_name) self.assertEqual(mod.func_filename, self.file_name)
......
...@@ -170,6 +170,7 @@ class RunModuleTest(unittest.TestCase): ...@@ -170,6 +170,7 @@ class RunModuleTest(unittest.TestCase):
del d1 # Ensure __loader__ entry doesn't keep file open del d1 # Ensure __loader__ entry doesn't keep file open
__import__(mod_name) __import__(mod_name)
os.remove(mod_fname) os.remove(mod_fname)
if not sys.dont_write_bytecode:
if verbose: print "Running from compiled:", mod_name if verbose: print "Running from compiled:", mod_name
d2 = run_module(mod_name) # Read from bytecode d2 = run_module(mod_name) # Read from bytecode
self.assertIn("x", d2) self.assertIn("x", d2)
...@@ -192,6 +193,7 @@ class RunModuleTest(unittest.TestCase): ...@@ -192,6 +193,7 @@ class RunModuleTest(unittest.TestCase):
del d1 # Ensure __loader__ entry doesn't keep file open del d1 # Ensure __loader__ entry doesn't keep file open
__import__(mod_name) __import__(mod_name)
os.remove(mod_fname) os.remove(mod_fname)
if not sys.dont_write_bytecode:
if verbose: print "Running from compiled:", pkg_name if verbose: print "Running from compiled:", pkg_name
d2 = run_module(pkg_name) # Read from bytecode d2 = run_module(pkg_name) # Read from bytecode
self.assertIn("x", d2) self.assertIn("x", d2)
...@@ -246,6 +248,7 @@ from ..uncle.cousin import nephew ...@@ -246,6 +248,7 @@ from ..uncle.cousin import nephew
del d1 # Ensure __loader__ entry doesn't keep file open del d1 # Ensure __loader__ entry doesn't keep file open
__import__(mod_name) __import__(mod_name)
os.remove(mod_fname) os.remove(mod_fname)
if not sys.dont_write_bytecode:
if verbose: print "Running from compiled:", mod_name if verbose: print "Running from compiled:", mod_name
d2 = run_module(mod_name, run_name=run_name) # Read from bytecode d2 = run_module(mod_name, run_name=run_name) # Read from bytecode
self.assertIn("__package__", d2) self.assertIn("__package__", d2)
......
...@@ -818,6 +818,9 @@ Extension Modules ...@@ -818,6 +818,9 @@ Extension Modules
Tests 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 - Issue #17299: Add test coverage for cPickle with file objects and general IO
objects. Original patch by Aman Shah. objects. Original patch by Aman Shah.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment