B ãxácÐã@s¶dZddlmZddlZddlmZddlmZddlZddl Z Gdd„dƒZ e ƒZ Gdd „d ƒZ e ƒZ Gd d „d ejƒZGd d „d ejƒZGdd„dejƒZedkr²ejdddS)a  !Changing this line will break Test_findfile.test_found! Non-gui unit tests for grep.GrepDialog methods. dummy_command calls grep_it calls findfiles. An exception raised in one method will fail callers. Otherwise, tests are mostly independent. Currently only test grep_it, coverage 51%. é)ÚgrepN)Úcaptured_stdout)ÚVarc@seZdZdZdd„ZdS)ÚDummy_searchenginezÒGrepDialog.__init__ calls parent SearchDiabolBase which attaches the passed in SearchEngine instance as attribute 'engine'. Only a few of the many possible self.engine.x attributes are needed here. cCs|jS)N)Ú_pat)Úself©rú@/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_grep.pyÚgetpatszDummy_searchengine.getpatN)Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrrr rsrc@s(eZdZejjZedƒZeZ dd„Z dS)Ú Dummy_grepFcCsdS)Nr)rrrr Úclose"szDummy_grep.closeN) r r r rZ GrepDialogÚgrep_itrZrecvarÚ searchengineÚenginerrrrr rsrc@sDeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d S)Ú FindfilesTestcCs"tj t¡|_tj |j¡|_dS)N)ÚosÚpathÚrealpathÚ__file__Údirname)Úclsrrr Ú setUpClass*szFindfilesTest.setUpClasscCs |`|`dS)N)rr)rrrr Ú tearDownClass/szFindfilesTest.tearDownClassc CsDtƒ}tt ddd¡ƒ}WdQRX| |g¡| d| ¡¡dS)NZ invaliddirz*.*FZinvalid)rÚlistrÚ findfilesÚ assertEqualÚassertInÚgetvalue)rÚsÚfilelistrrr Útest_invaliddir3s zFindfilesTest.test_invaliddircCsVtj}t ¡}t |j¡d}t|tj|dƒƒ}| tj  tj|¡|¡t |¡dS)Nz test_grep.pyF) rrrÚgetcwdÚchdirrrÚcurdirr Újoin)rÚffZsave_cwdÚfilenamer#rrr Ú test_curdir9s zFindfilesTest.test_curdircCsÂtj}tj |jd¡}t||jddƒƒ}| t|ƒd¡| |j |¡|  ||¡t||jddƒƒ}|  t|ƒd¡|  |j |¡| ||¡t||jddƒƒ}|  t|ƒd¡|  |j |¡dS)Nz README.txtz*.pyFé z*.txtrzgrep.*) rrrrr(rÚ assertGreaterÚlenr rÚ assertNotInZassertNotEqualr)rr)Zreadmer#rrr Ú test_baseCs  zFindfilesTest.test_basecCsÌtj}tj |j¡}tj |d¡}d}t|||dƒƒ}t|ƒ}| |d¡|  ||¡|  |j |¡t|||dƒƒ}| t|ƒ|¡|  ||¡|  |j |¡tj |¡}t||ddƒƒ}|  |j |¡dS)Nzgrep.pyz*.pyFéT) rrrrrr(rr.r-r r/r)rr)ÚparentZgrepfileÚpatr#Z parent_sizerrr Ú test_recurseYs     zFindfilesTest.test_recurseN) r r r Ú classmethodrrr$r+r0r4rrrr r(s    rc@s$eZdZdd„Zdd„Zdd„ZdS)Ú Grep_itTestc CsF|tj_tƒ}t t |¡t¡WdQRX| ¡  d¡}|  ¡|S)NÚ ) Ú_greprrrrÚreÚcompilerr!ÚsplitÚpop)rr3r"Úlinesrrr Úreport{s zGrep_itTest.reportcCsBd}| |¡}| t|ƒd¡| ||d¡| |dd¡dS)Nzxyz*xyz*xyz*xyz*xyz*xyz*xyz*érézNo hits.)r>rr.r )rr3r=rrr Ú test_unfoundƒs  zGrep_itTest.test_unfoundcCsfd}| |¡}| t|ƒd¡| ||d¡| d|d¡| d|d¡| |d d ¡¡dS) Nz<""" !Changing this line will break Test_findfile.test_found!érzpy: 1:r@Ú2ééz(Hint:)r>rr.r Z assertTrueÚ startswith)rr3r=rrr Ú test_foundŠs zGrep_itTest.test_foundN)r r r r>rArGrrrr r6vsr6c@s eZdZdS)ÚDefault_commandTestN)r r r rrrr rH•srHÚ__main__r?)Ú verbosity)rZidlelibrZunittestZ test.supportrZidlelib.idle_test.mock_tkrrr9rrrr8ZTestCaserr6rHr Úmainrrrr Ús    N