3 Õì2a2ã@sœddlmZddlmZddlZddlmZddlmZddlm Z ddl Z ddlm Z ddlmZdd lmZGd d „d ejƒZe Zd-\ZZejededƒZejeddƒZejeddƒZejeddƒZejeddgedƒZejeddƒZ ejedddgƒZ!eje!ddƒZ"eje"d d!ƒZ#eed"œZ$ej%e$d ƒej%ej&ƒGd#d$„d$ejƒZ'Gd%d&„d&ejƒZ(Gd'd(„d(ejƒZ)Gd)d*„d*ejƒZ*e+d+k�r˜ej,dd,�dS).é)Úbrowser)ÚrequiresN)Úmock)ÚFunc)Údeque)Ú_pyclbr)ÚTk)ÚTreeNodec@sDeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d S)ÚModuleBrowserTestcCs2tdƒtƒ|_|jjƒtj|jtdd�|_dS)NZguiT)Z_utest)rrÚrootZwithdrawrZ ModuleBrowserÚ__file__Úmb)Úcls©rú1/opt/alt/python36/lib64/python3.6/test_browser.pyÚ setUpClasss zModuleBrowserTest.setUpClasscCs*|jjƒ|jjƒ|jjƒ|`|`dS)N)r Úcloser Zupdate_idletasksÚdestroy)rrrrÚ tearDownClasss   zModuleBrowserTest.tearDownClasscCsB|j}|j}||jtƒ|tjiƒ|j|jtƒ|j t j ƒdS)N) r Ú assertEqualÚpathr ÚpyclbrZ_modulesÚassertIsInstanceÚnoder ZassertIsNotNonerZ file_open)Úselfr ÚeqrrrÚ test_init!s   zModuleBrowserTest.test_initcCs6|j}|jtjjtƒ|jjƒƒ|j|jj ƒdƒdS)NzModule Browser) r ÚassertInÚosrÚbasenamer ÚtopÚtitlerZiconname)rr rrrÚ test_settitle)szModuleBrowserTest.test_settitlecCs |j}|jƒ}|j|tjƒdS)N)r ZrootnoderrÚModuleBrowserTreeItem)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 Útestútest.pyÚf0éÚf1éÚf2éÚc1éÚC0ÚbaseéÚF1éÚC1é ÚÚC2é ÚF3é)r-r5c@seZdZdd„Zdd„ZdS)ÚTransformChildrenTestcCs‚|j}tj}t|tdƒƒ}||ttgƒ||djdƒ||djdƒt|tdƒƒ}||djdƒt|tdƒƒ}||gƒdS)Nr+rr-r.zC0(base)zdifferent name)rrÚtransform_childrenÚlistÚmock_pyclbr_treer-r5Ú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)Nrr8r.zC1()) rrrBrCr5Úchildrenr8r:rEr-r/r3)rrrFrGrrrÚtest_transform_node_childrendsz2TransformChildrenTest.test_transform_node_childrenN)r'r(r)rHrJrrrrrASsrAc@sZeZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z e j dƒdd„ƒZ dS)ÚModuleBrowserTreeItemTestcCstjtƒ|_dS)N)rr#ÚfnameÚmbt)rrrrrtsz$ModuleBrowserTreeItemTest.setUpClasscCs|j|jjtƒdS)N)rrMÚfilerL)rrrrrxsz#ModuleBrowserTreeItemTest.test_initcCs|j|jjƒtƒdS)N)rrMÚGetTextrL)rrrrÚ test_gettext{sz&ModuleBrowserTreeItemTest.test_gettextcCs|j|jjƒdƒdS)NÚpython)rrMÚ GetIconName)rrrrÚtest_geticonname~sz*ModuleBrowserTreeItemTest.test_geticonnamecCs|j|jjƒƒdS)N)r%rMÚ IsExpandable)rrrrÚtest_isexpandable�sz+ModuleBrowserTreeItemTest.test_isexpandablec Cs\tjj}tj}ttd�tj_tttgd�t_z|j|j j ƒttgƒWd|tj_|t_XdS)N)Úresult) rrZ readmodule_exrBrrDr-r5rrMÚ listchildren)rZsave_rexZsave_tcrrrÚtest_listchildren„sz+ModuleBrowserTreeItemTest.test_listchildrencCsb|j}tttgd�|_|jƒ\}}|`|j|tjƒ|j|tjƒ|j |j dƒ|j |j dƒdS)N)rVr-zC0(base)) rMrr-r5rWÚ GetSubListrrÚChildBrowserTreeItemrrE)rrMZsub0Zsub1rrrÚtest_getsublist�s z)ModuleBrowserTreeItemTest.test_getsublistzidlelib.browser.file_opencCsh|j}tjddd��|jƒ|jƒWdQRXtjddd�� |jƒ|jƒ|jtƒWdQRXdS)Nzos.path.existsF)Ú return_valueT)rMrÚpatchÚ OnDoubleClickZassert_not_calledÚ assert_calledZ called_withrL)rÚfopenrMrrrÚtest_ondoubleclick™sz,ModuleBrowserTreeItemTest.test_ondoubleclickN)r'r(r)r*rrrPrSrUrXr[rr]rarrrrrKrs   rKc@s^eZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z e j dƒdd„ƒZ dS)ÚChildBrowserTreeItemTestcCs(tj}|tƒ|_|tƒ|_|tƒ|_dS)N)rrZr/Úcbt_f1r:Úcbt_C1r8Úcbt_F1)rÚCBTrrrr©s  z#ChildBrowserTreeItemTest.setUpClasscCs|`|`|`dS)N)rdrcre)rrrrr°sz&ChildBrowserTreeItemTest.tearDownClasscCsB|j}||jjdƒ|j|jjƒ||jjdƒ|j|jjƒdS)NzC1()r/)rrdrEÚ assertFalseZ isfunctionrcr%)rrrrrr´s z"ChildBrowserTreeItemTest.test_initcCs(|j|jjƒdƒ|j|jjƒdƒdS)Nz class C1()z def f1(...))rrdrOrc)rrrrrP»sz%ChildBrowserTreeItemTest.test_gettextcCs(|j|jjƒdƒ|j|jjƒdƒdS)NÚfolderrQ)rrdrRrc)rrrrrS¿sz)ChildBrowserTreeItemTest.test_geticonnamecCs4|j|jjƒƒ|j|jjƒƒ|j|jjƒƒdS)N)r%rdrTrcrgre)rrrrrUÃsz*ChildBrowserTreeItemTest.test_isexpandablecCsX|j}tj}|jjƒ}|j|d|ƒ|t|ƒdƒ||djdƒ||jjƒgƒdS)Nrr.r1) rrrZrcrYrÚlenrEre)rrrfZ f1sublistrrrr[Ès z(ChildBrowserTreeItemTest.test_getsublistzidlelib.browser.file_opencCs>tjƒ}|j_|jjƒ|jƒ|jƒ|j|jjj ƒdS)N) rZMockr\Zgotolinerer^r_Zassert_called_withÚobjÚlineno)rr`ZgotorrrraÓs  z+ChildBrowserTreeItemTest.test_ondoubleclickN)r'r(r)r*rrrrPrSrUr[rr]rarrrrrb§s   rbc@seZdZdd„ZdS)ÚNestedChildrenTestc Cs²tƒ}g}ddddddddd g }tj}|j|tƒ|tƒfƒxd|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)rrrZÚextendr-r5ÚpopleftrYrrErOrRZassertIsrTÚappendr)rZqueueZ actual_namesZexpected_namesrfÚcbZsublistrrrÚ test_nestedàs" zNestedChildrenTest.test_nestedN)r'r(r)rqrrrrrlÝsrlÚ__main__)Ú verbosity)r+r,)-ZidlelibrZ test.supportrZunittestrZidlelib.idle_test.mock_idlerÚ collectionsrZos.pathrrrZtkinterrZ idlelib.treer ZTestCaser r ÚmodulerLZFunctionr-Z_nest_functionr/r1Z _nest_classr3ZClassr5r8r:r=r?rDrBrIrArKrbrlr'ÚmainrrrrÚs<        -   56