[Python-checkins] r74103 - in python/branches/py3k: Lib/importlib/test/source/test_abc_loader.py Misc/NEWS

brett.cannon python-checkins at python.org
Mon Jul 20 02:14:30 CEST 2009


Author: brett.cannon
Date: Mon Jul 20 02:14:29 2009
New Revision: 74103

Log:
Some tests in importlib.test.source.test_abc_loader were testing what happens
when a loader is given missing or bad code object bytecode. Unfortunately an
exception related to source paths was masking what the proper exception to test
should be. Making the test explicitly set the environment fixed the test.

The code being test was not affected.


Modified:
   python/branches/py3k/Lib/importlib/test/source/test_abc_loader.py
   python/branches/py3k/Misc/NEWS

Modified: python/branches/py3k/Lib/importlib/test/source/test_abc_loader.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/source/test_abc_loader.py	(original)
+++ python/branches/py3k/Lib/importlib/test/source/test_abc_loader.py	Mon Jul 20 02:14:29 2009
@@ -348,19 +348,27 @@
         # A bad magic number should lead to an ImportError.
         name = 'mod'
         bad_magic = b'\x00\x00\x00\x00'
-        mock = PyPycLoaderMock({}, {name: {'path': os.path.join('path', 'to',
-                                                                'mod'),
-                                            'magic': bad_magic}})
+        bc = {name:
+                {'path': os.path.join('path', 'to', 'mod'),
+                 'magic': bad_magic}}
+        mock = PyPycLoaderMock({name: None}, bc)
         with util.uncache(name), self.assertRaises(ImportError):
             mock.load_module(name)
 
+    def test_no_bytecode(self):
+        # Missing code object bytecode should lead to an EOFError.
+        name = 'mod'
+        bc = {name: {'path': os.path.join('path', 'to', 'mod'), 'bc': b''}}
+        mock = PyPycLoaderMock({name: None}, bc)
+        with util.uncache(name), self.assertRaises(EOFError):
+            mock.load_module(name)
+
     def test_bad_bytecode(self):
-        # Bad code object bytecode should lead to an ImportError.
+        # Malformed code object bytecode should lead to a ValueError.
         name = 'mod'
-        mock = PyPycLoaderMock({}, {name: {'path': os.path.join('path', 'to',
-                                                                'mod'),
-                                            'bc': b''}})
-        with util.uncache(name), self.assertRaises(ImportError):
+        bc = {name: {'path': os.path.join('path', 'to', 'mod'), 'bc': b'XXX'}}
+        mock = PyPycLoaderMock({name: None}, bc)
+        with util.uncache(name), self.assertRaises(ValueError):
             mock.load_module(name)
 
 

Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Mon Jul 20 02:14:29 2009
@@ -88,6 +88,10 @@
 Tests
 -----
 
+- Fixed tests in importlib.test.source.test_abc_loader that were masking
+  the proper exceptions that should be raised for missing or improper code
+  object bytecode.
+
 - Removed importlib's custom test discovery code and switched to
     unittest.TestLoader.discover().
 


More information about the Python-checkins mailing list