a 9êdgÐã@s²ddlmZddlZddlmZddlmZddlZddlZGdd„dƒZ e ƒZ Gdd„dƒZ e ƒZ Gd d „d ej ƒZGd d „d ej ƒZGd d„dej ƒZedkr®ejdddS)é)ÚgrepN)Úcaptured_stdout)ÚVarc@seZdZdd„ZdS)ÚDummy_searchenginecCs|jS©N)Ú_pat©Úself©r ú7/usr/local/lib/python3.9/idlelib/idle_test/test_grep.pyÚgetpatszDummy_searchengine.getpatN)Ú__name__Ú __module__Ú __qualname__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.pyr0FéT) rr!rrrr+r r3r2r#r4r)r r,ÚparentZgrepfileÚpatr&Z parent_sizer r r Ú test_recurseYs     zFindfilesTest.test_recurseN) r rrÚ classmethodrrr'r/r5r9r 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 r8r%Úlinesr r r Úreport{s 0zGrep_itTest.reportcCsBd}| |¡}| t|ƒd¡| ||d¡| |dd¡dS)Nzxyz*xyz*xyz*xyz*xyz*xyz*xyz*érézNo hits.)rCr"r3r#©r r8rBr 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:rEÚ2ééz(Hint:)rCr"r3r#Z assertTrueÚ startswithrFr r r Ú test_foundŠs zGrep_itTest.test_foundN)r rrrCrGrMr r r r r;vsr;c@s eZdZdS)ÚDefault_commandTestN)r rrr r r r rN•srNÚ__main__rD)Ú verbosity)ZidlelibrZunittestZ test.supportrZidlelib.idle_test.mock_tkrrr>rrrr=ZTestCaserr;rNr Úmainr r r r Ús    N