3  f2@sdZddlmZddlmZddlZddlmZddlmZddl m Z ddl Z ddlm Zdd lmZdd lmZGd d d ejZeZd.\ZZejededZejeddZejeddZejeddZejeddgedZ eje ddZ!eje dddgZ"eje"dd Z#eje#d!d"Z$ee d#Z%ej&e%d ej&e j'Gd$d%d%ejZ(Gd&d'd'ejZ)Gd(d)d)ejZ*Gd*d+d+ejZ+e,d,krej-dd-dS)/zTest browser, coverage 90%.)browser)requiresN)mock)Func)deque)_pyclbr)Tk)TreeNodec@sDeZdZeddZeddZddZddZd d Zd d Z d S)ModuleBrowserTestcCs2tdt|_|jjtj|jtdd|_dS)NZguiT)Z_utest)rrrootZwithdrawrZ ModuleBrowser__file__mb)clsrC/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_browser.py setUpClasss zModuleBrowserTest.setUpClasscCs*|jj|jj|jj|`|`dS)N)r closer Zupdate_idletasksdestroy)rrrr tearDownClasss   zModuleBrowserTest.tearDownClasscCsB|j}|j}||jt|tji|j|jt|j t j dS)N) r assertEqualpathr pyclbrZ_modulesassertIsInstancenoder ZassertIsNotNonerZ file_open)selfr eqrrr test_init!s   zModuleBrowserTest.test_initcCs6|j}|jtjjt|jj|j|jj ddS)NzModule Browser) r assertInosrbasenamer toptitlerZiconname)rr rrr test_settitle)szModuleBrowserTest.test_settitlecCs |j}|j}|j|tjdS)N)r ZrootnoderrModuleBrowserTreeItem)rr Zrnrrr test_rootnode.szModuleBrowserTest.test_rootnodecCsR|j}t|j_t|j_|j|j|jjj|j|jjj|j`|j`dS)N)r rr rrr assertTrueZcalled)rr rrr test_close3s  zModuleBrowserTest.test_closeN) __name__ __module__ __qualname__ classmethodrrrr"r$r&rrrrr s   r testtest.pyf0f1f2c1C0baseF1C1 C2 F3)r-r5c@seZdZddZddZdS)TransformChildrenTestcCs|j}tj}t|td}||ttg||djd||djdt|td}||djdt|td}||gdS)Nr+rr-r.zC0(base)zdifferent name)rrtransform_childrenlistmock_pyclbr_treer-r5name)rr transformtclrrrtest_transform_module_childrenUsz4TransformChildrenTest.test_transform_module_childrencCs|j}tj}t|tj}||ttg||djd||djdt|tj}||djd|t|t jt t gdS)Nrr8r.zC1()) rrrBrCr5childrenr8r:rEr-r/r3)rrrFrGrrrtest_transform_node_childrendsz2TransformChildrenTest.test_transform_node_childrenN)r'r(r)rHrJrrrrrASsrAc@sZeZdZeddZddZddZddZd d Zd d Z d dZ e j dddZ dS)ModuleBrowserTreeItemTestcCstjt|_dS)N)rr#fnamembt)rrrrrtsz$ModuleBrowserTreeItemTest.setUpClasscCs|j|jjtdS)N)rrMfilerL)rrrrrxsz#ModuleBrowserTreeItemTest.test_initcCs|j|jjtdS)N)rrMGetTextrL)rrrr test_gettext{sz&ModuleBrowserTreeItemTest.test_gettextcCs|j|jjddS)Npython)rrM GetIconName)rrrrtest_geticonname~sz*ModuleBrowserTreeItemTest.test_geticonnamecCs|j|jjdS)N)r%rM IsExpandable)rrrrtest_isexpandablesz+ModuleBrowserTreeItemTest.test_isexpandablec Cs\tjj}tj}ttdtj_tttgdt_z|j|j j ttgWd|tj_|t_XdS)N)result) rrZ readmodule_exrBrrDr-r5rrM listchildren)rZsave_rexZsave_tcrrrtest_listchildrensz+ModuleBrowserTreeItemTest.test_listchildrencCsb|j}tttgd|_|j\}}|`|j|tj|j|tj|j |j d|j |j ddS)N)rVr-zC0(base)) rMrr-r5rW GetSubListrrChildBrowserTreeItemrrE)rrMZsub0Zsub1rrrtest_getsublists z)ModuleBrowserTreeItemTest.test_getsublistzidlelib.browser.file_opencCsh|j}tjddd|j|jWdQRXtjddd |j|j|jtWdQRXdS)Nzos.path.existsF) return_valueT)rMrpatch OnDoubleClickZassert_not_called assert_calledZ called_withrL)rfopenrMrrrtest_ondoubleclicksz,ModuleBrowserTreeItemTest.test_ondoubleclickN)r'r(r)r*rrrPrSrUrXr[rr]rarrrrrKrs   rKc@s^eZdZeddZeddZddZddZd d Zd d Z d dZ e j dddZ dS)ChildBrowserTreeItemTestcCs(tj}|t|_|t|_|t|_dS)N)rrZr/cbt_f1r:cbt_C1r8cbt_F1)rCBTrrrrs  z#ChildBrowserTreeItemTest.setUpClasscCs|`|`|`dS)N)rdrcre)rrrrrsz&ChildBrowserTreeItemTest.tearDownClasscCsB|j}||jjd|j|jj||jjd|j|jjdS)NzC1()r/)rrdrE assertFalseZ isfunctionrcr%)rrrrrrs z"ChildBrowserTreeItemTest.test_initcCs(|j|jjd|j|jjddS)Nz class C1()z def f1(...))rrdrOrc)rrrrrPsz%ChildBrowserTreeItemTest.test_gettextcCs(|j|jjd|j|jjddS)NfolderrQ)rrdrRrc)rrrrrSsz)ChildBrowserTreeItemTest.test_geticonnamecCs4|j|jj|j|jj|j|jjdS)N)r%rdrTrcrgre)rrrrrUsz*ChildBrowserTreeItemTest.test_isexpandablecCsX|j}tj}|jj}|j|d||t|d||djd||jjgdS)Nrr.r1) rrrZrcrYrlenrEre)rrrfZ f1sublistrrrr[s z(ChildBrowserTreeItemTest.test_getsublistzidlelib.browser.file_opencCs>tj}|j_|jj|j|j|j|jjj dS)N) rZMockr\Zgotolinerer^r_Zassert_called_withobjlineno)rr`Zgotorrrras  z+ChildBrowserTreeItemTest.test_ondoubleclickN)r'r(r)r*rrrrPrSrUr[rr]rarrrrrbs   rbc@seZdZdZddZdS)NestedChildrenTestzFTest that all the nodes in a nested tree are added to the BrowserTree.c Cst}g}ddddddddd g }tj}|j|t|tfxd|r|j}|j}|j||j|j |j |j|j d |j |j |gk|j|j q>W|j||dS) Nr-zC0(base)r/r3r8zC1()r1r=r?rQrh)rQrh)rrrZextendr-r5popleftrYrrErOrRZassertIsrTappendr)rZqueueZ actual_namesZexpected_namesrfcbZsublistrrr test_nesteds" zNestedChildrenTest.test_nestedN)r'r(r)__doc__rqrrrrrlsrl__main__) verbosity)r+r,).rrZidlelibrZ test.supportrZunittestrZidlelib.idle_test.mock_idler collectionsrZos.pathrrrZtkinterrZ idlelib.treer ZTestCaser r modulerLZFunctionr-Z_nest_functionr/r1Z _nest_classr3ZClassr5r8r:r=r?rDrBrIrArKrbrlr'mainrrrrs>        -   56