<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

íÕYfÁ  ã               @   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 m Z Gd	 d
 „  d
 e j ƒ Z e d k r­ e j d d d d ƒ d S)zSUnittest for UndoDelegator in idlelib.UndoDelegator.

Coverage about 80% (retest).
é    )ÚrequiresZguiN)ÚMock)ÚTextÚTk)ÚUndoDelegator)Ú
Percolatorc               @   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 S)ÚUndoDelegatorTestc             C   s4   t  ƒ  |  _ t |  j ƒ |  _ t |  j ƒ |  _ d  S)N)r   Úrootr   Útextr   Ú
percolator)Úcls© r   úI/opt/alt/python35/lib64/python3.5/idlelib/idle_test/test_undodelegator.pyÚ
setUpClass   s    zUndoDelegatorTest.setUpClassc             C   s3   |  j  j j ƒ  |  `  |  ` |  j j ƒ  |  ` d  S)N)r   ZredirÚcloser
   r	   Zdestroy)r   r   r   r   ÚtearDownClass   s    zUndoDelegatorTest.tearDownClassc             C   s>   t  ƒ  |  _ |  j j |  j ƒ t d |  j j ƒ |  j _ d  S)NÚwraps)r   Ú	delegatorr   Zinsertfilterr   Úbell)Úselfr   r   r   ÚsetUp   s    zUndoDelegatorTest.setUpc             C   s7   |  j  j |  j ƒ |  j j d d ƒ |  j j ƒ  d  S)Nz1.0Úend)r   Zremovefilterr   r
   ÚdeleteZ
resetcache)r   r   r   r   ÚtearDown#   s    zUndoDelegatorTest.tearDownc             C   sD  |  j  } | j d d ƒ | j d d ƒ | j d ƒ |  j | j d d ƒ d ƒ | j d d ƒ | j d d	 ƒ | j d
 d ƒ | j d d ƒ | j d ƒ |  j | j d d ƒ d ƒ | j d ƒ |  j | j d d ƒ d ƒ | j d ƒ |  j | j d d ƒ d ƒ | j d ƒ |  j j d ƒ |  j |  j j	 j
 ƒ d  S)NÚinsertZfoobarÚhz<<undo>>z1.0r   Ú
ÚfooÚbarz1.2z1.4ZhelloZfoarz1.6z1.3Zevent)r
   r   Úevent_generateÚassertEqualÚgetr   r   Z
undo_eventÚ
assertTruer   Úcalled)r   r
   r   r   r   Útest_undo_event(   s$    	z!UndoDelegatorTest.test_undo_eventc             C   s–   |  j  } | j d d ƒ | j d d ƒ | j d d ƒ | j d ƒ | j d ƒ |  j | j d d ƒ d ƒ | j d ƒ |  j |  j j j	 ƒ d  S)Nr   r   r   z1.0z1.3z<<undo>>z<<redo>>)
r
   r   r   r   r    r!   r"   r   r   r#   )r   r
   r   r   r   Útest_redo_event>   s    	z!UndoDelegatorTest.test_redo_eventc             C   s‹   |  j  } |  j } | j d d ƒ | j d d ƒ | j d d ƒ |  j | j | j f d ƒ | j d ƒ |  j | j | j f d ƒ d S)z›
        Dump_event cannot be tested directly without changing
        environment variables. So, test statements in dump_event
        indirectly
        r   r   r   z1.2z1.4é   Tz<<undo>>é   FN)r&   T)r'   F)r
   r   r   r   ZassertTupleEqualÚpointerZ	can_merger   )r   r
   Údr   r   r   Útest_dump_eventJ   s    		z!UndoDelegatorTest.test_dump_eventc             C   s»   |  j  } |  j | j ƒ  ƒ |  j j d d ƒ |  j | j ƒ  ƒ t ƒ  | _ | j d ƒ |  j	 | j
 | j ƒ |  j | j j ƒ | j d ƒ |  j	 | j d ƒ |  j | j j ƒ d  S)Nr   ÚaTFé   éÿÿÿÿ)r   r"   Z	get_savedr
   r   ZassertFalser   Zsaved_change_hookZ	set_savedr    r(   Zsavedr#   )r   r)   r   r   r   Útest_get_set_savedZ   s    	z$UndoDelegatorTest.test_get_set_savedc             C   s¹   |  j  } | j d d ƒ |  j j ƒ  | j d d ƒ | j d d ƒ |  j j ƒ  |  j | j d d ƒ d ƒ |  j j ƒ  | j d d ƒ |  j j ƒ  |  j | j d d ƒ d ƒ d  S)Nr   r   r   z1.0z1.3)r
   r   r   Zundo_block_startZundo_block_stopr    r!   )r   r
   r   r   r   Útest_undo_start_stopm   s    	z&UndoDelegatorTest.test_undo_start_stopc             C   sd   |  j  } d |  j _ } xD t | d ƒ D]2 } | j d d ƒ |  j t |  j j ƒ | ƒ q* Wd  S)Né
   r   r   )r
   r   Úmax_undoÚranger   ZassertLessEqualÚlenZundolist)r   r
   r1   Úir   r   r   Útest_addcmd~   s
    	zUndoDelegatorTest.test_addcmdN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r   r   r$   r%   r*   r.   r/   r5   r   r   r   r   r      s   r   Ú__main__Ú	verbosityr'   ÚexitF)Ú__doc__Ztest.supportr   ZunittestZunittest.mockr   Ztkinterr   r   Zidlelib.UndoDelegatorr   Zidlelib.Percolatorr   ZTestCaser   r6   Úmainr   r   r   r   Ú<module>   s   
w