ó
ú2¢\c           @   s»  d  d l  Z  d  d l Z d  d l Z d  d l m Z y d  d l m Z Wn! e k
 rk d  d l m Z n Xd  d l	 m
 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 d  d
 l m Z m Z m Z d  d l m Z d  d l m Z e j d k r*d  d l m Z n d e  f d „  ƒ  YZ d  d l! m" Z" d „  Z# e$ Z% d e  f d „  ƒ  YZ& d e f d „  ƒ  YZ' d e' f d „  ƒ  YZ( d e' f d „  ƒ  YZ) d S(   iÿÿÿÿN(   t   TestCase(   t   patch(   t   TemporaryDirectory(   t	   py3compat(   t   BaseJSONConfigManager(   t   check_help_all_output(   t   paths(   t   toggle_serverextension_python(   t   nbextensionst   serverextensionst
   extensions(   t   NotebookApp(   t   _get_config_diri   (   t   SimpleNamespaceR   c           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyR      s   (   t   OrderedDictc           C   sN   t  d ƒ t  d d g ƒ t  d d g ƒ t  d d g ƒ t  d d g ƒ d  S(   Ns   notebook.serverextensionst   enablet   disablet   installt	   uninstall(   R   (    (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   test_help_output   s
    
t   MockExtensionModulec           B   s,   e  Z e Z e d  „  ƒ Z e Z d „  Z RS(   c           C   s   i d d 6g S(   Ns   _mockdestination/indext   module(    (    (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   _jupyter_server_extension_paths+   s    c         C   s   t  |  _ d  S(   N(   t   Truet   loaded(   t   selft   app(    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   load_jupyter_server_extension3   s    (	   R   R   t
   outer_filet   __file__t   staticmethodR   t   FalseR   R   (    (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyR   (   s   t   MockEnvTestCasec           B   s/   e  Z d  „  Z d „  Z d „  Z d d „ Z RS(   c         C   s)   t  ƒ  } |  j j | ƒ t j | j ƒ S(   N(   R   t   tempdirst   appendR   t   cast_unicodet   name(   R   t   td(    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   tempdir9   s    	c         C   sI  g  |  _  g  |  _ |  j ƒ  |  _ t j j |  j d ƒ |  _ t j j |  j d ƒ |  _ t j j |  j d ƒ |  _	 t j j |  j d ƒ |  _
 |  j	 g |  _ |  j
 g |  _ g  |  _ t j d i |  j d 6|  j d 6ƒ } |  j j | ƒ xa t t f D]S } t j | d |  j ƒ } |  j j | ƒ t j | d	 g  ƒ } |  j j | ƒ q÷ Wxa t t f D]S } t j | d
 |  j ƒ } |  j j | ƒ t j | d g  ƒ } |  j j | ƒ q[Wx+ |  j D]  } | j ƒ  |  j | j ƒ q¼W|  j t j ƒ  |  j g |  j ƒ |  j t j d t ƒ |  j
 ƒ |  j t j ƒ  |  j g |  j ƒ d  S(   Nt   datat   configt   system_datat   system_configs
   os.environt   JUPYTER_CONFIG_DIRt   JUPYTER_DATA_DIRt   SYSTEM_JUPYTER_PATHt   ENV_JUPYTER_PATHt   SYSTEM_CONFIG_PATHt   ENV_CONFIG_PATHt   user(   R#   t   _mock_extensionsR(   t   test_dirt   ost   patht   joint   data_dirt
   config_dirt   system_data_dirt   system_config_dirt   system_patht   system_config_patht   patchesR   t   dictR$   R   R   t   objectR
   t   startt
   addCleanupt   stopt   assertEqualt   jupyter_config_pathR   R!   t   jupyter_path(   R   t   pt   mod(    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   setUp>   sD    			
				
#c         C   s(   x! |  j  D] } t j j | ƒ q
 Wd  S(   N(   R4   t   syst   modulest   pop(   R   t
   modulename(    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   tearDownf   s    t   mockextensionc         C   s(   t  ƒ  t j | <} |  j j | ƒ | S(   N(   R   RK   RL   R4   R$   (   R   RN   t   ext(    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   _inject_mock_extensionj   s    (   R   R   R(   RJ   RO   RR   (    (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyR"   7   s   		(	t   TestInstallServerExtensionc           B   s/   e  Z e d  „ Z d „  Z d „  Z d „  Z RS(   c         C   s@   t  d t | ƒ ƒ } | j d ƒ } | j d i  ƒ j d i  ƒ S(   NR:   t   jupyter_notebook_configR   t   nbserver_extensions(   R   R   t   get(   R   R3   t   cmR)   (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   _get_configr   s    c         C   s7   |  j  ƒ  t d t ƒ |  j ƒ  } | d s3 t ‚ d  S(   NRP   (   RR   R   R   RX   t   AssertionError(   R   R*   (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   test_enablew   s    
c         C   sE   |  j  ƒ  t d t ƒ t d t ƒ |  j ƒ  } | d sA t ‚ d  S(   NRP   (   RR   R   R   R!   RX   RY   (   R   R*   (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   test_disable~   s
    
c         C   sõ   |  j  d ƒ } |  j  d ƒ } |  j  d ƒ } |  j  d ƒ } t d d t d t ƒt d d t d t ƒt d d t d t ƒt d d t d t ƒt d i t d 6ƒ } | j ƒ  | j sÃ t ‚ | j sÒ t ‚ | j sá t ‚ | j sñ t ‚ d  S(   Nt   mockext_syst   mockext_botht   mockext_usert
   mockext_pyt   enabledR3   RU   (   RR   R   R   R!   R   t   init_server_extensionsR   RY   (   R   t   mock_syst	   mock_botht	   mock_usert   mock_pyR   (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   test_merge_config†   s    
(   R   R   R   RX   RZ   R[   Rf   (    (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyRS   p   s   		t   TestOrderedServerExtensionc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s;   
    Test that Server Extensions are loaded _in order_
    c         C   sg   t  t |  ƒ j ƒ  t ƒ  } t ƒ  } d „  } | | _ d „  } | | _ | t j d <| t j d <d  S(   Nc         S   s   t  |  _ d |  _ d  S(   Nt   I(   R   t   mockIt   mock_shared(   t   obj(    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyR   ¨   s    	c         S   s   t  |  _ d |  _ d  S(   Nt   II(   R   t   mockIIRj   (   Rk   (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyR   ®   s    	t   mockextension2t   mockextension1(   t   superRg   RJ   R   R   RK   RL   (   R   Ro   Rn   R   (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyRJ   £   s    						c         C   s+   t  t |  ƒ j ƒ  t j d =t j d =d  S(   NRn   Ro   (   Rp   Rg   RO   RK   RL   (   R   (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyRO   ·   s    
c         C   s‰   t  ƒ  } t d t f d t f g ƒ | _ | j ƒ  | j t k sO t d ƒ ‚ | j t k sj t d ƒ ‚ | j d k s… t d ƒ ‚ d  S(   NRn   Ro   s   Mock II should have been loadeds   Mock I should have been loadedRl   s%   Mock II should be loaded after Mock I(	   R   R   R   RU   Ra   Rm   RY   Ri   Rj   (   R   R   (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   test_load_ordered½   s    	!
(   R   R   t   __doc__RJ   RO   Rq   (    (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyRg   ž   s   		(   i   (*   t   impR6   RK   t   unittestR    t   unittest.mockR   t   ImportErrort   mockt   ipython_genutils.tempdirR   t   ipython_genutilsR   t   notebook.config_managerR   t   traitlets.tests.utilsR   t   jupyter_coreR   t   notebook.serverextensionsR   t   notebookR   R	   R
   t   notebook.notebookappR   t   notebook.nbextensionsR   t   version_infot   typesR   RA   t   collectionsR   R   R   R   R   R"   RS   Rg   (    (    (    sC   lib/python2.7/site-packages/notebook/tests/test_serverextensions.pyt   <module>   s4   	9.