£Á°è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>

],                 @   sy  d  d l  Z  d  d l Z d  d l m Z m Z m Z d  d l j Z d  d l	 m
 Z d  d l m Z m Z d  d l m Z d d   Z d d	   Z Gd
 d   d  Z Gd d   d e j  Z Gd d   d e j  Z Gd d   d e j  Z Gd d   d e j  Z Gd d   d e j  Z Gd d   d e j  Z Gd d   d e j  Z e d k rue j d d d d  d S)    N)
BooleanVar	StringVarTclError)SearchEngine)VarMbox)Textc               C   s   t  t _ t  t _ t t _ d  S)N)r   ser   r   r   tkMessageBox r   r   6/opt/alt/python35/lib64/python3.5/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__   s    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  _ z[ t   } t  j |  } |  j | t  j  |  j | j |  |  j t  j |  |  Wd  | t  _ Xd  S)N)r	   r   r   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   sb   |  j  t j d  d  |  j  t j d  d	  |  j t t j d  |  j t t j d  d  S)
Nz1.0   r   z1.11   z1.0 lineendend)r   r   )r   r   )assertEqualr	   Zget_line_colZassertRaises
ValueError)r   r   r   r   test_get_line_col1   s    z GetLineColTest.test_get_line_colN)r   r   r   r"   r   r   r   r   r   /   s   r   c               @   s   e  Z d  Z d d   Z d S)GetSelectionTestc             C   sy   t    } | j d d  d d   } | | _ |  j t j |  d	  d d   } | | _ |  j t j |  d
  d  S)N1.0zHello World!c             S   s*   |  d k r d S|  d k r  d St   d  S)Nz	sel.firstz1.0zsel.lastz1.12)r   )sr   r   r   selK   s
      z0GetSelectionTest.test_get_selection.<locals>.sel1.12c             S   s   |  d k r d St   d  S)Ninsertz1.5)r   )r%   r   r   r   markS   s     z1GetSelectionTest.test_get_selection.<locals>.mark1.5)r$   r'   )r*   r*   )mockTextr(   indexr    r	   Zget_selection)r   textr&   r)   r   r   r   test_get_selectionE   s    			z#GetSelectionTest.test_get_selectionN)r   r   r   r.   r   r   r   r   r#   8   s   r#   c               @   s   e  Z d  Z d d   Z d S)ReverseSearchTestc             C   s   |  j  } d } t j d  } | t j | | t |   j   d	  | t j | | d  j   d
  | t j | | d  j   d  | t j | | d  j   d  | t j | | d  d   d  S)NzHere is an 'is' test text.is                  )r1   r2   )r1   r2   )r4   r5   )r4   r5   )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               @   sX   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)Nr   )r	   r   r   )r   r   r   r   setUpk   s    zSearchEngineTest.setUpc             C   sW  |  j  } |  j } | | j   d  | j d  | | j   d  | | j   d  | j j d  | | j   d  | | j   d  | j j d  | | j   d  | | j	   d  | j
 j d  | | j	   d  | | j   d  | j j d  | | j   d  | | j   d  | j j d  | | j   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_getp   s(    		zSearchEngineTest.test_is_getc             C   sc   |  j  } | j d  |  j | j   d  | j j d  | j d  |  j | j   d  d  S)Nz\sr   z\\s)r   Zsetcookedpatr    rC   rE   rF   )r   r   r   r   r   test_setcookedpat   s    	z"SearchEngineTest.test_setcookedpatc             C   s   |  j  } |  j } | | j   d  | j d  | | j   d  | j j d  | | j   d  | j j d  | j d  | | j   d  | j j d  | | j   d  d  S)NrA   rB   Tz	\bhello\bFz\sz\\s)r   r    ZgetcookedpatrD   rH   rF   rE   )r   r   r;   r   r   r   test_getcookedpat   s    		z"SearchEngineTest.test_getcookedpatc             C   s   |  j  } |  j } | j d  | j   } | | j t j d t j  j  | j j	 d  | j   } | | j t j d  j d  | j d  | | j   d   | j d  | j
 j	 d  | | j   d   |  j t j j d  d  S)NZHellor   r   rA   +z1Error: nothing to repeat at position 0
Pattern: +)r   r    rD   Zgetprogpatternr7   r8   
IGNORECASErG   rF   rE   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 j | |  d   | | j d  d | d } | | j |  | |  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-zr4   z

Offset: 5)r   rQ   r    r   Zreport_errortitlerR   )r   rQ   r;   patmsgZexpected_messager   r   r   test_report_error   s    		
z"SearchEngineTest.test_report_errorN)	r   r   r   r@   rK   rL   rM   rS   rW   r   r   r   r   r?   h   s   r?   c               @   s.   e  Z d  Z e d d    Z d d   Z d S)
SearchTestc             C   sq   t    |  _ d } |  j j d |  t j d  |  _ t j 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>   s    z'SearchTest.setUpClass.<locals>.<lambda>c              W   s
   d |  f S)Nbr   )r   r   r   r   r[      s    )r+   r-   r(   r7   r8   rU   r	   r   r   search_forwardsearch_backward)cls	test_textr   r   r   
setUpClass   s    zSearchTest.setUpClassc          	   C   s  |  j  } |  j } | j } |  j } |  j } | j j d   | | |  d   d d   } | | _ | | | |  d | | d d d d f f  | j j d  | | | |  d | | d d d d f f  | j j d  | j	 j d  | | | |  d | | d d d d f f  | j	 j d  d	 d
   } | | _ | | | |  d | | d d d d f f  | | | | d  d | | d d d d f f  | j	 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 St   d  S)Nr(   z1.5)r   )r%   r   r   r   r)      s     z$SearchTest.test_search.<locals>.markrZ   r   r4   TFr\   c             S   s*   |  d k r d S|  d k r  d St   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-   rU   ZpatvarrF   r,   rI   rJ   )r   r;   r   searchr-   rU   r)   r&   r   r   r   test_search   s.    						...	.1.zSearchTest.test_searchN)r   r   r   classmethodra   rf   r   r   r   r   rX      s   rX   c               @   sF   e  Z d  Z e d d    Z d d   Z d d   Z d d   Z d	 S)
ForwardBackwardTestc             C   s   t  j d   |  _ t   |  _ d d   |  j _ d } |  j j d |  t j d  |  _	 d |  _
 t j d	  |  _ t j d
  |  _ d  S)Nc             S   s   d S)Nz4.0r   )r,   r   r   r   r[     s    z0ForwardBackwardTest.setUpClass.<locals>.<lambda>z&First line
Line with target
Last line
z1.0rY   rb   rd   rc   Zxyzz\w*rd   rc   )rb   ri   )r	   r   r   r+   r-   r,   r(   r7   r8   rU   resfailpatemptypat)r_   r`   r   r   r   ra     s    	zForwardBackwardTest.setUpClassc                s   d    f d d  } | S)Nr   c                s@      j  |  | | | |  } | r< | d | d j   f S| S)Nr   r   )r-   r:   )rU   r<   colwrapokrj   )funcr   r   r   re      s    z/ForwardBackwardTest.make_search.<locals>.searchr   )r   rp   re   r   )rp   r   r   make_search  s    zForwardBackwardTest.make_searchc             C   s
  |  j  } |  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   Frb   rd   	   ro   rs   rs   )rb   rt   )r    rq   r   r]   rU   rj   rk   rl   )r   r;   ZforwardrU   r   r   r   test_search_forward&  s    		%z'ForwardBackwardTest.test_search_forwardc             C   s  |  j  } |  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)Nrr   r4   Trb   r   Frc   rs   rd   ro   rs   rs   )rb   rv   r4   rs   )rb   rw   )r    rq   r   r^   rU   rj   rk   rl   )r   r;   ZbackwardrU   r   r   r   test_search_backward7  s    		%z(ForwardBackwardTest.test_search_backwardN)r   r   r   rg   ra   rq   ru   rx   r   r   r   r   rh     s   rh   __main__	verbosityrb   exit)r7   Zunittesttkinterr   r   r   Ztkinter.messageboxZ
messageboxr
   Zidlelibr   r	   Zidlelib.idle_test.mock_tkr   r   r   r+   r   r   r   ZTestCaser   r   r#   r/   r?   rX   rh   r   mainr   r   r   r   <module>   s$   	#`=C