Guido van Rossum | 4114a4a | 2001-10-18 18:49:37 +0000 | [diff] [blame] | 1 | # Test the frozen module defined in frozen.c. |
Georg Brandl | 692bbc4 | 2007-08-24 18:22:54 +0000 | [diff] [blame] | 2 | from __future__ import with_statement |
Guido van Rossum | 4114a4a | 2001-10-18 18:49:37 +0000 | [diff] [blame] | 3 | |
Georg Brandl | 692bbc4 | 2007-08-24 18:22:54 +0000 | [diff] [blame] | 4 | from test.test_support import captured_stdout, run_unittest |
| 5 | import unittest |
Guido van Rossum | 4114a4a | 2001-10-18 18:49:37 +0000 | [diff] [blame] | 6 | import sys, os |
| 7 | |
Georg Brandl | 692bbc4 | 2007-08-24 18:22:54 +0000 | [diff] [blame] | 8 | class FrozenTests(unittest.TestCase): |
| 9 | def test_frozen(self): |
Guido van Rossum | 4114a4a | 2001-10-18 18:49:37 +0000 | [diff] [blame] | 10 | |
Georg Brandl | 692bbc4 | 2007-08-24 18:22:54 +0000 | [diff] [blame] | 11 | with captured_stdout() as stdout: |
| 12 | try: |
| 13 | import __hello__ |
| 14 | except ImportError, x: |
| 15 | self.fail("import __hello__ failed:" + str(x)) |
Guido van Rossum | 4114a4a | 2001-10-18 18:49:37 +0000 | [diff] [blame] | 16 | |
Georg Brandl | 692bbc4 | 2007-08-24 18:22:54 +0000 | [diff] [blame] | 17 | try: |
| 18 | import __phello__ |
| 19 | except ImportError, x: |
| 20 | self.fail("import __phello__ failed:" + str(x)) |
Guido van Rossum | 4114a4a | 2001-10-18 18:49:37 +0000 | [diff] [blame] | 21 | |
Georg Brandl | 692bbc4 | 2007-08-24 18:22:54 +0000 | [diff] [blame] | 22 | try: |
| 23 | import __phello__.spam |
| 24 | except ImportError, x: |
| 25 | self.fail("import __phello__.spam failed:" + str(x)) |
| 26 | |
| 27 | if sys.platform != "mac": # On the Mac this import does succeed. |
| 28 | try: |
| 29 | import __phello__.foo |
| 30 | except ImportError: |
| 31 | pass |
| 32 | else: |
| 33 | self.fail("import __phello__.foo should have failed") |
| 34 | |
| 35 | self.assertEquals(stdout.getvalue(), |
| 36 | 'Hello world...\nHello world...\nHello world...\n') |
| 37 | |
Amaury Forgeot d'Arc | 607bff1 | 2008-04-18 23:31:33 +0000 | [diff] [blame^] | 38 | del sys.modules['__hello__'] |
| 39 | del sys.modules['__phello__'] |
| 40 | del sys.modules['__phello__.spam'] |
| 41 | |
Georg Brandl | 692bbc4 | 2007-08-24 18:22:54 +0000 | [diff] [blame] | 42 | |
| 43 | def test_main(): |
| 44 | run_unittest(FrozenTests) |
Brett Cannon | 8820f2a | 2008-04-01 12:46:02 +0000 | [diff] [blame] | 45 | |
| 46 | |
| 47 | |
| 48 | if __name__ == '__main__': |
| 49 | test_main() |