3
d                 @   sz   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Zej
dddZG dd	 d	eZG d
d dejZdS )z 
Tests for the Date trait type.
    N)requires_traitsuitraitsui)DateHasStrictTraits
TraitErrori     i@  c               @   sX   e Zd Ze ZeeZeedZeddZ	eddZ
eddZeddZedddZdS )HasDateTraits)default_valueF)allow_datetimeT)
allow_none)r
   r   N)__name__
__module____qualname__r   simple_date
UNIX_EPOCHepochNT_EPOCHalternative_epochdatetime_prohibiteddatetime_allowednone_prohibitednone_allowedstrict r   r   8/tmp/pip-build-7vycvbft/traits/traits/tests/test_date.pyr      s   




r   c               @   sh   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	dd Z
dd Zdd Zedd ZdS )TestDatec             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_default9   s    zTestDate.test_defaultc             C   s,   t jddd}t }||_| j|j| d S )Ni        )datetimedater   r   r   )r   Z	test_dater   r   r   r   test_assign_date?   s    zTestDate.test_assign_datec          
   C   s<   t  }| jt}d|_W d Q R X t|j}| jd| d S )Nz	1975-2-13zmust be a date or None, but)r   assertRaisesr   r   str	exceptionassertIn)r   r   exception_contextmessager   r   r   test_assign_non_dateE   s
    
zTestDate.test_assign_non_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   assertWarnsDeprecationWarningassertIsNoner   
rpartitionr(   filenamer&   warning)r   r   warnings_cm_this_moduler   r   r   *test_assign_none_with_allow_none_not_givenL   s    
z3TestDate.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 date, 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/TestDate.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   r0   )r   r   r   r   r   %test_assign_none_with_allow_none_truea   s    
z.TestDate.test_assign_none_with_allow_none_truec          
   C   sJ   t j ddd}t }| jt}||_W d Q R X t|j}| jd| d S )Ni  r    r!   z(must be a non-datetime date or None, but)r"   r   r%   r   r   r&   r'   r(   )r   test_datetimer   r)   r*   r   r   r   .test_assign_datetime_with_allow_datetime_falseg   s    
z7TestDate.test_assign_datetime_with_allow_datetime_falsec             C   s,   t j ddd}t }||_| j|j| d S )Ni  r    r!   )r"   r   r   r   )r   r:   r   r   r   r   -test_assign_datetime_with_allow_datetime_trueo   s    z6TestDate.test_assign_datetime_with_allow_datetime_truec             C   sr   t j ddd}t }| jt}||_W d Q R X | j|j| tjd\}}}| j||j	 | jdt
|j d S )Ni  r    r!   r,   z-datetime instances will no longer be accepted)r"   r   r.   r/   r   r   r   r1   r(   r2   r&   r3   )r   r:   r   r4   r5   r6   r   r   r   2test_assign_datetime_with_allow_datetime_not_givenu   s    z;TestDate.test_assign_datetime_with_allow_datetime_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 non-datetime date, but)r   r   r%   r   r   r&   r'   r(   )r   r   r)   r*   r   r   r   *test_allow_none_false_allow_datetime_false   s
    

z3TestDate.test_allow_none_false_allow_datetime_falsec             C   s,   t  }|jd}|j }| j|tjj d S )Nr   )r   Z
base_traitZ
get_editorZassertIsInstancer   apiZ
DateEditor)r   r   ZtraitZeditor_factoryr   r   r   test_get_editor   s    
zTestDate.test_get_editorN)r   r   r   r   r$   r+   r7   r8   r9   r;   r<   r=   r>   r   r@   r   r   r   r   r   8   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   