ó
¬X[c           @   s¨  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z d d l	 m
 Z
 d d l Z y d d l m Z Wn! e k
 r¥ 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 m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* e j+ j, e j+ j- e. ƒ ƒ Z/ d d „ Z1 d e
 f d „  ƒ  YZ2 d S(   s*   Test installation of JupyterLab extensionsiÿÿÿÿN(   t   join(   t   TestCase(   t   patch(   t	   py3compat(   t   TemporaryDirectory(   t   NotebookApp(   t   paths(   t   commands(   t   load_jupyter_server_extension(   t   install_extensiont   uninstall_extensiont   list_extensionst   buildt   link_packaget   unlink_packaget   build_checkt   disable_extensiont   enable_extensiont   get_app_infot   check_extensiont   _test_overlapt   _get_core_datat   update_extensionc         C   sˆ   t  j j |  ƒ } t  j j | ƒ s4 t  j | ƒ n  t |  d ƒ j ƒ  | rx t  j |  ƒ j } t  j	 |  | | f ƒ n  t  j |  ƒ j
 S(   sg   ensure a file exists, and set its modification time

    returns the modification time of the file
    t   a(   t   ost   patht   dirnamet   existst   makedirst   opent   closet   statt   st_atimet   utimet   st_mtime(   t   filet   mtimeR   t   atime(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   touch&   s    t   TestExtensionc           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 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(   c         C   s)   t  ƒ  } |  j j | ƒ t j | j ƒ S(   N(   R   t   tempdirst   appendR   t   cast_unicodet   name(   t   selft   td(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   tempdir8   s    	c   
         s8  g  ˆ  _  t t j d ƒ ˆ  _ ˆ  j ‡  f d †  ƒ } ˆ  j ƒ  ˆ  _ t ˆ  j d ƒ ˆ  _ t ˆ  j d ƒ ˆ  _	 t
 ƒ  ˆ  _ xÅ d d d d g D]± } t t d	 | ƒ } d
 „  } t ˆ  j | ƒ } t j | | d | ƒt j t | d ƒ ƒ t ˆ  d | | ƒ t t | d ƒ ƒ  } t j | ƒ } Wd  QX| d ˆ  j | <qŽ Wg  ˆ  _ t j
 d i ˆ  j	 d 6ˆ  j d 6t ˆ  j d ƒ d 6ƒ } ˆ  j j | ƒ xÿ t g D]ô }	 t |	 d ƒ rât j |	 d ˆ  j g ƒ } ˆ  j j | ƒ n  t |	 d ƒ rt j |	 d ˆ  j	 g ƒ } ˆ  j j | ƒ n  t |	 d ƒ rYt j |	 d ˆ  j	 ƒ } ˆ  j j | ƒ n  t |	 d ƒ rŸt j |	 d ˆ  j ƒ } ˆ  j j | ƒ qŸqŸWx+ ˆ  j D]  } | j ƒ  ˆ  j | j ƒ q¡Wˆ  j t j ˆ  j	 g ƒ ˆ  j t j ˆ  j g ƒ ˆ  j t j ƒ  t j  j! t ˆ  j d ƒ ƒ ƒ t j ƒ  ˆ  _" d  S(   Nt   wc             s"   x ˆ  j  D] }  |  j ƒ  q
 Wd  S(   N(   R(   t   cleanup(   t   d(   R,   (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   cleanup_tempdirsC   s    t   datat   configt	   extensiont   incompatt   packaget   mimeextensiont   mock_packagesc         S   s;   d |  k r g  } n  d | k r1 | j  d ƒ n  |  | f S(   Nt   node_modules(   t   remove(   t   dnamet   files(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   ignoreR   s
    	R>   R:   t   mock_s   package.jsonR+   s
   os.environt   JUPYTER_CONFIG_DIRt   JUPYTER_DATA_DIRt   labt   JUPYTERLAB_DIRt   ENV_JUPYTER_PATHt   ENV_CONFIG_PATHt   CONFIG_PATHt
   BUILD_PATH(#   R(   R   R   t   devnullt
   addCleanupR.   t   test_dirt   pjoint   data_dirt
   config_dirt   dictt	   pkg_namest   heret   shutilt   copytreeR   t   setattrt   jsont   loadt   patchesR   R)   R   t   hasattrt   objectt   startt   stopt   assertEqualRE   RD   R   t   get_app_dirR   t   realpatht   app_dir(
   R,   R2   R+   t   srcR>   t   destt   fidR3   t   pt   mod(    (   R,   s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   setUp=   sZ    			


	c         C   s   t  |  j ƒ t k s t ‚ t |  j d d ƒ } t j | ƒ sE t ‚ t |  j ƒ d } |  j d } | | k sw t ‚ t	 | ƒ s‰ t ‚ d  S(   Nt
   extensionss   *.tgzR5   (
   R	   t   mock_extensiont   Truet   AssertionErrorRK   R^   t   globR   RO   R   (   R,   R   Re   R+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_install_extension†   s    c         C   s«   t  |  j ƒ t k s t ‚ t t j ƒ  d d ƒ } t  |  j ƒ t k sN t ‚ t j | ƒ sc t ‚ t |  j	 ƒ d } |  j
 d } | | k s• t ‚ t | ƒ s§ t ‚ d  S(   NRe   s   *.tgzR5   (   R	   Rf   Rg   Rh   RK   R   R\   Ri   R   R^   RO   R   (   R,   R   Re   R+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_install_twice   s    c         C   s™   t  |  j ƒ |  j d } | t |  j ƒ d k s9 t ‚ t | ƒ sK t ‚ t | ƒ t k sc t ‚ | t |  j ƒ d k s‚ t ‚ t | ƒ s• t ‚ d  S(   NR8   Re   (	   R	   t   mock_mimeextensionRO   R   R^   Rh   R   R
   Rg   (   R,   R+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_install_mime_renderer™   s    c         C   s^   t  j t ƒ  } t |  j ƒ Wd  QXd t | j ƒ k s@ t ‚ t |  j	 d ƒ sZ t ‚ d  S(   Ns   Conflicting DependenciesR6   (
   t   pytestt   raisest
   ValueErrorR	   t   mock_incompatt   strt   valueRh   R   RO   (   R,   t   excinfo(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_install_incompatible£   s    c         C   sœ   |  j  } t j t ƒ  t | ƒ Wd  QXt t | d ƒ ƒ  } t j | ƒ } Wd  QXt	 |  j
 ƒ d } | d } | | k s… t ‚ t | ƒ s˜ t ‚ d  S(   Ns   package.jsonRe   R+   (   t   mock_packageRn   Ro   Rp   R	   R   RK   RT   RU   R   R^   Rh   R   (   R,   R   Ra   R3   Re   R+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_install_failed©   s    	
c         C   s¶   |  j  } t j t | d ƒ ƒ t j t ƒ  t | ƒ Wd  QXt |  j	 d ƒ sY t
 ‚ |  j } t j t | d ƒ ƒ t j t ƒ  t | ƒ Wd  QXt |  j	 d ƒ s² t
 ‚ d  S(   Ns   index.jsR5   R8   (   Rf   R   R;   RK   Rn   Ro   Rp   R	   R   RO   Rh   Rl   (   R,   R   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_validation´   s    		c         C   sÀ   t  |  j ƒ t k s t ‚ |  j d } t | ƒ s: t ‚ t |  j d ƒ t k sY t ‚ t |  j d d ƒ } t	 j	 | ƒ s„ t ‚ t
 |  j ƒ d } | | k s© t ‚ t | ƒ s¼ t ‚ d  S(   NR5   Re   s   *.tgz(   R	   Rf   Rg   Rh   RO   R   R
   RK   R^   Ri   R   (   R,   R+   R   Re   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_uninstall_extensionÁ   s    c         C   s  t  d ƒ t k s t ‚ |  j } t | ƒ t t | d d ƒ ƒ  } t j | ƒ } Wd  QX| d d } d | k s{ t ‚ t	 d ƒ sŽ t ‚ t
 d ƒ t k s¦ t ‚ t | ƒ t t | d d ƒ ƒ  } t j | ƒ } Wd  QX| d d } d | k s t ‚ t	 d ƒ st ‚ d  S(   Ns   @jupyterlab/console-extensiont   stagings   package.jsont
   jupyterlabRe   (   R
   Rg   Rh   R^   R   R   RK   RT   RU   R   R	   (   R,   R^   Ra   R3   Re   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_uninstall_core_extensionÌ   s    	

c         C   sæ   |  j  } |  j d } t | ƒ |  j } t | ƒ d } | | k sK t ‚ | t | ƒ d k sg t ‚ t | ƒ sy t ‚ t | ƒ t k s‘ t ‚ t | ƒ d } | | k s³ t ‚ | t | ƒ d k sÏ t ‚ t | ƒ sâ t ‚ d  S(   NR5   t   linked_packagesRe   (	   Rf   RO   R   R^   R   Rh   R   R   Rg   (   R,   R   R+   R^   t   linked(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_link_extensionÞ   s    	
	c         C   sÒ   |  j  } |  j d } t | ƒ t k s. t ‚ |  j } t | ƒ d } | | k sY t ‚ | t | ƒ d k su t ‚ t | ƒ s‡ t ‚ t | ƒ s™ t ‚ t | ƒ d } | | k s» t ‚ t | ƒ sÎ t ‚ d  S(   NR7   R}   Re   (	   Rv   RO   R   Rg   Rh   R^   R   R   R   (   R,   R   R+   R^   R~   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_link_packageí   s    		c         C   s‚   |  j  } t | ƒ t k s! t ‚ t | ƒ t k s9 t ‚ t |  j ƒ d } |  j d } | | k sk t ‚ t | ƒ s~ t ‚ d  S(   NR}   R7   (	   Rv   R   Rg   Rh   R   R   R^   RO   R   (   R,   t   targetR~   R+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_unlink_packageû   s    	c         C   s&   t  |  j ƒ t k s t ‚ t ƒ  d  S(   N(   R	   Rf   Rg   Rh   R   (   R,   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_list_extensions  s    c         C   sÓ  |  j  ƒ  } t |  j | ƒ t k s* t ‚ t | d d ƒ } t j | ƒ sQ t ‚ t | ƒ d } |  j d } | | k s€ t ‚ t	 | | ƒ s• t ‚ t
 |  j d | ƒ t k s· t ‚ t | d d ƒ } t j | ƒ sß t ‚ t | ƒ d } | | k st ‚ t	 | | ƒ st ‚ t |  j | ƒ t k s5t ‚ t | ƒ d } |  j d } | | k sdt ‚ t	 | | ƒ syt ‚ t |  j | ƒ t k s—t ‚ t | ƒ d } | | k s¹t ‚ t	 | | ƒ sÏt ‚ d  S(   NRe   s   *.tgzR5   R}   R7   (   R.   R	   Rf   Rg   Rh   RK   Ri   R   RO   R   R
   R   Rv   R   (   R,   R^   R   Re   t   ext_nameR~   t   pkg_name(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_app_dir  s.    "c         C   s¿   |  j  ƒ  } t j j |  j ƒ r4 t j |  j ƒ n  t |  j ƒ t k sO t	 ‚ t
 | d d ƒ } t j | ƒ sw t	 ‚ t | ƒ d } |  j d } | | k s¦ t	 ‚ t | | ƒ s» t	 ‚ d  S(   NRe   s   *.tgzR5   (   R.   R   R   R   R^   t
   removedirsR	   Rf   Rg   Rh   RK   Ri   R   RO   R   (   R,   R^   R   Re   R„   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_app_dir_use_sys_prefix%  s    c         C   s]  |  j  ƒ  } |  j } t j j | ƒ r7 t j | ƒ n  t |  j ƒ t k sR t	 ‚ t
 | d d ƒ } t j | ƒ sy t	 ‚ t
 | d d ƒ } t j | ƒ s¡ t	 ‚ t | ƒ d } |  j d } | | k sÐ t	 ‚ t | | ƒ så t	 ‚ t |  j | ƒ t k st	 ‚ t j | ƒ st	 ‚ t | ƒ d } | | k s:t	 ‚ t | | ƒ sOt	 ‚ t |  j d | ƒ t k sqt	 ‚ t j | ƒ s‡t	 ‚ t j | ƒ sœt	 ‚ t | ƒ d } | | k s¾t	 ‚ t | | ƒ sÓt	 ‚ t |  j d | ƒ t k sõt	 ‚ t j | ƒ st	 ‚ t j | ƒ s!t	 ‚ t | ƒ d } | | k sCt	 ‚ t | | ƒ sYt	 ‚ d  S(   NRe   s   *.tgzR5   (   R.   R^   R   R   R   R‡   R	   Rf   Rg   Rh   RK   Ri   R   RO   R   R
   (   R,   R^   t   sys_dirt   sys_patht   app_pathRe   R„   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_app_dir_shadowing2  s<    	""c         C   sÇ   t  |  j ƒ t k s t ‚ t ƒ  t |  j d d d ƒ } t | ƒ  } | j ƒ  } Wd  QX|  j	 d | k st t ‚ t |  j d d ƒ } t | ƒ  } | j ƒ  } Wd  QX|  j	 d | k sÃ t ‚ d  S(   NRz   R   s   index.out.jsR5   t   static(
   R	   Rf   Rg   Rh   R   RK   R^   R   t   readRO   (   R,   t   entryRa   R3   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt
   test_buildV  s    c         C   s  t  |  j ƒ t k s t ‚ t d d d d d d ƒ t |  j d d ƒ } t | ƒ  } | j ƒ  } Wd  QX|  j	 d	 | k sƒ t ‚ t |  j d d
 ƒ } t | ƒ  } t
 j | ƒ } Wd  QX| d d d k sÖ t ‚ | d d d k sð t ‚ | d d d k s
t ‚ d  S(   NR+   t   foot   versions   1.0t
   public_urlt   barR   s   index.out.jsR5   s   package.jsonR{   t	   publicUrl(   R	   Rf   Rg   Rh   R   RK   R^   R   RŽ   RO   RT   RU   (   R,   R   Ra   R3   t   pkg(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_build_custome  s    c         C   sE   t  ƒ  } t j } |  j t _ | j d g  ƒ | t _ t | ƒ d  S(   Nt   argv(   R   t   syst   stderrRH   t
   initializeR   (   R,   t   appRš   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_load_extensionv  s    			c         C   s\  |  j  ƒ  } t |  j | ƒ t k s* t ‚ t |  j d | ƒ t k sL t ‚ t | ƒ } |  j d } | | d k s{ t ‚ t | | ƒ s‘ t ‚ t | | t ƒ s© t ‚ t d | ƒ t k sÄ t ‚ t | ƒ } d | d k sæ t ‚ t d | ƒ sü t ‚ t d | t ƒ st ‚ | | d k s*t ‚ t | | ƒ s@t ‚ t | | t ƒ sXt ‚ d  S(   NR5   t   disableds   @jupyterlab/notebook-extension(	   R.   R	   Rf   Rg   Rh   R   RO   R   R   (   R,   R^   t   infoR+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_disable_extension~  s     "c         C   s(  |  j  ƒ  } t |  j | ƒ t k s* t ‚ t |  j d | ƒ t k sL t ‚ t |  j d | ƒ t k sn t ‚ t | ƒ } |  j d } | | d k s t ‚ t	 | | ƒ s² t ‚ t d | ƒ t k sÍ t ‚ | | d k sã t ‚ t	 | | ƒ sø t ‚ d | d k st ‚ t	 d | ƒ s$t ‚ d  S(   NR5   Rž   s   @jupyterlab/notebook-extension(
   R.   R	   Rf   Rg   Rh   R   RO   R   R   R   (   R,   R^   RŸ   R+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_enable_extension  s    ""c         C   sJ  t  ƒ  s t ‚ t |  j ƒ t k s* t ‚ t |  j ƒ t k sE t ‚ t ƒ  t  ƒ  s\ t ‚ t |  j ƒ t k sw t ‚ t  ƒ  s† t ‚ t	 |  j
 d ƒ t k s¥ t ‚ t  ƒ  sµ t ‚ t |  j d ƒ } t | ƒ  } t j | ƒ } Wd  QXt | d ƒ  } | j ƒ  } Wd  QXd | d <t | d ƒ  } t j | | ƒ Wd  QXt  ƒ  sPt ‚ t  ƒ  s_t ‚ t | d ƒ  } | j | ƒ Wd  QXt  ƒ  s”t ‚ t |  j d ƒ } t | d ƒ  } | j ƒ  } Wd  QXt | d ƒ  } | j | d	 ƒ Wd  QXt  ƒ  st ‚ t  ƒ  st ‚ t | d ƒ  } | j | ƒ Wd  QXt  ƒ  sFt ‚ d  S(
   NR8   s   package.jsont   rbR”   R‘   R/   t   wbs   index.jss   
console.log("hello");(   R   Rh   R	   Rf   Rg   R   Rv   R   Rl   R
   RO   RK   R   RT   RU   RŽ   t   dumpt   write(   R,   t   pkg_pathRa   R3   t   orig(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_build_checkŸ  s@    
c         C   sº   t  d d ƒ s t ‚ t  d d ƒ s* t ‚ t  d d ƒ s? t ‚ t  d d ƒ sT t ‚ t  d d ƒ sj t ‚ t  d	 d
 ƒ s€ t ‚ t  d d ƒ d  k s› t ‚ t  d d ƒ d  k s¶ t ‚ d  S(   Ns   ^0.6.0s   ^0.6.1s   >0.1s   0.6s   ~0.5.0s   ~0.5.2s   0.5.2s   ^0.5.0s   ~1.5.0s   ^1.6.0t   *s   <0.6s   0.1(   R   Rh   t   None(   R,   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_compatibilityË  s    c            s  t  ƒ  } | d d ‰ d „  ‰ ‡ ‡ f d †  } ‡ f d †  } d t f d „  ƒ  Y‰  ‡  ‡ f d †  } t j t d	 | ƒ } t j t j d
 | ƒ } t j t j d | ƒ } | Y | L t j j ‰ | 3 t j ˆ  ƒ  t	 d ƒ t
 k s÷ t ‚ Wd  QXWd  QXWd  QXWd  QXd  S(   Nt   dependenciess   @jupyterlab/applicationc         S   s   i i |  d 6d 6S(   Ns   @jupyterlab/applicationR¬   (    (   t   ver(    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   _gen_depÚ  s    c            s   | d k s t  ‚ i | d 6i ˆ  ˆ ƒ d 6ˆ  ˆ ƒ d 6ˆ  ˆ ƒ d 6ˆ  d ƒ d 6ˆ  ˆ ƒ d 6ˆ  d ƒ d	 6ˆ  d ƒ d
 6d 6S(   Nt   mockextensionR+   s   0.9.0s   1.0.0s   1.1.0s	   ^2000.0.0s   2.0.0s   2.0.0-b0s   2.1.0-b0s   2.1.0t   versions(   Rh   (   t   registryR+   t   logger(   R®   t   current_app_dep(    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   _mock_metadataÞ  s    c            s„   t  d | d d d t  d t ƒ d d g ƒ } | j ˆ  d ƒ ƒ t  d	 | d
 t d | d | d | d d d d t | d ƒ ƒ } | S(   NR+   R’   s   2.1.0R{   R5   t   jupyterlab_extracted_filess   index.jss	   ^2000.0.0t   sourcet   is_dirR3   t   filenames   mockextension.tgzR   (   RN   Rg   t   updatet   FalseRK   (   R,   R¶   R.   t   argst   kwargsR3   RŸ   (   R®   (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   _mock_extractí  s    t   Successc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyR¾   ü  s   c            s=   | d k s t  ‚ | d k r* ˆ  ƒ  ‚ n  ˆ |  | | | Ž S(   NR¯   s   mockextension@1.1.0(   R¯   s   mockextension@1.1.0(   Rh   (   R,   R+   R»   R¼   (   R¾   t   orig_install(    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   _mock_installÿ  s    t   _fetch_package_metadatat   _extract_packaget   _install_extensionR¯   (   R   t	   ExceptionR   RX   R   t   _AppHandlerRÅ   Rn   Ro   R	   Rg   Rh   (   R,   t	   core_dataR´   R½   RÂ   t   p1t   p2t   p3(    (   R¾   R®   R³   RÁ   s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_install_compatible×  s2    					  c            sÝ   g  ‰  ‡  f d †  } d „  } t  j t j d | ƒ } t  j t j d | ƒ } t |  j ƒ t k si t ‚ t |  j ƒ t k s„ t ‚ | 1 | $ t	 |  j
 d ƒ t k s± t ‚ Wd  QXWd  QXˆ  |  j
 d g k sÙ t ‚ d  S(   Nc            sC   ˆ  j  | d | d j d ƒ d ƒ t d | d t d d | ƒ S(   Ni    i   t   @R+   R·   R   s   foo/bar/(   R)   t   splitRN   Rº   (   R,   R+   R»   R¼   (   t	   installed(    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyRÂ     s    &c         S   s   d S(   Ns	   10000.0.0(    (   R,   R+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   _mock_latest  s    RÅ   t"   _latest_compatible_package_versionR5   (   R   RX   R   RÇ   R	   Rf   Rg   Rh   Rl   R   RO   (   R,   RÂ   RÐ   RÉ   RÊ   (    (   RÏ   s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_update_single  s"    			 +c         C   s   t  t d ƒ k s t ‚ d  S(   NR‘   (   Rº   R   Rh   (   R,   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_update_missing_extension1  s    c            sê   g  ‰  ‡  f d †  } d „  } t  j t j d | ƒ } t  j t j d | ƒ } t |  j ƒ t |  j ƒ | P | C t |  j d ƒ t	 k s• t
 ‚ t |  j d ƒ t	 k s´ t
 ‚ Wd  QXWd  QXˆ  |  j d |  j d g k sæ t
 ‚ d  S(   Nc            sC   ˆ  j  | d | d j d ƒ d ƒ t d | d t d d | ƒ S(   Ni    i   RÍ   R+   R·   R   s   foo/bar/(   R)   RÎ   RN   Rº   (   R,   R+   R»   R¼   (   RÏ   (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyRÂ   7  s    &c         S   s   d S(   Ns	   10000.0.0(    (   R,   R+   (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyRÐ   ;  s    RÅ   RÑ   R5   R8   (   R   RX   R   RÇ   R	   Rf   Rl   R   RO   Rg   Rh   (   R,   RÂ   RÐ   RÉ   RÊ   (    (   RÏ   s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_update_multiple5  s$    			 +c            sþ   g  ‰ ‡ f d †  } t  j j ‰  ‡  f d †  } t |  j ƒ t k sK t ‚ t |  j ƒ t k sf t ‚ t j	 t  j d | ƒ } t j	 t  j d | ƒ } | 0 | # t
 d  d t ƒt k sÂ t ‚ Wd  QXWd  QXt ˆ ƒ |  j d |  j d g k sú t ‚ d  S(   Nc            s*   ˆ  j  | d | d j d ƒ d ƒ t S(   Ni    i   RÍ   (   R)   RÎ   Rg   (   R,   R+   R»   R¼   (   t   updated(    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   _mock_updateQ  s    &c            s   ˆ  |  ƒ } g  | d <| S(   Nt   local_extensions(    (   R,   RŸ   (   t   original_app_info(    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   _mock_app_infoV  s    
t   _update_extensiont   _get_app_infot   all_R5   R8   (   R   RÇ   RÛ   R	   Rf   Rg   Rh   Rl   R   RX   R   Rª   t   sortedRO   (   R,   RÖ   RÙ   RÉ   RÊ   (    (   RØ   RÕ   s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   test_update_allO  s$    		 *(   R¿   RÀ   R.   Rd   Rj   Rk   Rm   Ru   Rw   Rx   Ry   R|   R   R€   R‚   Rƒ   R†   Rˆ   RŒ   R   R—   R   R    R¡   R¨   R«   RÌ   RÒ   RÓ   RÔ   RÞ   (    (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyR'   6   s:   		I			
	
													$						,		@			(3   t   __doc__Ri   RT   R   RQ   R™   t   os.pathR    RK   t   unittestR   Rn   t   unittest.mockR   t   ImportErrort   mockt   ipython_genutilsR   t   ipython_genutils.tempdirR   t   notebook.notebookappR   t   jupyter_coreR   R{   R   t   jupyterlab.extensionR   t   jupyterlab.commandsR	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   abspatht   __file__RP   Rª   R&   R'   (    (    (    s?   lib/python2.7/site-packages/jupyterlab/tests/test_jupyterlab.pyt   <module>   s,   ^