class SysModuleTest(unittest.TestCase):
+ def setUp(self):
+ self.orig_stdout = sys.stdout
+ self.orig_stderr = sys.stderr
+ self.orig_displayhook = sys.displayhook
+
+ def tearDown(self):
+ sys.stdout = self.orig_stdout
+ sys.stderr = self.orig_stderr
+ sys.displayhook = self.orig_displayhook
+
def test_original_displayhook(self):
import __builtin__
- savestdout = sys.stdout
out = io.StringIO()
sys.stdout = out
del sys.stdout
self.assertRaises(RuntimeError, dh, 42)
- sys.stdout = savestdout
-
def test_lost_displayhook(self):
- olddisplayhook = sys.displayhook
del sys.displayhook
code = compile("42", "<string>", "single")
self.assertRaises(RuntimeError, eval, code)
- sys.displayhook = olddisplayhook
def test_custom_displayhook(self):
- olddisplayhook = sys.displayhook
def baddisplayhook(obj):
raise ValueError
sys.displayhook = baddisplayhook
code = compile("42", "<string>", "single")
self.assertRaises(ValueError, eval, code)
- sys.displayhook = olddisplayhook
def test_original_excepthook(self):
- savestderr = sys.stderr
err = io.StringIO()
sys.stderr = err
except ValueError as exc:
eh(*sys.exc_info())
- sys.stderr = savestderr
self.assert_(err.getvalue().endswith("ValueError: 42\n"))
# FIXME: testing the code for a lost or replaced excepthook in