B ãxácÝ)ã@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úH/opt/alt/python37/lib64/python3.7/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_idletasksZdestroy)rrrrÚ tearDownClass#s  zAutoCompleteTest.tearDownClasscCs |j dd¡t |j¡|_dS)Nz1.0Úend)r ÚdeleteÚacÚ AutoCompleterÚ autocomplete)r rrrÚsetUp*szAutoCompleteTest.setUpcCs(| |jj|j¡| |jj|j¡dS)N)Ú assertEqualrZeditwinrr )r rrrÚ test_init.szAutoCompleteTest.test_initcCs|j ¡}| |tj¡dS)N)rÚ_make_autocomplete_windowÚassertIsInstanceÚacwZAutoCompleteWindow)r ZtestwinrrrÚtest_make_autocomplete_window2s z.AutoCompleteTest.test_make_autocomplete_windowcCs4|j}tƒ|_}| ¡|j ¡| |j¡dS)N)rrÚ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)NZeventÚbreakr)rrÚopen_completionsrZforce_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_statez1.0z """Docstring. rzre.)Z return_valuer,F)Úresultr)rrrr(Zautocomplete_eventr1r Úinsertrrr%Z is_activeZcompleter'rr-r.rÚTABr2)r ÚEqualr)ZevÚmockr/rrrÚ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) NZafter1)r2rz1.0Úrer3z re.z "./Lib/Zafter2)rr rZtry_open_completions_eventrÚafterÚcalledr3Ú_delayed_completion_idÚ_delayed_completion_indexÚindexr.Z popupwaitÚ_delayed_open_completionsrZTRY_Ar2Ú after_cancelZTRY_F)r r5r r)Ztrycompletionsr9Zcb1ZcancelrrrÚ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) Nz1.0z"dict.r9z insert+1cZdummyrr3ééé)rrrr-r r3r;r=r<r>r(r:rÚFILESr.)r r5r)r/rrrÚtest_delayed_open_completions‰s   z.AutoCompleteTest.test_delayed_open_completionscCsP|j}|j}d|_tdd}||j_|j dd¡|| tj ¡ƒ||jƒdS)Nr9)r2gð?z # comment) r(rr;rr r?r3r-rr4)r Únoner)r9rrrÚtest_oc_cancel_comments z'AutoCompleteTest.test_oc_cancel_commentcCsl|j}tggfd}||_|j dd¡| | tj¡¡|j dd¡| | tj¡¡|  |j d¡dS)N)r2z1.0Úobjectr3Ú.rB) rrÚfetch_completionsr r3r(r-rr4rr:)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)Ngð?rIr3z int().rz1.0ú") r(rr r3r-rr4rZ assertFalse)r rFr)rrrÚtest_open_completions_none´sz+AutoCompleteTest.test_open_completions_nonec@s"eZdZeƒZeddZeƒZdS)zAutoCompleteTest.dummy_acwF)r2N)rrrrrZ show_windowr&rrrrÚ dummy_acwÆs rOcsœˆj}tdgddgfd}||_‡fdd„}||_ˆj dd¡| tj¡ˆ  |j ˆj ¡ˆj  dd¡ˆj dd ¡ˆ  | tj¡¡ˆj  dd¡dS) NZtemZ_tem)r2csˆ ¡S)N)rOr)r rrÚmake_acwÐóz8AutoCompleteTest.test_open_completions..make_acwz1.0zint.rz"t)rrrJr!r r3r-rr4r"r%rOrÚ assertTrue)r r)rKrPr)r rÚtest_open_completionsËs  z&AutoCompleteTest.test_open_completionsc Csþ|j}| dtj¡\}}ttdƒr:tjtjkr:| d|¡| dtj¡\}}| t |ƒt |ƒ¡|  t t dd„|ƒƒ¡|  t t dd„|ƒƒ¡t ddd d gi¡@| dtj¡\}}| |d d g¡| d |¡| d |¡WdQRXtƒ}tƒ|_t dd |i¡b| d tj¡\}}| d|¡| d|¡| |dd„tt|ƒƒDƒ¡| |tt|ƒƒ¡WdQRXdd„}t td|¡n| dtj¡\}}| |dd g¡| |ddd g¡| dtj¡\}}| |ddg¡| |dddg¡WdQRXdS)NÚÚ__file__rcSs | d¡S)NÚ_)Ú startswith)ÚxrrrÚìrQz9AutoCompleteTest.test_fetch_completions..cSs | d¡S)NrV)rW)rXrrrrYírQz__main__.__dict__Ú__all__ÚaÚbrÚsumÚfooÚ_privatecSs g|]}|dd…dkr|‘qS)NrArVr)Ú.0Úirrrú ýsz;AutoCompleteTest.test_fetch_completions..cSs|dkrdddgSdddgS)NrIr^Úbarz.hiddenÚmontyÚpythonr)ÚpathrrrÚ_listdirs z9AutoCompleteTest.test_fetch_completions.._listdirÚlistdirrcz.hiddenú~rdre)rrJrZATTRSÚhasattrÚ__main__rUZ assertNotInZ assertLessÚlenrRÚallÚfilterÚanyrÚdictrZassertInrr_ÚsortedÚdirrHÚosrD)r r)ZsmallZlargeÚsr\r6rgrrrÚtest_fetch_completionsÝs<    z'AutoCompleteTest.test_fetch_completionsc CsÀ|j}|j}|| d¡tƒtƒ}t dd|i¡|| d¡|ƒWdQRXdddœ}t dd|i¡|| d¡|ƒWdQRXt di¡&| t¡| d ¡WdQRXWdQRXdS) NÚintz sys.modulesZtempfileé é)r^rcz__main__.__dict__ÚdZ not_exist) rrZ get_entityrvrrrpZ assertRaisesÚ NameError)r r)r5r6ZdirrrÚtest_get_entitys  z AutoCompleteTest.test_get_entityN)rrrÚ classmethodrrrr r$r+r0r7r@rErGrLrNrOrSrur{rrrrrs"  %  3rrkrB)Ú verbosity)Ú__doc__ZunittestZ unittest.mockrrZ test.supportrZtkinterrrrsrkZidlelib.autocompleterrZidlelib.autocomplete_wZautocomplete_wr#Zidlelib.idle_test.mock_idlerZidlelib.idle_test.mock_tkrr ZTestCaserrÚmainrrrrÚs