blob: faadc32172bfa40b0f3c817a9c8d6d4598c2830b [file] [log] [blame]
Brett Cannonbcb26c52009-02-01 04:00:05 +00001from .. import util
Brett Cannond720b362009-02-01 04:28:04 +00002from . import util as import_util
Brett Cannon23cbd8a2009-01-18 00:24:28 +00003import sys
4import unittest
5import importlib
Brett Cannon23cbd8a2009-01-18 00:24:28 +00006
7
8class ParentModuleTests(unittest.TestCase):
9
10 """Importing a submodule should import the parent modules."""
11
12 def test_import_parent(self):
Brett Cannonbcb26c52009-02-01 04:00:05 +000013 with util.mock_modules('pkg.__init__', 'pkg.module') as mock:
14 with util.import_state(meta_path=[mock]):
Brett Cannond720b362009-02-01 04:28:04 +000015 module = import_util.import_('pkg.module')
Benjamin Petersonc9c0f202009-06-30 23:06:06 +000016 self.assertTrue('pkg' in sys.modules)
Brett Cannon23cbd8a2009-01-18 00:24:28 +000017
18 def test_bad_parent(self):
Brett Cannonbcb26c52009-02-01 04:00:05 +000019 with util.mock_modules('pkg.module') as mock:
20 with util.import_state(meta_path=[mock]):
Brett Cannon2153dc02009-08-27 23:49:21 +000021 with self.assertRaises(ImportError):
22 import_util.import_('pkg.module')
Brett Cannon23cbd8a2009-01-18 00:24:28 +000023
Brett Cannon1c1dcbf2009-08-30 20:22:21 +000024 def test_module_not_package(self):
25 # Try to import a submodule from a non-package should raise ImportError.
26 assert not hasattr(sys, '__path__')
27 with self.assertRaises(ImportError):
28 import_util.import_('sys.no_submodules_here')
29
Brett Cannon23cbd8a2009-01-18 00:24:28 +000030
31def test_main():
32 from test.support import run_unittest
33 run_unittest(ParentModuleTests)
34
35
36if __name__ == '__main__':
37 test_main()