import pprint
from unittest import TestCase

from ..nbjson import reads, writes
from .nbexamples import nb0


class TestJSON(TestCase):

    def test_roundtrip(self):
        s = writes(nb0)
        # print
        # print pprint.pformat(nb0,indent=2)
        # print
        # print pprint.pformat(reads(s),indent=2)
        # print
        # print s
        self.assertEquals(reads(s),nb0)
    
    def test_roundtrip_nosplit(self):
        """Ensure that multiline blobs are still readable"""
        # ensures that notebooks written prior to splitlines change
        # are still readable.
        s = writes(nb0, split_lines=False)
        self.assertEquals(reads(s),nb0)

    def test_roundtrip_split(self):
        """Ensure that splitting multiline blocks is safe"""
        # This won't differ from test_roundtrip unless the default changes
        s = writes(nb0, split_lines=True)
        self.assertEquals(reads(s),nb0)