U
    ÇZjW  ã                   @   sf   d dl Z d dlZd dlmZmZ G dd„ de jƒZG dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZdS )é    N)ÚEventsÚEventsExceptionc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestBasec                 C   s   t ƒ | _d S ©N)r   Úevents©Úself© r	   úU/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/events/tests/tests.pyÚsetUp	   s    zTestBase.setUpc                 C   s   d S r   r	   r   r	   r	   r
   Ú	callback1   s    zTestBase.callback1c                 C   s   d S r   r	   r   r	   r	   r
   Ú	callback2   s    zTestBase.callback2c                 C   s   d S r   r	   r   r	   r	   r
   Ú	callback3   s    zTestBase.callback3N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r	   r	   r	   r
   r      s   r   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )Ú
TestEventsc                 C   sx   G dd„ dt ƒ}z|ƒ  j| j7  _W n tk
r:   Y nX |  d¡ z| j j| j7  _W n   |  d¡ Y nX d S )Nc                   @   s   e Zd ZdZdS )z)TestEvents.test_getattr.<locals>.MyEvents©Úon_eventOneN©r   r   r   Z
__events__r	   r	   r	   r
   ÚMyEvents   s   r   ú*'EventsException' expected and not raised.ú"Exception raised but not expected.)r   Úon_eventNotOner   r   Úfailr   ©r   r   r	   r	   r
   Útest_getattr   s    
zTestEvents.test_getattrc                 C   sF   t dd�| _| j j| j7  _| j j| j7  _|  t| jƒd¡ d S )N)Ú	on_changeÚon_get)r   é   )r   r   r   r   r   r   ÚassertEqualÚlenr   r	   r	   r
   Útest_len'   s    zTestEvents.test_lenc                 C   sr   | j  j| j7  _| j  j| j7  _| j  j| j7  _d}| j D ] }|d7 }|  t|t j jƒ¡ q@|  |d¡ d S )Nr   é   r   )	r   r   r   r   Úon_editÚ
assertTrueÚ
isinstanceÚ
_EventSlotr    )r   ÚiÚeventr	   r	   r
   Ú	test_iter/   s    
zTestEvents.test_iterc                 C   sŽ   G dd„ dt j jƒ}t|d�| _ | j  j| j7  _| j  j| j7  _| j  j| j7  _d}| j D ]}|d7 }|  t||ƒ¡ q`|  	|d¡ d S )Nc                   @   s   e Zd ZdS )zCTestEvents.test_iter_custom_event_slot_cls.<locals>.CustomEventSlotN©r   r   r   r	   r	   r	   r
   ÚCustomEventSlot:   s   r,   ©Zevent_slot_clsr   r#   r   )
r   r'   r   r   r   r   r$   r%   r&   r    )r   r,   r(   r)   r	   r	   r
   Útest_iter_custom_event_slot_cls9   s    
z*TestEvents.test_iter_custom_event_slot_clsc                 C   s   |   tjj| jj¡ d S r   )r    r   r'   Ú__event_slot_cls__r   r	   r	   r
   Útest_event_slot_cls_defaultF   s     ÿz&TestEvents.test_event_slot_cls_defaultc                 C   s0   G dd„ dt j jƒ}t|d�}|  ||j¡ d S )Nc                   @   s   e Zd ZdS )z>TestEvents.test_event_slot_cls_custom.<locals>.CustomEventSlotNr+   r	   r	   r	   r
   r,   K   s   r,   r-   )r   r'   r   r    r/   )r   r,   Zcustomr	   r	   r
   Útest_event_slot_cls_customJ   s    
z%TestEvents.test_event_slot_cls_customN)	r   r   r   r   r"   r*   r.   r0   r1   r	   r	   r	   r
   r      s   
r   c                       sL   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	‡  Z
S )ÚTestEventSlotc                    sZ   t t| ƒ ¡  | j j| j7  _| j j| j7  _| j j| j7  _| j j| j7  _d S r   )	Úsuperr2   r   r   r   r   r   r   r$   r   ©Ú	__class__r	   r
   r   S   s
    zTestEventSlot.setUpc                 C   s.   | j j}|  t|t j jƒ¡ |  |jd¡ d S )Nr   )r   r   r%   r&   r'   r    r   ©r   Úevr	   r	   r
   Ú	test_typeZ   s    zTestEventSlot.test_typec                 C   s,   |   t| jjƒd¡ |   t| jjƒd¡ d S )Né   r#   )r    r!   r   r   r$   r   r	   r	   r
   r"   _   s    zTestEventSlot.test_lenc                 C   s   | j j}|  | ¡ d¡ d S )Nzevent 'on_change')r   r   r    Ú__repr__r6   r	   r	   r
   Ú	test_reprc   s    zTestEventSlot.test_reprc                 C   sD   | j j}|  t|ƒd¡ d}|D ]}|d7 }|  |jd| ¡ q d S )Nr9   r   r#   z
callback%d)r   r   r    r!   r   )r   r7   r(   Útargetr	   r	   r
   r*   g   s    zTestEventSlot.test_iterc                 C   s¬   | j j}|  t|ƒd¡ |  |d jd¡ z|d  W n tk
rJ   Y nX |  d¡ |  || j d ¡ |  	|| j d ¡ z| j d  W n t
k
rœ   Y nX |  d¡ d S )	Nr#   r   r   zIndexError expected.r$   r   Zon_nonexistent_eventzKeyError expected.)r   r$   r    r!   r%   r   Ú
IndexErrorr   ZassertIsZassertIsNotÚKeyErrorr6   r	   r	   r
   Útest_getitemo   s    
zTestEventSlot.test_getitemc                 C   sR   | j  j| j8  _| j j}|  t|ƒd¡ |  |d jd¡ |  |d jd¡ d S )Nr   r   r   r#   r   )r   r   r   r    r!   r   r6   r	   r	   r
   Ú	test_isub‚   s
    zTestEventSlot.test_isub)r   r   r   r   r8   r"   r;   r*   r?   r@   Ú__classcell__r	   r	   r4   r
   r2   R   s   r2   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestInstanceEventsc                 C   sš   t dƒ}z| j| j7  _W n   |  d¡ Y nX z| j| j7  _W n tk
r\   Y nX |  d¡ z| j j| j7  _W n   |  d¡ Y nX d S )Nr   r   r   )r   r   r   r   r   r   r   r   r	   r	   r
   r   Œ   s    
zTestInstanceEvents.test_getattrc                 C   st   G dd„ dt ƒ}|dƒ}z| j| j7  _W n   |  d¡ Y nX z| j| j7  _W n   Y nX |  d¡ d S )Nc                   @   s   e Zd ZdZdS )z>TestInstanceEvents.test_instance_restriction.<locals>.MyEvents)r   Zon_eventTwoNr   r	   r	   r	   r
   r   £   s   r   )Úon_everyTwor   r   )r   rC   r   r   Zon_everyOne)r   r   ZMyRestrictedInstancer	   r	   r
   Útest_instance_restriction¡   s    z,TestInstanceEvents.test_instance_restrictionN)r   r   r   r   rD   r	   r	   r	   r
   rB   Š   s   rB   )	Zunittestr   r   r   ZTestCaser   r   r2   rB   r	   r	   r	   r
   Ú<module>   s   <8