ó
ú2¢\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 m Z m	 Z	 d d l
 Z
 d d l m Z y d d l m Z Wn! e k
 r± d d l m Z n Xd 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 d d l m  Z  e j! Z! d d l" m# Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d „  Z- e j. d ƒ Z/ d „  Z0 d „  Z1 d „  Z2 d e j3 f d „  ƒ  YZ4 d „  Z5 d e# f d  „  ƒ  YZ6 d S(!   s   Test NotebookAppiÿÿÿÿN(   t   Popent   PIPEt   STDOUT(   t   NamedTemporaryFile(   t   patch(   t   check_help_all_output(   t   NoStart(   t   TemporaryDirectory(   t
   TraitError(   t   notebookappt   __version__(   t   passwd_checki   (   t   NotebookTestBasec           C   s   t  d ƒ d S(   s!   ipython notebook --help-all workst   notebookN(   R   (    (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_help_output   s    c             sÐ   t  ƒ  }  t d |  j d t j ƒ  ƒ ‰  ‡  f d †  } ˆ  j d g  ƒ ˆ  j ƒ  | ƒ  } t j t	 | ƒ d ƒ t j | d d ˆ  j
 ƒ t j | d d ˆ  j ƒ ˆ  j ƒ  t j | ƒ  g  ƒ ˆ  j ƒ  d  S(	   Nt   runtime_dirt   logc              s   t  t j ˆ  j ƒ ƒ S(   N(   t   listR	   t   list_running_serversR   (    (   t   nbapp(    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   get_servers&   s    t   argvi   i    t   portt   url(   R   t   NotebookAppt   namet   loggingt	   getLoggert
   initializet   write_server_info_filet   ntt   assert_equalt   lenR   t   connection_urlt   remove_server_info_file(   t   tdR   t   servers(    (   R   s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_server_info_file#   s    	
	
c          C   s8   t  ƒ  ) }  t d |  ƒ } t j | j |  ƒ Wd  QXd  S(   Nt   notebook_dir(   R   R   R   R   R&   (   R#   t   app(    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_nb_dir4   s    c       
   C   sS   t  ƒ  D }  t j j |  d ƒ } t ƒ  } t j t ƒ  | | _ Wd  QXWd  QXd  S(   Nt	   notebooks(	   R   t   ost   patht   joinR   R   t   assert_raisesR   R&   (   R#   t   nbdirR'   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_no_create_nb_dir9   s
    	c       
   C   s\   t  ƒ  M }  t j j |  d d d d ƒ } t ƒ  } t j t ƒ  | | _ Wd  QXWd  QXd  S(   NR   t   dirt   ist   missing(	   R   R*   R+   R,   R   R   R-   R   R&   (   R#   R.   R'   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_missing_nb_dir@   s
    	c       
   C   s>   t  ƒ  / }  t ƒ  } t j t ƒ  |  | _ Wd  QXWd  QXd  S(   N(   R   R   R   R-   R   R&   (   t   tfR'   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_invalid_nb_dirG   s    	c          C   sN   t  d d t j ƒ 2 }  t d |  ƒ } t j | j j t j ƒ ƒ Wd  QXd  S(   Nt   suffixt   _slashR&   (   R   R*   t   sepR   R   t   assert_falseR&   t   endswith(   R#   R'   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_nb_dir_with_slashM   s    c          C   s;   t  j j t  j ƒ }  t d |  ƒ } t j | j |  ƒ d  S(   NR&   (   R*   R+   t   abspathR8   R   R   R   R&   (   t   rootR'   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_nb_dir_rootR   s    c       	   C   s   t  ƒ  p }  t d |  ƒ } | j d d g ƒ t j t ƒ  | j ƒ  Wd  QXt j j	 t j j
 |  d ƒ ƒ su t ‚ Wd  QXd  S(   Nt
   config_dirs   --generate-configs   --allow-roots   jupyter_notebook_config.py(   R   R   R   R   R-   R   t   startR*   R+   t   existsR,   t   AssertionError(   R#   R'   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_generate_configW   s    c          #   sZ   x1 d d d d d g D] ‰  ‡  f d †  }  |  Vq Wx d d g D] ‰  t  ˆ  f VqA Wd  S(	   Ns   4.1.0.b1s   4.1.b1s   4.2s   X.y.zs   1.2.3.dev1.post2c              s$   t  j t ƒ  t ˆ  ƒ Wd  QXd  S(   N(   R   R-   t
   ValueErrort   raise_on_bad_version(    (   t   version(    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   loci   s    s   4.1.1s   4.2.1b3(   RE   (   RG   (    (   RF   s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_pep440_version`   s    	s:   ^(\d+)\.(\d+)\.(\d+((a|b|rc)\d+)?)(\.post\d+)?(\.dev\d*)?$c         C   s"   t  j |  ƒ s t d ƒ ‚ n  d  S(   Ns·   Versions String does apparently not match Pep 440 specification, which might lead to sdist and wheel being seen as 2 different release. E.g: do not use dots for beta/alpha/rc markers.(   t   pep440ret   matchRD   (   RF   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyRE   y   s    c           C   s   t  t ƒ d  S(   N(   RE   R
   (    (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_current_version€   s    c          C   s½   d }  t  ƒ  ¨ } t j d i | d 6ƒ † t j t d d |  ƒg t j d t j ƒ } | j	 g  ƒ | j
 ƒ  t ƒ  } | j ƒ  t j | j d ƒ t | j |  ƒ Wd  QXWd  QXWd  QXd  S(   Nt   secrets
   os.environt   JUPYTER_CONFIG_DIRt   getpasst   return_valuet	   log_levelt    (   R   R   t   dictt   objectRN   R	   t   NotebookPasswordAppR   t   ERRORR   R@   R   t   load_config_fileR   t   assert_not_equalt   passwordR   (   RX   R#   R'   t   nb(    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_notebook_passwordƒ   s    
	
t   TestingStopAppc           B   s    e  Z d  Z d „  Z d „  Z RS(   s)   For testing the logic of NbserverStopApp.c         K   s#   t  t |  ƒ j |   g  |  _ d  S(   N(   t   superR[   t   __init__t   servers_shut_down(   t   selft   kwargs(    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyR]   “   s    c         C   s   |  j  j | ƒ t S(   N(   R^   t   appendt   True(   R_   t   server(    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   shutdown_server—   s    (   t   __name__t
   __module__t   __doc__R]   Rd   (    (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyR[   ‘   s   	c          C   s  d „  }  t  d |  ƒ } | ( t ƒ  } | j d g ƒ | j ƒ  Wd  QXt j t | j ƒ d ƒ t j | j d d d ƒ | k t  d ƒ X } t ƒ  } | j d	 g ƒ t j t	 ƒ  } | j ƒ  Wd  QXt j | j
 j d ƒ Wd  QXWd  QXt j t | j ƒ d ƒ d  S(
   Nc         s   sj   xc t  d d ƒ D]R } i	 d | d 6| d 6d d 6d d	 6d d
 6t d 6d d 6t d 6d | d 6Vq Wd  S(   Nid   in   iè  t   pidR   t   /t   base_urlt	   localhostt   hostnameR&   t   secureRQ   t   tokenRX   s   http://localhost:%iR   (   t   ranget   False(   R   R   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyR   œ   s    s)   notebook.notebookapp.list_running_serverst   105i   i    R   ii   s   os.killt   999(   R   R[   R   R@   R   R   R    R^   R-   t
   SystemExitt	   exceptiont   code(   R   t   mock_serversR'   t   os_killt   exc(    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_notebook_stop›   s     		 	"t   NotebookAppTestsc           B   s   e  Z d  „  Z RS(   c         C   sM   t  t j ƒ  ƒ } t | ƒ d k s* t ‚ |  j d „  | Dƒ k sI t ‚ d  S(   Ni   c         S   s   h  |  ] } | d  ’ q S(   R   (    (   t   .0t   info(    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pys	   <setcomp>Â   s   	 (   R   R	   R   R    RB   R   (   R_   R$   (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   test_list_running_servers¿   s    (   Re   Rf   R}   (    (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyRz   ¾   s   (7   Rg   RN   R   R*   t   ret   signalt
   subprocessR    R   R   t   syst   tempfileR   t   unittest.mockR   t   ImportErrort   mockt
   nose.toolst   toolsR   t   traitlets.tests.utilsR   t   jupyter_core.applicationR   t   ipython_genutils.tempdirR   t	   traitletsR   R   R	   R
   t   notebook.auth.securityR   R   t   launchnotebookR   R   R%   R(   R/   R3   R5   R;   R>   RC   RH   t   compileRI   RE   RK   RZ   t   NbserverStopAppR[   Ry   Rz   (    (    (    s>   lib/python2.7/site-packages/notebook/tests/test_notebookapp.pyt   <module>   sL   															
	#