[Python-checkins] r69173 - in python/branches/py3k/Lib/importlib: NOTES test/import_/test___package__.py test/import_/test_caching.py test/import_/test_fromlist.py test/import_/test_meta_path.py test/import_/test_packages.py test/import_/test_path.py test/import_/test_relative_imports.py test/import_/util.py test/util.py

brett.cannon python-checkins at python.org
Sun Feb 1 05:28:04 CET 2009


Author: brett.cannon
Date: Sun Feb 1 05:28:04 2009
New Revision: 69173
Log:
Move import semantic util code to importlib.test.import_.util.
Added:
 python/branches/py3k/Lib/importlib/test/import_/util.py
Modified:
 python/branches/py3k/Lib/importlib/NOTES
 python/branches/py3k/Lib/importlib/test/import_/test___package__.py
 python/branches/py3k/Lib/importlib/test/import_/test_caching.py
 python/branches/py3k/Lib/importlib/test/import_/test_fromlist.py
 python/branches/py3k/Lib/importlib/test/import_/test_meta_path.py
 python/branches/py3k/Lib/importlib/test/import_/test_packages.py
 python/branches/py3k/Lib/importlib/test/import_/test_path.py
 python/branches/py3k/Lib/importlib/test/import_/test_relative_imports.py
 python/branches/py3k/Lib/importlib/test/util.py
Modified: python/branches/py3k/Lib/importlib/NOTES
==============================================================================
--- python/branches/py3k/Lib/importlib/NOTES	(original)
+++ python/branches/py3k/Lib/importlib/NOTES	Sun Feb 1 05:28:04 2009
@@ -3,10 +3,6 @@
 
 * Reorganize support code.
 
- + Separate out support code for extensions out of test_support_hook.
- + Move util.import_ and utill.mock_modules to import_, importlib_only,
- mock_path_hook?
-
 + Add a file loader mock that returns monotonically increasing mtime.
 - Use in source/test_reload.
 - Use in source/test_load_module_mixed.
Modified: python/branches/py3k/Lib/importlib/test/import_/test___package__.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/import_/test___package__.py	(original)
+++ python/branches/py3k/Lib/importlib/test/import_/test___package__.py	Sun Feb 1 05:28:04 2009
@@ -6,6 +6,7 @@
 """
 import unittest
 from .. import util
+from . import util as import_util
 
 
 class Using__package__(unittest.TestCase):
@@ -36,8 +37,8 @@
 # [__package__]
 with util.mock_modules('pkg.__init__', 'pkg.fake') as importer:
 with util.import_state(meta_path=[importer]):
- util.import_('pkg.fake')
- module = util.import_('', globals={'__package__': 'pkg.fake'},
+ import_util.import_('pkg.fake')
+ module = import_util.import_('', globals={'__package__': 'pkg.fake'},
 fromlist=['attr'], level=2)
 self.assertEquals(module.__name__, 'pkg')
 
@@ -45,8 +46,8 @@
 # [__name__]
 with util.mock_modules('pkg.__init__', 'pkg.fake') as importer:
 with util.import_state(meta_path=[importer]):
- util.import_('pkg.fake')
- module = util.import_('',
+ import_util.import_('pkg.fake')
+ module = import_util.import_('',
 globals={'__name__': 'pkg.fake',
 '__path__': []},
 fromlist=['attr'], level=2)
@@ -54,12 +55,12 @@
 
 def test_bad__package__(self):
 globals = {'__package__': '<not real>'}
- self.assertRaises(SystemError, util.import_,'', globals, {},
+ self.assertRaises(SystemError, import_util.import_,'', globals, {},
 ['relimport'], 1)
 
 def test_bunk__package__(self):
 globals = {'__package__': 42}
- self.assertRaises(ValueError, util.import_, '', globals, {},
+ self.assertRaises(ValueError, import_util.import_, '', globals, {},
 ['relimport'], 1)
 
 
@@ -80,7 +81,7 @@
 with util.mock_modules('top_level') as mock:
 with util.import_state(meta_path=[mock]):
 del mock['top_level'].__package__
- module = util.import_('top_level')
+ module = import_util.import_('top_level')
 self.assert_(module.__package__ is None)
 
 # [package]
@@ -88,7 +89,7 @@
 with util.mock_modules('pkg.__init__') as mock:
 with util.import_state(meta_path=[mock]):
 del mock['pkg'].__package__
- module = util.import_('pkg')
+ module = import_util.import_('pkg')
 self.assertEqual(module.__package__, 'pkg')
 
 # [submodule]
@@ -96,7 +97,7 @@
 with util.mock_modules('pkg.__init__', 'pkg.mod') as mock:
 with util.import_state(meta_path=[mock]):
 del mock['pkg.mod'].__package__
- pkg = util.import_('pkg.mod')
+ pkg = import_util.import_('pkg.mod')
 module = getattr(pkg, 'mod')
 self.assertEqual(module.__package__, 'pkg')
 
Modified: python/branches/py3k/Lib/importlib/test/import_/test_caching.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/import_/test_caching.py	(original)
+++ python/branches/py3k/Lib/importlib/test/import_/test_caching.py	Sun Feb 1 05:28:04 2009
@@ -1,5 +1,6 @@
 """Test that sys.modules is used properly by import."""
 from .. import util
+from . import util as import_util
 import sys
 from types import MethodType
 import unittest
@@ -23,7 +24,7 @@
 # [use cache]
 module_to_use = "some module found!"
 sys.modules['some_module'] = module_to_use
- module = util.import_('some_module')
+ module = import_util.import_('some_module')
 self.assertEqual(id(module_to_use), id(module))
 
 def create_mock(self, *names, return_=None):
@@ -37,31 +38,31 @@
 
 # __import__ inconsistent between loaders and built-in import when it comes
 # to when to use the module in sys.modules and when not to.
- @util.importlib_only
+ @import_util.importlib_only
 def test_using_cache_after_loader(self):
 # [from cache on return]
 with self.create_mock('module') as mock:
 with util.import_state(meta_path=[mock]):
- module = util.import_('module')
+ module = import_util.import_('module')
 self.assertEquals(id(module), id(sys.modules['module']))
 
 # See test_using_cache_after_loader() for reasoning.
- @util.importlib_only
+ @import_util.importlib_only
 def test_using_cache_for_assigning_to_attribute(self):
 # [from cache to attribute]
 with self.create_mock('pkg.__init__', 'pkg.module') as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('pkg.module')
+ module = import_util.import_('pkg.module')
 self.assert_(hasattr(module, 'module'))
 self.assert_(id(module.module), id(sys.modules['pkg.module']))
 
 # See test_using_cache_after_loader() for reasoning.
- @util.importlib_only
+ @import_util.importlib_only
 def test_using_cache_for_fromlist(self):
 # [from cache for fromlist]
 with self.create_mock('pkg.__init__', 'pkg.module') as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('pkg', fromlist=['module'])
+ module = import_util.import_('pkg', fromlist=['module'])
 self.assert_(hasattr(module, 'module'))
 self.assertEquals(id(module.module), id(sys.modules['pkg.module']))
 
Modified: python/branches/py3k/Lib/importlib/test/import_/test_fromlist.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/import_/test_fromlist.py	(original)
+++ python/branches/py3k/Lib/importlib/test/import_/test_fromlist.py	Sun Feb 1 05:28:04 2009
@@ -1,5 +1,6 @@
 """Test that the semantics relating to the 'fromlist' argument are correct."""
 from .. import util
+from . import util as import_util
 import unittest
 
 class ReturnValue(unittest.TestCase):
@@ -17,14 +18,14 @@
 # [import return]
 with util.mock_modules('pkg.__init__', 'pkg.module') as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('pkg.module')
+ module = import_util.import_('pkg.module')
 self.assertEquals(module.__name__, 'pkg')
 
 def test_return_from_from_import(self):
 # [from return]
 with util.mock_modules('pkg.__init__', 'pkg.module')as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('pkg.module', fromlist=['attr'])
+ module = import_util.import_('pkg.module', fromlist=['attr'])
 self.assertEquals(module.__name__, 'pkg.module')
 
 
@@ -49,14 +50,14 @@
 # [object case]
 with util.mock_modules('module') as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('module', fromlist=['attr'])
+ module = import_util.import_('module', fromlist=['attr'])
 self.assertEquals(module.__name__, 'module')
 
 def test_unexistent_object(self):
 # [bad object]
 with util.mock_modules('module') as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('module', fromlist=['non_existent'])
+ module = import_util.import_('module', fromlist=['non_existent'])
 self.assertEquals(module.__name__, 'module')
 self.assert_(not hasattr(module, 'non_existent'))
 
@@ -64,7 +65,7 @@
 # [module]
 with util.mock_modules('pkg.__init__', 'pkg.module') as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('pkg', fromlist=['module'])
+ module = import_util.import_('pkg', fromlist=['module'])
 self.assertEquals(module.__name__, 'pkg')
 self.assert_(hasattr(module, 'module'))
 self.assertEquals(module.module.__name__, 'pkg.module')
@@ -73,14 +74,14 @@
 # [no module]
 with util.mock_modules('pkg.__init__') as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('pkg', fromlist='non_existent')
+ module = import_util.import_('pkg', fromlist='non_existent')
 self.assertEquals(module.__name__, 'pkg')
 self.assert_(not hasattr(module, 'non_existent'))
 
 def test_empty_string(self):
 with util.mock_modules('pkg.__init__', 'pkg.mod') as importer:
 with util.import_state(meta_path=[importer]):
- module = util.import_('pkg.mod', fromlist=[''])
+ module = import_util.import_('pkg.mod', fromlist=[''])
 self.assertEquals(module.__name__, 'pkg.mod')
 
 def test_using_star(self):
@@ -88,7 +89,7 @@
 with util.mock_modules('pkg.__init__', 'pkg.module') as mock:
 with util.import_state(meta_path=[mock]):
 mock['pkg'].__all__ = ['module']
- module = util.import_('pkg', fromlist=['*'])
+ module = import_util.import_('pkg', fromlist=['*'])
 self.assertEquals(module.__name__, 'pkg')
 self.assert_(hasattr(module, 'module'))
 self.assertEqual(module.module.__name__, 'pkg.module')
@@ -99,7 +100,7 @@
 with context as mock:
 with util.import_state(meta_path=[mock]):
 mock['pkg'].__all__ = ['module1']
- module = util.import_('pkg', fromlist=['module2', '*'])
+ module = import_util.import_('pkg', fromlist=['module2', '*'])
 self.assertEquals(module.__name__, 'pkg')
 self.assert_(hasattr(module, 'module1'))
 self.assert_(hasattr(module, 'module2'))
Modified: python/branches/py3k/Lib/importlib/test/import_/test_meta_path.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/import_/test_meta_path.py	(original)
+++ python/branches/py3k/Lib/importlib/test/import_/test_meta_path.py	Sun Feb 1 05:28:04 2009
@@ -1,4 +1,5 @@
 from .. import util
+from . import util as import_util
 from contextlib import nested
 from types import MethodType
 import unittest
@@ -22,7 +23,7 @@
 first.modules[mod] = 42
 second.modules[mod] = -13
 with util.import_state(meta_path=[first, second]):
- self.assertEquals(util.import_(mod), 42)
+ self.assertEquals(import_util.import_(mod), 42)
 
 def test_continuing(self):
 # [continuing]
@@ -33,7 +34,7 @@
 first.find_module = lambda self, fullname, path=None: None
 second.modules[mod_name] = 42
 with util.import_state(meta_path=[first, second]):
- self.assertEquals(util.import_(mod_name), 42)
+ self.assertEquals(import_util.import_(mod_name), 42)
 
 
 class CallSignature(unittest.TestCase):
@@ -58,7 +59,7 @@
 log, wrapped_call = self.log(importer.find_module)
 importer.find_module = MethodType(wrapped_call, importer)
 with util.import_state(meta_path=[importer]):
- util.import_(mod_name)
+ import_util.import_(mod_name)
 assert len(log) == 1
 args = log[0][0]
 kwargs = log[0][1]
@@ -79,7 +80,7 @@
 log, wrapped_call = self.log(importer.find_module)
 importer.find_module = MethodType(wrapped_call, importer)
 with util.import_state(meta_path=[importer]):
- util.import_(mod_name)
+ import_util.import_(mod_name)
 assert len(log) == 2
 args = log[1][0]
 kwargs = log[1][1]
Modified: python/branches/py3k/Lib/importlib/test/import_/test_packages.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/import_/test_packages.py	(original)
+++ python/branches/py3k/Lib/importlib/test/import_/test_packages.py	Sun Feb 1 05:28:04 2009
@@ -1,4 +1,5 @@
 from .. import util
+from . import util as import_util
 import sys
 import unittest
 import importlib
@@ -11,13 +12,14 @@
 def test_import_parent(self):
 with util.mock_modules('pkg.__init__', 'pkg.module') as mock:
 with util.import_state(meta_path=[mock]):
- module = util.import_('pkg.module')
+ module = import_util.import_('pkg.module')
 self.assert_('pkg' in sys.modules)
 
 def test_bad_parent(self):
 with util.mock_modules('pkg.module') as mock:
 with util.import_state(meta_path=[mock]):
- self.assertRaises(ImportError, util.import_, 'pkg.module')
+ self.assertRaises(ImportError,
+ import_util.import_, 'pkg.module')
 
 
 def test_main():
Modified: python/branches/py3k/Lib/importlib/test/import_/test_path.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/import_/test_path.py	(original)
+++ python/branches/py3k/Lib/importlib/test/import_/test_path.py	Sun Feb 1 05:28:04 2009
@@ -1,4 +1,5 @@
 from .. import util
+from . import util as import_util
 from contextlib import nested
 from imp import new_module
 import sys
@@ -41,11 +42,11 @@
 with nested(misser, hitter):
 cache = dict(zip(search_path, (misser, hitter)))
 with util.import_state(path=path, path_importer_cache=cache):
- util.import_(to_import)
+ import_util.import_(to_import)
 self.assertEquals(log[0], misser)
 self.assertEquals(log[1], hitter)
 
- @util.importlib_only # __import__ uses PyDict_GetItem(), bypassing log.
+ @import_util.importlib_only # __import__ uses PyDict_GetItem(), bypassing log.
 def cache_use_test(self, to_import, entry, path=[]):
 # [cache check], [cache use]
 log = []
@@ -58,7 +59,7 @@
 cache = LoggingDict()
 cache[entry] = importer
 with util.import_state(path=[entry], path_importer_cache=cache):
- module = util.import_(to_import, fromlist=['a'])
+ module = import_util.import_(to_import, fromlist=['a'])
 self.assert_(module is importer[to_import])
 self.assertEquals(len(cache), 1)
 self.assertEquals([entry], log)
@@ -70,10 +71,10 @@
 log.append(entry)
 raise ImportError
 with util.mock_modules(to_import) as importer:
- hitter = util.mock_path_hook(entry, importer=importer)
+ hitter = import_util.mock_path_hook(entry, importer=importer)
 path_hooks = [logging_hook, logging_hook, hitter]
 with util.import_state(path_hooks=path_hooks, path=path):
- util.import_(to_import)
+ import_util.import_(to_import)
 self.assertEquals(sys.path_importer_cache[entry], importer)
 self.assertEquals(len(log), 2)
 
@@ -88,7 +89,7 @@
 raise ImportError
 
 try:
- util.import_(to_import)
+ import_util.import_(to_import)
 except ImportError:
 pass
 
@@ -126,7 +127,7 @@
 test('pkg.hit', entry, *args)
 
 
- @util.importlib_only # XXX Unknown reason why this fails.
+ @import_util.importlib_only # XXX Unknown reason why this fails.
 def test_order(self):
 self.run_test(self.order_test, 'second', ('first', 'second'), ['first',
 'second'])
Modified: python/branches/py3k/Lib/importlib/test/import_/test_relative_imports.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/import_/test_relative_imports.py	(original)
+++ python/branches/py3k/Lib/importlib/test/import_/test_relative_imports.py	Sun Feb 1 05:28:04 2009
@@ -1,5 +1,6 @@
 """Test relative imports (PEP 328)."""
 from .. import util
+from . import util as import_util
 import sys
 import unittest
 
@@ -75,8 +76,8 @@
 create = 'pkg.__init__', 'pkg.mod2'
 globals_ = {'__package__': 'pkg'}, {'__name__': 'pkg.mod1'}
 def callback(global_):
- util.import_('pkg') # For __import__().
- module = util.import_('', global_, fromlist=['mod2'], level=1)
+ import_util.import_('pkg') # For __import__().
+ module = import_util.import_('', global_, fromlist=['mod2'], level=1)
 self.assertEqual(module.__name__, 'pkg')
 self.assert_(hasattr(module, 'mod2'))
 self.assertEqual(module.mod2.attr, 'pkg.mod2')
@@ -87,8 +88,9 @@
 create = 'pkg.__init__', 'pkg.mod2'
 globals_ = {'__package__': 'pkg'}, {'__name__': 'pkg.mod1'}
 def callback(global_):
- util.import_('pkg') # For __import__().
- module = util.import_('mod2', global_, fromlist=['attr'], level=1)
+ import_util.import_('pkg') # For __import__().
+ module = import_util.import_('mod2', global_, fromlist=['attr'],
+ level=1)
 self.assertEqual(module.__name__, 'pkg.mod2')
 self.assertEqual(module.attr, 'pkg.mod2')
 self.relative_import_test(create, globals_, callback)
@@ -99,8 +101,8 @@
 globals_ = ({'__package__': 'pkg'},
 {'__name__': 'pkg', '__path__': ['blah']})
 def callback(global_):
- util.import_('pkg') # For __import__().
- module = util.import_('', global_, fromlist=['module'],
+ import_util.import_('pkg') # For __import__().
+ module = import_util.import_('', global_, fromlist=['module'],
 level=1)
 self.assertEqual(module.__name__, 'pkg')
 self.assert_(hasattr(module, 'module'))
@@ -112,8 +114,8 @@
 create = 'pkg.__init__', 'pkg.module'
 globals_ = {'__package__': 'pkg'}, {'__name__': 'pkg.module'}
 def callback(global_):
- util.import_('pkg') # For __import__().
- module = util.import_('', global_, fromlist=['attr'], level=1)
+ import_util.import_('pkg') # For __import__().
+ module = import_util.import_('', global_, fromlist=['attr'], level=1)
 self.assertEqual(module.__name__, 'pkg')
 self.relative_import_test(create, globals_, callback)
 
@@ -124,7 +126,8 @@
 globals_ = ({'__package__': 'pkg.subpkg1'},
 {'__name__': 'pkg.subpkg1', '__path__': ['blah']})
 def callback(global_):
- module = util.import_('', global_, fromlist=['subpkg2'], level=2)
+ module = import_util.import_('', global_, fromlist=['subpkg2'],
+ level=2)
 self.assertEqual(module.__name__, 'pkg')
 self.assert_(hasattr(module, 'subpkg2'))
 self.assertEqual(module.subpkg2.attr, 'pkg.subpkg2.__init__')
@@ -139,8 +142,8 @@
 {'__name__': 'pkg.pkg1.pkg2.pkg3.pkg4.pkg5',
 '__path__': ['blah']})
 def callback(global_):
- util.import_(globals_[0]['__package__'])
- module = util.import_('', global_, fromlist=['attr'], level=6)
+ import_util.import_(globals_[0]['__package__'])
+ module = import_util.import_('', global_, fromlist=['attr'], level=6)
 self.assertEqual(module.__name__, 'pkg')
 self.relative_import_test(create, globals_, callback)
 
@@ -150,8 +153,8 @@
 globals_ = ({'__package__': 'pkg'},
 {'__name__': 'pkg', '__path__': ['blah']})
 def callback(global_):
- util.import_('pkg')
- self.assertRaises(ValueError, util.import_, '', global_,
+ import_util.import_('pkg')
+ self.assertRaises(ValueError, import_util.import_, '', global_,
 fromlist=['top_level'], level=2)
 self.relative_import_test(create, globals_, callback)
 
@@ -160,14 +163,14 @@
 create = ['top_level', 'pkg.__init__', 'pkg.module']
 globals_ = {'__package__': 'pkg'}, {'__name__': 'pkg.module'}
 def callback(global_):
- util.import_('pkg')
- self.assertRaises(ValueError, util.import_, '', global_,
+ import_util.import_('pkg')
+ self.assertRaises(ValueError, import_util.import_, '', global_,
 fromlist=['top_level'], level=2)
 self.relative_import_test(create, globals_, callback)
 
 def test_empty_name_w_level_0(self):
 # [empty name]
- self.assertRaises(ValueError, util.import_, '')
+ self.assertRaises(ValueError, import_util.import_, '')
 
 def test_import_from_different_package(self):
 # Test importing from a different package than the caller.
@@ -181,8 +184,8 @@
 '__runpy_pkg__.uncle.cousin.nephew']
 globals_ = {'__package__': '__runpy_pkg__.__runpy_pkg__'}
 def callback(global_):
- util.import_('__runpy_pkg__.__runpy_pkg__')
- module = util.import_('uncle.cousin', globals_, {},
+ import_util.import_('__runpy_pkg__.__runpy_pkg__')
+ module = import_util.import_('uncle.cousin', globals_, {},
 fromlist=['nephew'],
 level=2)
 self.assertEqual(module.__name__, '__runpy_pkg__.uncle.cousin')
Added: python/branches/py3k/Lib/importlib/test/import_/util.py
==============================================================================
--- (empty file)
+++ python/branches/py3k/Lib/importlib/test/import_/util.py	Sun Feb 1 05:28:04 2009
@@ -0,0 +1,33 @@
+import functools
+import importlib
+
+
+using___import__ = False
+
+
+def import_(*args, **kwargs):
+ """Delegate to allow for injecting different implementations of import."""
+ if using___import__:
+ return __import__(*args, **kwargs)
+ return importlib.Import()(*args, **kwargs)
+
+
+def importlib_only(fxn):
+ """Decorator to mark which tests are not supported by the current
+ implementation of __import__()."""
+ def inner(*args, **kwargs):
+ if using___import__:
+ return
+ else:
+ return fxn(*args, **kwargs)
+ functools.update_wrapper(inner, fxn)
+ return inner
+
+
+def mock_path_hook(*entries, importer):
+ """A mock sys.path_hooks entry."""
+ def hook(entry):
+ if entry not in entries:
+ raise ImportError
+ return importer
+ return hook
Modified: python/branches/py3k/Lib/importlib/test/util.py
==============================================================================
--- python/branches/py3k/Lib/importlib/test/util.py	(original)
+++ python/branches/py3k/Lib/importlib/test/util.py	Sun Feb 1 05:28:04 2009
@@ -1,33 +1,10 @@
-from importlib import Import
-
 from contextlib import contextmanager
-from functools import update_wrapper
 import imp
 import os.path
 from test.support import unlink
 import sys
 
 
-using___import__ = False
-
-def import_(*args, **kwargs):
- """Delegate to allow for injecting different implementations of import."""
- if using___import__:
- return __import__(*args, **kwargs)
- return Import()(*args, **kwargs)
-
-def importlib_only(fxn):
- """Decorator to mark which tests are not supported by the current
- implementation of __import__()."""
- def inner(*args, **kwargs):
- if using___import__:
- return
- else:
- return fxn(*args, **kwargs)
- update_wrapper(inner, fxn)
- return inner
-
-
 def case_insensitive_tests(class_):
 """Class decorator that nullifies tests that require a case-insensitive
 file system."""
@@ -142,12 +119,3 @@
 
 def __exit__(self, *exc_info):
 self._uncache.__exit__(None, None, None)
-
-
-def mock_path_hook(*entries, importer):
- """A mock sys.path_hooks entry."""
- def hook(entry):
- if entry not in entries:
- raise ImportError
- return importer
- return hook


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /