diff options
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_importlib/test_api.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Lib/test/test_importlib/test_api.py b/Lib/test/test_importlib/test_api.py index ef6629a..5d63d85 100644 --- a/Lib/test/test_importlib/test_api.py +++ b/Lib/test/test_importlib/test_api.py @@ -4,6 +4,7 @@ import importlib from importlib import machinery import sys from test import support +import types import unittest @@ -175,12 +176,28 @@ class FrozenImportlibTests(unittest.TestCase): machinery.FrozenImporter)) +class StartupTests(unittest.TestCase): + + def test_everyone_has___loader__(self): + # Issue #17098: all modules should have __loader__ defined. + for name, module in sys.modules.items(): + if isinstance(module, types.ModuleType): + self.assertTrue(hasattr(module, '__loader__'), + '{!r} lacks a __loader__ attribute'.format(name)) + if name in sys.builtin_module_names: + self.assertEqual(importlib.machinery.BuiltinImporter, + module.__loader__) + elif imp.is_frozen(name): + self.assertEqual(importlib.machinery.FrozenImporter, + module.__loader__) + def test_main(): from test.support import run_unittest run_unittest(ImportModuleTests, FindLoaderTests, InvalidateCacheTests, - FrozenImportlibTests) + FrozenImportlibTests, + StartupTests) if __name__ == '__main__': |