B 0‘c-ã@sddlmZddlZddlmZmZmZddlm Z ddl m Z m Z ddl mZddlZdd„Zdd „ZGd d „d ƒZGd d „d ejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZedkr ejdddS)é)Ú searchengineN)Ú BooleanVarÚ StringVarÚTclError)ÚVarÚMbox)ÚTextcCstt_tt_tt_dS)N)rÚserrrÚ tkMessageBox©r r úH/opt/alt/python37/lib64/python3.7/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__ óz Mock.__init__N)Ú__name__Ú __module__Ú __qualname__rr r r r rsrc@seZdZdd„ZdS)ÚGetTestcCs\tj}tt_zBtƒ}t |¡}| |tj¡| |j|¡| t |¡|¡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| t d¡d¡| t d¡d¡| ttjd¡| ttjd¡dS)Nz1.0)érz1.11)ré z 1.0 lineendÚend)Ú 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ƒ}| dd¡dd„}||_| t |¡d¡dd„}||_| t |¡d¡dS) Nz1.0z Hello World!cSs |dkr dS|dkrdSt‚dS)Nz sel.firstz1.0zsel.lastz1.12)r)Úsr r r ÚselLs z0GetSelectionTest.test_get_selection..sel)z1.0z1.12cSs|dkr dSt‚dS)NÚinsertz1.5)r)r&r r r ÚmarkTsz1GetSelectionTest.test_get_selection..mark)z1.5z1.5)Ú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}t d¡}|t ||t|ƒ¡ ¡dƒ|t ||d¡ ¡dƒ|t ||d¡ ¡dƒ|t ||d¡ ¡dƒ|t ||d¡dƒdS) NzHere is an 'is' test text.Úis)é ér1é )éér4é)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.\sr.c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚSearchEngineTestcCstjdd|_dS)N)r)r rr)rr r r ÚsetUplszSearchEngineTest.setUpcCsþ|j}|j}|| ¡dƒ| d¡|| ¡dƒ|| ¡dƒ|j d¡|| ¡dƒ|| ¡dƒ|j d¡|| ¡dƒ||  ¡dƒ|j  d¡||  ¡dƒ||  ¡dƒ|j  d¡||  ¡dƒ||  ¡dƒ|j d¡||  ¡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}| d¡| | ¡d¡|j d¡| d¡| | ¡d¡dS)Nz\srz\\s)rZ setcookedpatr"rBrDrE)rrr r r Útest_setcookedpats    z"SearchEngineTest.test_setcookedpatcCsŽ|j}|j}|| ¡dƒ| d¡|| ¡dƒ|j d¡|| ¡dƒ|j d¡| d¡|| ¡dƒ|j d¡|| ¡dƒdS)Nr@rATz \bhello\bFz\sz\\s)rr"Z getcookedpatrCrGrErD)rrr:r r r Útest_getcookedpat•s     z"SearchEngineTest.test_getcookedpatcCs°|j}|j}| d¡| ¡}||jt dtj¡jƒ|j  d¡| ¡}||jt d¡jdƒ| d¡|| ¡dƒ| d¡|j   d¡|| ¡dƒ| t j j d¡dS)NZHellorrr@ú+z1Error: nothing to repeat at position 0 Pattern: +)rr"rCZgetprogÚpatternr6r7Ú IGNORECASErFrErDrÚ showerrorÚmessage)rrr:Ztemppatr r r Ú test_getprog¥s      zSearchEngineTest.test_getprogcCs†tj}|j}d}d}||j ||¡dƒ||jdƒd|d}||j|ƒ||j ||d¡dƒ||jdƒ|d7}||j|ƒdS)Nz[a-zz$unexpected end of regular expressionzRegular expression errorzError: z Pattern: [a-zr3z Offset: 5)rrPr"rZ report_errorÚtitlerQ)rrPr:ÚpatÚmsgZexpected_messager r r Útest_report_error¸s    z"SearchEngineTest.test_report_errorN) rrrr?rJrKrLrRrVr r r r r>is r>c@s eZdZedd„ƒZdd„ZdS)Ú SearchTestcCsNtƒ|_d}|j d|¡t d¡|_t d¡|_dd„|j_ dd„|j_ dS)Nz&First line Line with target Last line z1.0ÚtargetcWsd|fS)NÚfr )rr r r ÚÚrz'SearchTest.setUpClass..cWsd|fS)NÚbr )rr r r rZÛr) r*r,r(r6r7rTr rrÚsearch_forwardÚsearch_backward)ÚclsÚ test_textr r r Ú setUpClassÌs   zSearchTest.setUpClassc Csx|j}|j}|j}|j}|j}|j d¡|||ƒdƒdd„}||_||||ƒd||ddddffƒ|j d¡||||ƒd||ddddffƒ|j d¡|j  d¡||||ƒd||ddddffƒ|j  d¡d d „}||_||||ƒd||d d ddffƒ||||dƒd||d d ddffƒ|j  d¡||||ƒ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..markrYrr3TFr[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,rTZpatvarrEr+rHrI)rr:rÚsearchr,rTr)r'r r r Ú test_searchâs.         "  zSearchTest.test_searchN)rrrÚ classmethodr`rer r r r rWÉs rWc@s0eZdZedd„ƒZdd„Zdd„Zdd„Zd S) ÚForwardBackwardTestcCs`t d¡|_tƒ|_dd„|j_d}|j d|¡t d¡|_ d|_ t d¡|_ t d¡|_ dS) NcSsdS)Nz4.0r )r+r r r rZrz0ForwardBackwardTest.setUpClass..z&First line Line with target Last line z1.0rX)ra)rcrbZxyzz\w*) r rrr*r,r+r(r6r7rTÚresÚfailpatÚemptypat)r^r_r r r r` s    zForwardBackwardTest.setUpClasscsd‡‡fdd„ }|S)Nrcs0ˆˆj|||||ƒ}|r,|d|d ¡fS|S)Nrr)r,r9)rTr;ÚcolÚwrapÚokrh)Úfuncrr r rd!sz/ForwardBackwardTest.make_search..search)rr )rrnrdr )rnrr Ú make_search szForwardBackwardTest.make_searchcCs¼|j}| |jj¡}|j}|||dddƒ|jƒ|||dddƒ|jƒ|||dddƒdƒ|||dddƒ|jƒ|||jdddƒdƒ|||jddddd d ƒ|||jdddƒ|jƒdS) NrrTéFrarcé )rm)ra)rqrq)r"rorr\rTrhrirj)rr:ZforwardrTr r r Útest_search_forward'sz'ForwardBackwardTest.test_search_forwardcCsº|j}| |jj¡}|j}|||dddƒ|jƒ|||dddƒ|jƒ|||dddƒdƒ|||dddƒ|jƒ|||jdddƒdƒ|||jdd ddd d ƒ|||jdddƒd ƒdS) Nrpr3TrarFrbrqrc)rm)ra)rqrq)ra)r3rq)r"rorr]rTrhrirj)rr:ZbackwardrTr r r Útest_search_backward8sz(ForwardBackwardTest.test_search_backwardN)rrrrfr`rorrrsr r r r rgs rgÚ__main__ra)Ú verbosity)Zidlelibrr ZunittestZtkinterrrrZtkinter.messageboxZ messageboxr Zidlelib.idle_test.mock_tkrrrr*r6r rrZTestCaserrr%r.r>rWrgrÚmainr r r r Ús$    # `=C