diff options
author | Brett Cannon <bcannon@gmail.com> | 2009-03-15 02:20:16 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2009-03-15 02:20:16 (GMT) |
commit | 8d11013169efe085213842307859103f713beec5 (patch) | |
tree | e7b4cace8433ab483d8128524052fba93f442445 /Lib/importlib/test | |
parent | 2b9fd47da776f75ddf5b488fcc73b8631ece8e2b (diff) | |
download | cpython-8d11013169efe085213842307859103f713beec5.zip cpython-8d11013169efe085213842307859103f713beec5.tar.gz cpython-8d11013169efe085213842307859103f713beec5.tar.bz2 |
Implement InspectLoader for FrozenImporter.
Diffstat (limited to 'Lib/importlib/test')
-rw-r--r-- | Lib/importlib/test/frozen/test_loader.py | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/Lib/importlib/test/frozen/test_loader.py b/Lib/importlib/test/frozen/test_loader.py index 54d805d..472d6ec 100644 --- a/Lib/importlib/test/frozen/test_loader.py +++ b/Lib/importlib/test/frozen/test_loader.py @@ -1,4 +1,6 @@ from importlib import machinery +import imp +import unittest from .. import abc from .. import util @@ -53,9 +55,41 @@ class LoaderTests(abc.LoaderTests): '_not_real') +class InspectLoaderTests(unittest.TestCase): + + """Tests for the InspectLoader methods for FrozenImporter.""" + + def test_get_code(self): + # Make sure that the code object is good. + name = '__hello__' + code = machinery.FrozenImporter.get_code(name) + mod = imp.new_module(name) + exec(code, mod.__dict__) + self.assert_(hasattr(mod, 'initialized')) + + def test_get_source(self): + # Should always return None. + result = machinery.FrozenImporter.get_source('__hello__') + self.assert_(result is None) + + def test_is_package(self): + # Should be able to tell what is a package. + test_for = (('__hello__', False), ('__phello__', True), + ('__phello__.spam', False)) + for name, is_package in test_for: + result = machinery.FrozenImporter.is_package(name) + self.assert_(bool(result) == is_package) + + def test_failure(self): + # Raise ImportError for modules that are not frozen. + for meth_name in ('get_code', 'get_source', 'is_package'): + method = getattr(machinery.FrozenImporter, meth_name) + self.assertRaises(ImportError, method, 'importlib') + + def test_main(): from test.support import run_unittest - run_unittest(LoaderTests) + run_unittest(LoaderTests, InspectLoaderTests) if __name__ == '__main__': |