ยปCore Development>Code coverage>Lib/test/test_frozen.py

Python code coverage for Lib/test/test_frozen.py

#countcontent
1n/a# Test the frozen module defined in frozen.c.
2n/a
3n/afrom test.support import captured_stdout, run_unittest
4n/aimport unittest
5n/aimport sys
6n/a
7n/aclass FrozenTests(unittest.TestCase):
8n/a
9n/a module_attrs = frozenset(['__builtins__', '__cached__', '__doc__',
10n/a '__loader__', '__name__',
11n/a '__package__'])
12n/a package_attrs = frozenset(list(module_attrs) + ['__path__'])
13n/a
14n/a def test_frozen(self):
15n/a with captured_stdout() as stdout:
16n/a try:
17n/a import __hello__
18n/a except ImportError as x:
19n/a self.fail("import __hello__ failed:" + str(x))
20n/a self.assertEqual(__hello__.initialized, True)
21n/a expect = set(self.module_attrs)
22n/a expect.add('initialized')
23n/a self.assertEqual(set(dir(__hello__)), expect)
24n/a self.assertEqual(stdout.getvalue(), 'Hello world!\n')
25n/a
26n/a with captured_stdout() as stdout:
27n/a try:
28n/a import __phello__
29n/a except ImportError as x:
30n/a self.fail("import __phello__ failed:" + str(x))
31n/a self.assertEqual(__phello__.initialized, True)
32n/a expect = set(self.package_attrs)
33n/a expect.add('initialized')
34n/a if not "__phello__.spam" in sys.modules:
35n/a self.assertEqual(set(dir(__phello__)), expect)
36n/a else:
37n/a expect.add('spam')
38n/a self.assertEqual(set(dir(__phello__)), expect)
39n/a self.assertEqual(__phello__.__path__, [])
40n/a self.assertEqual(stdout.getvalue(), 'Hello world!\n')
41n/a
42n/a with captured_stdout() as stdout:
43n/a try:
44n/a import __phello__.spam
45n/a except ImportError as x:
46n/a self.fail("import __phello__.spam failed:" + str(x))
47n/a self.assertEqual(__phello__.spam.initialized, True)
48n/a spam_expect = set(self.module_attrs)
49n/a spam_expect.add('initialized')
50n/a self.assertEqual(set(dir(__phello__.spam)), spam_expect)
51n/a phello_expect = set(self.package_attrs)
52n/a phello_expect.add('initialized')
53n/a phello_expect.add('spam')
54n/a self.assertEqual(set(dir(__phello__)), phello_expect)
55n/a self.assertEqual(stdout.getvalue(), 'Hello world!\n')
56n/a
57n/a try:
58n/a import __phello__.foo
59n/a except ImportError:
60n/a pass
61n/a else:
62n/a self.fail("import __phello__.foo should have failed")
63n/a
64n/a try:
65n/a import __phello__.foo
66n/a except ImportError:
67n/a pass
68n/a else:
69n/a self.fail("import __phello__.foo should have failed")
70n/a
71n/a del sys.modules['__hello__']
72n/a del sys.modules['__phello__']
73n/a del sys.modules['__phello__.spam']
74n/a
75n/a
76n/aif __name__ == "__main__":
77n/a unittest.main()