
”àWp   ã               @   sË   d  Z  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)z"Unittest for idlelib.ReplaceDialogé    )Ú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   úG/afs/.cs/s/python-3.5.2/amd64_ubu14/lib/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é   )Ú__doc__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   
		ÿ 