]> granicus.if.org Git - python/commitdiff
Repair test failure. Bug 8727.
authorBarry Warsaw <barry@python.org>
Tue, 18 May 2010 14:15:20 +0000 (14:15 +0000)
committerBarry Warsaw <barry@python.org>
Tue, 18 May 2010 14:15:20 +0000 (14:15 +0000)
Lib/importlib/_bootstrap.py
Lib/importlib/test/source/test_file_loader.py
Lib/test/test_import.py

index 30d5251f3acc306645e3a8e5697b59adfce5e369..511f7dddceafada925a7d3406a606332637dfbff 100644 (file)
@@ -494,8 +494,16 @@ class _PyPycFileLoader(PyPycLoader, _PyFileLoader):
         if ext_type == imp.PY_COMPILED:
             # We don't really care what the extension on self._base_path is,
             # as long as it has exactly one dot.
-            bytecode_path = imp.cache_from_source(self._base_path + '.py')
-            return (bytecode_path if _path_exists(bytecode_path) else None)
+            source_path = self._base_path + '.py'
+            pycache_path = imp.cache_from_source(source_path)
+            legacy_path = self._base_path + '.pyc'
+            # The rule is: if the source file exists, then Python always uses
+            # the __pycache__/foo.<tag>.pyc file.  If the source file does not
+            # exist, then Python uses the legacy path.
+            pyc_path = (pycache_path
+                        if _path_exists(source_path)
+                        else legacy_path)
+            return (pyc_path if _path_exists(pyc_path) else None)
         return super()._find_path(ext_type)
 
     @_check_name
index 905940501c6d594091dde1d855190787913d9473..343e120e4c9986cad8d88193ac16c16f6864a2f6 100644 (file)
@@ -10,6 +10,8 @@ import stat
 import sys
 import unittest
 
+from test.support import make_legacy_pyc
+
 
 class SimpleTest(unittest.TestCase):
 
@@ -136,6 +138,7 @@ class BadBytecodeTest(unittest.TestCase):
                 file.write(new_bc)
         if del_source:
             os.unlink(mapping[name])
+            make_legacy_pyc(mapping[name])
         return bytecode_path
 
     @source_util.writes_bytecode_files
index 5649e146ee71edff8acefcfb8acac2d9a446fcfb..bf689aea4ceac3af311b567947dbea1162de9e11 100644 (file)
@@ -142,7 +142,6 @@ class ImportTests(unittest.TestCase):
             self.assertIs(orig_path, new_os.path)
             self.assertIsNot(orig_getenv, new_os.getenv)
 
-    @unittest.expectedFailure  # Issue 8727 is tracking the fix.
     def test_module_with_large_stack(self, module='longlist'):
         # Regression test for http://bugs.python.org/issue561858.
         filename = module + '.py'