£Á°è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>

]p                  @   s   d  d l  m Z e d  d  d l Z d  d l m Z d  d l m Z m Z d  d l m	 Z	 d  d l
 j Z d  d l j Z e j Z e	 j Z Gd d   d e j  Z e d	 k r e j d
 d  d S)    )requiresZguiN)Mock)TkText)Mboxc               @   s   e  Z d  Z e d d    Z e d d    Z d d   Z d d   Z d	 d
   Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d S)ReplaceDialogTestc             C   s   t    |  _ |  j j   t t _ t j |  j  |  _ t j	 |  j |  j  |  _
 t   |  j
 _ t |  j  |  _ t   |  j _ t   |  j _ |  j |  j
 _ d  S)N)r   rootZwithdrawr   setkMessageBoxSearchEngineenginerdReplaceDialogdialogr   okr   textZundo_block_startZundo_block_stop)cls r   7/opt/alt/python35/lib64/python3.5/test_replacedialog.py
setUpClass   s    	zReplaceDialogTest.setUpClassc             C   s2   t  t _ |  ` |  ` |  ` |  j j   |  ` d  S)N)	orig_mboxr	   r
   r   r   r   r   Zdestroy)r   r   r   r   tearDownClass   s    	zReplaceDialogTest.tearDownClassc             C   s   |  j  j d d  d  S)NinsertzThis is a sample sTring)r   r   )selfr   r   r   setUp&   s    zReplaceDialogTest.setUpc             C   s   |  j  j j d  |  j j j d  |  j  j j d  |  j  j j d  |  j  j j d  |  j  j j d  |  j  j	 j d  d t
 _ d t
 _ |  j j d d  d  S)N FTz1.0end)r   patvarsetr   replvarwordvarcasevarrevarwrapvarbackvar	showerrortitlemessager   delete)r   r   r   r   tearDown)   s    		zReplaceDialogTest.tearDownc             C   s  |  j  } |  j } |  j j } |  j j } |  j j } |  j j d  | |  j j   | j	    | j
 d  | j
 d  |  j j |  j   |   | | j	 d d  d  | j d d  | j
 d  | j
 d  |   | | j	 d	 d
  d  | j
 d  | j
 d  |   | | j	 d d  d  | j d d  | j d d  | j	 d d  } | j
 d  |   | j	 d d  } | | |  | j d d  | j
 d  | j
 d  |   | | j	 d  d  | | j	 d  d  |   | | j	 d  d  | | j	 d  d  | j	 d d  } |   | j	 d d  } | | |  | j	 d d  } | j
 d  |   | j	 d d  } | | |  |  j j d  d  S)NZasdfaz1.8z1.12r   z1.0ishelloz1.2z1.7stringZworldz1.23z1.28r   z
line42:z
[a-z][\d]+z1.9ijz2.1foobarr   )r   assertEqualr   r   r   r   
replace_itZsetpatZgetpatgetr   openmark_setr   Zfind_it)r   r   equalpvrvreplacebefore_text
after_textr   r   r   test_replace_simple5   s^    		z%ReplaceDialogTest.test_replace_simplec             C   sO  |  j  } |  j } |  j j } |  j j } |  j j } |  j j j d  | j	 d d  | j d  | j d  |   | | j
 d  d  | | j
 d  d  |   | | j
 d  d  | | j
 d  d  |   | | j
 d  d  | j	 d d	  | j d
  | j
 d d  } |   | j
 d d  } | | |  d  S)NFr   z1.4r.   r/   z1.2z1.5z1.20z1.8r+   z1.0r   )r   r1   r   r   r   r   r2   r#   r   r5   r3   )r   r   r6   r7   r8   r9   r:   r;   r   r   r   test_replace_wrap_around|   s.    		z*ReplaceDialogTest.test_replace_wrap_aroundc             C   s   |  j  } |  j } |  j j } |  j j } |  j j } |  j j j d  | j d  | j d  |   | | j	 d d  d  | | j	 d d  d  d  S)	NTr+   r,   z1.0z1.4Thisz1.5z1.10)
r   r1   r   r   r   r   r2   r    r   r3   )r   r   r6   r7   r8   r9   r   r   r   test_replace_whole_word   s    		z)ReplaceDialogTest.test_replace_whole_wordc             C   s   |  j  } |  j } |  j j } |  j j } |  j j } |  j j j d  |  j j	 d d  } | j d  | j d  |   |  j j	 d d  } | | |  | j d  |   | | j	 d d  d  d  S)NTz1.0r   thisthatr>   z1.4)
r1   r   r   r   r   r   r2   r!   r   r3   )r   r6   r   r7   r8   r9   r:   r;   r   r   r   test_replace_match_case   s    		z)ReplaceDialogTest.test_replace_match_casec             C   s  |  j  } |  j } |  j j } |  j j } |  j j } |  j j j d  | j	 d d  } | j d  | j d  |   | j	 d d  } | | |  | j
 d d  |   | | j	 d d	  d
  | j d  |   |  j d t j  |  j d t j  | j d  |   |  j d t j  |  j d t j  d t _ d t _ | j d  | j d  |   |  j d t j  |  j d t j  |  j j d  | | j	   d  d  S)NTz1.0r   z
[a-z][\d]+r,   r   z
line42z2.0z2.8Zlinhellor   errorEmptyz[\dPatternz[a]ztest\zInvalid Replace Expression'z\')r1   r   r   r   r   r   r2   r"   r   r3   r   assertInr%   r&   r'   Zsetcookedpat)r   r6   r   r7   r8   r9   r:   r;   r   r   r   test_replace_regex   s@    				z$ReplaceDialogTest.test_replace_regexc             C   s   |  j  } |  j } |  j j } |  j j } |  j j } |  j j j d  | j	 d d  | j d  | j d  |   | | j
 d d  d  | | j
 d d	  d  |   | | j
 d
 d  d  |   | | j
 d d
  d  d  S)NTr   z
is as r+   wasz1.2z1.4z2.0z2.3z1.5z1.8)r1   r   r   r   r   r   r2   r$   r   r   r3   )r   r6   r   r7   r8   r9   r   r   r   test_replace_backwards   s     		z(ReplaceDialogTest.test_replace_backwardsc             C   s@  |  j  } |  j j } |  j j } |  j j } | j d d  | j d | j d d  d  | j d  | j d  |   |  j	 d | j d d   |  j j
 j d  | j d	  |   |  j d
 t j  |  j d t j  | j d  | j d  |   |  j j
 j d  | j d  | j d  |   d  S)Nr   
z1.0r   d   r+   rI   Tr   rC   rD   z[s][T]\Fztext which is not presentr0   )r   r   r   r   r   replace_allr   r3   r   ZassertNotInr"   rG   r%   r&   r'   )r   r   r7   r8   rN   r   r   r   test_replace_all   s,    	 z"ReplaceDialogTest.test_replace_allc             C   s   |  j  } |  j j } |  j j } |  j j } |  j } | j d  | j d  |   | | j d d  d  |  j j	 j d  | j d  |   d  S)Nr>   rI   z	sel.firstzsel.lastTr   )
r   r   r   r   r   Zdefault_commandr1   r   r3   r"   )r   r   r7   r8   Zreplace_findr6   r   r   r   test_default_command  s    		z&ReplaceDialogTest.test_default_commandN)__name__
__module____qualname__classmethodr   r   r   r)   r<   r=   r?   rB   rH   rJ   rO   rP   r   r   r   r   r      s   G)r   __main__	verbosity   )Ztest.supportr   ZunittestZunittest.mockr   tkinterr   r   Zidlelib.idle_test.mock_tkr   Zidlelib.SearchEnginer   r	   Zidlelib.ReplaceDialogr   r   r
   r   r%   ZTestCaser   rQ   mainr   r   r   r   <module>   s   
		 