test_frozen.py 2.17 KB
Newer Older
1 2
# Test the frozen module defined in frozen.c.

3
from test.support import captured_stdout, run_unittest
4
import unittest
5
import sys
6

7 8
class FrozenTests(unittest.TestCase):
    def test_frozen(self):
9 10 11 12 13 14
        with captured_stdout() as stdout:
            try:
                import __hello__
            except ImportError as x:
                self.fail("import __hello__ failed:" + str(x))
            self.assertEqual(__hello__.initialized, True)
15
            self.assertEqual(len(dir(__hello__)), 7, dir(__hello__))
16
            self.assertEqual(stdout.getvalue(), 'Hello world!\n')
17

18 19 20 21 22 23 24 25
        with captured_stdout() as stdout:
            try:
                import __phello__
            except ImportError as x:
                self.fail("import __phello__ failed:" + str(x))
            self.assertEqual(__phello__.initialized, True)
            if not "__phello__.spam" in sys.modules:
                self.assertEqual(len(dir(__phello__)), 8, dir(__phello__))
26 27
            else:
                self.assertEqual(len(dir(__phello__)), 9, dir(__phello__))
28 29
            self.assertEqual(__phello__.__path__, [__phello__.__name__])
            self.assertEqual(stdout.getvalue(), 'Hello world!\n')
30

31 32 33 34 35 36
        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)
37 38
            self.assertEqual(len(dir(__phello__.spam)), 7)
            self.assertEqual(len(dir(__phello__)), 9)
39
            self.assertEqual(stdout.getvalue(), 'Hello world!\n')
40 41 42 43 44 45 46

        try:
            import __phello__.foo
        except ImportError:
            pass
        else:
            self.fail("import __phello__.foo should have failed")
47

48 49 50 51 52 53
            try:
                import __phello__.foo
            except ImportError:
                pass
            else:
                self.fail("import __phello__.foo should have failed")
Christian Heimes's avatar
Christian Heimes committed
54 55 56 57 58

        del sys.modules['__hello__']
        del sys.modules['__phello__']
        del sys.modules['__phello__.spam']

59 60
def test_main():
    run_unittest(FrozenTests)
61 62 63

if __name__ == "__main__":
    test_main()