+
     Bi%                        R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIt^ RIHt ^ RIHtHt  ]! R	4      t ! R
 R4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t]R8X  d   ]P4                  ! ^R7       R# R# )zeTest debugger, coverage 66%

Try to make tests pass with draft bdbx, which may replace bdb in 3.13+.
debugger)
namedtuple)dedent)Tk)requiresN)mock)Mockpatchz9
    i = 1
    i += 2
    if i == 3:
       print(i)
    c                   *   a  ] tR t^t o RtR tRtV tR# )	MockFramezMinimal mock frame.c                    Wn         W n        R # Nf_codef_lineno)selfcodelinenos   &&&6/usr/lib/python3.14/idlelib/idle_test/test_debugger.py__init__MockFrame.__init__   s        r   N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classdictcell____classdict__s   @r   r   r      s      r   r   c                   B   a  ] tR t^!t o ]R 4       tR tR tR tRt	V t
R# )IdbTestc                    \        4       V n        \        P                  ! V P                  4      V n        \        \        R RR7      p\        V^4      pRVn        \        V^4      pW#n        W0n	        RV n
        R# )zidlelib/file.pyexecmodeNzfile.py:2: <module>())r	   guir   Idbidbcompile	TEST_CODEr   f_backframemsg)clscode_objframe1frame2s   &   r   
setUpClassIdbTest.setUpClass#   s`    &,,sww' 9&7fE8Q'8Q'	)r   c                f    V P                  V P                  P                  V P                  4       R # r   )assertIsr*   r(   r   s   &r   	test_initIdbTest.test_init1   s    dhhllDHH-r   c                    \        4       V P                  n        V P                  P	                  V P
                  4       V P                  P                  P                  V P                  V P
                  4       R # r   )r	   r(   interactionr*   	user_liner.   assert_called_once_withr/   r8   s   &r   test_user_lineIdbTest.test_user_line5   sH    #v4::&44TXXtzzJr   c                .   \        \        4      \        4       R 3p\        4       V P                  n        V P
                  P                  V P                  V4       V P                  P                  P                  V P                  V P                  V4       R # r   )
type
ValueErrorr	   r(   r<   r*   user_exceptionr.   r>   r/   )r   exc_infos   & r   test_user_exceptionIdbTest.test_user_exception;   sb    $jlD9#v

H544$**h	0r    N)r   r   r   r   classmethodr4   r9   r?   rF   r   r   r    s   @r   r#   r#   !   s,     * *.K0 0r   r#   c                   &   a  ] tR t^Dt o R tRtV tR# )FunctionTestc                p   \        \        R RR7      p\        V^4      pW"n        V P	                  \
        P                  ! V4      4       V P                  \
        P                  ! V4      R4       \        \        RRR7      p\        V^4      pRVn        V P                  \
        P                  ! V4      4       V P                  \
        P                  ! V4      R4       WDn        V P                  \
        P                  ! V4      4       W$n        V P	                  \
        P                  ! V4      4       R# )zrpc.pyr%   r&   zrpc.py:2: <module>()zidlelib/debugger.pyNzdebugger.py:1: <module>())
r+   r,   r   r-   
assertTruer   _in_rpc_codeassertEqual_frame2messageassertFalse)r   rpc_obj	rpc_framer1   
code_frames   &    r   test_functionsFunctionTest.test_functionsG   s    )H6:gq)	$--i8900;/	1 9&;&Ix+
 
..z:;00<4	6 '..z:;%--j9:r   rH   N)r   r   r   r   rU   r   r   r    s   @r   rK   rK   D   s     ; ;r   rK   c                   j   a  ] tR t^\t o Rt]R 4       tR tR tR t	R t
R tR tR	 tR
 tR tRtV tR# )DebuggerTestz0Tests for Debugger that do not need a real root.c                   \        4       V n        \        4       V P                  n        \        4       V n        \        P
                  ! \        P                  R 4      ;_uu_ 4        \        P                  ! V P                  V P                  4      V n        RRR4       \        4       V P                  n        R#   + '       g   i     L+; i)make_guiN)r	   pyshellrootr*   r
   objectr   Debuggerr0   s   &r   r4   DebuggerTest.setUpClass_   sq    f6&\\(++Z88#,,S[[#''BCL 9 F 98s   %1B99C		c                    V P                   P                  4        V P                  P                  P	                  4        R # r   )r   contr*   set_continueassert_called_oncer8   s   &r   	test_contDebuggerTest.test_conth   s(    002r   c                    V P                   P                  4        V P                  P                  P	                  4        R # r   )r   stepr*   set_steprd   r8   s   &r   	test_stepDebuggerTest.test_stepl   (    ,,.r   c                    V P                   P                  4        V P                  P                  P	                  4        R # r   )r   quitr*   set_quitrd   r8   s   &r   	test_quitDebuggerTest.test_quitp   rl   r   c                   \         P                  ! V P                  R 4      ;_uu_ 4       pV P                  P                  4        V P                  P
                  P                  V4       RRR4       R#   + '       g   i     R# ; ir.   N)r
   r]   r   nextr*   set_nextr>   r   r.   s   & r   	test_nextDebuggerTest.test_nextt   sP    \\$--11UMM HH55e< 2111   A A44B	c                   \         P                  ! V P                  R 4      ;_uu_ 4       pV P                  P                  4        V P                  P
                  P                  V4       RRR4       R#   + '       g   i     R# ; irs   )r
   r]   r   retr*   
set_returnr>   rv   s   & r   test_retDebuggerTest.test_rety   sP    \\$--11UMMHH77> 2111ry   c                    V P                   P                  R ^4       V P                  P                  P	                  R ^4       R# ztest.pyN)r   clear_breakpointr*   clear_breakr>   r8   s   &r   test_clear_breakpoint"DebuggerTest.test_clear_breakpoint~   s0    &&y!444YBr   c                    V P                   P                  R 4       V P                  P                  P	                  R 4       R# r   )r   clear_file_breaksr*   clear_all_file_breaksr>   r8   s   &r   test_clear_file_breaks#DebuggerTest.test_clear_file_breaks   s,    ''	2&&>>yIr   c                  a \        R R4      o ! V3R lR\        4      p\        4       V P                  n        V! R^^.4      V! R. RO4      3V P                  P                  n        V P                  P                  R^4       V P                  P                  P                  R^4       V P                  P                  4        V P                  P                  P                  \        P                  ! R^4      \        P                  ! R^4      \        P                  ! R^4      \        P                  ! R^4      \        P                  ! R^,4      \        P                  ! R^-4      .4       R# )	FileIOfilenamec                   .   <a  ] tR t^t o V3R ltRtV tR# )>DebuggerTest.test_set_load_breakpoints.<locals>.MockEditWindowc                .   < S! V4      V n         W n        R # r   )iobreakpoints)r   fnr   r   s   &&&r   r   GDebuggerTest.test_set_load_breakpoints.<locals>.MockEditWindow.__init__   s     *#. r   )r   r   N)r   r   r   r   r   r   r   )r!   r   s   @r   MockEditWindowr      s     / /r   r   ztest1.pyztest2.pyztest0.pyN)   ,   -   )r   r]   r	   r[   flistinversedictr   set_breakpointr*   	set_breakr>   load_breakpointsassert_has_callsr   call)r   r   r   s   & @r   test_set_load_breakpoints&DebuggerTest.test_set_load_breakpoints   s   Hj1	/V 	/
 "V:1v.:|4*
& 	$$Z322:qA&&(++YYz1%YYz1%YYz1%YYz2&YYz2&YYz2&(	)r   c                   \        \        R R4      p\        V^4      pW P                  n        \        4       V P                  n        \        RRR7      ;_uu_ 4        V P                  P                  4        RRR4       V P                  P                  P                  P                  R ^4       R#   + '       g   i     LB; i)ztest_sync.pyr%   zidlelib.debugger.os.path.existsTreturn_valueN)r+   r,   r   r   r.   r	   r   r
   sync_source_linegotofileliner>   )r   	test_code
test_frames   &  r   test_sync_source_line"DebuggerTest.test_sync_source_line   s    I~v>	y!,
("f44HHMM**, I((@@QRS IHs   B11C	rH   N)r   r   r   r   r   rI   r4   re   rj   rp   rw   r}   r   r   r   r   r   r   r    s   @r   rX   rX   \   sP     6# #3//=
?
CJ)2	T 	Tr   rX   c                   b   a  ] tR t^t o Rt]R 4       t]R 4       tR tR t	R t
R tR tR	tV tR
# )DebuggerGuiTestzZTests for debugger.Debugger that need tk root.

close needs debugger.top set in make_gui.
c                    \        R 4       \        4       ;V n        pVP                  4        \	        4       V n        WP
                  n        \	        4       V n        R# r(   N)r   r   r\   withdrawr	   r[   r*   )r0   r\   s   & r   r4   DebuggerGuiTest.setUpClass   s<    $4f&r   c                >    V P                   P                  4        V = R # r   r\   destroyr_   s   &r   tearDownClassDebuggerGuiTest.tearDownClass       Hr   c                    \         P                  ! V P                  V P                  4      V n         V P                  V P                   n        R # r   )r   r^   r[   r*   r\   r8   s   &r   setUpDebuggerGuiTest.setUp   s.     ))$,,A!YYr   c                    V P                   P                  ^R4       V P                  P                  P                  ^R4       V P	                  V P                   P
                  ^ 4       R# )   twoN)r   runr*   r>   rO   interactingr8   s   &r   test_run_debugger!DebuggerGuiTest.test_run_debugger   sH    !U#,,Q622A6r   c                    V P                   P                  4        V P                  P                  P	                  4        R # r   )r   closer[   close_debuggerrd   r8   s   &r   
test_closeDebuggerGuiTest.test_close   s(    ##668r   c                    V P                   P                  4        V P                  V P                   P                  P                  V P                   4       R # r   )r   
show_stackrO   stackviewerr(   r8   s   &r   test_show_stackDebuggerGuiTest.test_show_stack   s6      "2266Fr   c                   \        R R 4      pWP                  n        R V P                  n        . ^ 3V P                  P
                  n        V P                  P                  4        V P                  V P                  P                  P                  V P                  4       V P                  P
                  P                  VR 4       R # r   )r   r   r.   r   r*   	get_stackr   r   rO   r(   r>   )r   r   s   & r   test_show_stack_with_frame*DebuggerGuiTest.test_show_stack_with_frame   s    tT*
( %)!+-q''  " 	2266F22:tDr   r   N)r   r   r   r   r   rI   r4   r   r   r   r   r   r   r   r   r    s   @r   r   r      sS     
    '7
9
GE Er   r   c                   X   a  ] tR t^t o ]R 4       t]R 4       tR tR tR t	R t
RtV tR# )	StackViewerTestc                n    \        R 4       \        4       V n        V P                  P                  4        R# r   r   r   r\   r   r_   s   &r   r4   StackViewerTest.setUpClass   "    4r   c                >    V P                   P                  4        V = R # r   r   r_   s   &r   r   StackViewerTest.tearDownClass   r   r   c                4   \        \        R R4      V n        \        V P                  ^4      ^3\        V P                  ^4      ^3.V n        \
        P                  ! V P                  RR4      V n        V P                  P                  V P                  4       R# )test_stackviewer.pyr%   N)
r+   r,   r   r   stackr   StackViewerr\   sv
load_stackr8   s   &r   r   StackViewerTest.setUp   st    I'<fE	tyy!$a(tyy!$a(


 &&tyy$=4::&r   c                x    R pR pV P                   p\        P                  ! W2V4      pV P                  VR4       R # )Nr   )r\   r   r   assertHasAttr)r   r(   r   master_windowr   s   &    r   r9   StackViewerTest.test_init   s7    		!!-<2w'r   c                   V P                  V P                  P                  V P                  4       V P                  R V P                  P	                  ^ 4      9   4       V P                  V P                  P	                  ^4      R4       R# )z?.<module>(), line 1:z?.<module>(), line 2: N)rO   r   r   rM   getr8   s   &r   test_load_stackStackViewerTest.test_load_stack  s[     	

3/477;;q>ABQ)ABr   c                R   \        4       V P                  n        \        R RR7      ;_uu_ 4       pV P                  P	                  ^4       VP                  R4       V P                  P                  P                  P                  R4       RRR4       R#   + '       g   i     R# ; i)zidlelib.debugger.os.path.isfileTr   r   N)r	   r   r   r
   show_sourcer>   open)r   isfiles   & r   test_show_source StackViewerTest.test_show_source  so     44HHFGG"**+@AGGMM667LM IHHHs   ABB&	)r   r   r   N)r   r   r   r   rI   r4   r   r   r9   r   r   r   r   r    s   @r   r   r      sG      
  '(CN Nr   r   c                   F   a  ] tR tRt o ]R 4       t]R 4       tR tRtV t	R# )NameSpaceTesti  c                n    \        R 4       \        4       V n        V P                  P                  4        R# r   r   r_   s   &r   r4   NameSpaceTest.setUpClass  r   r   c                >    V P                   P                  4        V = R # r   r   r_   s   &r   r   NameSpaceTest.tearDownClass  r   r   c                H    \         P                  ! V P                  R 4       R# )TestN)r   NamespaceViewerr\   r8   s   &r   r9   NameSpaceTest.test_init$  s      F3r   rH   N)
r   r   r   r   rI   r4   r   r9   r   r   r    s   @r   r   r     s5      
  4 4r   r   __main__)	verbosity)r   idlelibr   collectionsr   textwrapr   tkinterr   test.supportr   unittestr   unittest.mockr	   r
   r,   r   TestCaser#   rK   rX   r   r   r   r   mainrH   r   r   <module>r      s   
  "   !   % /  		  0h  0F;8$$ ;0LT8$$ LT^8Eh'' 8Ev.Nh'' .Nb4H%% 4" zMMA r   