ó
Ýà‹]c           @   s¸   d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z m Z m	 Z	 d d l
 m Z d „  Z d „  Z d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   s,   Tests for adapting Jupyter msg spec versionsiÿÿÿÿN(   t   TestCase(   t   adaptt   V4toV5t   V5toV4t   code_to_line(   t   Sessionc          C   se   t  ƒ  }  |  j d ƒ } | d j d ƒ t j | ƒ } t | ƒ } | d d t j k sa t ‚ d  S(   Nt   msg_typet   headert   version(	   R   t   msgt   popt   copyt   deepcopyR   R   R   t   AssertionError(   t   sR	   t   originalt   adapted(    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_default_version   s    	c          C   s=   t  d d ƒ \ }  } |  d k s' t ‚ | d k s9 t ‚ d  S(   Nt    i    (   R   R   (   t   linet   pos(    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_code_to_line_no_code   s    t   AdapterTestc           B   s&   e  Z d  „  Z d d „ Z d „  Z RS(   c         C   s   t  ƒ  |  _ d  S(   N(   R   t   session(   t   self(    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   setUp   s    c         C   s1   t  j | ƒ } t | | p! |  j ƒ } | | f S(   N(   R   R   R   t
   to_version(   R   R	   R   R   R   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR       s    c         C   s   d  S(   N(    (   R   R	   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   check_header%   s    N(   t   __name__t
   __module__R   t   NoneR   R   (    (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR      s   	t   V4toV5TestCasec           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 RS(   i   i   c         C   s*   |  j  j | | ƒ } | d j d ƒ | S(   s2   Create a v4 msg (same as v5, minus version header)R   R   (   R   R	   R
   (   R   R   t   contentR	   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR	   -   s    c         C   sK   |  j  d d i d d 6ƒ} |  j | |  j ƒ \ } } |  j | | ƒ d  S(   Nt   execute_resultR    t   okt   status(   R	   R   t   from_versiont   assertEqual(   R   R	   R   R   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_same_version3   s    c         C   sn   |  j  d i d d 6ƒ } |  j | ƒ \ } } |  j | d d t j ƒ | d j d ƒ |  j | | ƒ d  S(   Nt   input_replys	   some textt   valueR   R   (   R	   R   R%   R   R   R
   (   R   R	   t   v4t   v5(    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_no_adapt;   s
    c         C   s   x– d d d g D]… \ } } |  j  | i d d 6ƒ } |  j | ƒ \ } } |  j | d	 d
 t j ƒ |  j | d	 d | ƒ |  j | d | d ƒ q Wd  S(   NR!   t   pyoutt   execute_inputt   pyint   errort   pyerrR(   t   keyR   R   R   R    (   R!   R,   (   R-   R.   (   R/   R0   (   R	   R   R%   R   R   (   R   t   v5_typet   v4_typeR	   R)   R*   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_rename_typeB   s    c         C   sÏ   |  j  d i d d 6t d 6i d d 6d 6d g d	 6ƒ } |  j | ƒ \ } } |  j | d
 d | d
 d ƒ | d } | d } |  j | d i d d 6d d 6ƒ |  j d	 | ƒ |  j | d | d ƒ d  S(   Nt   execute_requests   a=5t   codet   silentt   applet   at   user_expressionst   bt   user_variablesR   R   R    (   R	   t   FalseR   R%   t   assertNotIn(   R   R	   R)   R*   t   v4ct   v5c(    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_execute_requestN   s     

"c         C   sÕ   |  j  d i d d 6d d 6i d d 6d 6i d	 d
 6d 6i d d 6d d 6g d 6ƒ } |  j | ƒ \ } } | d } |  j d | ƒ |  j | d i d d 6d	 d
 6ƒ |  j | d i d d 6i d d 6d 6g ƒ d  S(   Nt   execute_replyR"   R#   i   t   execution_counti   R9   R<   i   s   a+aR:   t   paget   sourcet   blaht   textt   payloadR    s
   text/plaint   data(   R	   R   R>   R%   (   R   R	   R)   R*   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_execute_reply]   s    
"c         C   s¬   |  j  d i d d 6d d 6d  d 6d d 6ƒ } |  j | ƒ \ } } | d	 } | d	 } x d D] } |  j | | ƒ q^ W|  j | d | d ƒ |  j | d
 | d ƒ d  S(   Nt   complete_requests   a.isRG   s
   foo = a.isR   t   blocki
   t
   cursor_posR    R6   (   RG   R   RL   (   R	   R   R   R>   R%   (   R   R	   R)   R*   R?   R@   R1   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_complete_requestm   s    

c         C   s­   |  j  d i d d 6d d d d g d 6ƒ } |  j | ƒ \ } } | d	 } | d	 } |  j | d | d ƒ |  j | d
 i  ƒ |  j | d d ƒ |  j | d d  ƒ d  S(   Nt   complete_replys   a.ist   matched_texts	   a.isalnums	   a.isalphas	   a.isdigits	   a.islowert   matchesR    t   metadatat   cursor_startiüÿÿÿt
   cursor_end(   R	   R   R%   R   (   R   R	   R)   R*   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_complete_reply|   s    

c         C   s³   |  j  d i d d 6d d 6ƒ } |  j | ƒ \ } } |  j | d d d ƒ | d	 } | d	 } |  j | d
 | d ƒ |  j | d t | d ƒ ƒ |  j | d | d ƒ d  S(   Nt   object_info_requestt   foot   onamei   t   detail_levelR   R   t   inspect_requestR    R6   RM   (   R	   R   R%   t   len(   R   R	   R)   R*   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_object_info_requestŽ   s    

c         C   sÑ   |  j  d i d d 6t d 6d d 6d d 6d	 d
 6ƒ } |  j | ƒ \ } } |  j | d d d ƒ | d } | d } |  j t | ƒ d d d d g ƒ | d d } |  j | d j | d | d
 g ƒ ƒ d  S(   Nt   object_info_replyRW   t   namet   foundR"   R#   s   foo(a=5)t
   definitions   the docstringt	   docstringR   R   t   inspect_replyR    RI   RR   s
   text/plains   
(   R	   t   TrueR   R%   t   sortedt   join(   R   R	   R)   R*   R?   R@   RG   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_object_info_reply›   s    

"c         C   s‘   |  j  d i d d 6t d 6ƒ } |  j | ƒ \ } } |  j | d d d ƒ | d } | d } |  j | i d	 d
 6t d 6i  d 6i  d 6ƒ d  S(   NR]   RW   R^   R_   R   R   Rb   R    R"   R#   RI   RR   (   R	   R=   R   R%   (   R   R	   R)   R*   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt    test_object_info_reply_not_found«   s    

c         C   s§   |  j  d i d d 6d d d g d 6d d d	 g d
 6ƒ } |  j | ƒ \ } } | d } | d } |  j | i d d 6d d 6d d 6i d d 6d d 6d 6d d 6ƒ d  S(   Nt   kernel_info_replyt   pythont   languagei   i   i    t   language_versioni   i   t   ipython_versionR    s   4.1t   protocol_versiont   ipythont   implementations   1.2.3t   implementation_versionR^   s   2.8.0R   t   language_infoR   t   banner(   R	   R   R%   (   R   R	   R)   R*   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_kernel_info_reply»   s    

c         C   sÑ   t  d d ƒ } |  j d i i d d 6t j | ƒ d 6d 6i i d d	 6d 6d
 6ƒ } |  j | ƒ \ } } | d } | d } |  j | d
 | d
 ƒ |  j | d d | d d ƒ |  j | d d | ƒ d  S(   NR9   i   t   display_datas	   some texts
   text/plains   application/jsonRI   R(   R1   RR   R    (   t   dictR	   t   jsont   dumpsR   R%   (   R   t   jsondataR	   R)   R*   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_display_dataÑ   s    

 c         C   sg   |  j  d i d d 6ƒ } |  j | ƒ \ } } |  j | d d | d d ƒ |  j | d d ƒ d  S(   Nt   input_requests   $>t   promptR    t   password(   R	   R   R%   t   assertFalse(   R   R	   R)   R*   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_input_requestã   s     (   R   R   R$   R   R	   R&   R+   R4   RA   RJ   RN   RU   R\   Rf   Rg   Rs   Ry   R~   (    (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR   )   s    													t   V5toV4TestCasec           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 RS(   i   i   c         C   s   |  j  j | | ƒ S(   N(   R   R	   (   R   R   R    (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR	   î   s    c         C   sK   |  j  d d i d d 6ƒ} |  j | |  j ƒ \ } } |  j | | ƒ d  S(   NR!   R    R"   R#   (   R	   R   R$   R%   (   R   R	   R   R   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR&   ñ   s    c         C   sg   |  j  d i d d 6ƒ } |  j | ƒ \ } } |  j d | d ƒ | d j d ƒ |  j | | ƒ d  S(   NR'   s	   some textR(   R   R   (   R	   R   R>   R
   R%   (   R   R	   R*   R)   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR+   ù   s
    c         C   s˜   x‘ d d d g D]€ \ } } |  j  | i d d 6ƒ } |  j | ƒ \ } } |  j | d	 d
 | ƒ d | d	 k sx t ‚ |  j | d | d ƒ q Wd  S(   NR!   R,   R-   R.   R/   R0   R(   R1   R   R   R   R    (   R!   R,   (   R-   R.   (   R/   R0   (   R	   R   R%   R   (   R   R2   R3   R	   R*   R)   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR4      s    c         C   s§   |  j  d i d d 6t d 6i d d 6d 6ƒ } |  j | ƒ \ } } |  j | d d	 | d d	 ƒ | d
 } | d
 } |  j | d g  ƒ |  j | d | d ƒ d  S(   NR5   s   a=5R6   R7   R8   R9   R:   R   R   R    R<   (   R	   R=   R   R%   (   R   R	   R*   R)   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyRA     s     

c         C   s¾   |  j  d i d d 6d d 6ƒ } |  j | ƒ \ } } | d } | d } |  j d | ƒ |  j | d | d j t ƒ d ƒ |  j | d d	 ƒ |  j | d
 d ƒ |  j | d d  ƒ d  S(   NRK   s   def foo():
    a.is
foo()R6   i   RM   R    R   i   i   RG   R   RL   (   R	   R   R>   R%   t
   splitlinesRc   R   (   R   R	   R*   R)   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyRN     s    

%c         C   s“   |  j  d i d d 6d d 6d d d d	 g d
 6i  d 6ƒ } |  j | ƒ \ } } | d } | d } |  j | d d ƒ |  j | d
 | d
 ƒ d  S(   NRO   i
   RS   i   RT   s	   a.isalnums	   a.isalphas	   a.isdigits	   a.islowerRQ   RR   R    RP   s   a.is(   R	   R   R%   (   R   R	   R*   R)   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyRU   )  s    


c         C   s˜   |  j  d i d d 6d d 6d d 6ƒ } |  j | ƒ \ } } |  j | d d	 d
 ƒ | d } | d } |  j | d d ƒ |  j | d | d ƒ d  S(   NRZ   s   def foo():
    apple
bar()R6   i   RM   i   RY   R   R   RV   R    RX   R8   (   R	   R   R%   (   R   R	   R*   R)   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_inspect_request:  s    

c         C   s¨   d } |  j  d i | d 6t | ƒ d d 6d d 6ƒ } |  j | ƒ \ } } |  j | d d d	 ƒ | d
 } | d
 } |  j | d d ƒ |  j | d | d ƒ d  S(   NsQ   something(range(10), kwarg=smth) ; xxx.xxx.xxx( firstarg, rand(234,23), kwarg1=2,RZ   R6   i   RM   RY   R   R   RV   R    RX   s   xxx.xxx.xxx(   R	   R[   R   R%   (   R   R   R	   R*   R)   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_inspect_request_tokenI  s    

c         C   sª   |  j  d i d d 6t d 6i d d 6d 6i  d 6ƒ } |  j | ƒ \ } } |  j | d	 d
 d ƒ | d } | d } |  j t | ƒ d d g ƒ |  j | d t ƒ d  S(   NRb   RW   R^   R_   s	   some texts
   text/plainRI   RR   R   R   R]   R    RX   (   R	   Rc   R   R%   Rd   R=   (   R   R	   R*   R)   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   test_inspect_replyW  s    

c         C   sÅ   |  j  d i d d 6d d 6d d 6i d d	 6d
 d 6d d 6d 6d d 6ƒ } |  j | ƒ \ } } | d } | d } | d } |  j | i d d g d 6d d 6d d d g d 6d d d g d 6ƒ d  S(   NRh   s   5.0Rm   Rn   Ro   s   1.2.3Rp   Ri   R^   s   2.8.0R   s   text/x-pythont   mimetypeRq   s
   the bannerRr   R    i   i    Rj   i   i   Rk   i   i   Rl   (   R	   R   R%   (   R   R	   R*   R)   R?   R@   t   info(    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyRs   e  s$    


c         C   sÑ   t  d d ƒ } |  j d i i d d 6| d 6d 6i i d d	 6d 6d
 6ƒ } |  j | ƒ \ } } | d } | d } |  j | d
 | d
 ƒ |  j | d d | d d ƒ |  j | d d t j | ƒ ƒ d  S(   NR9   i   Rt   s	   some texts
   text/plains   application/jsonRI   R(   R1   RR   R    (   Ru   R	   R   R%   Rv   Rw   (   R   Rx   R	   R*   R)   R?   R@   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyRy   ~  s    

 c         C   sm   |  j  d i d d 6t d 6ƒ } |  j | ƒ \ } } |  j | d d | d d ƒ |  j d | d ƒ d  S(   NRz   s   $>R{   R|   R    (   R	   Rc   R   R%   R>   (   R   R	   R*   R)   (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR~     s      (   R   R   R$   R   R	   R&   R+   R4   RA   RN   RU   R   R‚   Rƒ   Rs   Ry   R~   (    (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyR   ê   s   												(   t   __doc__R   Rv   t   unittestR    t   jupyter_client.adapterR   R   R   R   t   jupyter_client.sessionR   R   R   R   R   R   (    (    (    s@   lib/python2.7/site-packages/jupyter_client/tests/test_adapter.pyt   <module>   s   "		Á