B „ fã@sœdZddlmZddlmZddlZddlmZddlmZddl m Z ddl Z ddl Z ddlmZdd lmZGd d „d ejƒZe Zd \ZZe ed dged¡Ze edd¡Ze edddg¡Ze edd¡Ze edd¡Ze eded¡Z e e dd¡Z!e e!dd¡Z"e e dd ¡Z#ee d!œZ$e %e$d"¡e %ej&¡Gd#d$„d$ejƒZ'Gd%d&„d&ejƒZ(Gd'd(„d(ejƒZ)Gd)d*„d*ejƒZ*e+d+kr˜ej,d,d-dS).zTest browser, coverage 90%.é)Úbrowser)ÚrequiresN)Úmock)ÚFunc)Údeque)ÚTk)ÚTreeNodec@sDeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d S)ÚModuleBrowserTestcCs2tdƒtƒ|_|j ¡tj|jtdd|_dS)NZguiT)Z_utest)rrÚrootZwithdrawrZ ModuleBrowserÚ__file__Úmb)Úcls©rúC/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_browser.pyÚ setUpClasss zModuleBrowserTest.setUpClasscCs*|j ¡|j ¡|j ¡|`|`dS)N)r Úcloser Zupdate_idletasksÚdestroy)r rrrÚ tearDownClasss   zModuleBrowserTest.tearDownClasscCsB|j}|j}||jtƒ|tjiƒ| |jt¡|  t j ¡dS)N) r Ú assertEqualÚpathr ÚpyclbrZ_modulesÚassertIsInstanceÚnoderZassertIsNotNonerZ file_open)Úselfr ÚeqrrrÚ test_init!s   zModuleBrowserTest.test_initcCs6|j}| tj t¡|j ¡¡| |j  ¡d¡dS)NzModule Browser) r ÚassertInÚosrÚbasenamer ÚtopÚtitlerZiconname)rr rrrÚ test_settitle)szModuleBrowserTest.test_settitlecCs |j}| ¡}| |tj¡dS)N)r ZrootnoderrÚModuleBrowserTreeItem)rr ZrnrrrÚ test_rootnode.szModuleBrowserTest.test_rootnodecCsR|j}tƒ|j_tƒ|j_| ¡| |jjj¡| |jjj¡|j`|j`dS)N)r rrrrrÚ assertTrueZcalled)rr rrrÚ test_close3s  zModuleBrowserTest.test_closeN) Ú__name__Ú __module__Ú __qualname__Ú classmethodrrrr!r#r%rrrrr s   r )Útestztest.pyÚC0ÚbaseéÚF1éÚC1éÚÚC2éÚF3é Úf0é Úf1é Úf2é Úc1é)r+r7r*c@seZdZdd„Zdd„ZdS)ÚTransformChildrenTestcCs‚|j}tj}t|tdƒƒ}||ttgƒ||djdƒ||djdƒt|tdƒƒ}||djdƒt|tdƒƒ}||gƒdS)Nr*rzC0(base)r-r7zdifferent name)rrÚtransform_childrenÚlistÚmock_pyclbr_treer+r7Úname)rrÚ transformÚtclrrrÚtest_transform_module_childrenUsz4TransformChildrenTest.test_transform_module_childrencCs‚|j}tj}t|tjƒƒ}||ttgƒ||djdƒ||djdƒt|tjƒƒ}||djdƒ|t|t jƒƒt t gƒdS)Nrr.r-zC1()) rrr@rAr+Úchildrenr.r0rCr7r9r=)rrrDrErrrÚtest_transform_node_childrendsz2TransformChildrenTest.test_transform_node_childrenN)r&r'r(rFrHrrrrr?Ssr?c@sZeZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z e   d¡dd„ƒZ dS)ÚModuleBrowserTreeItemTestcCst t¡|_dS)N)rr"ÚfnameÚmbt)r rrrrtsz$ModuleBrowserTreeItemTest.setUpClasscCs| |jjt¡dS)N)rrKÚfilerJ)rrrrrxsz#ModuleBrowserTreeItemTest.test_initcCs| |j ¡t¡dS)N)rrKÚGetTextrJ)rrrrÚ test_gettext{sz&ModuleBrowserTreeItemTest.test_gettextcCs| |j ¡d¡dS)NÚpython)rrKÚ GetIconName)rrrrÚtest_geticonname~sz*ModuleBrowserTreeItemTest.test_geticonnamecCs| |j ¡¡dS)N)r$rKÚ IsExpandable)rrrrÚtest_isexpandablesz+ModuleBrowserTreeItemTest.test_isexpandablecCs\tjj}tj}ttdtj_tttgdt_z| |j   ¡ttg¡Wd|tj_|t_XdS)N)Úresult) rrZ readmodule_exr@rrBr7r+rrKÚ listchildren)rZsave_rexZsave_tcrrrÚtest_listchildren„sz+ModuleBrowserTreeItemTest.test_listchildrencCsb|j}tttgd|_| ¡\}}|`| |tj¡| |tj¡|  |j d¡|  |j d¡dS)N)rTr7zC0(base)) rKrr7r+rUÚ GetSubListrrÚChildBrowserTreeItemrrC)rrKZsub0Zsub1rrrÚtest_getsublists z)ModuleBrowserTreeItemTest.test_getsublistzidlelib.browser.file_openc Csh|j}tjddd| ¡| ¡WdQRXtjddd | ¡| ¡| t¡WdQRXdS)Nzos.path.existsF)Ú return_valueT)rKrÚpatchÚ OnDoubleClickZassert_not_calledÚ assert_calledZ called_withrJ)rÚfopenrKrrrÚtest_ondoubleclick™sz,ModuleBrowserTreeItemTest.test_ondoubleclickN)r&r'r(r)rrrNrQrSrVrYrr[r_rrrrrIrs   rIc@s^eZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z e   d¡dd„ƒZ dS)ÚChildBrowserTreeItemTestcCs(tj}|tƒ|_|tƒ|_|tƒ|_dS)N)rrXr9Úcbt_f1r0Úcbt_C1r.Úcbt_F1)r ÚCBTrrrr©s  z#ChildBrowserTreeItemTest.setUpClasscCs|`|`|`dS)N)rbrarc)r rrrr°sz&ChildBrowserTreeItemTest.tearDownClasscCsB|j}||jjdƒ| |jj¡||jjdƒ| |jj¡dS)NzC1()r9)rrbrCÚ assertFalseZ isfunctionrar$)rrrrrr´s z"ChildBrowserTreeItemTest.test_initcCs(| |j ¡d¡| |j ¡d¡dS)Nz class C1()z def f1(...))rrbrMra)rrrrrN»sz%ChildBrowserTreeItemTest.test_gettextcCs(| |j ¡d¡| |j ¡d¡dS)NÚfolderrO)rrbrPra)rrrrrQ¿sz)ChildBrowserTreeItemTest.test_geticonnamecCs4| |j ¡¡| |j ¡¡| |j ¡¡dS)N)r$rbrRrarerc)rrrrrSÃsz*ChildBrowserTreeItemTest.test_isexpandablecCsX|j}tj}|j ¡}| |d|¡|t|ƒdƒ||djdƒ||j ¡gƒdS)Nrr-r;) rrrXrarWrÚlenrCrc)rrrdZ f1sublistrrrrYÈs z(ChildBrowserTreeItemTest.test_getsublistzidlelib.browser.file_opencCs>t ¡}|j_|j ¡| ¡| ¡| |jjj ¡dS)N) rZMockrZZgotolinercr\r]Zassert_called_withÚobjÚlineno)rr^Zgotorrrr_Ós  z+ChildBrowserTreeItemTest.test_ondoubleclickN)r&r'r(r)rrrrNrQrSrYrr[r_rrrrr`§s   r`c@seZdZdZdd„ZdS)ÚNestedChildrenTestzFTest that all the nodes in a nested tree are added to the BrowserTree.c Cs²tƒ}g}ddddddddd g }tj}| |tƒ|tƒf¡xd|r | ¡}| ¡}| |¡| |j |  ¡¡| |  ¡d ¡|  |  ¡|gk¡| |j ¡q>W| ||¡dS) Nr7zC0(base)r9r=r.zC1()r;r3r5)rOrf)rrrXÚextendr7r+ÚpopleftrWrrCrMrPZassertIsrRÚappendr)rZqueueZ actual_namesZexpected_namesrdÚcbZsublistrrrÚ test_nestedàs" zNestedChildrenTest.test_nestedN)r&r'r(Ú__doc__rorrrrrjÝsrjÚ__main__é)Ú verbosity)-rpZidlelibrZ test.supportrZunittestrZidlelib.idle_test.mock_idlerÚ collectionsrZos.pathrrZtkinterrZ idlelib.treerZTestCaser r ÚmodulerJZClassr+Z_nest_functionr.Z _nest_classr0r3r5ZFunctionr7r9r;r=rBr@rGr?rIr`rjr&ÚmainrrrrÚs>       -   56