[Python-checkins] r74838 - python/trunk/Lib/test/test_pdb.py

georg.brandl python-checkins at python.org
Wed Sep 16 18:22:13 CEST 2009


Author: georg.brandl
Date: Wed Sep 16 18:22:12 2009
New Revision: 74838
Log:
Remove some more boilerplate from the actual tests in test_pdb.
Modified:
 python/trunk/Lib/test/test_pdb.py
Modified: python/trunk/Lib/test/test_pdb.py
==============================================================================
--- python/trunk/Lib/test/test_pdb.py	(original)
+++ python/trunk/Lib/test/test_pdb.py	Wed Sep 16 18:22:12 2009
@@ -12,23 +12,33 @@
 from test_doctest import _FakeInput
 
 
+class PdbTestInput(object):
+ """Context manager that makes testing Pdb in doctests easier."""
+
+ def __init__(self, input):
+ self.input = input
+
+ def __enter__(self):
+ self.real_stdin = sys.stdin
+ sys.stdin = _FakeInput(self.input)
+
+ def __exit__(self, *exc):
+ sys.stdin = self.real_stdin
+
+
 def test_pdb_skip_modules():
 """This illustrates the simple case of module skipping.
 
 >>> def skip_module():
 ... import string
- ... import pdb;pdb.Pdb(skip=['string*']).set_trace()
+ ... import pdb; pdb.Pdb(skip=['string*']).set_trace()
 ... string.lower('FOO')
- >>> real_stdin = sys.stdin
- >>> sys.stdin = _FakeInput([
- ... 'step',
- ... 'continue',
- ... ])
 
- >>> try:
+ >>> with PdbTestInput([
+ ... 'step',
+ ... 'continue'
+ ... ]):
 ... skip_module()
- ... finally:
- ... sys.stdin = real_stdin
 > <doctest test.test_pdb.test_pdb_skip_modules[0]>(4)skip_module()
 -> string.lower('FOO')
 (Pdb) step
@@ -36,7 +46,7 @@
 > <doctest test.test_pdb.test_pdb_skip_modules[0]>(4)skip_module()->None
 -> string.lower('FOO')
 (Pdb) continue
-"""
+ """
 
 
 # Module for testing skipping of module that makes a callback
@@ -50,22 +60,19 @@
 >>> def skip_module():
 ... def callback():
 ... return None
- ... import pdb;pdb.Pdb(skip=['module_to_skip*']).set_trace()
+ ... import pdb; pdb.Pdb(skip=['module_to_skip*']).set_trace()
 ... mod.foo_pony(callback)
- >>> real_stdin = sys.stdin
- >>> sys.stdin = _FakeInput([
- ... 'step',
- ... 'step',
- ... 'step',
- ... 'step',
- ... 'step',
- ... 'continue',
- ... ])
 
- >>> try:
+ >>> with PdbTestInput([
+ ... 'step',
+ ... 'step',
+ ... 'step',
+ ... 'step',
+ ... 'step',
+ ... 'continue',
+ ... ]):
 ... skip_module()
- ... finally:
- ... sys.stdin = real_stdin
+ ... pass # provides something to "step" to
 > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(5)skip_module()
 -> mod.foo_pony(callback)
 (Pdb) step
@@ -84,10 +91,10 @@
 > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(5)skip_module()->None
 -> mod.foo_pony(callback)
 (Pdb) step
- > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[3]>(4)<module>()
- -> sys.stdin = real_stdin
+ > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[1]>(10)<module>()
+ -> pass # provides something to "step" to
 (Pdb) continue
-"""
+ """
 
 
 def test_main():


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /