diff options
author | Georg Brandl <georg@python.org> | 2010-08-01 19:35:16 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-08-01 19:35:16 (GMT) |
commit | 469d3e78959d41a1a689bf8b6ef0982d0db14272 (patch) | |
tree | 11533eb11c229589f077f99e18110a29362ee38d /Lib/test | |
parent | d343286386521a79ac67d3c6cd14cbf2ef97f460 (diff) | |
download | cpython-469d3e78959d41a1a689bf8b6ef0982d0db14272.zip cpython-469d3e78959d41a1a689bf8b6ef0982d0db14272.tar.gz cpython-469d3e78959d41a1a689bf8b6ef0982d0db14272.tar.bz2 |
Merged revisions 83259,83261,83264-83265,83268-83269,83271-83272,83281 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k
........
r83259 | georg.brandl | 2010-07-30 09:03:39 +0200 (Fr, 30 Jul 2010) | 1 line
Clarification.
........
r83261 | georg.brandl | 2010-07-30 09:21:26 +0200 (Fr, 30 Jul 2010) | 1 line
#9230: allow Pdb.checkline() to be called without a current frame, for setting breakpoints before starting debugging.
........
r83264 | georg.brandl | 2010-07-30 10:45:26 +0200 (Fr, 30 Jul 2010) | 1 line
Document the "jump" command in pdb.__doc__, and add a version tag for "until X".
........
r83265 | georg.brandl | 2010-07-30 10:54:49 +0200 (Fr, 30 Jul 2010) | 1 line
#8015: fix crash when entering an empty line for breakpoint commands. Also restore environment properly when an exception occurs during the definition of commands.
........
r83268 | georg.brandl | 2010-07-30 11:23:23 +0200 (Fr, 30 Jul 2010) | 2 lines
Issue #8048: Prevent doctests from failing when sys.displayhook has
been reassigned.
........
r83269 | georg.brandl | 2010-07-30 11:43:00 +0200 (Fr, 30 Jul 2010) | 1 line
#6719: In pdb, do not stop somewhere in the encodings machinery if the source file to be debugged is in a non-builtin encoding.
........
r83271 | georg.brandl | 2010-07-30 11:59:28 +0200 (Fr, 30 Jul 2010) | 1 line
#5727: Restore the ability to use readline when calling into pdb in doctests.
........
r83272 | georg.brandl | 2010-07-30 12:29:19 +0200 (Fr, 30 Jul 2010) | 1 line
#5294: Fix the behavior of pdb "continue" command when called in the top-level debugged frame.
........
r83281 | georg.brandl | 2010-07-30 15:36:43 +0200 (Fr, 30 Jul 2010) | 1 line
Add myself for pdb.
........
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_doctest.py | 29 | ||||
-rw-r--r-- | Lib/test/test_pdb.py | 42 |
2 files changed, 71 insertions, 0 deletions
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index c9b1b85..0cb4f18 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -907,6 +907,35 @@ unexpected exception: ZeroDivisionError: integer division or modulo by zero TestResults(failed=1, attempted=1) """ + def displayhook(): r""" +Test that changing sys.displayhook doesn't matter for doctest. + + >>> import sys + >>> orig_displayhook = sys.displayhook + >>> def my_displayhook(x): + ... print('hi!') + >>> sys.displayhook = my_displayhook + >>> def f(): + ... ''' + ... >>> 3 + ... 3 + ... ''' + >>> test = doctest.DocTestFinder().find(f)[0] + >>> r = doctest.DocTestRunner(verbose=False).run(test) + >>> post_displayhook = sys.displayhook + + We need to restore sys.displayhook now, so that we'll be able to test + results. + + >>> sys.displayhook = orig_displayhook + + Ok, now we can check that everything is ok. + + >>> r + TestResults(failed=0, attempted=1) + >>> post_displayhook is my_displayhook + True +""" def optionflags(): r""" Tests of `DocTestRunner`'s option flag handling. diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 5d52707..9ab0b33 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -126,6 +126,48 @@ def test_pdb_skip_modules_with_callback(): """ +def test_pdb_continue_in_bottomframe(): + """Test that "continue" and "next" work properly in bottom frame (issue #5294). + + >>> def test_function(): + ... import pdb, sys; inst = pdb.Pdb() + ... inst.set_trace() + ... inst.botframe = sys._getframe() # hackery to get the right botframe + ... print(1) + ... print(2) + ... print(3) + ... print(4) + + >>> with PdbTestInput([ + ... 'next', + ... 'break 7', + ... 'continue', + ... 'next', + ... 'continue', + ... 'continue', + ... ]): + ... test_function() + > <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>(4)test_function() + -> inst.botframe = sys._getframe() # hackery to get the right botframe + (Pdb) next + > <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>(5)test_function() + -> print(1) + (Pdb) break 7 + Breakpoint 1 at <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>:7 + (Pdb) continue + 1 + 2 + > <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>(7)test_function() + -> print(3) + (Pdb) next + 3 + > <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>(8)test_function() + -> print(4) + (Pdb) continue + 4 + """ + + def test_main(): from test import test_pdb support.run_doctest(test_pdb, verbosity=True) |