a 9êdgÐã@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 ú7/usr/local/lib/python3.9/idlelib/idle_test/test_grep.pyÚgetpatszDummy_searchengine.getpatN)Ú__name__Ú __module__Ú __qualname__Ú__doc__r r r r r rsrc@s(eZdZejjZedƒZeZ dd„Z dS)Ú Dummy_grepFcCsdSrr rr r r Úclose"szDummy_grep.closeN) r rrrZ GrepDialogÚgrep_itrZrecvarÚ searchengineÚenginerr r r r rsrc@sDeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d S)Ú FindfilesTestcCs"tj t¡|_tj |j¡|_dSr)ÚosÚpathÚrealpathÚ__file__Údirname©Úclsr r r Ú setUpClass*szFindfilesTest.setUpClasscCs |`|`dSr)rrrr r r Ú tearDownClass/szFindfilesTest.tearDownClasscCsXtƒ"}tt ddd¡ƒ}Wdƒn1s.0Y| |g¡| d| ¡¡dS)NZ invaliddirz*.*FÚinvalid)rÚlistrÚ findfilesÚ assertEqualÚassertInÚgetvalue)r ÚsÚfilelistr r r Útest_invaliddir3s0 zFindfilesTest.test_invaliddircCsVtj}t ¡}t |j¡d}t|tj|dƒƒ}| tj  tj|¡|¡t |¡dS)Nz test_grep.pyF) rr"rÚgetcwdÚchdirrr!Úcurdirr$Újoin)r ÚffÚsave_cwdÚfilenamer'r r r Ú 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.txtú*.pyFé z*.txtrzgrep.*) rr"rrr,r!Ú assertGreaterÚlenr$rÚ assertNotInZassertNotEqualr#)r r-Zreadmer'r r r Ú 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.pyr1FéT) rr"rrrr,r!r4r3r$r5r)r r-ÚparentZgrepfileÚpatr'Z parent_sizer r r Ú test_recurseYs     zFindfilesTest.test_recurseN) r rrÚ classmethodrrr(r0r6r:r r r r r(s   rc@s$eZdZdd„Zdd„Zdd„ZdS)Ú Grep_itTestcCsZ|tj_tƒ"}t t |¡t¡Wdƒn1s60Y| ¡  d¡}|  ¡|S)NÚ ) Ú_greprrrrÚreÚcompilerr%ÚsplitÚpop)r r9r&Úlinesr r r Úreport{s 0zGrep_itTest.reportcCsBd}| |¡}| t|ƒd¡| ||d¡| |dd¡dS)Nzxyz*xyz*xyz*xyz*xyz*xyz*xyz*érézNo hits.)rDr#r4r$©r r9rCr r r Ú 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:rFÚ2ééz(Hint:)rDr#r4r$Z assertTrueÚ startswithrGr r r Ú test_foundŠs zGrep_itTest.test_foundN)r rrrDrHrNr r r r r<vsr<c@s eZdZdS)ÚDefault_commandTestN)r rrr r r r rO•srOÚ__main__rE)Ú verbosity)rZidlelibrZunittestZ test.supportrZidlelib.idle_test.mock_tkrrr?rrrr>ZTestCaserr<rOr Úmainr r r r Ús    N