diff options
author | Brett Cannon <bcannon@gmail.com> | 2009-03-02 14:38:26 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2009-03-02 14:38:26 (GMT) |
commit | 57b46f5b0ed0314c3733b96e6ce2f99d526db4ed (patch) | |
tree | a84b9665135a7478047086574e01c8409d5e1f3f /Lib/importlib/test | |
parent | 4d4975c0e4eaed9c79cae3e01d96ad89d08e7757 (diff) | |
download | cpython-57b46f5b0ed0314c3733b96e6ce2f99d526db4ed.zip cpython-57b46f5b0ed0314c3733b96e6ce2f99d526db4ed.tar.gz cpython-57b46f5b0ed0314c3733b96e6ce2f99d526db4ed.tar.bz2 |
Expose importlib.util.set___package__.
Diffstat (limited to 'Lib/importlib/test')
-rw-r--r-- | Lib/importlib/test/test_util.py | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/Lib/importlib/test/test_util.py b/Lib/importlib/test/test_util.py index 476b43f..8bd35f1 100644 --- a/Lib/importlib/test/test_util.py +++ b/Lib/importlib/test/test_util.py @@ -60,9 +60,58 @@ class ModuleForLoaderTests(unittest.TestCase): self.assert_(sys.modules[name] is module) +class SetPackageTests(unittest.TestCase): + + + """Tests for importlib.util.set___package__.""" + + def verify(self, module, expect): + """Verify the module has the expected value for __package__ after + passing through set___package__.""" + fxn = lambda: module + wrapped = util.set___package__(fxn) + wrapped() + self.assert_(hasattr(module, '__package__')) + self.assertEqual(expect, module.__package__) + + def test_top_level(self): + # __package__ should be set to the empty string if a top-level module. + # Implicitly tests when package is set to None. + module = imp.new_module('module') + module.__package__ = None + self.verify(module, '') + + def test_package(self): + # Test setting __package__ for a package. + module = imp.new_module('pkg') + module.__path__ = ['<path>'] + module.__package__ = None + self.verify(module, 'pkg') + + def test_submodule(self): + # Test __package__ for a module in a package. + module = imp.new_module('pkg.mod') + module.__package__ = None + self.verify(module, 'pkg') + + def test_setting_if_missing(self): + # __package__ should be set if it is missing. + module = imp.new_module('mod') + if hasattr(module, '__package__'): + delattr(module, '__package__') + self.verify(module, '') + + def test_leaving_alone(self): + # If __package__ is set and not None then leave it alone. + for value in (True, False): + module = imp.new_module('mod') + module.__package__ = value + self.verify(module, value) + + def test_main(): from test import support - support.run_unittest(ModuleForLoaderTests) + support.run_unittest(ModuleForLoaderTests, SetPackageTests) if __name__ == '__main__': |