ó
æNXc           @   s  d  Z  d d l Z d d l Z d d l m Z d d l m Z e j j Z	 d d l
 j Z d d l m Z d d l m Z d d l m Z d d l m Z d d	 l m Z m Z m Z m Z m Z d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   s4   
Tests for traitlets.config.application.Application
iÿÿÿÿN(   t   StringIO(   t   TestCase(   t   Configurable(   t   Config(   t   Application(   t   TemporaryDirectory(   t   Boolt   Unicodet   Integert   Listt   Dictt   Fooc           B   sP   e  Z e d  d e d d ƒZ e d d e d d ƒZ e d d e d d ƒZ RS(   i    t   configt   helps   The integer i.i   s   The integer j.u   Brians   First name.(   t   __name__t
   __module__R   t   Truet   it   jR   t   name(    (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyR      s   t   Barc           B   s8   e  Z e d  d e d d ƒZ e e d e d d ƒZ RS(   i    R   R   s   The integer b.s   Enable bar.(   R   R   R   R   t   bR   t   enabled(    (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyR   &   s   t   MyAppc           B   s÷   e  Z e d  ƒ Z e e d e d d ƒZ e e	 e
 g ƒ Z e d d e d d ƒZ e i d d 6d d	 6d
 d 6d d 6d d 6ƒ Z e e d i i e d 6d 6d f d i i e d 6d 6d f d i i e j d 6d 6d f ƒ ƒ Z d „  Z d „  Z RS(   u   myappR   R   s   Is the app running?u    s   Load this config files   Foo.iR   s   Foo.jR   s   Foo.nameR   s   Bar.enabledR   s   Application.log_levels	   log-levelt   enableR   s   Set Bar.enabled to Truet   disables   Set Bar.enabled to Falset   critt	   log_levelR   s   set level=CRITICALc         C   s   t  d |  ƒ |  _ d  S(   Nt   parent(   R   t   foo(   t   self(    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   init_fooC   s    c         C   s   t  d |  ƒ |  _ d  S(   NR   (   R   t   bar(   R   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   init_barF   s    (   R   R   R   R   R   t   FalseR   t   runningR	   R   R   t   classest   config_fileR
   t   aliasest   dictt   loggingt   CRITICALt   flagsR   R!   (    (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyR   ,   s$   		#	t   TestApplicationc           B   st   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 RS(   c         C   su   t  ƒ  } t d t j ƒ } t j | ƒ } | g | j _ d | _ d | _ | j j	 d ƒ t
 j d | j ƒ  ƒ d  S(   NR   s   %(message)ss   %Y-%m-%d %H:%Mt   hello(   R    R   R(   t   INFOt   StreamHandlert   logt   handlerst
   log_formatt   log_datefmtt   infot   ntt	   assert_int   getvalue(   R   t   streamt   appt   handler(    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_logL   s    			c         C   sb   t  ƒ  } |  j | j d ƒ |  j | j t ƒ |  j | j t  t t g ƒ |  j | j d ƒ d  S(   Nu   myappu    (	   R   t   assertEqualR   R#   R"   R$   R   R   R%   (   R   R8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt
   test_basicW   s
    	c         C   s‡   t  ƒ  } | j d d d d g ƒ | j } |  j | j j d ƒ |  j | j j d ƒ |  j | j j t	 ƒ |  j | j  j
 d ƒ d  S(   Ns   --i=10s
   --Foo.j=10s   --enabled=Falses   --log-level=50i
   i2   (   R   t   parse_command_lineR   R;   R   R   R   R   R   R"   R   (   R   R8   R   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_config^   s    		c         C   s|   t  ƒ  } | j d d d d g ƒ | j ƒ  | j ƒ  |  j | j j d ƒ |  j | j j d ƒ |  j | j j	 t
 ƒ d  S(   Ns   --i=10s
   --Foo.j=10s   --enabled=Falses   --log-level=50i
   (   R   R=   R   R!   R;   R   R   R   R    R   R"   (   R   R8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_config_propagationg   s    	

c         C   sm   t  ƒ  } | j d g ƒ | j ƒ  |  j | j j t ƒ | j d g ƒ | j ƒ  |  j | j j t ƒ d  S(   Ns	   --disables   --enable(   R   R=   R!   R;   R    R   R"   R   (   R   R8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt
   test_flagsp   s    	

c         C   s`   t  ƒ  } | j d d g ƒ | j ƒ  |  j | j j d ƒ | j ƒ  |  j | j j d ƒ d  S(   Ns   --i=5s   --j=10i   i
   (   R   R=   R   R;   R   R   R   (   R   R8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_aliasesy   s    	

c         C   sŸ   t  ƒ  } | j d d g ƒ | j ƒ  |  j | j j t ƒ |  j | j j d ƒ | j d d g ƒ | j ƒ  |  j | j j t ƒ |  j | j j d ƒ d S(   s9   test that setting flags doesn't clobber existing settingss	   --Bar.b=5s	   --disablei   s   --enables
   --Bar.b=10i
   N(	   R   R=   R!   R;   R    R   R"   R   R   (   R   R8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_flag_clobber   s    	

c         C   s¦   t  ƒ  } t j | j _ t ƒ  } | j | ƒ |  j | j t j ƒ |  j | j j j t j ƒ | j d g ƒ |  j | j t j	 ƒ |  j | j j j t j	 ƒ d  S(   Ns   --crit(
   R   R(   t   WARNR   R   t   update_configR;   R   t
   initializeR)   (   R   t   cfgR8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_flatten_flags   s    		c         C   s¦   t  ƒ  } t j | j _ t ƒ  } | j | ƒ |  j | j t j ƒ |  j | j j j t j ƒ | j d d g ƒ |  j | j t j	 ƒ |  j | j j j d ƒ d  S(   Ns   --log-levelR)   (
   R   R(   RC   R   R   RD   R;   R   RE   R)   (   R   RF   R8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_flatten_aliases™   s    		c         C   sì   t  ƒ  } | j d d d d g ƒ | j ƒ  |  j | j j t ƒ |  j | j j d ƒ |  j | j d d g ƒ t  ƒ  } | j d d d d d g ƒ | j ƒ  |  j | j j t	 ƒ |  j | j j d ƒ |  j | j d d d g ƒ d  S(   Ns	   --Bar.b=5t   extras	   --disablet   argsi   s   --(
   R   R=   R!   R;   R    R   R"   R   t
   extra_argsR   (   R   R8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_extra_args¥   s    	
	
c         C   s   t  ƒ  } | j d g ƒ d  S(   Ns   Ã¼nÃ®cÃ¸dÃ©(   R   R=   (   R   R8   (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_unicode_argv³   s    	c         C   s  t  ƒ  } t j ƒ  | _ d } t d ƒ ê } t t | | ƒ d ƒ  } | j d ƒ Wd  QXt d ƒ § } t t | | ƒ d ƒ  } | j d ƒ Wd  QX| j | d | | g ƒ| j	 ƒ  |  j
 | j j d ƒ | j | d | | g ƒ| j	 ƒ  |  j
 | j j d	 ƒ Wd  QXWd  QXd  S(
   Ns	   config.pyt   _1t   ws   get_config().MyApp.Bar.b = 1t   _2s   get_config().MyApp.Bar.b = 2t   pathi   i   (   R   R(   t	   getLoggerR/   R   t   opent   pjoint   writet   load_config_fileR!   R;   R    R   (   R   R8   R   t   td1t   f1t   td2t   f2(    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   test_multi_file·   s    	

(   R   R   R:   R<   R>   R?   R@   RA   RB   RG   RH   RL   RM   R[   (    (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyR+   J   s   														(   t   __doc__R(   t   ost   ioR    t   unittestR   RQ   t   joinRT   t
   nose.toolst   toolsR4   t   traitlets.config.configurableR   t   traitlets.config.loaderR   t   traitlets.config.applicationR   t   ipython_genutils.tempdirR   t   traitlets.traitletsR   R   R   R	   R
   R   R   R   R+   (    (    (    s_   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/traitlets/config/tests/test_application.pyt   <module>   s   (