ó
Û¤[c           @  sr   d  d l  m Z d  d l Z d  d l m Z d  d l m Z d e j f d „  ƒ  YZ e	 d k rn e j
 ƒ  n  d S(   iÿÿÿÿ(   t   print_functionN(   t   BlockingInProcessKernelClient(   t   InProcessKernelManagert   InProcessKernelManagerTestCasec           B  sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C  s   t  ƒ  |  _ d  S(   N(   R   t   km(   t   self(    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyt   setUp   s    c         C  s    |  j  j r |  j  j ƒ  n  d  S(   N(   R   t
   has_kernelt   shutdown_kernel(   R   (    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyt   tearDown   s    c         C  s  |  j  } | j s t ‚ | j ƒ  | j s2 t ‚ | j d k	 sG t ‚ | j ƒ  } | j sc t ‚ | j ƒ  | j s| t ‚ | j } | j	 ƒ  |  j
 | j ƒ | j | k s´ t ‚ | j ƒ  | j sÎ t ‚ |  j t | j ƒ |  j t | j d ƒ | j ƒ  | j st ‚ d S(   sN    Does the in-process kernel manager implement the basic KM interface?
        i	   N(   R   R   t   AssertionErrort   start_kernelt   kernelt   Nonet   clientt   channels_runningt   start_channelst   restart_kernelt   assertIsNotNoneR   t   assertRaisest   NotImplementedErrort   interrupt_kernelt   signal_kernelt   stop_channels(   R   R   t   kct
   old_kernel(    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyt   test_interface   s&    	

	


c         C  sc   |  j  } | j ƒ  | j ƒ  } | j ƒ  | j ƒ  | j d ƒ | j j j d d k s_ t	 ‚ d S(   s;    Does executing code in an in-process kernel work?
        s   foo = 1t   fooi   N(
   R   R   R   R   t   wait_for_readyt   executeR   t   shellt   user_nsR
   (   R   R   R   (    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyt   test_execute6   s    	


c         C  s²   |  j  } | j ƒ  | j ƒ  } | j ƒ  | j ƒ  | j j j i d d 6d d 6ƒ | j d d ƒ | j	 ƒ  } | d d d	 k sŠ t
 ‚ |  j t | d
 d ƒ d d g ƒ d S(   sD    Does requesting completion from an in-process kernel work?
        i    t   my_bari   t   my_bazt   my_bai   t   headert   msg_typet   complete_replyt   contentt   matchesN(   R   R   R   R   R   R   R   t   pusht   completet   get_shell_msgR
   t   assertEqualt   sorted(   R   R   R   t   msg(    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyt   test_completeA   s    	


!c         C  sµ   |  j  } | j ƒ  | j ƒ  } | j ƒ  | j ƒ  d | j j j d <| j d ƒ | j	 ƒ  } | d d d k sy t
 ‚ | d } | d s“ t
 ‚ | d d	 } |  j d
 | ƒ d S(   sL    Does requesting object information from an in-process kernel work?
        i   R   R$   R%   t   inspect_replyR'   t   foundt   datas
   text/plaint   intN(   R   R   R   R   R   R   R   R   t   inspectR+   R
   t   assertIn(   R   R   R   R.   R'   t   text(    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyt   test_inspectP   s    	



c         C  sÇ   |  j  } | j ƒ  | j ƒ  } | j ƒ  | j ƒ  | j d ƒ | j d d d d ƒ | j j ƒ  d } | d d d	 k sƒ t	 ‚ | d
 d } t
 | ƒ d k s© t	 ‚ | d d d k sÃ t	 ‚ d S(   sA    Does requesting history from an in-process kernel work?
        t   1t   hist_access_typet   tailt   ni   iÿÿÿÿR$   R%   t   history_replyR'   t   historyi    i   N(   R   R   R   R   R   R   R=   t   shell_channelt   get_msgsR
   t   len(   R   R   R   R.   R=   (    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyt   test_historya   s    	


(	   t   __name__t
   __module__R   R	   R   R    R/   R7   RA   (    (    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyR      s   						t   __main__(   t
   __future__R    t   unittestt   ipykernel.inprocess.blockingR   t   ipykernel.inprocess.managerR   t   TestCaseR   RB   t   main(    (    (    sK   lib/python2.7/site-packages/ipykernel/inprocess/tests/test_kernelmanager.pyt   <module>   s   c