ó
ù2¢\c           @   sí   d  Z  d d l m Z d d l m Z d d l m Z 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 d e f d „  ƒ  YZ e ƒ  Z e e ƒ Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   s   Tests for the session manager.iÿÿÿÿ(   t   partial(   t   TestCase(   t   gent   web(   t   IOLoopi   (   t   SessionManager(   t   MappingKernelManager(   t   ContentsManager(   t   utcnowt	   isoformatt   DummyKernelc           B   s   e  Z d  d „ Z RS(   t   pythonc         C   s   | |  _  d  S(   N(   t   kernel_name(   t   selfR   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   __init__   s    (   t   __name__t
   __module__R   (    (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyR
      s   t   DummyMKMc           B   s>   e  Z d  Z d „  Z d „  Z d d d d „ Z e d „ Z RS(   sF   MappingKernelManager interface that doesn't start kernels, for testingc         O   s,   t  t |  ƒ j | | Ž  t d ƒ |  _ d  S(   Nu   ABCDEFGHIJK(   t   superR   R   t   itert
   id_letters(   R   t   argst   kwargs(    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyR      s    c         C   s   t  |  j ƒ S(   N(   t   nextR   (   R   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   _new_id   s    R   c         K   sO   | p |  j  ƒ  } t d | ƒ } |  j | <d |  j | <t | _ d | _ | S(   NR   i    t   idle(   R   R
   t   _kernelst   _kernel_connectionst
   dummy_datet   last_activityt   execution_state(   R   t	   kernel_idt   pathR   R   t   k(    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   start_kernel   s    		c         C   s   |  j  | =d  S(   N(   R   (   R   R   t   now(    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   shutdown_kernel&   s    N(	   R   R   t   __doc__R   R   t   NoneR"   t   FalseR$   (    (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyR      s
   		t   TestSessionManagerc           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   sM   t  d t ƒ  d t ƒ  ƒ |  _ t ƒ  |  _ |  j t |  j j d t	 ƒƒ d  S(   Nt   kernel_managert   contents_managert   all_fds(
   R   R   R   t   smR   t   loopt
   addCleanupR    t   closet   True(   R   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   setUp,   s
    	c            s+   t  j ‡  ‡ f d †  ƒ } ˆ j j | ƒ S(   Nc          3   sZ   g  }  x> ˆ  D]6 } | j  d d ƒ ˆ j j |   V} |  j | ƒ q Wt j |  ƒ ‚ d  S(   Nt   typet   notebook(   t
   setdefaultR,   t   create_sessiont   appendR   t   Return(   t   sessionsR   t   session(   t
   kwarg_listR   (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   co_add5   s    (   R   t	   coroutineR-   t   run_sync(   R   R:   R;   (    (   R:   R   sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   create_sessions4   s    c         K   s   |  j  | ƒ d S(   Ni    (   R>   (   R   R   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyR5   ?   s    c         C   s¬   |  j  } |  j d d d d ƒ d } | j d | ƒ } i | d 6d d 6i d d 6d  d 6d	 6d	 d
 6d  d 6i d d 6d d 6d d 6t d 6d d 6d 6} |  j | | ƒ d  S(   NR    s   /path/to/test.ipynbR   t   bart   idt
   session_idu   /path/to/test.ipynbt   nameR3   R2   t   Ai    t   connectionsR   R   R   t   kernel(   R,   R5   t   get_sessionR&   t   dummy_date_st   assertEqual(   R   R,   RA   t   modelt   expected(    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_get_sessionB   s    	
c         C   sB   |  j  } |  j d d d d ƒ d } |  j t | j d | ƒd  S(   NR    s   /path/to/test.ipynbR   t   fooR@   t   bad_id(   R,   R5   t   assertRaisest	   TypeErrorRF   (   R   R,   RA   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_bad_get_sessionT   s    	c         C   sƒ   |  j  } |  j d d d d ƒ } | j j | d d ƒ |  j t ƒ  | j d | d ƒ Wd  QX| j ƒ  } |  j | g  ƒ d  S(   NR    s   /path/to/1/test1.ipynbR   R   RE   R@   RA   (	   R,   R5   R)   R$   RN   t   KeyErrorRF   t   list_sessionsRH   (   R   R,   R9   t   listed(    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_get_session_dead_kernel[   s    	c         C   s‹  |  j  } |  j t d d d d ƒ t d d d d d d ƒ t d d d	 d
 d d d d ƒ ƒ } | j ƒ  } i | d d d 6d d 6d d 6i d d 6d  d	 6d 6d  d	 6i d d 6d d	 6d d 6t d 6d d 6d 6i | d d d 6d d 6d d 6d  d	 6i d d 6d d	 6d d 6t d 6d d 6d 6i | d d d 6d d 6d d 6d
 d	 6i d d 6d d	 6d d 6t d 6d d 6d 6g } |  j | | ƒ d  S(   NR    s   /path/to/1/test1.ipynbR   R   s   /path/to/2/test2.pyR2   t   files
   /path/to/3RB   RL   t   consolei    R@   u   /path/to/1/test1.ipynbR3   RC   RD   R   R   R   RE   i   u   /path/to/2/test2.pyt   Bi   u
   /path/to/3t   C(   R,   R>   t   dictRR   R&   RG   RH   (   R   R,   R8   RJ   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_list_sessionsf   sR    	$c         C   sá   |  j  } |  j t d d d d ƒ t d d d d ƒ ƒ } | j j | d d d ƒ | j ƒ  } i | d	 d d 6d
 d 6d d 6d  d 6i d
 d 6d  d 6d 6i d d 6d d 6d d 6t d 6d d 6d 6g } |  j | | ƒ d  S(   NR    s   /path/to/1/test1.ipynbR   R   s   /path/to/2/test2.ipynbi    RE   R@   i   u   /path/to/2/test2.ipynbR3   R2   RB   RW   RD   R   R   R   (	   R,   R>   RY   R)   R$   RR   R&   RG   RH   (   R   R,   R8   RS   RJ   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_list_sessions_dead_kernel™   s&    	c         C   s¿   |  j  } |  j d d d d ƒ d } | j | d d ƒ| j d | ƒ } i | d 6d d 6d	 d
 6d  d 6i d d 6d  d 6d	 6i d d 6d d 6d d 6t d 6d d 6d 6} |  j | | ƒ d  S(   NR    s   /path/to/test.ipynbR   t   juliaR@   s   /path/to/new_name.ipynbRA   u   /path/to/new_name.ipynbR3   R2   RB   RC   i    RD   R   R   R   RE   (   R,   R5   t   update_sessionRF   R&   RG   RH   (   R   R,   RA   RI   RJ   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_update_session´   s"    	
c         C   sH   |  j  } |  j d d d d ƒ d } |  j t | j d | d d ƒd  S(	   NR    s   /path/to/test.ipynbR   t   irR@   RA   t   bad_kws
   test.ipynb(   R,   R5   RN   RO   R]   (   R   R,   RA   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_bad_update_sessionÉ   s    	c         C   sI  |  j  } |  j t d d d d ƒ t d d d d ƒ t d d d d d	 d
 d d ƒ ƒ } | j | d d ƒ | j ƒ  } i | d d d 6d d 6d d	 6d  d 6i d d 6d  d 6d 6i d d 6d d 6d d 6t d 6d d 6d 6i | d d d 6d
 d	 6d d 6d d 6i d d 6d d 6d d 6t d 6d d 6d 6g } |  j | | ƒ d  S(   NR    s   /path/to/1/test1.ipynbR   R   s   /path/to/2/test2.ipynbs
   /path/to/3RB   RL   R2   RV   i   R@   i    u   /path/to/1/test1.ipynbR3   RC   RD   R   R   R   RE   i   u
   /path/to/3RX   (   R,   R>   RY   t   delete_sessionRR   R&   RG   RH   (   R   R,   R8   t   new_sessionsRJ   (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_delete_sessionÐ   s>    	$c            s„   |  j  ‰  |  j d d d d ƒ |  j t ƒ  |  j j ‡  f d †  ƒ Wd  QX|  j t j ƒ  |  j j ‡  f d †  ƒ Wd  QXd  S(   NR    s   /path/to/test.ipynbR   R   c              s   ˆ  j  d d ƒ S(   Nt	   bad_kwargt   23424(   Rb   (    (   R,   (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   <lambda>û   t    c              s   ˆ  j  d d ƒ S(   NRA   Rf   (   Rb   (    (   R,   (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyRg   ý   Rh   (   R,   R5   RN   RO   R-   R=   R   t	   HTTPError(   R   (    (   R,   sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   test_bad_delete_sessionö   s    	(   R   R   R1   R>   R5   RK   RP   RT   RZ   R[   R^   Ra   Rd   Rj   (    (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyR(   *   s   							3				&N(   R%   t	   functoolsR    t   unittestR   t   tornadoR   R   t   tornado.ioloopR   t   sessionmanagerR   t'   notebook.services.kernels.kernelmanagerR   t"   notebook.services.contents.managerR   t   notebook._tzR   R	   t   objectR
   R   RG   R   R(   (    (    (    sS   lib/python2.7/site-packages/notebook/services/sessions/tests/test_sessionmanager.pyt   <module>   s   	