a  ze@sddlmZddlmZddlZddlmZddlmZddlm Z ddl Z ddl Z ddl mZddlmZGd d d ejZe Zd \ZZeed d gedZeeddZeedddgZeeddZeeddZeededZeeddZ ee ddZ!eeddZ"eed Z#e$e#d!e$ej%Gd"d#d#ejZ&Gd$d%d%ejZ'Gd&d'd'ejZ(Gd(d)d)ejZ)e*d*krej+d+d,dS)-)browser)requiresN)mock)Func)deque)Tk)TreeNodec@sDeZdZeddZeddZddZddZd d Zd d Z d S)ModuleBrowserTestcCs2tdt|_|jtj|jtdd|_dS)NZguiT)Z_utest)rrrootZwithdrawrZ ModuleBrowser__file__mbclsrR/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/idle_test/test_browser.py setUpClasss zModuleBrowserTest.setUpClasscCs*|j|j|j|`|`dSN)r closer Zupdate_idletasksdestroyr rrr tearDownClasss   zModuleBrowserTest.tearDownClasscCsB|j}|j}||jt|tji||jt| t j dSr) r assertEqualpathr pyclbrZ_modulesassertIsInstancenoderZassertIsNotNonerZ file_open)selfr eqrrr test_init!s   zModuleBrowserTest.test_initcCs6|j}|tjt|j||j ddS)NzModule Browser) r assertInosrbasenamer toptitlerZiconnamerr rrr test_settitle)szModuleBrowserTest.test_settitlecCs |j}|}||tjdSr)r rootnoderrModuleBrowserTreeItem)rr Zrnrrr test_rootnode.szModuleBrowserTest.test_rootnodecCsR|j}t|j_t|j_|||jjj||jjj|j`|j`dSr)r rr!rrr assertTrueZcalledr#rrr test_close3s  zModuleBrowserTest.test_closeN) __name__ __module__ __qualname__ classmethodrrrr$r'r)rrrrr s  r )testztest.pyC0baseF1C1C2F3 f0 f1 f2 c1)r/r;r.c@seZdZddZddZdS)TransformChildrenTestcCs|j}tj}t|td}||ttg||djd||djdt|td}||djdt|td}||gdS)Nr.rC0(base)r1r;zdifferent name)rrtransform_childrenlistmock_pyclbr_treer/r;namerrZ transformZtclrrrtest_transform_module_childrenUsz4TransformChildrenTest.test_transform_module_childrencCs|j}tj}t|tj}||ttg||djd||djdt|tj}||djd|t|t jt t gdS)Nrr2r1C1()) rrrErFr/childrenr2r4rHr;r=rArIrrrtest_transform_node_childrendsz2TransformChildrenTest.test_transform_node_childrenN)r*r+r,rJrMrrrrrCSsrCc@sZeZdZeddZddZddZddZd d Zd d Z d dZ e dddZ dS)ModuleBrowserTreeItemTestcCstt|_dSr)rr&fnamembtr rrrrtsz$ModuleBrowserTreeItemTest.setUpClasscCs||jjtdSr)rrPfilerOrrrrrxsz#ModuleBrowserTreeItemTest.test_initcCs||jtdSr)rrPGetTextrOrRrrr test_gettext{sz&ModuleBrowserTreeItemTest.test_gettextcCs||jddS)Npython)rrP GetIconNamerRrrrtest_geticonname~sz*ModuleBrowserTreeItemTest.test_geticonnamecCs||jdSr)r(rP IsExpandablerRrrrtest_isexpandablesz+ModuleBrowserTreeItemTest.test_isexpandablecCsjtjj}tj}ttdtj_tttgdt_z(||j ttgW|tj_|t_n|tj_|t_0dS)Nresult) rrZ readmodule_exrErrGr;r/rrP listchildren)rZsave_rexZsave_tcrrrtest_listchildrensz+ModuleBrowserTreeItemTest.test_listchildrencCsb|j}tttgd|_|\}}|`||tj||tj| |j d| |j ddS)NrZr;rD) rPrr;r/r\ GetSubListrrChildBrowserTreeItemrrH)rrPZsub0Zsub1rrrtest_getsublists z)ModuleBrowserTreeItemTest.test_getsublistidlelib.browser.file_opencCs|j}tjddd ||Wdn1s:0Ytjddd*|||tWdn1s0YdS)Nzos.path.existsF) return_valueT)rPrpatch OnDoubleClickZassert_not_called assert_calledZ called_withrO)rfopenrPrrrtest_ondoubleclicks&z,ModuleBrowserTreeItemTest.test_ondoubleclickN)r*r+r,r-rrrTrWrYr]r`rrcrgrrrrrNrs   rNc@s^eZdZeddZeddZddZddZd d Zd d Z d dZ e dddZ dS)ChildBrowserTreeItemTestcCs(tj}|t|_|t|_|t|_dSr)rr_r=cbt_f1r4cbt_C1r2cbt_F1)rCBTrrrrs  z#ChildBrowserTreeItemTest.setUpClasscCs|`|`|`dSr)rjrirkr rrrrsz&ChildBrowserTreeItemTest.tearDownClasscCsB|j}||jjd||jj||jjd||jjdS)NrKr=)rrjrH assertFalseZ isfunctionrir()rrrrrrs z"ChildBrowserTreeItemTest.test_initcCs(||jd||jddS)Nz class C1()z def f1(...))rrjrSrirRrrrrTsz%ChildBrowserTreeItemTest.test_gettextcCs(||jd||jddS)NfolderrU)rrjrVrirRrrrrWsz)ChildBrowserTreeItemTest.test_geticonnamecCs4||j||j||jdSr)r(rjrXrirmrkrRrrrrYsz*ChildBrowserTreeItemTest.test_isexpandablecCsX|j}tj}|j}||d||t|d||djd||jgdS)Nrr1r?) rrr_rir^rlenrHrk)rrrlZ f1sublistrrrr`s z(ChildBrowserTreeItemTest.test_getsublistracCs>t}|j_|j||||jjj dSr) rZMockrbZgotolinerkrdreZassert_called_withobjlineno)rrfZgotorrrrgs  z+ChildBrowserTreeItemTest.test_ondoubleclickN)r*r+r,r-rrrrTrWrYr`rrcrgrrrrrhs   rhc@seZdZddZdS)NestedChildrenTestcCst}g}gd}tj}||t|tf|r|}|}||||j | || d| | |gk||j q.|||dS)N) r;rDr=rAr2rKr?r7r9)rUrn)rrr_extendr;r/popleftr^rrHrSrVZassertIsrXappendr)rqueueZ actual_namesZexpected_namesrlcbZsublistrrr test_nesteds zNestedChildrenTest.test_nestedN)r*r+r,rxrrrrrrsrr__main__) verbosity),ZidlelibrZ test.supportrZunittestrZidlelib.idle_test.mock_idler collectionsrZos.pathrrtkinterrZ idlelib.treerZTestCaser r modulerOZClassr/Z_nest_functionr2Z _nest_classr4r7r9ZFunctionr;r=r?rArGrErLrCrNrhrrr*mainrrrrs<       -   56