| # Test the frozen module defined in frozen.c. | 
 |  | 
 | from test.support import captured_stdout, run_unittest | 
 | import unittest | 
 | import sys | 
 |  | 
 | class FrozenTests(unittest.TestCase): | 
 |  | 
 |     module_attrs = frozenset(['__builtins__', '__cached__', '__doc__', | 
 |                               '__loader__', '__name__', | 
 |                               '__package__']) | 
 |     package_attrs = frozenset(list(module_attrs) + ['__path__']) | 
 |  | 
 |     def test_frozen(self): | 
 |         with captured_stdout() as stdout: | 
 |             try: | 
 |                 import __hello__ | 
 |             except ImportError as x: | 
 |                 self.fail("import __hello__ failed:" + str(x)) | 
 |             self.assertEqual(__hello__.initialized, True) | 
 |             expect = set(self.module_attrs) | 
 |             expect.add('initialized') | 
 |             self.assertEqual(set(dir(__hello__)), expect) | 
 |             self.assertEqual(stdout.getvalue(), 'Hello world!\n') | 
 |  | 
 |         with captured_stdout() as stdout: | 
 |             try: | 
 |                 import __phello__ | 
 |             except ImportError as x: | 
 |                 self.fail("import __phello__ failed:" + str(x)) | 
 |             self.assertEqual(__phello__.initialized, True) | 
 |             expect = set(self.package_attrs) | 
 |             expect.add('initialized') | 
 |             if not "__phello__.spam" in sys.modules: | 
 |                 self.assertEqual(set(dir(__phello__)), expect) | 
 |             else: | 
 |                 expect.add('spam') | 
 |                 self.assertEqual(set(dir(__phello__)), expect) | 
 |             self.assertEqual(__phello__.__path__, [__phello__.__name__]) | 
 |             self.assertEqual(stdout.getvalue(), 'Hello world!\n') | 
 |  | 
 |         with captured_stdout() as stdout: | 
 |             try: | 
 |                 import __phello__.spam | 
 |             except ImportError as x: | 
 |                 self.fail("import __phello__.spam failed:" + str(x)) | 
 |             self.assertEqual(__phello__.spam.initialized, True) | 
 |             spam_expect = set(self.module_attrs) | 
 |             spam_expect.add('initialized') | 
 |             self.assertEqual(set(dir(__phello__.spam)), spam_expect) | 
 |             phello_expect = set(self.package_attrs) | 
 |             phello_expect.add('initialized') | 
 |             phello_expect.add('spam') | 
 |             self.assertEqual(set(dir(__phello__)), phello_expect) | 
 |             self.assertEqual(stdout.getvalue(), 'Hello world!\n') | 
 |  | 
 |         try: | 
 |             import __phello__.foo | 
 |         except ImportError: | 
 |             pass | 
 |         else: | 
 |             self.fail("import __phello__.foo should have failed") | 
 |  | 
 |             try: | 
 |                 import __phello__.foo | 
 |             except ImportError: | 
 |                 pass | 
 |             else: | 
 |                 self.fail("import __phello__.foo should have failed") | 
 |  | 
 |         del sys.modules['__hello__'] | 
 |         del sys.modules['__phello__'] | 
 |         del sys.modules['__phello__.spam'] | 
 |  | 
 | def test_main(): | 
 |     run_unittest(FrozenTests) | 
 |  | 
 | if __name__ == "__main__": | 
 |     test_main() |