cpython: b26e6e3e8037 (original) (raw)
--- a/Lib/test/test_importlib/frozen/test_finder.py +++ b/Lib/test/test_importlib/frozen/test_finder.py @@ -1,15 +1,17 @@ -from importlib import machinery from .. import abc +from .. import util + +machinery = util.import_importlib('importlib.machinery') import unittest -class FinderTests(unittest.TestCase, abc.FinderTests): +class FinderTests(abc.FinderTests): """Test finding frozen modules.""" def find(self, name, path=None):
finder = machinery.FrozenImporter[](#l1.19)
finder = self.machinery.FrozenImporter[](#l1.20) return finder.find_module(name, path)[](#l1.21)
def test_module(self): @@ -37,11 +39,9 @@ class FinderTests(unittest.TestCase, abc loader = self.find('') self.assertIsNone(loader) - -def test_main():
+Frozen_FinderTests, Source_FinderTests = util.test_both(FinderTests,
machinery=machinery)[](#l1.33)
--- a/Lib/test/test_importlib/frozen/test_loader.py +++ b/Lib/test/test_importlib/frozen/test_loader.py @@ -1,20 +1,21 @@ from .. import abc from .. import util -from importlib import machinery +machinery = util.import_importlib('importlib.machinery') + import unittest from test.support import captured_stdout import types -class LoaderTests(unittest.TestCase, abc.LoaderTests): +class LoaderTests(abc.LoaderTests): def test_module(self): with util.uncache('hello'), captured_stdout() as stdout:
module = machinery.FrozenImporter.load_module('__hello__')[](#l2.20)
module = self.machinery.FrozenImporter.load_module('__hello__')[](#l2.21) check = {'__name__': '__hello__',[](#l2.22) '__package__': '',[](#l2.23)
'__loader__': machinery.FrozenImporter,[](#l2.24)
'__loader__': self.machinery.FrozenImporter,[](#l2.25) }[](#l2.26) for attr, value in check.items():[](#l2.27) self.assertEqual(getattr(module, attr), value)[](#l2.28)
@@ -23,11 +24,11 @@ class LoaderTests(unittest.TestCase, abc def test_package(self): with util.uncache('phello'), captured_stdout() as stdout:
module = machinery.FrozenImporter.load_module('__phello__')[](#l2.33)
module = self.machinery.FrozenImporter.load_module('__phello__')[](#l2.34) check = {'__name__': '__phello__',[](#l2.35) '__package__': '__phello__',[](#l2.36) '__path__': [],[](#l2.37)
'__loader__': machinery.FrozenImporter,[](#l2.38)
'__loader__': self.machinery.FrozenImporter,[](#l2.39) }[](#l2.40) for attr, value in check.items():[](#l2.41) attr_value = getattr(module, attr)[](#l2.42)
@@ -40,10 +41,10 @@ class LoaderTests(unittest.TestCase, abc def test_lacking_parent(self): with util.uncache('phello', 'phello.spam'), [](#l2.45) captured_stdout() as stdout:
module = machinery.FrozenImporter.load_module('__phello__.spam')[](#l2.47)
module = self.machinery.FrozenImporter.load_module('__phello__.spam')[](#l2.48) check = {'__name__': '__phello__.spam',[](#l2.49) '__package__': '__phello__',[](#l2.50)
'__loader__': machinery.FrozenImporter,[](#l2.51)
'__loader__': self.machinery.FrozenImporter,[](#l2.52) }[](#l2.53) for attr, value in check.items():[](#l2.54) attr_value = getattr(module, attr)[](#l2.55)
@@ -55,15 +56,15 @@ class LoaderTests(unittest.TestCase, abc def test_module_reuse(self): with util.uncache('hello'), captured_stdout() as stdout:
module1 = machinery.FrozenImporter.load_module('__hello__')[](#l2.60)
module2 = machinery.FrozenImporter.load_module('__hello__')[](#l2.61)
module1 = self.machinery.FrozenImporter.load_module('__hello__')[](#l2.62)
module2 = self.machinery.FrozenImporter.load_module('__hello__')[](#l2.63) self.assertIs(module1, module2)[](#l2.64) self.assertEqual(stdout.getvalue(),[](#l2.65) 'Hello world!\nHello world!\n')[](#l2.66)
def test_module_repr(self): with util.uncache('hello'), captured_stdout():
module = machinery.FrozenImporter.load_module('__hello__')[](#l2.70)
module = self.machinery.FrozenImporter.load_module('__hello__')[](#l2.71) self.assertEqual(repr(module),[](#l2.72) "<module '__hello__' (frozen)>")[](#l2.73)
@@ -72,13 +73,16 @@ class LoaderTests(unittest.TestCase, abc pass def test_unloadable(self):
assert machinery.FrozenImporter.find_module('_not_real') is None[](#l2.79)
assert self.machinery.FrozenImporter.find_module('_not_real') is None[](#l2.80) with self.assertRaises(ImportError) as cm:[](#l2.81)
machinery.FrozenImporter.load_module('_not_real')[](#l2.82)
self.machinery.FrozenImporter.load_module('_not_real')[](#l2.83) self.assertEqual(cm.exception.name, '_not_real')[](#l2.84)
+Frozen_LoaderTests, Source_LoaderTests = util.test_both(LoaderTests,
machinery=machinery)[](#l2.87)
-class InspectLoaderTests(unittest.TestCase): + +class InspectLoaderTests: """Tests for the InspectLoader methods for FrozenImporter.""" @@ -86,7 +90,7 @@ class InspectLoaderTests(unittest.TestCa # Make sure that the code object is good. name = 'hello' with captured_stdout() as stdout:
code = machinery.FrozenImporter.get_code(name)[](#l2.99)
code = self.machinery.FrozenImporter.get_code(name)[](#l2.100) mod = types.ModuleType(name)[](#l2.101) exec(code, mod.__dict__)[](#l2.102) self.assertTrue(hasattr(mod, 'initialized'))[](#l2.103)
@@ -94,7 +98,7 @@ class InspectLoaderTests(unittest.TestCa def test_get_source(self): # Should always return None.
result = machinery.FrozenImporter.get_source('__hello__')[](#l2.108)
result = self.machinery.FrozenImporter.get_source('__hello__')[](#l2.109) self.assertIsNone(result)[](#l2.110)
def test_is_package(self): @@ -102,22 +106,20 @@ class InspectLoaderTests(unittest.TestCa test_for = (('hello', False), ('phello', True), ('phello.spam', False)) for name, is_package in test_for:
result = machinery.FrozenImporter.is_package(name)[](#l2.117)
result = self.machinery.FrozenImporter.is_package(name)[](#l2.118) self.assertEqual(bool(result), is_package)[](#l2.119)
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)[](#l2.124)
method = getattr(self.machinery.FrozenImporter, meth_name)[](#l2.125) with self.assertRaises(ImportError) as cm:[](#l2.126) method('importlib')[](#l2.127) self.assertEqual(cm.exception.name, 'importlib')[](#l2.128)
+Frozen_ILTests, Source_ILTests = util.test_both(InspectLoaderTests,
machinery=machinery)[](#l2.135)