ó
;a›]c           @   s™   d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z m Z d e j	 f d „  ƒ  YZ
 d e j	 f d „  ƒ  YZ d	 e j f d
 „  ƒ  YZ d S(   s"   
Test the trait-type ``UseEnum``.
iÿÿÿÿN(   t   string_types(   t	   HasTraitst
   TraitErrort   UseEnumt   Colorc           B   s    e  Z d  Z d Z d Z d Z RS(   i   i   i   i   (   t   __name__t
   __module__t   redt   greent   bluet   yellow(    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR      s   t
   OtherColorc           B   s   e  Z d  Z d Z RS(   i    i   (   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR      s   t   TestUseEnumc           B   s·   e  Z d  e f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   t   Examplec           B   s   e  Z e e d  d ƒZ RS(   t   helps
   Color enum(   R   R   R   R   t   color(    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR   !   s   c         C   s2   |  j  ƒ  } t j | _ |  j | j t j ƒ d  S(   N(   R   R   R   R   t   assertEqual(   t   selft   example(    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt   test_assign_enum_value$   s    c         C   s   g  t  j j ƒ  D] } | ^ q } xV | D]N } |  j | t  ƒ |  j ƒ  } | | _ |  j | j | ƒ |  j | t  ƒ q) Wd  S(   N(   R   t   __members__t   valuest   assertIsInstanceR   R   R   (   R   t   valuet   enum_valuesR   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt   test_assign_all_enum_values)   s    "	c         C   s2   |  j  ƒ  } |  j t ƒ  t j | _ Wd  QXd  S(   N(   R   t   assertRaisesR   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt4   test_assign_enum_value__with_other_enum_raises_error3   s    c         C   s/   |  j  ƒ  } d | _ |  j | j t j ƒ d  S(   NR   (   R   R   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt   test_assign_enum_name_18   s    	c         C   sš   g  t  j j ƒ  D] } | j ^ q } xn | D]f } |  j | t ƒ |  j ƒ  } t  j j | ƒ } | | _ |  j	 | j | ƒ |  j
 | j j | ƒ q, Wd  S(   N(   R   R   R   t   nameR   R    R   t   getR   t   assertIsR   (   R   t   enum_valt
   enum_namesR   R   t
   enum_value(    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt   test_assign_enum_value_name>   s    %	c         C   sh   d d d d g } xO | D]G } |  j  ƒ  } | | _ |  j | j t ƒ |  j t | j ƒ | ƒ q Wd  S(   Ns	   Color.reds   Color.greens
   Color.blues   Color.yellow(   R   R   R   R   R   t   str(   R   t   scoped_namesR   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt"   test_assign_scoped_enum_value_nameJ   s    	c         C   sR   d d d d g } x9 | D]1 } |  j  ƒ  } |  j t ƒ  | | _ Wd  QXq Wd  S(   Nt   UNKNOWN_COLORt   REDt   Greent   blue2(   R   R   R   R   (   R   t   bad_enum_namesR   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt-   test_assign_bad_enum_value_name__raises_errorS   s
    c         C   s>   |  j  ƒ  } d | _ t j j | _ |  j | j t j ƒ d  S(   Ni   (   R   R   R   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt   test_assign_enum_value_number_1[   s    	c         C   sˆ   g  t  j j ƒ  D] } | j ^ q } x\ | D]T } |  j | t ƒ |  j ƒ  } | | _ |  j | j t  ƒ |  j | j j | ƒ q, Wd  S(   N(	   R   R   R   R   R   t   intR   R   R   (   R   R    t   enum_numbersR   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt   test_assign_enum_value_numberb   s    "	c         C   sƒ   d d d g } xm | D]e } |  j  | t ƒ t t ƒ j | d  ƒ d  k sP t ‚ |  j ƒ  } |  j t	 ƒ  | | _
 Wd  QXq Wd  S(   Niÿÿÿÿi    i   (   R   R.   R   R   t   select_by_numbert   Nonet   AssertionErrorR   R   R   R   (   R   t   bad_numbersR   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt/   test_assign_bad_enum_value_number__raises_errorn   s    $c         C   s9   d t  f d „  ƒ  Y} | ƒ  } |  j | j t j ƒ d  S(   Nt   Example2c           B   s   e  Z e e ƒ Z RS(    (   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR6   z   s   (   R   R   R   R   R   (   R   R6   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt   test_ctor_without_default_valuex   s    	c         C   s9   d t  f d „  ƒ  Y} | ƒ  } |  j | j t j ƒ d  S(   NR6   c           B   s   e  Z e e d  e j ƒZ RS(   t   default_value(   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR6   ‚   s   (   R   R   R   R   R   (   R   R6   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt*   test_ctor_with_default_value_as_enum_value€   s    	c         C   sO   d t  f d „  ƒ  Y} | ƒ  } |  j | j t j ƒ |  j | j t j ƒ d  S(   NR6   c           B   s2   e  Z e e d  d d e ƒZ e e d  d ƒZ RS(   R8   t
   allow_noneN(   R   R   R   R   R2   t   Falset   color1t   color2(    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR6   ‹   s   (   R   R   R<   R   R   R=   (   R   R6   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt4   test_ctor_with_default_value_none_and_not_allow_none‰   s    	c         C   sI   d t  f d „  ƒ  Y} | ƒ  } |  j | j d  ƒ |  j | j d  ƒ d  S(   NR6   c           B   s2   e  Z e e d  d d e ƒZ e e d e ƒZ RS(   R8   R:   N(   R   R   R   R   R2   t   TrueR<   R=   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR6   “   s   (   R   R   R<   R2   R=   (   R   R6   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt0   test_ctor_with_default_value_none_and_allow_none’   s    	c         C   sa   d t  f d „  ƒ  Y} | ƒ  } d  | _ d  | _ |  j | j t j ƒ |  j | j t j ƒ d  S(   NR6   c           B   s&   e  Z e e d  e ƒZ e e ƒ Z RS(   R:   (   R   R   R   R   R;   R<   R=   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR6   œ   s   (   R   R2   R<   R=   R   R   R   (   R   R6   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt;   test_assign_none_without_allow_none_resets_to_default_value›   s    			c         C   s?   d t  f d „  ƒ  Y} | ƒ  } d  | _ |  j | j d  ƒ d  S(   NR6   c           B   s   e  Z e e d  e ƒZ RS(   R:   (   R   R   R   R   R?   R   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR6   §   s   (   R   R2   R   R   (   R   R6   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt    test_assign_none_to_enum_or_none¦   s    		c         C   sB   d t  f d „  ƒ  Y} | ƒ  } |  j t ƒ  d | _ Wd  QXd  S(   NR6   c           B   s   e  Z e e d  e ƒZ RS(   R:   (   R   R   R   R   R?   R   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR6   ¯   s   t	   BAD_VALUE(   R   R   R   R   (   R   R6   R   (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt*   test_assign_bad_value_with_to_enum_or_none®   s    	(   R   R   R   R   R   R   R   R   R#   R&   R,   R-   R0   R5   R7   R9   R>   R@   RA   RB   RD   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyR      s$   		
									
									(   t   __doc__t   unittestt   enumt   ipython_genutils.py3compatR    t	   traitletsR   R   R   t   EnumR   R   t   TestCaseR   (    (    (    sB   lib/python2.7/site-packages/traitlets/tests/test_traitlets_enum.pyt   <module>   s   