3
dT
                 @   sh   d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
 ddlmZ G dd deZG dd deejZdS )	z& Unit tests for the Tuple trait type.
    N)BaseIntEither	HasTraitsIntListStr
TraitErrorTuple)TupleTestMixinc               @   s   e Zd ZdZdZdd ZdS )BadIntzC Test class used to simulate a Tuple item with bad validation.
    za bad integerc             C   s   dd S )N   r    )selfobjectnamevaluer   r   9/tmp/pip-build-7vycvbft/traits/traits/tests/test_tuple.pyvalidate   s    zBadInt.validateN)__name__
__module____qualname____doc__Z	info_textr   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 )TupleTestCasec             C   s
   t | _d S )N)r	   Ztrait)r   r   r   r   setUp!   s    zTupleTestCase.setUpc             C   sR   G dd dt }| }| jt d|_W d Q R X | jt d|_W d Q R X d S )Nc               @   s.   e Zd Zee e Zeeee e ZdS )zMTupleTestCase.test_unexpected_validation_exceptions_are_propagated.<locals>.AN)	r   r   r   r	   r   foor   r   barr   r   r   r   A&   s   r         )r   r   )r   r   )r   assertRaisesZeroDivisionErrorr   r   )r   r   ar   r   r   4test_unexpected_validation_exceptions_are_propagated$   s    zBTupleTestCase.test_unexpected_validation_exceptions_are_propagatedc          
   C   s|   G dd dt }| }|jd jd | j|jd dg | jt |jd jd W d Q R X | }| j|jd g  d S )Nc               @   s   e Zd ZeeeZdS )z3TupleTestCase.test_non_constant_defaults.<locals>.AN)r   r   r   r	   r   r   r   r   r   r   r   r   3   s   r   r   #   g      @)r   r   appendassertEqualr   r   )r   r   r!   br   r   r   test_non_constant_defaults2   s    z(TupleTestCase.test_non_constant_defaultsc             C   s>   G dd dt }| }| }| j|jd | j|j|j d S )Nc               @   s   e Zd ZeeeeeZdS )z/TupleTestCase.test_constant_defaults.<locals>.AN)r   r   r   r	   r   r   r   r   r   r   r   r   E   s   r   r    r(   r   )r   r)   )r   r%   r   ZassertIs)r   r   r!   r&   r   r   r   test_constant_defaultsB   s
    z$TupleTestCase.test_constant_defaultsc          	   C   s:   G dd dt }| }| jt ddg|_W d Q R X d S )Nc               @   s   e Zd Zee e ZdS )z0TupleTestCase.test_lists_not_accepted.<locals>.AN)r   r   r   r	   r   r   r   r   r   r   r   O   s   r      r   )r   r   r   r   )r   r   r!   r   r   r   test_lists_not_acceptedM   s    z%TupleTestCase.test_lists_not_acceptedc             C   sH   G dd dt }| }| jt ddg|_W d Q R X | j|jd d S )Nc               @   s   e Zd Ze ZdS )z8TupleTestCase.test_deprecated_list_validation.<locals>.AN)r   r   r   r	   r   r   r   r   r   r   W   s   r   r+   r   )r+   r   )r   ZassertWarnsDeprecationWarningr   r%   )r   r   r!   r   r   r   test_deprecated_list_validationV   s
    z-TupleTestCase.test_deprecated_list_validationN)	r   r   r   r   r"   r'   r*   r,   r.   r   r   r   r   r       s   	r   )r   ZunittestZ
traits.apir   r   r   r   r   r   r   r	   Ztraits.tests.tuple_test_mixinr
   r   ZTestCaser   r   r   r   r   <module>   s
   (