£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d-                 @   s  d dl mZ d dlZd dlmZmZmZ d dlm	Z
 d dlmZmZ d dlmZ d dlZdd Zdd	 ZG d
d dZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZedkr
ejdd dS )    )searchengineN)
BooleanVar	StringVarTclError)VarMbox)Textc               C   s   t t_t t_tt_d S )N)r   ser   r   r   tkMessageBox r   r   H/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_searchengine.pysetUpModule   s    r   c               C   s   t t_ tt_tt_d S )N)r   r	   r   r
   r   r   r   r   tearDownModule   s    r   c               @   s   e Zd Zdd ZdS )Mockc             O   s   d S )Nr   )selfargskwargsr   r   r   __init__        zMock.__init__N)__name__
__module____qualname__r   r   r   r   r   r      s   r   c               @   s   e Zd Zdd ZdS )GetTestc             C   s\   t j}tt _zBt }t |}| |t j | |j| | t || W d |t _X d S )N)r	   SearchEnginer   getZassertIsInstanceZassertIsZ_searchengine)r   Zsaved_Enginerootenginer   r   r   test_get$   s    
zGetTest.test_getN)r   r   r   r   r   r   r   r   r   "   s   r   c               @   s   e Zd Zdd ZdS )GetLineColTestc             C   sH   |  tdd |  tdd | ttjd | ttjd d S )Nz1.0)   r   z1.11)r      z1.0 lineendend)assertEqualr	   Zget_line_colZassertRaises
ValueError)r   r   r   r   test_get_line_col2   s    z GetLineColTest.test_get_line_colN)r   r   r   r$   r   r   r   r   r   0   s   r   c               @   s   e Zd Zdd ZdS )GetSelectionTestc             C   sV   t  }|dd dd }||_| t|d dd }||_| t|d d S )	Nz1.0zHello World!c             S   s    | dkrdS | dkrdS t d S )Nz	sel.firstz1.0zsel.lastz1.12)r   )sr   r   r   selL   s
      z0GetSelectionTest.test_get_selection.<locals>.sel)z1.0z1.12c             S   s   | dkrdS t d S )Ninsertz1.5)r   )r&   r   r   r   markT   s     z1GetSelectionTest.test_get_selection.<locals>.mark)z1.5z1.5)mockTextr(   indexr"   r	   Zget_selection)r   textr'   r)   r   r   r   test_get_selectionF   s    z#GetSelectionTest.test_get_selectionN)r   r   r   r-   r   r   r   r   r%   9   s   r%   c               @   s   e Zd Zdd ZdS )ReverseSearchTestc             C   s   | j }d}td}|t||t| d |t||d d |t||d d |t||d d |t||dd  d S )	NzHere is an 'is' test text.is)      r1      )      r4      )r"   recompiler	   Zsearch_reverselenspan)r   Equallineprogr   r   r   test_search_reverse^   s    
z%ReverseSearchTest.test_search_reverseN)r   r   r   r=   r   r   r   r   r.   \   s   r.   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )SearchEngineTestc             C   s   t jd d| _d S )N)r   )r	   r   r   )r   r   r   r   setUpl   s    zSearchEngineTest.setUpc             C   s   | j }| j}|| d |d || d || d |jd || d || d |jd || d ||	 d |j
d ||	 d || d |jd || d || d |jd || d d S )N helloFr   Tr   )r   r"   getpatsetpatZisrerevarsetZiscasecasevarZiswordwordvarZiswrapwrapvarZisbackbackvar)r   r   r:   r   r   r   test_is_getq   s(    
zSearchEngineTest.test_is_getc             C   sJ   | j }|d | | d |jd |d | | d d S )Nz\sr   z\\s)r   Zsetcookedpatr"   rB   rD   rE   )r   r   r   r   r   test_setcookedpat   s    

z"SearchEngineTest.test_setcookedpatc             C   s   | j }| j}|| d |d || d |jd || d |jd |d || d |jd || d d S )Nr@   rA   Tz	\bhello\bFz\sz\\s)r   r"   ZgetcookedpatrC   rG   rE   rD   )r   r   r:   r   r   r   test_getcookedpat   s    

z"SearchEngineTest.test_getcookedpatc             C   s   | j }| j}|d | }||jtdtjj |j	d | }||jtdjd |d || d  |d |j
	d || d  | tjjd d S )NZHellor   r   r@   +z1Error: nothing to repeat at position 0
Pattern: +)r   r"   rC   Zgetprogpatternr6   r7   
IGNORECASErF   rE   rD   r   	showerrormessage)r   r   r:   Ztemppatr   r   r   test_getprog   s    



zSearchEngineTest.test_getprogc             C   s   t j}| j}d}d}|| j||d  ||jd d| d }||j| || j||dd  ||jd |d7 }||j| d S )Nz[a-zz$unexpected end of regular expressionzRegular expression errorzError: z
Pattern: [a-zr3   z

Offset: 5)r   rP   r"   r   Zreport_errortitlerQ   )r   rP   r:   patmsgZexpected_messager   r   r   test_report_error   s    z"SearchEngineTest.test_report_errorN)	r   r   r   r?   rJ   rK   rL   rR   rV   r   r   r   r   r>   i   s   r>   c               @   s    e Zd Zedd Zdd ZdS )
SearchTestc             C   sN   t  | _d}| jd| td| _td | _dd | j_	dd | j_
d S )Nz&First line
Line with target
Last line
z1.0targetc              W   s   d| fS )Nfr   )r   r   r   r   <lambda>   r   z'SearchTest.setUpClass.<locals>.<lambda>c              W   s   d| fS )Nbr   )r   r   r   r   rZ      r   )r*   r,   r(   r6   r7   rT   r	   r   r   search_forwardsearch_backward)cls	test_textr   r   r   
setUpClass   s    zSearchTest.setUpClassc          	   C   sx  | j }| j}|j}| j}| j}|jd  |||d  dd }||_||||d||ddddff |jd ||||d||ddddff |jd |j	d ||||d||ddddff |j	d d	d
 }||_||||d||ddddff ||||dd||ddddff |j	d ||||d||ddddff ||||dd||ddddff d S )Nc             S   s   | dkrdS t d S )Nr(   z1.5)r   )r&   r   r   r   r)      s     z$SearchTest.test_search.<locals>.markrY   r   r3   TFr[   c             S   s    | dkrdS | dkrdS t d S )Nz	sel.firstz2.10zsel.lastz2.16)r   )r&   r   r   r   r'      s
      z#SearchTest.test_search.<locals>.sel      
   )
r"   r   Zsearch_textr,   rT   ZpatvarrE   r+   rH   rI   )r   r:   r   searchr,   rT   r)   r'   r   r   r   test_search   s.        " zSearchTest.test_searchN)r   r   r   classmethodr`   re   r   r   r   r   rW      s   rW   c               @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
ForwardBackwardTestc             C   s`   t d | _t | _dd | j_d}| jd| td| _	d| _
td| _td| _d S )	Nc             S   s   dS )Nz4.0r   )r+   r   r   r   rZ     r   z0ForwardBackwardTest.setUpClass.<locals>.<lambda>z&First line
Line with target
Last line
z1.0rX   )ra   )rc   rb   Zxyzz\w*)r	   r   r   r*   r,   r+   r(   r6   r7   rT   resfailpatemptypat)r^   r_   r   r   r   r`     s    zForwardBackwardTest.setUpClassc                s   d fdd	}|S )Nr   c                s0    j | ||||}|r,|d |d  fS |S )Nr   r   )r,   r9   )rT   r;   colwrapokrh   )funcr   r   r   rd   !  s    z/ForwardBackwardTest.make_search.<locals>.search)r   r   )r   rn   rd   r   )rn   r   r   make_search   s    zForwardBackwardTest.make_searchc             C   s   | j }| | jj}| j}|||ddd| j |||ddd| j |||dddd  |||ddd| j ||| jdddd  ||| jddddd	d
 ||| jddd| j d S )Nr   r   T   Fra   rc   	   )rm   )ra   )rq   rq   )r"   ro   r   r\   rT   rh   ri   rj   )r   r:   ZforwardrT   r   r   r   test_search_forward'  s    z'ForwardBackwardTest.test_search_forwardc             C   s   | j }| | jj}| j}|||ddd| j |||ddd| j |||dddd  |||ddd| j ||| jdddd  ||| jdd	ddd
d ||| jdddd d S )Nrp   r3   Tra   r   Frb   rq   rc   )rm   )ra   )rq   rq   )ra   )r3   rq   )r"   ro   r   r]   rT   rh   ri   rj   )r   r:   ZbackwardrT   r   r   r   test_search_backward8  s    z(ForwardBackwardTest.test_search_backwardN)r   r   r   rf   r`   ro   rr   rs   r   r   r   r   rg     s   rg   __main__ra   )	verbosity)Zidlelibr   r	   ZunittestZtkinterr   r   r   Ztkinter.messageboxZ
messageboxr
   Zidlelib.idle_test.mock_tkr   r   r   r*   r6   r   r   r   ZTestCaser   r   r%   r.   r>   rW   rg   r   mainr   r   r   r   <module>   s$   	#`=C
