a 9êdg˜*ã@s°dZddlZddlmZmZddlmZddlmZm Z ddl Z ddl Z ddl m ZddlmZddlmZddlmZGdd „d ƒZGd d „d ejƒZed kr¬ejd ddS)z Test autocomplete, coverage 93%.éN)ÚMockÚpatch)Úrequires)ÚTkÚText)ÚFunc)ÚEventc@seZdZdd„ZdS)Ú DummyEditwincCs"||_||_d|_d|_d|_dS)Néz>>>)ÚrootÚtextZ indentwidthZtabwidthZprompt_last_line)Úselfr r ©rú?/usr/local/lib/python3.9/idlelib/idle_test/test_autocomplete.pyÚ__init__s zDummyEditwin.__init__N)Ú__name__Ú __module__Ú __qualname__rrrrrr sr c@s¢eZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZGdd„dƒZdd„Zdd „Zd!d"„Zd#S)$ÚAutoCompleteTestcCs:tdƒtƒ|_|j ¡t|jƒ|_t|j|jƒ|_dS)NZgui)rrr Zwithdrawrr r Úeditor©ÚclsrrrÚ setUpClasss   zAutoCompleteTest.setUpClasscCs$|`|`|j ¡|j ¡|`dS©N)rr r Zupdate_idletasksZdestroyrrrrÚ tearDownClass#s  zAutoCompleteTest.tearDownClasscCs |j dd¡t |j¡|_dS)Nú1.0Úend)r ÚdeleteÚacÚ AutoCompleterÚ autocomplete©r rrrÚsetUp*szAutoCompleteTest.setUpcCs(| |jj|j¡| |jj|j¡dSr)Ú assertEqualr Zeditwinrr r!rrrÚ test_init.szAutoCompleteTest.test_initcCs|j ¡}| |tj¡dSr)r Ú_make_autocomplete_windowÚassertIsInstanceÚacwZAutoCompleteWindow)r ZtestwinrrrÚtest_make_autocomplete_window2s z.AutoCompleteTest.test_make_autocomplete_windowcCs4|j}tƒ|_}| ¡|j ¡| |j¡dSr)r rÚautocompletewindowZ_remove_autocomplete_windowÚ hide_windowÚassert_called_onceÚ assertIsNone)r ÚacpÚmrrrÚtest_remove_autocomplete_window6s   z0AutoCompleteTest.test_remove_autocomplete_windowcCs<|j}tƒ}||_| | d¡d¡| |jdtj¡dS)NÚeventÚbreakr)r rÚopen_completionsr#Zforce_open_completions_eventÚargsrZFORCE)r r-Úopen_crrrÚ!test_force_open_completions_event=s z2AutoCompleteTest.test_force_open_completions_eventcCsú|j}|j}tdd}| | |¡¡|`|j dd¡| | |¡¡|j dd¡|j dd¡t ƒ|_ }t dd|_ || |¡dƒ|j   ¡d|_ td d }||_|| |¡dƒ||jd tjƒd|_|| |¡dƒ||jd tjƒdS) NT)Úmc_staterz """Docstring. rzre.)Z return_valuer1F©Úresultr)r#r rr,Zautocomplete_eventr6r Úinsertrrr)Z is_activeZcompleter+rr2r3rÚTABr8)r ÚEqualr-ZevÚmockr4rrrÚtest_autocomplete_eventEs*     z(AutoCompleteTest.test_autocomplete_eventcCs|j}|j}|j}|j}tdd}||j_|ƒ||jdƒ| dd¡|ƒ||jdƒ| dd¡d|_|ƒ||j |  d¡ƒ||j |j |j tjfƒ|j}||dƒ| dd¡d |_tƒ}||j_|ƒ||j |  d¡ƒ||j |fƒ||j |j |j tjfƒ||jd ƒdS) NZafter1r7rrÚrer9z re.z "./Lib/Zafter2)r#r r Ztry_open_completions_eventrÚafterÚcalledr9Ú_delayed_completion_idÚ_delayed_completion_indexÚindexr3Z popupwaitÚ_delayed_open_completionsrZTRY_Ar8Ú after_cancelZTRY_F)r r;r r-Ztrycompletionsr?Zcb1ÚcancelrrrÚtest_try_open_completions_eventds>     ÿ  ÿz0AutoCompleteTest.test_try_open_completions_eventcCsž|j}|j}tƒ}||_|j dd¡d|_|j d¡|_|  d¡|  |j¡||j dƒ|j d¡|_|  dd d t j f¡| |jddd d t j f¡dS) Nrz"dict.r?z insert+1cÚdummyrr9ééé)r#r rr2r r9rArCrBrDr,r@rÚFILESr3)r r;r-r4rrrÚtest_delayed_open_completions‰s   z.AutoCompleteTest.test_delayed_open_completionscCsP|j}|j}d|_tdd}||j_|j dd¡|| tj ¡ƒ||jƒdS)Nr?r7çð?z # comment) r,r rArr rEr9r2rr:)r Únoner-r?rrrÚtest_oc_cancel_comments z'AutoCompleteTest.test_oc_cancel_commentcCsl|j}tggfd}||_|j dd¡| | tj¡¡|j dd¡| | tj¡¡|  |j d¡dS)Nr7rÚobjectr9Ú.rJ) r rÚfetch_completionsr r9r,r2rr:r#r@)r r-ÚfetchrrrÚtest_oc_no_list©sz AutoCompleteTest.test_oc_no_listcCsš|j}|j}|j dd¡|| tj¡ƒ|j dd¡|| tj¡ƒ|j dd¡| | tj¡¡|j dd¡| | tj¡¡|j dd¡dS)NrNrRr9z int().rrú") r,r r r9r2rr:rZ assertFalse)r rOr-rrrÚtest_open_completions_none´sz+AutoCompleteTest.test_open_completions_nonec@s"eZdZeƒZeddZeƒZdS)zAutoCompleteTest.dummy_acwFr7N)rrrrrZ show_windowr*rrrrÚ dummy_acwÆs rXcsœˆj}tdgddgfd}||_‡fdd„}||_ˆj dd¡| tj¡ˆ  |j ˆj ¡ˆj  dd¡ˆj dd ¡ˆ  | tj¡¡ˆj  dd¡dS) NZtemZ_temr7csˆ ¡Sr)rXrr!rrÚmake_acwÐóz8AutoCompleteTest.test_open_completions..make_acwrzint.rz"t)r rrSr%r r9r2rr:r&r)rXrÚ assertTrue)r r-rTrYrr!rÚtest_open_completionsËs  z&AutoCompleteTest.test_open_completionsc Csf|j}| dtj¡\}}ttdƒr:tjtjkr:| d|¡| dtj¡\}}| t |ƒt |ƒ¡|  t t dd„|ƒƒ¡|  t t dd„|ƒƒ¡t ddd d gi¡t| dtj¡\}}| |d d g¡| d |¡| d |¡| d |¡| d¡}| ||dd¡Wdƒn1s 0Ytƒ}tƒ|_t dd|i¡l| dtj¡\}}| d|¡| d|¡| |dd„tt|ƒƒDƒ¡| |tt|ƒƒ¡Wdƒn1s¼0Ydd„}t td|¡t| dtj¡\}}| |ddg¡| |gd¢¡| dtj¡\}}| |ddg¡| |gd¢¡Wdƒn1sX0YdS)NÚÚ__file__rcSs | d¡S©NÚ_©Ú startswith©ÚxrrrÚìrZz9AutoCompleteTest.test_fetch_completions..cSs | d¡Sr_rarcrrrreírZú__main__.__dict__Ú__all__ÚaÚbrÚsumÚnonlocalÚFalserIÚfooÚ_privatecSs g|]}|dd…dkr|‘qS)NrIr`r)Ú.0ÚirrrÚ rZz;AutoCompleteTest.test_fetch_completions..cSs|dkrgd¢Sgd¢S)NrR)rmÚbarú.hidden)ÚmontyÚpythonrsr)ÚpathrrrÚ_listdirsz9AutoCompleteTest.test_fetch_completions.._listdirÚlistdirrr)rsrrrmú~rtru)rsrtru)r rSrZATTRSÚhasattrÚ__main__r^Z assertNotInZ assertLessÚlenr[ÚallÚfilterÚanyrÚdictr#ZassertInrCZassertNotEqualrrnÚsortedÚdirrQÚosrL) r r-ZsmallZlargeÚsriÚposr<rwrrrÚtest_fetch_completionsÝsDÿ     4  4z'AutoCompleteTest.test_fetch_completionsc Cs|j}|j}|| d¡tƒtƒ}t dd|i¡ || d¡|ƒWdƒn1sX0Ydddœ}t dd|i¡ || d¡|ƒWdƒn1s¢0Yt di¡D| t¡| d ¡Wdƒn1sä0YWdƒn1s0YdS) NÚintz sys.modulesÚtempfileé é)rmrrrfÚdZ not_exist) r r#Z get_entityr‡rrr€Z assertRaisesÚ NameError)r r-r;r<ZdirrrÚtest_get_entitys. . z AutoCompleteTest.test_get_entityN)rrrÚ classmethodrrr"r$r(r/r5r=rGrMrPrUrWrXr\r†rrrrrrs&  %  6rr{rJ)Ú verbosity)Ú__doc__ZunittestZ unittest.mockrrZ test.supportrÚtkinterrrrƒr{Zidlelib.autocompleter rZidlelib.autocomplete_wZautocomplete_wr'Zidlelib.idle_test.mock_idlerZidlelib.idle_test.mock_tkrr ZTestCaserrÚmainrrrrÚs