+
     Bi               	       x   ^ RI Ht ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIt^ RIt^ RIHt ^ R	IHt  ! R
 R]P&                  4      t]tRRutt]P1                  ]RR.]^^	R7      t]P5                  ]R^^4      t]P9                  ]R^^	R.4      t]P9                  ]R^^	4      t]P5                  ]R^	^	4      t]PA                  ]R]^^R7      t!]P5                  ]!R^^4      t"]P5                  ]"R^^4      t#]P9                  ]!R^^4      t$R]R]!/t%]PL                  ! ]%R4       ]PL                  ! ]PN                  4        ! R R]P&                  4      t( ! R R]P&                  4      t) ! R R]P&                  4      t* ! R  R!]P&                  4      t+],R"8X  d   ]PZ                  ! ^R#7       R# R# )$    )browser)requiresN)mock)Func)py_extensions)deque)Tk)TreeNodec                   ^   a  ] tR t^t o ]R 4       t]R 4       tR tR tR t	R t
R tRtV tR	# )
ModuleBrowserTestc                    \        R 4       \        4       V n        V P                  P                  4        \        P
                  ! V P                  \        RR7      V n        R# )guiT)_utestN)r   r	   rootwithdrawr   ModuleBrowser__file__mbclss   &5/usr/lib/python3.14/idlelib/idle_test/test_browser.py
setUpClassModuleBrowserTest.setUpClass   s<    4&&sxx$G    c                    V P                   P                  4        V P                  P                  4        V P                  P	                  4        V =V = R # N)r   closer   update_idletasksdestroyr   s   &r   tearDownClassModuleBrowserTest.tearDownClass   s8    !!#Hcfr   c                   V P                   pV P                  pV! VP                  \        4       V! \        P
                  / 4       V P                  VP                  \        4       V P                  \        P                  4       R # r   )r   assertEqualpathr   pyclbr_modulesassertIsInstancenoder
   assertIsNotNoner   	file_open)selfr   eqs   &  r   	test_initModuleBrowserTest.test_init"   sZ    WW
277H
6??Bbggx0W../r   c                   V P                   pV P                  \        P                  P	                  \
        4      VP                  P                  4       4       V P                  VP                  P                  4       R 4       R# )zModule BrowserN)
r   assertInosr$   basenamer   toptitler#   iconnamer+   r   s   & r   test_settitleModuleBrowserTest.test_settitle*   sN    WWbgg&&x0"&&,,.A*,<=r   c                ~    V P                   pVP                  4       pV P                  V\        P                  4       R # r   )r   rootnoder'   r   ModuleBrowserTreeItem)r+   r   rns   &  r   test_rootnodeModuleBrowserTest.test_rootnode/   s,    WW[[]b'"?"?@r   c                   V P                   p\        4       VP                  n        \        4       VP                  n        VP                  4        V P                  VP                  P                  P                  4       V P                  VP                  P                  P                  4       VP                  =VP                  =R # r   )r   r   r3   r   r(   r   
assertTruecalledr6   s   & r   
test_closeModuleBrowserTest.test_close4   ss    WW&

--.../FFNBGGOr   c                   R p\          Ff  pV P                  VR7      ;_uu_ 4        V V 2p\        P                  ! V4      pV\        P                  9  pV P                  WE4       RRR4       Kh  	  R#   + '       g   i     K}  ; i)z/path/to/file)extN)r   subTestr   is_browseable_extensionbrowseable_extension_blocklistr#   )r+   r$   rE   filenameactualexpecteds   &     r   test_is_browseable_extension.ModuleBrowserTest.test_is_browseable_extension=   so     C#&&"VC5> 88Bg&L&LL  2	 '& !&&&s   AA55B N)__name__
__module____qualname____firstlineno__classmethodr   r    r-   r7   r=   rB   rL   __static_attributes____classdictcell____classdict__s   @r   r   r      sL     H H  0>
A
,3 3r   r   testztest.pyC0base)
end_linenoF1C1 C2F3f0f1f2c1c                   ,   a  ] tR t^]t o R tR tRtV tR# )TransformChildrenTestc                   V P                   p\        P                  p\        V! \        R 4      4      pV! V\
        \        .4       V! V^ ,          P                  R4       V! V^,          P                  R4       \        V! \        R 4      4      pV! V^ ,          P                  R4       \        V! \        R4      4      pV! V. 4       R# )rX   C0(base)ra   zdifferent nameN)r#   r   transform_childrenlistmock_pyclbr_treerY   ra   namer+   r,   	transformtcls   &   r   test_transform_module_children4TransformChildrenTest.test_transform_module_children_   s    ..	9-v67
3R
3q6;;
#
3q6;;9-v67
3q6;;
#9-/?@A
3r   c                   V P                   p\        P                  p\        V! \        P
                  4      4      pV! V\        \        .4       V! V^ ,          P                  R4       V! V^,          P                  R4       \        V! \        P
                  4      4      pV! V^,          P                  R4       V! \        V! \        P
                  4      4      \        \        .4       R# )r   r\   C1()N)r#   r   ri   rj   rY   childrenr\   r]   rl   ra   rb   rd   rm   s   &   r   test_transform_node_children2TransformChildrenTest.test_transform_node_childrenn   s    ..	9R[[)*
3R
3q6;;
3q6;;9R[[)*
3q6;;
4	"++&'"b2r   rN   N)rO   rP   rQ   rR   rp   ru   rT   rU   rV   s   @r   rf   rf   ]   s     3 3r   rf   c                      a  ] tR t^|t o ]R 4       tR tR tR tR t	R t
R t]P                  ! R4      R	 4       tR
tV tR# )ModuleBrowserTreeItemTestc                D    \         P                  ! \        4      V n        R # r   )r   r;   fnamembtr   s   &r   r   $ModuleBrowserTreeItemTest.setUpClass~   s    //6r   c                Z    V P                  V P                  P                  \        4       R # r   )r#   r{   filerz   r+   s   &r   r-   #ModuleBrowserTreeItemTest.test_init   s    .r   c                b    V P                  V P                  P                  4       \        4       R # r   )r#   r{   GetTextrz   r   s   &r   test_gettext&ModuleBrowserTreeItemTest.test_gettext   s    ))+U3r   c                Z    V P                  V P                  P                  4       R 4       R# )pythonN)r#   r{   GetIconNamer   s   &r   test_geticonname*ModuleBrowserTreeItemTest.test_geticonname   s    --/:r   c                X    V P                  V P                  P                  4       4       R # r   )r@   r{   IsExpandabler   s   &r   test_isexpandable+ModuleBrowserTreeItemTest.test_isexpandable   s    --/0r   c                   \         P                  P                  p\         P                  p\	        \
        R 7      \         P                  n        \	        \        \        .R 7      \         n         V P                  V P                  P                  4       \        \        .4       V\         P                  n        V\         n        R#   T\         P                  n        T\         n        i ; i)resultN)r   r%   readmodule_exri   r   rk   ra   rY   r#   r{   listchildren)r+   save_rexsave_tcs   &  r   test_listchildren+ModuleBrowserTreeItemTest.test_listchildren   s    >>//,,'+3C'D$%)"b%:"	1TXX224r2h?+3GNN()0G& ,4GNN()0G&s   .4C "C&c                l   V P                   p\        \        \        .R 7      Vn        VP                  4       w  r#V=V P                  V\        P                  4       V P                  V\        P                  4       V P                  VP                  R4       V P                  VP                  R4       R# )r   ra   rh   N)r{   r   ra   rY   r   
GetSubListr'   r   ChildBrowserTreeItemr#   rl   )r+   r{   sub0sub1s   &   r   test_getsublist)ModuleBrowserTreeItemTest.test_getsublist   s    hhBx0^^%
dG$@$@AdG$@$@AD)J/r   idlelib.browser.file_openc                   V P                   p\        P                  ! R RR7      ;_uu_ 4        VP                  4        VP	                  4        RRR4       \        P                  ! R RR7      ;_uu_ 4        VP                  4        VP                  \        4       RRR4       R#   + '       g   i     L`; i  + '       g   i     R# ; i)zos.path.existsF)return_valueNT)r{   r   patchOnDoubleClickassert_not_calledassert_called_once_withrz   )r+   fopenr{   s   && r   test_ondoubleclick,ModuleBrowserTreeItemTest.test_ondoubleclick   s    hhZZ(u==##% > ZZ(t<<))%0 =<	 >= =<<s   !B&6&B9&B6	9C
	rN   N)rO   rP   rQ   rR   rS   r   r-   r   r   r   r   r   r   r   r   rT   rU   rV   s   @r   rx   rx   |   sS     7 7/4;1	10 
ZZ+,	1 -	1r   rx   c                      a  ] tR t^t o ]R 4       t]R 4       tR tR tR t	R t
R t]P                  ! R4      R	 4       tR
tV tR# )ChildBrowserTreeItemTestc                    \         P                  pV! \        4      V n        V! \        4      V n        V! \        4      V n        R # r   )r   r   rb   cbt_f1r]   cbt_C1r\   cbt_F1)r   CBTs   & r   r   #ChildBrowserTreeItemTest.setUpClass   s.    **W
W
W
r   c                    V = V =V =R # r   )r   r   r   r   s   &r   r    &ChildBrowserTreeItemTest.tearDownClass   s    J
CJr   c                &   V P                   pV! V P                  P                  R 4       V P                  V P                  P                  4       V! V P
                  P                  R4       V P                  V P
                  P                  4       R# )rs   rb   N)r#   r   rl   assertFalse
isfunctionr   r@   )r+   r,   s   & r   r-   "ChildBrowserTreeItemTest.test_init   sc    
4;;V$//0
4;;T"../r   c                    V P                  V P                  P                  4       R 4       V P                  V P                  P                  4       R4       R# )z
class C1()zdef f1(...)N)r#   r   r   r   r   s   &r   r   %ChildBrowserTreeItemTest.test_gettext   s<    ,,.=,,.>r   c                    V P                  V P                  P                  4       R 4       V P                  V P                  P                  4       R4       R# )folderr   N)r#   r   r   r   r   s   &r   r   )ChildBrowserTreeItemTest.test_geticonname   s<    002H=002H=r   c                    V P                  V P                  P                  4       4       V P                  V P                  P                  4       4       V P	                  V P
                  P                  4       4       R # r   )r@   r   r   r   r   r   r   s   &r   r   *ChildBrowserTreeItemTest.test_isexpandable   sO    002300231134r   c                >   V P                   p\        P                  pV P                  P	                  4       pV P                  V^ ,          V4       V! \        V4      ^4       V! V^ ,          P                  R4       V! V P                  P	                  4       . 4       R# )r   rc   N)	r#   r   r   r   r   r'   lenrl   r   )r+   r,   r   	f1sublists   &   r   r   (ChildBrowserTreeItemTest.test_getsublist   sw    **KK**,	ilC0
3y>1
9Q<d#
4;;!!#R(r   r   c                "   \         P                  ! 4       ;q!P                  n        V P                  P                  4        VP                  4        VP                  4        VP                  V P                  P                  P                  4       R # r   )
r   Mockr   gotoliner   r   assert_calledassert_called_withobjlineno)r+   r   gotos   && r   r   +ChildBrowserTreeItemTest.test_ondoubleclick   s]    -1YY[8!!*!!# 6 67r   rN   N)rO   rP   rQ   rR   rS   r   r    r-   r   r   r   r   r   r   r   rT   rU   rV   s   @r   r   r      sb       / /0?>5
	) 
ZZ+,8 -8r   r   c                   &   a  ] tR t^t o R tRtV tR# )NestedChildrenTestc                <   \        4       p. p. ROp\        P                  pVP                  V! \        4      V! \
        4      34       V'       d   VP                  4       pVP                  4       pVP                  V4       V P                  VP                  VP                  4       4       V P                  VP                  4       R4       V P                  VP                  4       V. 8g  4       VP                  VP                  4       K  V P                  W#4       R# )ra   N)	ra   rh   rb   rd   r\   rs   rc   r_   r`   )r   r   )r   r   r   extendra   rY   popleftr   r0   rl   r   r   assertIsr   appendr#   )r+   queueactual_namesexpected_namesr   cbsublists   &      r   test_nestedNestedChildrenTest.test_nested   s      **c"gs2w'(BmmoGLL!MM"''2::<0MM"..*,@AMM"//+W];(6r   rN   N)rO   rP   rQ   rR   r   rT   rU   rV   s   @r   r   r      s     7 7r   r   __main__)	verbosity).idlelibr   test.supportr   unittestr   idlelib.idle_test.mock_idler   idlelib.utilr   collectionsr   os.pathr1   r%   tkinterr	   idlelib.treer
   TestCaser   r   modulerz   ClassrY   _nest_functionr\   _nest_classr]   r_   r`   Functionra   rb   rc   rd   rk   ri   rt   rf   rx   r   r   rO   mainrN   r   r   <module>r      s    !   , &     !23)) 23l 	XXfdVHeQ1X=r4A&^^BaRD)^^Ba#r4A&[[ubR[8r4R(r4R(^^Bb"%"dB'    +V 4   2;; '3H-- 3>11 1 1 11h28x00 28l7** 74 zMMA r   