3 § f-ã@sdZddlmZddlZddlmZmZmZddl j Z ddl m Z mZddl mZddlZdd„Zd d „ZGd d „d ƒZGd d„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZedk�r ejdd�dS)z Test searchengine, coverage 99%.é)Ú searchengineN)Ú BooleanVarÚ StringVarÚTclError)ÚVarÚMbox)ÚTextcCstt_tt_tt_dS)N)rÚserrrÚ tkMessageBox©r r úH/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_searchengine.pyÚ setUpModulesr cCstt_tt_tt_dS)N)rr rr r r r r ÚtearDownModulesrc@seZdZdd„ZdS)ÚMockcOsdS)Nr )ÚselfÚargsÚkwargsr r r Ú__init__ sz Mock.__init__N)Ú__name__Ú __module__Ú __qualname__rr r r r rsrc@seZdZdd„ZdS)ÚGetTestc Cs\tj}tt_zBtƒ}tj|ƒ}|j|tjƒ|j|j|ƒ|jtj|ƒ|ƒWd|t_XdS)N)r Ú SearchEnginerÚgetZassertIsInstanceZassertIsZ _searchengine)rZ saved_EngineÚrootÚenginer r r Útest_get$s zGetTest.test_getN)rrrrr r r r r"src@seZdZdd„ZdS)ÚGetLineColTestcCsH|jtjdƒdƒ|jtjdƒd ƒ|jttjdƒ|jttjdƒdS) Nz1.0érz1.11é z 1.0 lineendÚend)rr)rr)Ú assertEqualr Z get_line_colZ assertRaisesÚ ValueError)rr r r Útest_get_line_col2sz GetLineColTest.test_get_line_colN)rrrr#r r r r r0src@seZdZdd„ZdS)ÚGetSelectionTestcCsVtƒ}|jddƒdd„}||_|jtj|ƒd ƒdd„}||_|jtj|ƒd ƒdS) Nú1.0z Hello World!cSs |dkr dS|dkrdSt‚dS)Nz sel.firstz1.0zsel.lastz1.12)r)Úsr r r ÚselLs z0GetSelectionTest.test_get_selection..selú1.12cSs|dkr dSt‚dS)NÚinsertz1.5)r)r&r r r ÚmarkTsz1GetSelectionTest.test_get_selection..markú1.5)r%r()r+r+)ÚmockTextr)Úindexr!r Z get_selection)rÚtextr'r*r r r Útest_get_selectionFs z#GetSelectionTest.test_get_selectionN)rrrr/r r r r r$9s r$c@seZdZdd„ZdS)ÚReverseSearchTestcCs�|j}d}tjdƒ}|tj||t|ƒƒjƒd ƒ|tj||dƒjƒd ƒ|tj||dƒjƒd ƒ|tj||dƒjƒd ƒ|tj||dƒdƒdS) NzHere is an 'is' test text.Úisé éé ééé)r2r3)r2r3)r5r6)r5r6)r!ÚreÚcompiler Zsearch_reverseÚlenÚspan)rÚEqualÚlineÚprogr r r Útest_search_reverse^s z%ReverseSearchTest.test_search_reverseN)rrrr?r r r r r0\sr0c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚSearchEngineTestcCstjdd�|_dS)N)r)r rr)rr r r ÚsetUplszSearchEngineTest.setUpcCsþ|j}|j}||jƒdƒ|jdƒ||jƒdƒ||jƒdƒ|jjdƒ||jƒdƒ||jƒdƒ|jjdƒ||jƒdƒ||j ƒdƒ|j jdƒ||j ƒdƒ||j ƒdƒ|j jdƒ||j ƒdƒ||j ƒdƒ|jjdƒ||j ƒdƒdS)NÚÚhelloFrTr)rr!ÚgetpatÚsetpatZisreÚrevarÚsetZiscaseÚcasevarZiswordÚwordvarZiswrapÚwrapvarZisbackÚbackvar)rrr<r r r Ú test_is_getqs(      zSearchEngineTest.test_is_getcCsJ|j}|jdƒ|j|jƒdƒ|jjdƒ|jdƒ|j|jƒdƒdS)Nz\srz\\s)rZ setcookedpatr!rDrFrG)rrr r r Útest_setcookedpat�s    z"SearchEngineTest.test_setcookedpatcCsŽ|j}|j}||jƒdƒ|jdƒ||jƒdƒ|jjdƒ||jƒdƒ|jjdƒ|jdƒ||jƒdƒ|jjdƒ||jƒdƒdS)NrBrCTz \bhello\bFz\sz\\s)rr!Z getcookedpatrErIrGrF)rrr<r r r Útest_getcookedpat•s     z"SearchEngineTest.test_getcookedpatcCs°|j}|j}|jdƒ|jƒ}||jtjdtjƒjƒ|jj dƒ|jƒ}||jtjdƒjdƒ|jdƒ||jƒdƒ|jdƒ|j j dƒ||jƒdƒ|jt j j dƒdS)NZHellorrrBú+z1Error: nothing to repeat at position 0 Pattern: +)rr!rEZgetprogÚpatternr8r9Ú IGNORECASErHrGrFrÚ showerrorÚmessage)rrr<Ztemppatr r r Ú test_getprog¥s      zSearchEngineTest.test_getprogcCs†tj}|j}d}d}||jj||ƒdƒ||jdƒd|d}||j|ƒ||jj||dƒdƒ||jdƒ|d7}||j|ƒdS)Nz[a-zz$unexpected end of regular expressionzRegular expression errorzError: z Pattern: [a-zr5z Offset: 5)rrRr!rZ report_errorÚtitlerS)rrRr<ÚpatÚmsgZexpected_messager r r Útest_report_error¸s    z"SearchEngineTest.test_report_errorN) rrrrArLrMrNrTrXr r r r r@is r@c@s eZdZedd„ƒZdd„ZdS)Ú SearchTestcCsNtƒ|_d}|jjd|ƒtjdƒ|_tjdƒ|_dd„|j_ dd„|j_ dS)Nz&First line Line with target Last line z1.0ÚtargetcWsd|fS)NÚfr )rr r r ÚÚsz'SearchTest.setUpClass..cWsd|fS)NÚbr )rr r r r\Ûs) r,r.r)r8r9rVr rrÚsearch_forwardÚsearch_backward)ÚclsÚ test_textr r r Ú setUpClassÌs   zSearchTest.setUpClassc Csx|j}|j}|j}|j}|j}|jjdƒ|||ƒdƒdd„}||_||||ƒd||ddddffƒ|jjdƒ||||ƒd||ddddffƒ|jjdƒ|j jdƒ||||ƒd||ddddffƒ|j jdƒd d „}||_||||ƒd||d d ddffƒ||||dƒd||d d ddffƒ|j jdƒ||||ƒd||d d ddffƒ||||dƒd||d d ddffƒdS)NcSs|dkr dSt‚dS)Nr)z1.5)r)r&r r r r*ísz$SearchTest.test_search..markr[rr5TFr]cSs |dkr dS|dkrdSt‚dS)Nz sel.firstz2.10zsel.lastz2.16)r)r&r r r r'ús z#SearchTest.test_search..selééé ) r!rZ search_textr.rVZpatvarrGr-rJrK)rr<rÚsearchr.rVr*r'r r r Ú test_searchâs.         "  zSearchTest.test_searchN)rrrÚ classmethodrbrgr r r r rYÉs rYc@s0eZdZedd„ƒZdd„Zdd„Zdd„Zd S) ÚForwardBackwardTestcCs`tjdƒ|_tƒ|_dd„|j_d}|jjd|ƒtjdƒ|_ d |_ tjd ƒ|_ tjd ƒ|_ dS) NcSsdS)Nz4.0r )r-r r r r\sz0ForwardBackwardTest.setUpClass..z&First line Line with target Last line z1.0rZrcrerdZxyzz\w*©rerd)rcrj) r rrr,r.r-r)r8r9rVÚresÚfailpatÚemptypat)r`rar r r rb s    zForwardBackwardTest.setUpClasscsd‡‡fdd„ }|S)Nrcs0ˆˆj|||||ƒ}|r,|d|djƒfS|S)Nrr)r.r;)rVr=ÚcolZwrapÚokrk)Úfuncrr r rf!sz/ForwardBackwardTest.make_search..search)rr )rrprfr )rprr Ú make_search szForwardBackwardTest.make_searchcCs¼|j}|j|jjƒ}|j}|||dddƒ|jƒ|||dddƒ|jƒ|||dddƒdƒ|||dddƒ|jƒ|||jdddƒdƒ|||jddddd �d ƒ|||jdddƒ|jƒdS) NrrTéFrcreé )ro©rsrs)rcrt)r!rqrr^rVrkrlrm)rr<ZforwardrVr r r Útest_search_forward'sz'ForwardBackwardTest.test_search_forwardcCsº|j}|j|jjƒ}|j}|||dddƒ|jƒ|||dddƒ|jƒ|||dddƒdƒ|||dddƒ|jƒ|||jdddƒdƒ|||jdd ddd �d ƒ|||jdddƒdƒdS)Nrrr5TrcrFrdrsre)ro©rsrs)rcrv©r5rs)rcrw)r!rqrr_rVrkrlrm)rr<ZbackwardrVr r r Útest_search_backward8sz(ForwardBackwardTest.test_search_backwardN)rrrrhrbrqrurxr r r r ris riÚ__main__rc)Ú verbosity)Ú__doc__Zidlelibrr ZunittestZtkinterrrrZtkinter.messageboxZ messageboxr Zidlelib.idle_test.mock_tkrrrr,r8r rrZTestCaserrr$r0r@rYrirÚmainr r r r Ús&    # `=C