a  ze@sdZddlmZddlZddlmZddlmZddlZddl Z GdddZ e Z Gdd d Z e Z Gd d d ejZGd d d ejZGdddejZedkrejdddS)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@seZdZdZddZdS)Dummy_searchenginezGrepDialog.__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|jSN)_patselfr O/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/idle_test/test_grep.pygetpatszDummy_searchengine.getpatN)__name__ __module__ __qualname____doc__r r r r r rsrc@s(eZdZejjZedZeZ ddZ dS) Dummy_grepFcCsdSrr rr r r close"szDummy_grep.closeN) r rrrZ GrepDialoggrep_itrZrecvar searchengineenginerr r r r rsrc@sDeZdZeddZeddZddZddZd d Zd d Z d S) FindfilesTestcCs"tjt|_tj|j|_dSr)ospathrealpath__file__dirnameclsr r r setUpClass*szFindfilesTest.setUpClasscCs |`|`dSr)rrrr r r tearDownClass/szFindfilesTest.tearDownClasscCsXt"}ttddd}Wdn1s.0Y||g|d|dS)NZ invaliddirz*.*Finvalid)rlistr findfiles assertEqualassertIngetvalue)r sfilelistr r r test_invaliddir3s0 zFindfilesTest.test_invaliddircCsVtj}t}t|jd}t|tj|d}|tj tj||t|dS)Nz test_grep.pyF) rr"rgetcwdchdirrr!curdirr$join)r ffsave_cwdfilenamer'r r r test_curdir9s zFindfilesTest.test_curdircCstj}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! assertGreaterlenr$r assertNotInZassertNotEqualr#)r r-Zreadmer'r r r test_baseCs  zFindfilesTest.test_basecCstj}tj|j}tj|d}d}t|||d}t|}||d| ||| |j |t|||d}|t||| ||| |j |tj|}t||dd}| |j |dS)Nzgrep.pyr1FT) rr"rrrr,r!r4r3r$r5r)r r-parentZgrepfilepatr'Z parent_sizer r r test_recurseYs     zFindfilesTest.test_recurseN) r rr classmethodrrr(r0r6r:r r r r r(s   rc@s$eZdZddZddZddZdS) Grep_itTestcCsZ|tj_t"}tt|tWdn1s60Y| d}| |S)N ) _greprrrrrecompilerr%splitpop)r r9r&linesr r r report{s 0zGrep_itTest.reportcCsBd}||}|t|d|||d||dddS)Nzxyz*xyz*xyz*xyz*xyz*xyz*xyz*rzNo hits.)rDr#r4r$r r9rCr r r test_unfounds  zGrep_itTest.test_unfoundcCsfd}||}|t|d|||d|d|d|d|d||dd dS) Nz<""" !Changing this line will break Test_findfile.test_found!rzpy: 1:rF2z(Hint:)rDr#r4r$Z assertTrue startswithrGr r r test_founds zGrep_itTest.test_foundN)r rrrDrHrNr r r r r<vsr<c@s eZdZdS)Default_commandTestN)r rrr r r r rOsrO__main__rE) verbosity)rZidlelibrZunittestZ test.supportrZidlelib.idle_test.mock_tkrrr?rrrr>ZTestCaserr<rOr mainr r r r s    N