3
d                 @   s   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dddZ
ejdddddZG dd	 d	eZG d
d dejZdS )z$
Tests for the Datetime trait type.
    N)requires_traitsuitraitsui)DatetimeHasStrictTraits
TraitErrori     i@  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 )HasDatetimeTraits)default_valueF)
allow_noneTN)__name__
__module____qualname__r   simple_datetime
UNIX_EPOCHepochNT_EPOCHalternative_epochnone_prohibitednone_allowed r   r   </tmp/pip-build-7vycvbft/traits/traits/tests/test_datetime.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 )TestDatetimec             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TestDatetime.test_defaultc             C   s,   t j ddd}t }||_| j|j| d S )Ni        )datetimer   r   r   )r   Ztest_datetimer   r   r   r   test_assign_datetime6   s    z!TestDatetime.test_assign_datetimec          
   C   s<   t  }| jt}d|_W d Q R X t|j}| jd| d S )Nz2021-02-05 12:00:00zmust be a datetime or None, but)r   assertRaisesr   r   str	exceptionassertIn)r   r   exception_contextmessager   r   r   test_assign_non_datetime=   s
    
z%TestDatetime.test_assign_non_datetimec             C   sR   t  }| jt}tjddd|_W d Q R X t|j}| jd| | j	|j d S )Ni  r   r   zmust be a datetime or None, but)
r   r    r   r   dater   r!   r"   r#   assertIsNone)r   r   r$   r%   r   r   r   test_assign_dateD   s    
zTestDatetime.test_assign_datec             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    
z7TestDatetime.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 datetime, but)r   r   r    r   r   r!   r"   r#   )r   r   r$   r%   r   r   r   &test_assign_none_with_allow_none_falseZ   s
    

z3TestDatetime.test_assign_none_with_allow_none_falsec             C   s,   t td}| j|j d |_| j|j d S )N)r   )r   r   r+   r   r(   )r   r   r   r   r   %test_assign_none_with_allow_none_truea   s    
z2TestDatetime.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DatetimeEditor)r   r   ZtraitZeditor_factoryr   r   r   test_get_editorg   s    
zTestDatetime.test_get_editorN)r   r   r   r   r   r&   r)   r1   r2   r3   r   r5   r   r   r   r   r   /   s   r   )__doc__r   ZunittestZ$traits.testing.optional_dependenciesr   r   Z
traits.apir   r   r   r   r   r   ZTestCaser   r   r   r   r   <module>   s   