diff options
author | Brett Cannon <bcannon@gmail.com> | 2009-02-05 02:53:23 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2009-02-05 02:53:23 (GMT) |
commit | 939ea76b3ce0cdc9a878f9499b40091fc6fff3d1 (patch) | |
tree | a355f1d360f5d5fa4f08ba6625f35b2a965e032f /Lib | |
parent | fa3d1fc6a3ba2333bf1f932b4e9fe8a4d174ddb3 (diff) | |
download | cpython-939ea76b3ce0cdc9a878f9499b40091fc6fff3d1.zip cpython-939ea76b3ce0cdc9a878f9499b40091fc6fff3d1.tar.gz cpython-939ea76b3ce0cdc9a878f9499b40091fc6fff3d1.tar.bz2 |
Begin writing tests for importlib.machinery.PathFinder.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/importlib/test/import_/test_path.py | 58 |
1 files changed, 57 insertions, 1 deletions
diff --git a/Lib/importlib/test/import_/test_path.py b/Lib/importlib/test/import_/test_path.py index b008b09..3eb22c9 100644 --- a/Lib/importlib/test/import_/test_path.py +++ b/Lib/importlib/test/import_/test_path.py @@ -1,3 +1,4 @@ +from importlib import machinery from .. import util from . import util as import_util from contextlib import nested @@ -149,9 +150,64 @@ class __path__Tests(BaseTests): self.path_argument_test(name) +class FinderTests(unittest.TestCase): + + """Tests for SysPathImporter.""" + + def test_failure(self): + # Test None returned upon not finding a suitable finder. + def mock_implicit_hooks(): + return [] + # XXX Not blackbox. + original_hooks = machinery.PathFinder._implicit_hooks + machinery.PathFinder._implicit_hooks = staticmethod(mock_implicit_hooks) + try: + with util.import_state(): + self.assert_(machinery.PathFinder.find_module('XXX') is None) + finally: + machinery.PathFinder._implicit_hooks = original_hooks + + def test_sys_path(self): + # Test that sys.path is used when 'path' is None. + # Implicitly tests that sys.path_importer_cache is used. + module = '<test module>' + path = '<test path>' + importer = util.mock_modules(module) + with util.import_state(path_importer_cache={path: importer}, + path=[path]): + loader = machinery.PathFinder.find_module(module) + self.assert_(loader is importer) + + def test_path(self): + # Test that 'path' is used when set. + # Implicitly tests that sys.path_importer_cache is used. + module = '<test module>' + path = '<test path>' + importer = util.mock_modules(module) + with util.import_state(path_importer_cache={path: importer}): + loader = machinery.PathFinder.find_module(module, [path]) + self.assert_(loader is importer) + + def test_path_importer_cache_has_None(self): + # Test that the default hook is used when sys.path_importer_cache + # contains None for a path. + # TODO(brett.cannon) implement + pass + + def test_path_hooks(self): + # Test that sys.path_hooks is used. + # TODO(brett.cannon) implement + pass + + def test_implicit_hooks(self): + # Test that the implicit path hooks are used. + # TODO(brett.cannon) implement + pass + + def test_main(): from test.support import run_unittest - run_unittest(PathTests, __path__Tests) + run_unittest(PathTests, __path__Tests, FinderTests) if __name__ == '__main__': test_main() |