From 692bbc4790546a42405ace5c61f0c239ebd6e351 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 24 Aug 2007 18:22:54 +0000 Subject: [PATCH] Port test_frozen to unittest. --- Lib/test/output/test_frozen | 4 --- Lib/test/test_frozen.py | 53 +++++++++++++++++++++++-------------- Lib/test/test_support.py | 16 +++++++++++ 3 files changed, 49 insertions(+), 24 deletions(-) delete mode 100644 Lib/test/output/test_frozen diff --git a/Lib/test/output/test_frozen b/Lib/test/output/test_frozen deleted file mode 100644 index 76f17dbfdbe..00000000000 --- 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 8b121d38d8f..621720ca788 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) +class FrozenTests(unittest.TestCase): + def test_frozen(self): -try: - import __phello__ -except ImportError, x: - raise TestFailed, "import __phello__ failed:" + str(x) + with captured_stdout() as stdout: + try: + import __hello__ + except ImportError, x: + self.fail("import __hello__ failed:" + str(x)) -try: - import __phello__.spam -except ImportError, x: - raise TestFailed, "import __phello__.spam failed:" + str(x) + try: + import __phello__ + except ImportError, x: + self.fail("import __phello__ 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" + 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 0f960845f66..cba0a4978f5 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.