diff options
author | Georg Brandl <georg@python.org> | 2007-08-24 18:22:54 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2007-08-24 18:22:54 (GMT) |
commit | 692bbc4790546a42405ace5c61f0c239ebd6e351 (patch) | |
tree | 6dccc1e7df1052d4bb76d8d620d68bd4e7f0fe3b | |
parent | 9f2b93e03ac1b79f2a25aeb2c3b094fbe816d1d4 (diff) | |
download | cpython-692bbc4790546a42405ace5c61f0c239ebd6e351.zip cpython-692bbc4790546a42405ace5c61f0c239ebd6e351.tar.gz cpython-692bbc4790546a42405ace5c61f0c239ebd6e351.tar.bz2 |
Port test_frozen to unittest.
-rw-r--r-- | Lib/test/output/test_frozen | 4 | ||||
-rw-r--r-- | Lib/test/test_frozen.py | 59 | ||||
-rw-r--r-- | Lib/test/test_support.py | 16 |
3 files changed, 52 insertions, 27 deletions
diff --git a/Lib/test/output/test_frozen b/Lib/test/output/test_frozen deleted file mode 100644 index 76f17db..0000000 --- a/Lib/test/output/test_frozen +++ /dev/null @@ -1,4 +0,0 @@ -test_frozen -Hello world... -Hello world... -Hello world... diff --git a/Lib/test/test_frozen.py b/Lib/test/test_frozen.py index 8b121d3..621720c 100644 --- a/Lib/test/test_frozen.py +++ b/Lib/test/test_frozen.py @@ -1,27 +1,40 @@ # Test the frozen module defined in frozen.c. +from __future__ import with_statement -from test.test_support import TestFailed +from test.test_support import captured_stdout, run_unittest +import unittest import sys, os -try: - import __hello__ -except ImportError, x: - raise TestFailed, "import __hello__ failed:" + str(x) - -try: - import __phello__ -except ImportError, x: - raise TestFailed, "import __phello__ failed:" + str(x) - -try: - import __phello__.spam -except ImportError, x: - raise TestFailed, "import __phello__.spam failed:" + str(x) - -if sys.platform != "mac": # On the Mac this import does succeed. - try: - import __phello__.foo - except ImportError: - pass - else: - raise TestFailed, "import __phello__.foo should have failed" +class FrozenTests(unittest.TestCase): + def test_frozen(self): + + with captured_stdout() as stdout: + try: + import __hello__ + except ImportError, x: + self.fail("import __hello__ failed:" + str(x)) + + try: + import __phello__ + except ImportError, x: + self.fail("import __phello__ failed:" + str(x)) + + try: + import __phello__.spam + except ImportError, x: + self.fail("import __phello__.spam failed:" + str(x)) + + if sys.platform != "mac": # On the Mac this import does succeed. + try: + import __phello__.foo + except ImportError: + pass + else: + self.fail("import __phello__.foo should have failed") + + self.assertEquals(stdout.getvalue(), + 'Hello world...\nHello world...\nHello world...\n') + + +def test_main(): + run_unittest(FrozenTests) diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 0f96084..cba0a49 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -374,6 +374,22 @@ def transient_internet(): return contextlib.nested(time_out, socket_peer_reset, ioerror_peer_reset) +@contextlib.contextmanager +def captured_stdout(): + """Run the with statement body using a StringIO object as sys.stdout. + Example use:: + + with captured_stdout() as s: + print "hello" + assert s.getvalue() == "hello" + """ + import StringIO + orig_stdout = sys.stdout + sys.stdout = StringIO.StringIO() + yield sys.stdout + sys.stdout = orig_stdout + + #======================================================================= # Decorator for running a function in a different locale, correctly resetting # it afterwards. |