]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
#11420: make test suite pass with -B/DONTWRITEBYTECODE set. Initial patch by Thomas...
authorEzio Melotti <ezio.melotti@gmail.com>
Sat, 16 Mar 2013 18:04:44 +0000 (20:04 +0200)
committerEzio Melotti <ezio.melotti@gmail.com>
Sat, 16 Mar 2013 18:04:44 +0000 (20:04 +0200)
Lib/distutils/tests/test_bdist_dumb.py
Lib/test/test_import.py
Lib/test/test_runpy.py
Misc/NEWS

index 3378f49ea0915807faf1db9c44f338f9aca9ed05..5db3a850f8e4cc2221ddce4c5ee9c3490d269083 100644 (file)
@@ -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):
index ea50d34626a43b5c895630b224b2f88577b75d5f..c17da100113d13717c0afbeef3e9229cfe6a9ebb 100644 (file)
@@ -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)
 
index dbcb23d330057608c87058e8d0a567d647e3ff0f..76858d53a29b7581de9c4a0daf13a5f610a651a9 100644 (file)
@@ -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"
index 790979c8ee2c5848ba3e81682637bd0cac8639d5..15d6690107d24823ff793f69d2070035bc45b69c 100644 (file)
--- 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.