î e fñ,ã@s‚dZddlZddlZddlmZmZmZddljZ ddl m Z ddl mZmZddl mZdd„Zd d „ZGd d „d ƒZGd d„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZedkr~ejddddƒndS)z9Test functions and SearchEngine class in SearchEngine.py.éN)Ú BooleanVarÚ StringVarÚTclError)Ú SearchEngine)ÚVarÚMbox)ÚTextcCstt_tt_tt_dS)N)rÚserrrÚ tkMessageBox©r r úH/opt/alt/python34/lib64/python3.4/idlelib/idle_test/test_searchengine.pyÚ setUpModules  r cCstt_tt_tt_dS)N)rr rr r r r r ÚtearDownModules  rc@seZdZdd„ZdS)ÚMockcOsdS)Nr )ÚselfÚargsÚkwargsr r r Ú__init__sz Mock.__init__N)Ú__name__Ú __module__Ú __qualname__rr r r r rs rc@seZdZdd„ZdS)ÚGetTestc Cs~tj}tt_z[tƒ}tj|ƒ}|j|tjƒ|j|j|ƒ|jtj|ƒ|ƒWd|t_XdS)N)r rrÚgetZassertIsInstanceZassertIsZ _searchengine)rZ saved_EngineÚrootÚenginer r r Útest_get#s   zGetTest.test_getN)rrrrr r r r r!s rc@seZdZdd„ZdS)ÚGetLineColTestcCsb|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_col1sz GetLineColTest.test_get_line_colN)rrrr"r r r r r/s rc@seZdZdd„ZdS)ÚGetSelectionTestcCsytƒ}|jddƒdd„}||_|jtj|ƒd ƒdd„}||_|jtj|ƒd ƒdS) Nú1.0z Hello World!cSs*|dkrdS|dkr dSt‚dS)Nz sel.firstz1.0zsel.lastz1.12)r)Úsr r r ÚselKs   z0GetSelectionTest.test_get_selection..selú1.12cSs|dkrdSt‚dS)NÚinsertz1.5)r)r%r r r ÚmarkSs z1GetSelectionTest.test_get_selection..markú1.5)r$r')r*r*)ÚmockTextr(Úindexr r Z get_selection)rÚtextr&r)r r r Útest_get_selectionEs     z#GetSelectionTest.test_get_selectionN)rrrr.r r r r r#8s 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é éé ééé)r1r2)r1r2)r4r5)r4r5)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 r/[s r/c@sXeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚSearchEngineTestcCstjddƒ|_dS)Nr)r rr)rr r r ÚsetUpkszSearchEngineTest.setUpcCsW|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_getps(   zSearchEngineTest.test_is_getcCsc|j}|jdƒ|j|jƒdƒ|jjdƒ|jdƒ|j|jƒdƒdS)Nz\srz\\s)rZ setcookedpatr rCrErF)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)NrArBTz \bhello\bFz\sz\\s)rr Z getcookedpatrDrHrFrE)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)NZHellorrrAú+z#Error: nothing to repeat Pattern: +)rr rDZgetprogÚpatternr7r8Ú IGNORECASErGrFrErÚ 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-zr4z Offset: 5)rrQr rZ report_errorÚtitlerR)rrQr;ÚpatÚmsgZexpected_messager r r Útest_report_error·s   z"SearchEngineTest.test_report_errorN) rrrr@rKrLrMrSrWr r r r r?hs      r?c@s.eZdZedd„ƒZdd„ZdS)Ú SearchTestcCsqtƒ|_d}|jjd|ƒtjdƒ|_tjdƒ|_dd„|j_ dd„|j_ dS)Nz&First line Line with target Last line z1.0ÚtargetcWs d|fS)NÚfr )rr r r ÚÙsz'SearchTest.setUpClass..cWs d|fS)NÚbr )rr r r r[Ús) r+r-r(r7r8rUr rrÚsearch_forwardÚsearch_backward)ÚclsÚ test_textr r r Ú setUpClassËs zSearchTest.setUpClassc Cs|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|dkrdSt‚dS)Nr(z1.5)r)r%r r r r)ìs z$SearchTest.test_search..markrZrr4TFr\cSs*|dkrdS|dkr dSt‚dS)Nz sel.firstz2.10zsel.lastz2.16)r)r%r r r r&ùs   z#SearchTest.test_search..selééé ) r rZ search_textr-rUZpatvarrFr,rIrJ)rr;rÚsearchr-rUr)r&r r r Ú test_searchás.       ...  .1.zSearchTest.test_searchN)rrrÚ classmethodrarfr r r r rXÈs rXc@sFeZdZedd„ƒ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.0rYrbrdrcZxyzz\w*©rdrc)rbri) r rrr+r-r,r(r7r8rUÚresÚfailpatÚemptypat)r_r`r r r ra s  zForwardBackwardTest.setUpClasscsd‡‡fdd†}|S)Nrcs@ˆˆj|||||ƒ}|r<|d|djƒfS|S)Nrr)r-r:)rUr<ÚcolZwrapÚokrj)Úfuncrr r re sz/ForwardBackwardTest.make_search..searchr )rrorer )rorr Ú make_searchszForwardBackwardTest.make_searchcCs |j}|j|jjƒ}|j}|||dddƒ|jƒ|||dddƒ|jƒ|||dddƒdƒ|||dddƒ|jƒ|||jdddƒdƒ|||jdddd dƒd ƒ|||jdddƒ|jƒdS) NrrTéFrbrdé rn©rrrr)rbrs)r rprr]rUrjrkrl)rr;ZforwardrUr r r Útest_search_forward&s  %z'ForwardBackwardTest.test_search_forwardcCs|j}|j|jjƒ}|j}|||dddƒ|jƒ|||dddƒ|jƒ|||dddƒdƒ|||dddƒ|jƒ|||jdddƒdƒ|||jdd dd dƒd ƒ|||jdddƒdƒdS)Nrqr4TrbrFrcrrrdrn©rrrr)rbru©r4rr)rbrv)r rprr^rUrjrkrl)rr;ZbackwardrUr r r Útest_search_backward7s  %z(ForwardBackwardTest.test_search_backwardN)rrrrgrarprtrwr r r r rhs   rhÚ__main__Ú verbosityrbÚexit)Ú__doc__r7ZunittestZtkinterrrrZtkinter.messageboxZ messageboxr Zidlelibrr Zidlelib.idle_test.mock_tkrrrr+r rrZTestCaserrr#r/r?rXrhrÚmainr r r r Ús&     # `=C