ó
‹'=[c           @   sÎ   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	 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 e j e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   decodestring(   t   TestCase(   t   unicode_typei   (   t   readst   writes(   t	   from_dict(   t   nbjsoni   (   t   nb0(   t
   formattestt   TestJSONc           B   sP   e  Z d Z d  Z e Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(   t   ipynbc         C   s/   t  t d t ƒ} |  j t j | ƒ t ƒ d S(   s.   Ensure that multiline blobs are still readablet   split_linesN(   R   R   t   Falset   assertEqualR   R   (   t   selft   s(    (    s:   lib/python2.7/site-packages/nbformat/v3/tests/test_json.pyt   test_roundtrip_nosplit   s    c         C   s/   t  t d t ƒ} |  j t j | ƒ t ƒ d S(   s.   Ensure that splitting multiline blocks is safeR   N(   R   R   t   TrueR   R   R   (   R   R   (    (    s:   lib/python2.7/site-packages/nbformat/v3/tests/test_json.pyt   test_roundtrip_split   s    c         C   s±   t  j t ƒ } d | _ d | _ t | j d j d j _	 t
 j | ƒ } t t j | ƒ ƒ } |  j d | ƒ |  j d | ƒ x+ | j d j D] } |  j d | j ƒ q Wd S(   s(   transient values aren't written to filesi   i   i    t   orig_nbformatt   orig_nbformat_minort   trustedN(   t   copyt   deepcopyR   R   R   R   t
   worksheetst   cellst   metadataR   R   R   R   t   jsont   loadst   assertNotIn(   R   t   nbt   nbst   nb2t   cell(    (    s:   lib/python2.7/site-packages/nbformat/v3/tests/test_json.pyt   test_strip_transient$   s    		c         C   sÂ   t  j t ƒ } d | _ d | _ t | j d j d j _	 t
 j | ƒ } t j t
 j | ƒ ƒ } t t
 j | ƒ ƒ } |  j d | ƒ |  j d | ƒ | j d j d } |  j d | j ƒ d S(   s(   to_notebook_json doesn't strip transienti   i   i    R   R   R   N(   R   R   R   R   R   R   R   R   R   R   R   t   dumpsR   t   to_notebookR   R   t   assertIn(   R   R   R   R    R!   (    (    s:   lib/python2.7/site-packages/nbformat/v3/tests/test_json.pyt   test_to_json2   s    		c   	      C   sÈ   t  t ƒ } t j | ƒ } t } xŽ | j d j D]| } d | k rJ q2 n  xa | j D]V } d | k rT t } | d } |  j	 t
 | ƒ t ƒ | j d ƒ } t | ƒ } qT qT Wq2 W| sÄ t d ƒ ‚ d S(   s   PNG output data is b64 unicodei    t   outputst   pngt   asciis   never found png outputN(   R   R   R   R   R   R   R   R'   R   R   t   typeR   t   encodeR    t   AssertionError(	   R   R   t   nb1t	   found_pngR!   t   outputt   pngdatat   b64bytest	   raw_bytes(    (    s:   lib/python2.7/site-packages/nbformat/v3/tests/test_json.pyt   test_read_pngA   s    
c   	      C   sÈ   t  t ƒ } t j | ƒ } t } xŽ | j d j D]| } d | k rJ q2 n  xa | j D]V } d | k rT t } | d } |  j	 t
 | ƒ t ƒ | j d ƒ } t | ƒ } qT qT Wq2 W| sÄ t d ƒ ‚ d S(   s   JPEG output data is b64 unicodei    R'   t   jpegR)   s   never found jpeg outputN(   R   R   R   R   R   R   R   R'   R   R   R*   R   R+   R    R,   (	   R   R   R-   t
   found_jpegR!   R/   t   jpegdataR1   R2   (    (    s:   lib/python2.7/site-packages/nbformat/v3/tests/test_json.pyt   test_read_jpegS   s    
N(   t   __name__t
   __module__t   Nonet   nb0_reft   extR   t   modR   R   R"   R&   R3   R7   (    (    (    s:   lib/python2.7/site-packages/nbformat/v3/tests/test_json.pyR	      s   					(   R   R   t   base64R    t   unittestR   t   ipython_genutils.py3compatR   R   R   R   t   nbbaseR   t    t
   nbexamplesR   R   t   NBFormatTestR	   (    (    (    s:   lib/python2.7/site-packages/nbformat/v3/tests/test_json.pyt   <module>   s   