B
Y¬Ü›`-ÞSã @ s¶ d Z ddlmZ ddlZddlmZ ddlmZ ddlZddl Z G dd„ dƒZ
e
ƒ ZG dd „ d ƒZeƒ Z
G d
d„ dejƒZG dd
„ d
ejƒZG dd„ dejƒZedkr²ejdd dS )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 @ s e Zd ZdZdd„ 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.
c C s | j S )N)Ú_pat)Úself© r ú@/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_grep.pyÚgetpat s zDummy_searchengine.getpatN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
r r r r r s r c @ s( e Zd ZejjZedƒZeZ dd„ Z
dS )Ú
Dummy_grepFc C s d S )Nr )r r r r Úclose" s zDummy_grep.closeN)r r r
r Z
GrepDialogÚgrep_itr ZrecvarÚsearchengineÚenginer r r r r r s r c @ sD e Zd Zedd„ ƒZedd„ ƒZdd„ Zdd„ Zd d
„ Zdd„ Z d
S )Ú
FindfilesTestc C s" t j t¡| _t j | j¡| _d S )N)ÚosÚpathÚrealpathÚ__file__Údirname)Úclsr r r Ú
setUpClass* s zFindfilesTest.setUpClassc C s | ` | `d S )N)r r )r r r r Ú
tearDownClass/ s zFindfilesTest.tearDownClassc C sD t ƒ }tt ddd¡ƒ}W d Q R X | |g ¡ | d| ¡ ¡ d S )NZ
invaliddirz*.*FZinvalid)r Úlistr Ú findfilesÚassertEqualÚassertInÚgetvalue)r ÚsÚfilelistr r r Útest_invaliddir3 s zFindfilesTest.test_invaliddirc C sV t j}t ¡ }t | j¡ d}t|tj|dƒƒ}| tj tj|¡|¡ t |¡ d S )Nztest_grep.pyF)
r r r ÚgetcwdÚchdirr r Úcurdirr Újoin)r ÚffZsave_cwdÚfilenamer# r r r Útest_curdir9 s zFindfilesTest.test_curdirc C s t j}tj | jd¡}t|| jddƒƒ}| t|ƒd¡ | | j |¡ |
||¡ t|| jddƒƒ}| t|ƒd¡ |
| j |¡ | ||¡ t|| jddƒƒ}| t|ƒd¡ |
| j |¡ d S )Nz
README.txtz*.pyFé
z*.txtr zgrep.*)
r r r r r( r Ú
assertGreaterÚlenr r ÚassertNotInZassertNotEqualr )r r) Zreadmer# r r r Ú test_baseC s zFindfilesTest.test_basec C sÌ t j}tj | j¡}tj |d¡}d}t|||dƒƒ}t|ƒ}| |d¡ | ||¡ |
| j|¡ t|||dƒƒ}| t|ƒ|¡ | ||¡ | | j|¡ tj |¡}t||ddƒƒ}| | j|¡ d S )Nzgrep.pyz*.pyFé T)r r r r r r( r r. r- r r/ r )r r) ÚparentZgrepfileÚpatr# Zparent_sizer r r Útest_recurseY s zFindfilesTest.test_recurseN)
r r r
Úclassmethodr r r$ r+ r0 r4 r r r r r ( s
r c @ s$ e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚGrep_itTestc C sF |t j_tƒ }t t |¡t¡ W d Q R X | ¡ d¡}|
¡ |S )NÚ
)Ú_grepr r r r ÚreÚcompiler r! ÚsplitÚpop)r r3 r" Úlinesr r r Úreport{ s zGrep_itTest.reportc C sB d}| |¡}| t|ƒd¡ | ||d ¡ | |d d¡ d S )Nzxyz*xyz*xyz*xyz*xyz*xyz*xyz*é r é zNo hits.)r> r r. r )r r3 r= r r r Útest_unfoundƒ s
zGrep_itTest.test_unfoundc C sf d}| |¡}| t|ƒd¡ | ||d ¡ | d|d ¡ | d|d ¡ | |d d ¡¡ d S )
Nz<""" !Changing this line will break Test_findfile.test_found!é r zpy: 1:r@ Ú2é é z(Hint:)r> r r. r Z
assertTrueÚ
startswith)r r3 r= r r r Ú
test_foundŠ s
zGrep_itTest.test_foundN)r r r
r> rA rG r r r r r6 v s r6 c @ s e Zd ZdS )ÚDefault_commandTestN)r r r
r r r r rH • s rH Ú__main__r? )Ú verbosity)r Zidlelibr ZunittestZtest.supportr Zidlelib.idle_test.mock_tkr r r9 r r r r8 ZTestCaser r6 rH r Úmainr r r r Ú