From: Georg Brandl Date: Fri, 24 Aug 2007 18:22:54 +0000 (+0000) Subject: Port test_frozen to unittest. X-Git-Tag: v2.6a1~1437 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=692bbc4790546a42405ace5c61f0c239ebd6e351;p=thirdparty%2FPython%2Fcpython.git Port test_frozen to unittest. --- diff --git a/Lib/test/output/test_frozen b/Lib/test/output/test_frozen deleted file mode 100644 index 76f17dbfdbee..000000000000 --- 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 8b121d38d8fb..621720ca788f 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 0f960845f660..cba0a4978f5f 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.