3
d"                 @   s   d dl Z d dlmZmZmZmZ dadadada	da
daG dd deZG dd deZG dd deZG d	d
 d
eZG dd de jZdS )    N)Delegate	HasTraitsInstanceStrc               @   s4   e Zd ZedZedZedZdd Zdd ZdS )	Foofoozfoo.tzfoo.uc             C   s   | a d S )N)foo_s_handler_self)selfnameoldnew r   </tmp/pip-build-7vycvbft/traits/traits/tests/test_delegate.py
_s_changed   s    zFoo._s_changedc             C   s   | a d S )N)foo_t_handler_self)r	   r
   r   r   r   r   r   
_t_changed!   s    zFoo._t_changedN)	__name__
__module____qualname__r   stur   r   r   r   r   r   r      s
   r   c               @   s   e Zd Zeef ZedZdS )Barr   N)r   r   r   r   r   r   r   r   r   r   r   r   r   &   s   
r   c               @   s^   e Zd Zeef ZeddddZedddZeddddZ	dd	 Z
d
d Zdd Zdd ZdS )	BazModifyr   r   T)prefixmodify)r   F)
listenabler   c             C   s   | a d S )N)baz_s_handler_self)r	   r
   r   r   r   r   r   r   1   s    zBazModify._s_changedc             C   s   | a d S )N)baz_sd_handler_self)r	   r
   r   r   r   r   r   _sd_changed6   s    zBazModify._sd_changedc             C   s   | a d S )N)baz_t_handler_self)r	   r
   r   r   r   r   r   r   :   s    zBazModify._t_changedc             C   s   | a d S )N)baz_u_handler_self)r	   r
   r   r   r   r   r   
_u_changed>   s    zBazModify._u_changedN)r   r   r   r   r   r   r   sdr   r   r   r   r   r"   r   r   r   r   r   +   s   
r   c               @   sV   e Zd Zeef ZedddZedZedddZ	dd Z
dd	 Zd
d Zdd ZdS )BazNoModifyr   r   )r   F)r   c             C   s   | a d S )N)r   )r	   r
   r   r   r   r   r   r   I   s    zBazNoModify._s_changedc             C   s   | a d S )N)r   )r	   r
   r   r   r   r   r   r   M   s    zBazNoModify._sd_changedc             C   s   | a d S )N)r    )r	   r
   r   r   r   r   r   r   Q   s    zBazNoModify._t_changedc             C   s   | a d S )N)r!   )r	   r
   r   r   r   r   r   r"   U   s    zBazNoModify._u_changedN)r   r   r   r   r   r   r   r#   r   r   r   r   r   r"   r   r   r   r   r$   C   s   
r$   c               @   s   e Zd Z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d Zdd Zdd Zdd Zdd Zd d! Zd"S )#DelegateTestCasez" Test cases for delegated traits. c             C   s   da dadadadadadS )z# Reset all of the globals.
        N)r   r   r!   r    r   r   )r	   r   r   r   setUp]   s    zDelegateTestCase.setUpc             C   sN   t  }t|d}| j|j|j d|_| j|j|j |`| j|j|j dS )z Test that a delegated trait may be reset.

        Deleting the attribute should reset the trait back to its initial
        delegation behavior.
        )r   barN)r   r   assertEqualr   assertNotEqual)r	   fbr   r   r   
test_reseti   s    
zDelegateTestCase.test_resetc             C   sR   t  }t|d}| j|j|j d|_| j|j|j | jtd  | jt| d S )N)r   changed)r   r   r(   r   r#   r   r   )r	   r*   r+   r   r   r   'test_modify_prefix_handler_on_delegator   s    
z8DelegateTestCase.test_modify_prefix_handler_on_delegatorc             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jt| d S )N)r   r-   )r   r   r(   r   r#   r   )r	   r*   r+   r   r   r   'test_modify_prefix_handler_on_delegatee   s    
z8DelegateTestCase.test_modify_prefix_handler_on_delegateec             C   sR   t  }t|d}| j|j|j d|_| j|j|j | jtd  | jt| d S )N)r   r-   )r   r$   r(   r   r#   r)   r   r   )r	   r*   r+   r   r   r   *test_no_modify_prefix_handler_on_delegator   s    
z;DelegateTestCase.test_no_modify_prefix_handler_on_delegatorc             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jtd  d S )N)r   r-   )r   r$   r(   r   r#   r)   r   )r	   r*   r+   r   r   r   5test_no_modify_prefix_handler_on_delegatee_not_called   s    
zFDelegateTestCase.test_no_modify_prefix_handler_on_delegatee_not_calledc             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jt| d S )N)r   r-   )r   r   r(   r   r    )r	   r*   r+   r   r   r    test_modify_handler_on_delegator   s    
z1DelegateTestCase.test_modify_handler_on_delegatorc             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jt| d S )N)r   r-   )r   r   r(   r   r   )r	   r*   r+   r   r   r    test_modify_handler_on_delegatee   s    
z1DelegateTestCase.test_modify_handler_on_delegateec             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jt| d S )N)r   r-   )r   r$   r(   r   r)   r    )r	   r*   r+   r   r   r   #test_no_modify_handler_on_delegator   s    
z4DelegateTestCase.test_no_modify_handler_on_delegatorc             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jtd  d S )N)r   r-   )r   r$   r(   r   r)   r   )r	   r*   r+   r   r   r   .test_no_modify_handler_on_delegatee_not_called   s    
z?DelegateTestCase.test_no_modify_handler_on_delegatee_not_calledc             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jt| d S )N)r   r-   )r   r$   r(   r   r   )r	   r*   r+   r   r   r   1test_no_modify_handler_on_delegatee_direct_change   s    
zBDelegateTestCase.test_no_modify_handler_on_delegatee_direct_changec             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jt| d S )N)r   r-   )r   r$   r(   r   r    )r	   r*   r+   r   r   r   1test_no_modify_handler_on_delegator_direct_change   s    
zBDelegateTestCase.test_no_modify_handler_on_delegator_direct_changec             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jt| d S )N)r   r-   )r   r   r(   r   r   )r	   r*   r+   r   r   r   .test_modify_handler_on_delegatee_direct_change  s    
z?DelegateTestCase.test_modify_handler_on_delegatee_direct_changec             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jt| d S )N)r   r-   )r   r   r(   r   r    )r	   r*   r+   r   r   r   .test_modify_handler_on_delegator_direct_change  s    
z?DelegateTestCase.test_modify_handler_on_delegator_direct_changec             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jtd  d S )N)r   r-   )r   r   r(   r   r!   )r	   r*   r+   r   r   r   "test_modify_handler_not_listenable  s    
z3DelegateTestCase.test_modify_handler_not_listenablec             C   sF   t  }t|d}| j|j|j d|_| j|j|j | jtd  d S )N)r   r-   )r   r$   r(   r   r!   )r	   r*   r+   r   r   r   %test_no_modify_handler_not_listenable+  s    
z6DelegateTestCase.test_no_modify_handler_not_listenableN)r   r   r   __doc__r&   r,   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r   r   r   r   r%   Z   s"   r%   )ZunittestZ
traits.apir   r   r   r   r   r   r!   r    r   r   r   r   r   r$   ZTestCaser%   r   r   r   r   <module>   s   