ó
;a›]c           @   sá  d  Z  d d l Z d d l m Z d d l m Z d d l m Z m Z m	 Z	 d d l
 m Z m Z m Z m Z m Z m Z m Z d d l m Z d d l m Z d	 d
 l m Z d e f d „  ƒ  YZ d Z d Z e re j d d ƒ Z e j d d ƒ Z n  d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ  d e  f d „  ƒ  YZ! d e f d „  ƒ  YZ" d e f d  „  ƒ  YZ# d! e f d" „  ƒ  YZ$ d# e f d$ „  ƒ  YZ% d S(%   s'   Tests for traitlets.config.configurableiÿÿÿÿN(   t   TestCase(   t   mark(   t   Configurablet   LoggingConfigurablet   SingletonConfigurable(   t   Integert   Floatt   Unicodet   Listt   Dictt   Sett   _deprecations_shown(   t   Config(   t   PY3i   (   t   expected_warningst   MyConfigurablec           B   sP   e  Z e d  d d ƒj d e ƒ Z e d d d ƒj d e ƒ Z e d ƒ Z	 RS(   i   t   helps   The integer a.t   configg      ð?s   The integer b.s	   no config(
   t   __name__t
   __module__R   t   tagt   Truet   aR   t   bR   t   c(    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR      s   u«   MyConfigurable options
----------------------
--MyConfigurable.a=<Integer>
    Default: 1
    The integer a.
--MyConfigurable.b=<Float>
    Default: 1.0
    The integer b.u«   MyConfigurable options
----------------------
--MyConfigurable.a=<Integer>
    Current: 5
    The integer a.
--MyConfigurable.b=<Float>
    Current: 4.0
    The integer b.u	   <Integer>u   <Int>t   Fooc           B   s>   e  Z e d  d d ƒj d e ƒ Z e d ƒ j d e ƒ Z RS(   i    R   s   The integer a.R   t   nope(   R   R   R   R   R   R   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR   9   s   t   Barc           B   sA   e  Z e d  d d ƒj d e ƒ Z e d d ƒ j d e ƒ Z RS(   t   gotitR   s   The string b.R   s   The string c.(	   R   R   R   R   t   FalseR   R   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR   >   s   t   TestConfigurablec           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s]   t  ƒ  } t  d | j ƒ } t  d | j ƒ } |  j | j | j ƒ |  j | j | j ƒ d  S(   NR   (   R   R   t   assertEqual(   t   selft   c1t   c2t   c3(    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_defaultE   s
    	c         C   sÿ   t  ƒ  } d | _ d | _ t d | ƒ } t d | j ƒ } t d | j ƒ } |  j | j | ƒ |  j | j | ƒ |  j | j | ƒ |  j | j | k ƒ |  j | j | k ƒ |  j | j | k ƒ |  j | j | j k ƒ |  j | j | j k ƒ d  S(   Nt   foot   barR   (   R   R%   R&   R   R   R   t
   assertTrue(   R    R   R!   R"   R#   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_customL   s    			c         C   sª   t  ƒ  } d | j _ d | j _ t d | ƒ } t d | j ƒ } |  j | j | j j ƒ |  j | j | j j ƒ |  j | j | j j ƒ |  j | j | j j ƒ d  S(   Ni   g       @R   (   R   R   R   R   R   R   (   R    R   R!   R"   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_inheritance]   s    	c         C   sÀ   t  ƒ  } d | j _ d | j _ d | j _ d | j _ t d | ƒ } t d g ƒ  t d | j ƒ } Wd  QX|  j | j d ƒ |  j | j d ƒ |  j | j d ƒ |  j | j d ƒ d  S(   Ni
   t   wowt   laterg      Y@R   s   `b` not recognizedR   (	   R   R   R   R   R   R   R   R   R   (   R    R   t   fR   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_parenth   s    	c         C   sy   t  ƒ  } d | j _ d | j _ t d d d | ƒ } |  j | j d ƒ |  j | j | j j ƒ |  j | j d ƒ d  S(   Ni   g       @R   i   R   s	   no config(   R   R   R   R   R   R   (   R    R   R   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_override1v   s    	c         C   s  t  ƒ  } d | j _ d | j _ d | j _ t d g ƒ  t d | ƒ } Wd  QX|  j | j | j j ƒ |  j | j d ƒ |  j | j | j j ƒ t d g ƒ & t d d d	 d
 d d d | ƒ } Wd  QX|  j | j d ƒ |  j | j d
 ƒ |  j | j d ƒ d  S(   Ni   t   org      $@s   `b` not recognizedR   R   R   i   R   t   andR   g      4@(   R   R   R   R   R   R   R   R   (   R    R   R   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_override2   s    	'c         C   s   |  j  t j ƒ  t ƒ d  S(   N(   R   R   t   class_get_helpt   mc_help(   R    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt	   test_help   s    c         C   s2   t  d d d d ƒ } |  j t  j | ƒ t ƒ d  S(   NR   i   R   i   (   R   R   R2   t   mc_help_inst(   R    t   inst(    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_help_inst’   s    (
   R   R   R$   R(   R)   R-   R.   R1   R4   R7   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR   C   s   								t   TestSingletonConfigurablec           B   s   e  Z d  „  Z d „  Z RS(   c         C   s{   d t  f d „  ƒ  Y} |  j | j ƒ  t ƒ | j ƒ  } |  j | j ƒ  t ƒ |  j | | j ƒ  ƒ |  j t  j d  ƒ d  S(   NR   c           B   s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR   š   s    (   R   R   t   initializedR   t   instanceR   t	   _instancet   None(   R    R   R%   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_instance™   s    c         C   sÝ   d t  f d „  ƒ  Y} d | f d „  ƒ  Y} |  j | j ƒ  t ƒ |  j | j ƒ  t ƒ | j ƒ  } | | j ƒ  k |  j | j ƒ  t ƒ |  j | j ƒ  t ƒ |  j | | j ƒ |  j | | j ƒ |  j t  j d  ƒ d  S(   NR   c           B   s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR   ¢   s    t   Bamc           B   s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR>   £   s    (   R   R   R9   R   R:   R   R;   R<   (   R    R   R>   t   bam(    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR)   ¡   s    (   R   R   R=   R)   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR8   —   s   	t   MyParentc           B   s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyR@   ¯   s   t	   MyParent2c           B   s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRA   ²   s   t   TestParentConfigurablec           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sb   t  i i i d d 6d 6d 6ƒ } t d | ƒ } t d | ƒ } |  j | j | j j j j ƒ d  S(   Ng       @R   R   R@   R   t   parent(   R   R@   R   R   R   R   (   R    t   cfgRC   t   myc(    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_parent_config·   s    c         C   sb   t  i i i d d 6d 6d 6ƒ } t d | ƒ } t d | ƒ } |  j | j | j j j j ƒ d  S(   Ng       @R   R   R@   R   RC   (   R   RA   R   R   R   R   R@   (   R    RD   RC   RE   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_parent_inheritanceÃ   s    c         C   s‰   t  i i i i d d 6d 6d 6i d d 6d 6d 6ƒ } t d | ƒ } t d | ƒ } t d | ƒ } |  j | j | j j j j j ƒ d  S(	   Ng       @R   R   R@   g      @RA   R   RC   (   R   RA   R@   R   R   R   R   (   R    RD   t   parent2RC   RE   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_multi_parentÏ   s    c         C   s…   t  i i d d 6d 6i i d d 6d 6d 6i i d d 6d 6d 6ƒ } t d | ƒ } t d	 | ƒ } |  j | j | j j j j ƒ d  S(
   Ng       @R   R   g      @R@   g      @RA   R   RC   (   R   RA   R   R   R   R   (   R    RD   RC   RE   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_parent_priorityâ   s    c         C   s³   t  i i d d 6d 6i i d d 6d 6d 6i i d d 6d 6d 6i i i d d 6d 6d 6d 6ƒ } t d	 | ƒ } t d
 | ƒ } t d
 | ƒ } |  j | j | j j j j j ƒ d  S(   Ng       @R   R   g      @R@   g      @RA   g      @R   RC   (   R   RA   R   R   R   R   R@   (   R    RD   RH   RC   RE   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_multi_parent_priorityö   s"    (   R   R   RF   RG   RI   RJ   RK   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRB   µ   s
   				t
   Containersc           B   sb   e  Z e ƒ  j d  e ƒ Z d „  Z e ƒ  j d  e ƒ Z d „  Z	 e
 ƒ  j d  e ƒ Z d „  Z RS(   R   c         C   s   d g S(   Niÿÿÿÿ(    (   R    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   _lis_default  s    c         C   s   d h S(   NR   (    (   R    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt
   _s_default  s    c         C   s   i d d 6S(   NR   R   (    (   R    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt
   _d_default  s    (   R   R   R   R   R   t   lisRM   R
   t   sRN   R	   t   dRO   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRL     s   		t   TestConfigContainersc           B   s}   e  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(   c         C   s]   t  ƒ  } | j j j t t d ƒ ƒ ƒ t d | ƒ } |  j | j t t d d ƒ ƒ ƒ d  S(   Ni   R   iÿÿÿÿ(   R   RL   RP   t   extendt   listt   rangeR   (   R    R   t   obj(    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_extend   s    	c         C   sd   t  ƒ  } | j j j d d ƒ | j j j d d ƒ t d | ƒ } |  j | j d d d g ƒ d  S(   Ni    R   i   R   R   iÿÿÿÿ(   R   RL   RP   t   insertR   (   R    R   RW   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_insert&  s
    	c         C   sp   t  ƒ  } | j j j d d g ƒ | j j j d d g ƒ t d | ƒ } |  j | j d d d d d g ƒ d  S(   Ni   i   i   R   iÿÿÿÿ(   R   RL   RP   t   prependR   (   R    R   RW   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_prepend-  s
    	c         C   sp   t  ƒ  } | j j j d d g ƒ | j j j d d g ƒ t d | ƒ } |  j | j d d d d d g ƒ d  S(   Ni   i   i   R   iÿÿÿÿ(   R   RL   RP   R[   RT   R   (   R    R   RW   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_prepend_extend4  s
    	c         C   ss   t  ƒ  } | j j j d d g ƒ | j j j d d g ƒ t d | ƒ } |  j | j d d d g d d g ƒ d  S(   Ni   i   i   R   iÿÿÿÿ(   R   RL   RP   t   appendRT   R   (   R    R   RW   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_append_extend;  s
    	c         C   ss   t  ƒ  } | j j j d d g ƒ | j j j d d g ƒ t d | ƒ } |  j | j d d d d d g g ƒ d  S(   Ni   i   i   R   iÿÿÿÿ(   R   RL   RP   RT   R^   R   (   R    R   RW   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_extend_appendB  s
    	c         C   sj   t  ƒ  } | j j j d d ƒ | j j j d d g ƒ t d | ƒ } |  j | j d d d d g ƒ d  S(   Ni    i   i   i   R   iÿÿÿÿ(   R   RL   RP   RY   RT   R   (   R    R   RW   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_insert_extendI  s
    	c         C   sp   t  ƒ  } | j j j d d d h ƒ | j j j d h ƒ t d | ƒ } |  j | j d d d d d h ƒ d  S(   Ni    i   i   i   R   R   (   R   RL   RQ   t   updateR   (   R    R   RW   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_set_updateP  s
    	c         C   sx   t  ƒ  } | j j j i d d 6ƒ | j j j i d d 6ƒ t d | ƒ } |  j | j i d d 6d d 6d d 6ƒ d  S(   NRR   R   R,   t   eR   R   R   (   R   RL   RR   Rb   R   (   R    R   RW   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_dict_updateW  s
    	c         C   sœ   t  ƒ  } d | j _ t d | ƒ } |  j | j d ƒ t  ƒ  } d | j _ | j | ƒ |  j | j d ƒ d | j _ | j | ƒ |  j | j d ƒ d  S(   Ni   R   i
   i   (   R   R   R   R   t   update_config(   R    R   t   mR"   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_update_twice^  s    		c         C   sg   t  ƒ  } d | j _ t d | ƒ } |  j | j d ƒ d | j _ | j | ƒ |  j | j d ƒ d S(   sC   update_config with same config object still triggers config_changedi   R   i
   N(   R   R   R   R   Rf   (   R    R   Rg   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_update_selfm  s    	c            s«   d t  f d „  ƒ  Y‰  d t f ‡  f d †  ƒ  Y} t ƒ  } d | j _ | ƒ  } |  j | j d ƒ ˆ  j d | ƒ } | ƒ  } |  j | j | j ƒ |  j | j d ƒ d  S(   Nt   SomeSingletonc           B   s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRj   x  s   t   DefaultConfigurablec              s,   e  Z e ƒ  j d  e ƒ Z ‡  f d †  Z RS(   R   c            s    ˆ  j  ƒ  r ˆ  j ƒ  j St ƒ  S(   N(   R9   R:   R   R   (   R    (   Rj   (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   _config_default}  s    (   R   R   R   R   R   R   Rl   (    (   Rj   (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRk   {  s   i   i    R   (	   R   R   R   Rk   R   R   R:   t   assertIsR   (   R    Rk   R   t   d1t   singlet   d2(    (   Rj   sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_config_defaultw  s    			c            sÈ   d t  f d „  ƒ  Y‰  t j ƒ  t g  ƒ ! d t f ‡  f d †  ƒ  Y} Wd QXt ƒ  } d | j _ | ƒ  } |  j | j d ƒ ˆ  j	 d | ƒ } | ƒ  } |  j
 | j | j ƒ |  j | j d ƒ d S(	   sD   Make sure configurables work even with the deprecations in traitletsRj   c           B   s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRj     s   Rk   c              s&   e  Z e d  e ƒ Z ‡  f d †  Z RS(   R   c            s    ˆ  j  ƒ  r ˆ  j ƒ  j St ƒ  S(   N(   R9   R:   R   R   (   R    (   Rj   (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRl   ˜  s    (   R   R   R   R   R   Rl   (    (   Rj   (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRk   –  s   Ni   i    R   (   R   R   t   clearR   R   R   Rk   R   R   R:   Rm   R   (   R    Rk   R   Rn   Ro   Rp   (    (   Rj   sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   test_config_default_deprecatedŽ  s    
"			(   R   R   RX   RZ   R\   R]   R_   R`   Ra   Rc   Re   Rh   Ri   Rq   Rs   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRS     s   											
	t
   TestLoggerc           B   sF   e  Z d  e f d „  ƒ  YZ e j e e d ƒ d d ƒd „  ƒ Z RS(   t   Ac           B   s5   e  Z e d  e ƒ Z e d  e ƒ Z e d  e ƒ Z RS(   R   (   R   R   R   R   R%   R&   t   baz(    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRu   ¬  s   t
   assertLogst   reasons   requires TestCase.assertLogsc         C   s™  t  j d ƒ } t i i d d 6d 6ƒ } |  j | t  j ƒ  } t j d | d | ƒ } Wd  QXd j | j ƒ } |  j	 d | ƒ |  j	 d	 | ƒ t i i d d
 6d 6ƒ } |  j | t  j ƒ  } t j d | d | ƒ } Wd  QXd j | j ƒ } |  j	 d | ƒ |  j	 d | ƒ t i i d d 6d 6ƒ } |  j | t  j ƒ  } t j d | d | ƒ } Wd  QXd j | j ƒ } |  j	 d | ƒ |  j
 d | ƒ d  S(   Nt   test_warn_matchi   t   batRu   R   t   logs   
s    Did you mean one of: `bar, baz`?s*   Config option `bat` not recognized by `A`.t   fools+   Config option `fool` not recognized by `A`.s   Did you mean `foo`?t   totally_wrongs4   Config option `totally_wrong` not recognized by `A`.s   Did you mean(   t   loggingt	   getLoggerR   Rw   t   WARNINGRt   Ru   t   joint   outputt   assertInt   assertNotIn(   R    t   loggerRD   t   capturedR   R‚   (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRy   ±  s&    (	   R   R   R   Ru   R   t   skipift   hasattrR    Ry   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyRt   ª  s   (&   t   __doc__R~   t   unittestR    t   pytestR   t   traitlets.config.configurableR   R   R   t   traitlets.traitletsR   R   R   R   R	   R
   R   t   traitlets.config.loaderR   t   sixR   t   tests._warningsR   R   R3   R5   t   replaceR   R   R   R8   R@   RA   RB   RL   RS   Rt   (    (    (    sG   lib/python2.7/site-packages/traitlets/config/tests/test_configurable.pyt   <module>   s0   4	T]‹