%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python2.7/test/
Upload File :
Create Path :
Current File : //usr/local/lib/python2.7/test/test_pdb.pyc

ó
Nêáac@s#ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	dej
fd„ƒYZdefd„ƒYZ
d„Zd	„Zd
„Zd„ZejdƒZd
ejUd„Zd„Zdej
fd„ƒYZd„ZedkreƒndS(iÿÿÿÿN(ttest_support(t
_FakeInputtPdbTestCasecBs#eZd„Zd„Zd„ZRS(c		CsÉd}t|dƒ}|jtj|ƒƒWdQX|jtj|ƒtjdd|g}d}}t
j|dt
jdt
jdt
j
ƒ}|j|ƒ\}}|jjƒ|jjƒ||fS(	s3Run 'script' lines with pdb and the pdb 'commands'.smain.pytwNs-mtpdbtstdouttstdintstderr(topentwritettextwraptdedentt
addCleanupRtunlinktsyst
executabletNonet
subprocesstPopentPIPEtSTDOUTtcommunicateRtcloseR(	tselftscripttcommandstfilenametftcmdRRtproc((s)/usr/local/lib/python2.7/test/test_pdb.pytrun_pdbs
	

cCs¨d}d}d}tddƒ}|jtj|ƒƒWdQX|jtjdƒ|jtjdƒ|j||ƒ\}}|jt	d„|j
ƒDƒƒdƒdS(	Nsã
            from bar import bar

            def foo():
                bar()

            def nope():
                pass

            def foobar():
                foo()
                nope()

            foobar()
        s‡
            from bar import bar
            break bar
            continue
            step
            step
            quit
        s5
            def bar():
                pass
        sbar.pyRsbar.pyccss|]}d|kVqdS(smain.py(5)foo()->NoneN((t.0tl((s)/usr/local/lib/python2.7/test/test_pdb.pys	<genexpr>Ess+Fail to step into the caller after a return(RR	R
RRRR
Rt
assertTruetanyt
splitlines(RRRtbarRRR((s)/usr/local/lib/python2.7/test/test_pdb.pyttest_issue13183#scCsMd}d}d}|j||ƒ\}}|j||dj||ƒƒdS(Nsdef f: pass
tsSyntaxError:sE

Expected:
{}
Got:
{}
Fail to handle a syntax error in the debuggee.(RtassertIntformat(RRRtexpectedRR((s)/usr/local/lib/python2.7/test/test_pdb.pyttest_issue16180Hs(t__name__t
__module__RR%R*(((s)/usr/local/lib/python2.7/test/test_pdb.pyRs		%tPdbTestInputcBs)eZdZd„Zd„Zd„ZRS(s:Context manager that makes testing Pdb in doctests easier.cCs
||_dS(N(tinput(RR.((s)/usr/local/lib/python2.7/test/test_pdb.pyt__init__WscCs"tj|_t|jƒt_dS(N(RRt
real_stdinRR.(R((s)/usr/local/lib/python2.7/test/test_pdb.pyt	__enter__ZscGs|jt_dS(N(R0RR(Rtexc((s)/usr/local/lib/python2.7/test/test_pdb.pyt__exit__^s(R+R,t__doc__R/R1R3(((s)/usr/local/lib/python2.7/test/test_pdb.pyR-Ts		cCs	|GHdS(N((tx((s)/usr/local/lib/python2.7/test/test_pdb.pyR	bscCsdS(sThis tests the custom displayhook for pdb.

    >>> def test_function(foo, bar):
    ...     import pdb; pdb.Pdb().set_trace()
    ...     pass

    >>> with PdbTestInput([
    ...     'foo',
    ...     'bar',
    ...     'for i in range(5): write(i)',
    ...     'continue',
    ... ]):
    ...     test_function(1, None)
    > <doctest test.test_pdb.test_pdb_displayhook[0]>(3)test_function()
    -> pass
    (Pdb) foo
    1
    (Pdb) bar
    (Pdb) for i in range(5): write(i)
    0
    1
    2
    3
    4
    (Pdb) continue
    N((((s)/usr/local/lib/python2.7/test/test_pdb.pyttest_pdb_displayhookeR&cCsdS(sþTest basic commands related to breakpoints.

    >>> def test_function():
    ...     import pdb; pdb.Pdb().set_trace()
    ...     print(1)
    ...     print(2)
    ...     print(3)
    ...     print(4)

    First, need to clear bdb state that might be left over from previous tests.
    Otherwise, the new breakpoints might get assigned different numbers.

    >>> from bdb import Breakpoint
    >>> Breakpoint.next = 1
    >>> Breakpoint.bplist = {}
    >>> Breakpoint.bpbynumber = [None]

    Now test the breakpoint commands.  NORMALIZE_WHITESPACE is needed because
    the breakpoint list outputs a tab for the "stop only" and "ignore next"
    lines, which we don't want to put in here.

    >>> with PdbTestInput([  # doctest: +NORMALIZE_WHITESPACE
    ...     'break 3',
    ...     'disable 1',
    ...     'ignore 1 10',
    ...     'condition 1 1 < 2',
    ...     'break 4',
    ...     'break 4',
    ...     'break',
    ...     'clear 3',
    ...     'break',
    ...     'condition 1',
    ...     'enable 1',
    ...     'clear 1',
    ...     'commands 2',
    ...     'print 42',
    ...     'end',
    ...     'continue',  # will stop at breakpoint 2 (line 4)
    ...     'clear',     # clear all!
    ...     'y',
    ...     'tbreak 5',
    ...     'continue',  # will stop at temporary breakpoint
    ...     'break',     # make sure breakpoint is gone
    ...     'continue',
    ... ]):
    ...    test_function()
    > <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>(3)test_function()
    -> print(1)
    (Pdb) break 3
    Breakpoint 1 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3
    (Pdb) disable 1
    (Pdb) ignore 1 10
    Will ignore next 10 crossings of breakpoint 1.
    (Pdb) condition 1 1 < 2
    (Pdb) break 4
    Breakpoint 2 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4
    (Pdb) break 4
    Breakpoint 3 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4
    (Pdb) break
    Num Type         Disp Enb   Where
    1   breakpoint   keep no    at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3
            stop only if 1 < 2
            ignore next 10 hits
    2   breakpoint   keep yes   at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4
    3   breakpoint   keep yes   at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4
    (Pdb) clear 3
    Deleted breakpoint 3
    (Pdb) break
    Num Type         Disp Enb   Where
    1   breakpoint   keep no    at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3
            stop only if 1 < 2
            ignore next 10 hits
    2   breakpoint   keep yes   at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4
    (Pdb) condition 1
    Breakpoint 1 is now unconditional.
    (Pdb) enable 1
    (Pdb) clear 1
    Deleted breakpoint 1
    (Pdb) commands 2
    (com) print 42
    (com) end
    (Pdb) continue
    1
    42
    > <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>(4)test_function()
    -> print(2)
    (Pdb) clear
    Clear all breaks? y
    (Pdb) tbreak 5
    Breakpoint 4 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:5
    (Pdb) continue
    2
    Deleted breakpoint 4
    > <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>(5)test_function()
    -> print(3)
    (Pdb) break
    (Pdb) continue
    3
    4
    N((((s)/usr/local/lib/python2.7/test/test_pdb.pyttest_pdb_breakpoint_commandsR&cCsdS(s7This illustrates the simple case of module skipping.

    >>> def skip_module():
    ...     import string
    ...     import pdb; pdb.Pdb(skip=['string*']).set_trace()
    ...     string.lower('FOO')

    >>> with PdbTestInput([
    ...     'step',
    ...     'continue',
    ... ]):
    ...     skip_module()
    > <doctest test.test_pdb.test_pdb_skip_modules[0]>(4)skip_module()
    -> string.lower('FOO')
    (Pdb) step
    --Return--
    > <doctest test.test_pdb.test_pdb_skip_modules[0]>(4)skip_module()->None
    -> string.lower('FOO')
    (Pdb) continue
    N((((s)/usr/local/lib/python2.7/test/test_pdb.pyttest_pdb_skip_modulesèR&tmodule_to_skips6def foo_pony(callback): x = 1; callback(); return NonecCsdS(s$This illustrates skipping of modules that call into other code.

    >>> def skip_module():
    ...     def callback():
    ...         return None
    ...     import pdb; pdb.Pdb(skip=['module_to_skip*']).set_trace()
    ...     mod.foo_pony(callback)

    >>> with PdbTestInput([
    ...     'step',
    ...     'step',
    ...     'step',
    ...     'step',
    ...     'step',
    ...     'continue',
    ... ]):
    ...     skip_module()
    ...     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
    --Call--
    > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(2)callback()
    -> def callback():
    (Pdb) step
    > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(3)callback()
    -> return None
    (Pdb) step
    --Return--
    > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(3)callback()->None
    -> return None
    (Pdb) step
    --Return--
    > <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[1]>(10)<module>()
    -> pass  # provides something to "step" to
    (Pdb) continue
    N((((s)/usr/local/lib/python2.7/test/test_pdb.pyt#test_pdb_skip_modules_with_callbackR&cCsdS(sÖ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)

    First, need to clear bdb state that might be left over from previous tests.
    Otherwise, the new breakpoints might get assigned different numbers.

    >>> from bdb import Breakpoint
    >>> Breakpoint.next = 1
    >>> Breakpoint.bplist = {}
    >>> Breakpoint.bpbynumber = [None]

    >>> 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
    N((((s)/usr/local/lib/python2.7/test/test_pdb.pyt test_pdb_continue_in_bottomframe/R&tModuleInitTestercBseZd„ZRS(c	Cs¯d}d}t|dƒ}|j|ƒWdQX|jtj|ƒtjdd|g}tj|dtj	dtj	d	tj
ƒ}|jd
ƒ\}}|j||dƒdS(sÓ
        In issue 7750, it was found that if the filename has a sequence that
        resolves to an escape character in a Python string (such as 	), it
        will be treated as the escaped character.
        s
.\test_mod.pysprint("testing pdb")RNs-mRRRRsquit
spdb munged the filename(
RR	RtostremoveRRRRRRRR'(Rttest_fntcodeRRRRR((s)/usr/local/lib/python2.7/test/test_pdb.pyttest_filename_correctbs			(R+R,RA(((s)/usr/local/lib/python2.7/test/test_pdb.pyR<`scCs7ddlm}tj|dtƒtjttƒdS(Niÿÿÿÿ(ttest_pdbt	verbosity(ttestRBRtrun_doctesttTruetrun_unittestRR<(RB((s)/usr/local/lib/python2.7/test/test_pdb.pyt	test_mainzs
t__main__(timpRR=tunittestRR
RDRttest_doctestRtTestCaseRtobjectR-R	R6R7R8t
new_moduletmodt__dict__R:R;R<RHR+(((s)/usr/local/lib/python2.7/test/test_pdb.pyt<module>s*D			g		+	1	

Zerion Mini Shell 1.0