3
d                 @   sv   d Z ddlZddlZddlmZmZ ddlmZmZm	Z	 ej
ddZej
ddZG dd	 d	eZG d
d dejZdS )z 
Tests for the Time trait type.
    N)requires_traitsuitraitsui)HasStrictTraitsTime
TraitError         c               @   s8   e Zd Ze ZeeZeedZeddZ	eddZ
dS )HasTimeTraits)default_valueF)
allow_noneTN)__name__
__module____qualname__r   simple_time
UNIX_EPOCHepochNT_EPOCHalternative_epochnone_prohibitednone_allowed r   r   8/tmp/pip-build-7vycvbft/traits/traits/tests/test_time.pyr
      s
   

r
   c               @   sP   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
dd ZdS )TestTimec             C   s4   t  }| j|jd  | j|jt | j|jt d S )N)r
   assertEqualr   r   r   r   r   )selfobjr   r   r   test_default0   s    zTestTime.test_defaultc             C   s,   t jddd}t }||_| j|j| d S )N      #   )datetimetimer
   r   r   )r   Z	test_timer   r   r   r   test_assign_time6   s    zTestTime.test_assign_timec          
   C   s<   t  }| jt}d|_W d Q R X t|j}| jd| d S )Nz12:00:00zmust be a time or None, but)r
   assertRaisesr   r   str	exceptionassertIn)r   r   exception_contextmessager   r   r   test_assign_non_time=   s
    
zTestTime.test_assign_non_timec             C   sR   t  }| jt}tjddd|_W d Q R X t|j}| jd| | j|j d S )Ni        zmust be a time or None, but)	r
   r$   r   r!   r   r%   r&   r'   assertIsNone)r   r   r(   r)   r   r   r   test_assign_datetimeD   s    
zTestTime.test_assign_datetimec             C   sr   t td}| j|j | jt}d |_W d Q R X | j|j tjd\}}}| j	||j
 | j	dt|j d S )N)r   .zNone will no longer be accepted)r
   r   assertIsNotNoner   ZassertWarnsDeprecationWarningr-   r   
rpartitionr'   filenamer%   warning)r   r   Zwarnings_cm_Zthis_moduler   r   r   *test_assign_none_with_allow_none_not_givenL   s    
z3TestTime.test_assign_none_with_allow_none_not_givenc          
   C   s@   t td}| jt}d |_W d Q R X t|j}| jd| d S )N)r   zmust be a time, but)r
   r   r$   r   r   r%   r&   r'   )r   r   r(   r)   r   r   r   &test_assign_none_with_allow_none_falseZ   s
    

z/TestTime.test_assign_none_with_allow_none_falsec             C   s,   t td}| j|j d |_| j|j d S )N)r   )r
   r   r0   r   r-   )r   r   r   r   r   %test_assign_none_with_allow_none_truea   s    
z.TestTime.test_assign_none_with_allow_none_truec             C   s,   t  }|jd}|j }| j|tjj d S )Nr   )r
   Z
base_traitZ
get_editorZassertIsInstancer   apiZ
TimeEditor)r   r   ZtraitZeditor_factoryr   r   r   test_get_editorg   s    
zTestTime.test_get_editorN)r   r   r   r   r#   r*   r.   r6   r7   r8   r   r:   r   r   r   r   r   /   s   r   )__doc__r!   ZunittestZ$traits.testing.optional_dependenciesr   r   Z
traits.apir   r   r   r"   r   r   r
   ZTestCaser   r   r   r   r   <module>   s   