ó
Ýà]c           @   sÆ   d  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
 m Z d d l m Z d d l m Z d d	 l m Z d
 d l m Z d Z d e	 f d     YZ d S(   s2   Tests for the notebook kernel and session manager.iÿÿÿÿN(   t   PIPE(   t   TestCase(   t   Config(   t   KernelManager(   t   MultiKernelManageri   (   t
   skip_win32i   (   t	   localhosti   t   TestKernelManagerc           B   s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z e	 d    Z
 e	 d    Z d	   Z d
   Z d   Z d   Z RS(   c         C   s   t    } t d |  } | S(   Nt   config(   R   R   (   t   selft   ct   km(    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   _get_tcp_km   s    	c         C   s4   t    } d | j _ d | j _ t d |  } | S(   Nt   ipct   testR   (   R   R   t	   transportt   ipR   (   R	   R
   R   (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   _get_ipc_km   s
    	c         C   s  | j  d t d t  } |  j | j |   |  j | | k  |  j | | j   k  |  j t |  d  | j | d t |  j | j |   |  j | | j   k  | j	 |  | j
 |  } |  j t | t   | j | d t |  j | | k  d  S(   Nt   stdoutt   stderri   t   now(   t   start_kernelR    t
   assertTruet   is_alivet   list_kernel_idst   assertEqualt   lent   restart_kernelt   Truet   interrupt_kernelt
   get_kernelt
   isinstanceR   t   shutdown_kernel(   R	   R   t   kidt   k(    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   _run_lifecycle"   s    c         C   s  | j  d t d t  } | j |  } | j |  } |  j | | d  |  j | | d  |  j d | k  |  j d | k  | j |  } | j   |  j d | k  | j |  } | j   |  j d | k  | j	 |  } | j   | j
 | d	 t d  S(
   NR   R   R   R   t
   stdin_portt
   iopub_portt
   shell_portt   hb_portR   (   R   R    R   t   get_connection_infoR   R   t   connect_iopubt   closet   connect_shellt
   connect_hbR    R   (   R	   R   R   R   R!   R"   t   cinfot   stream(    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt
   _run_cinfo1   s     


c         C   s   |  j    } |  j |  d  S(   N(   R   R#   (   R	   R   (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   test_tcp_lifecycleC   s    c         C   s\   |  j    } | j d t d t  } |  j | |  | j   |  j | |  | j   d  S(   NR   R   (   R   R   R    t   assertInt   shutdown_allt   assertNotIn(   R	   R   R!   (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   test_shutdown_allG   s    
c         C   s&   |  j    } |  j | d t    d  S(   Nt   tcp(   R   R/   R   (   R	   R   (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   test_tcp_cinfoP   s    c         C   s   |  j    } |  j |  d  S(   N(   R   R#   (   R	   R   (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   test_ipc_lifecycleT   s    c         C   s#   |  j    } |  j | d d  d  S(   NR   R   (   R   R/   (   R	   R   (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   test_ipc_cinfoY   s    c         C   s=   |  j  |  j    |  j  |  j    |  j  |  j    d S(   sA   Ensure that a sequence of kernel startups doesn't break anything.N(   R#   R   (   R	   (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   test_start_sequence_tcp_kernels^   s    c         C   s=   |  j  |  j    |  j  |  j    |  j  |  j    d S(   sA   Ensure that a sequence of kernel startups doesn't break anything.N(   R#   R   (   R	   (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyR9   e   s    c         C   sh   |  j    t j d |  j   } t j d |  j   } z | j   | j   Wd  | j   | j   Xd  S(   Nt   target(   R0   t	   threadingt   Threadt   startt   join(   R	   t   threadt   thread2(    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt"   test_start_parallel_thread_kernelsk   s    


c         C   s}   |  j    t j d |  j   } t j d |  j   } z | j   | j   Wd  | j   | j   X| j d k sy t  d  S(   NR:   i    (	   R0   R;   R<   t   mpt   ProcessR=   R>   t   exitcodet   AssertionError(   R	   R?   t   proc(    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt#   test_start_parallel_process_kernelsw   s    


(   t   __name__t
   __module__R   R   R#   R/   R0   R4   R6   R   R7   R8   R9   RA   RG   (    (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyR      s   											(   t   __doc__t   ost   timeR;   t   multiprocessingRB   t
   subprocessR    t   unittestR   t   traitlets.config.loaderR   t   jupyter_clientR   t!   jupyter_client.multikernelmanagerR   t   utilsR   t   localinterfacesR   t   TIMEOUTR   (    (    (    sK   lib/python2.7/site-packages/jupyter_client/tests/test_multikernelmanager.pyt   <module>   s   