##// END OF EJS Templates
add parent to Configurable...
add parent to Configurable this adds the notion of a parent and member config, so the config: c.Foo.Bar.attr = value will only set `Bar.attr = value` for `Bar` instances which are members of `Foo` instances. The mechanism for doing this is ```python f = Foo(config=cfg) f.b = Bar(parent=f) ``` This Instance config has higher priority than plain class config for Bar, but still lower priority than direct keyword arg trait assignment. The main implication this has is to change the standard creation of descendants: ```python self.bar = Bar(config=self.config) ``` into a direct parent expression ```python self.bar = Bar(parent=self) ``` This also means that most Configurables will actually have a handle on their parent object.

File last commit:

r7874:4a6836ce
r11062:7f44a560
Show More
test_json.py
34 lines | 926 B | text/x-python | PythonLexer
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.assertEqual(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.assertEqual(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.assertEqual(reads(s),nb0)