def test__contains__(self): parent = Node() child = parent.descend('Child') parent.ctx['a'] = 1 child.ctx['b'] = 2 assert 'a' in parent.ctx assert 'a' in child.ctx assert 'b' in child.ctx assert 'b' not in parent.ctx
def test_correct_scope(self): '''Dynamically create nodes should be in the global scope. ''' name = 'Cow' newtype = Node().descend(name) self.assertIn(name, globals()) self.assertNotIn(name, locals())
def test_correct_module(self): '''Assert dynamically created types get created in the calling scope. ''' name = 'Cow' newtype = Node().descend(name) self.assertEqual(newtype.__class__.__module__, __name__)
def test_clone_ne(self): n1 = Node(a=1, b=2, c=3) n1.descend('Test1', x=1, y=2, z=3) n2 = n1.clone(cow='moo') self.assertNotEqual(n1, n2)
def test_clone_eq(self): n1 = Node(a=1, b=2, c=3) n1.descend('Test1', x=1, y=2, z=3) self.assertEqual(n1, n1.clone())
def test_ne(self): n1 = Node(a=1, b=2, c=3) n1.descend('Test1', x=1, y=2, z=3) n2 = Node(a=1, b=2, c=3) n2.descend('Test1', x=1, y=2, z=4) self.assertNotEqual(n1, n2)
def test_eq(self): n1 = Node(a=1, b=2, c=3) n1.descend('Test1', x=1, y=2, z=3) n2 = Node(a=1, b=2, c=3) n2.descend('Test1', x=1, y=2, z=3)
def test__delitem__(self): parent = Node() child = parent.descend('Child') parent.ctx['a'] = 1 del parent.ctx['a']
def test_maps(self): parent = Node() child = parent.descend('Child') assert list(child.ctx.maps) == [child.ctx.map] + list(parent.ctx.maps)
def test__len__(self): parent = Node() child = parent.descend('Child') parent.ctx['a'] = 1 child.ctx['b'] = 2 assert len(child.ctx) is 2
def test_root(self): parent = Node() assert parent.ctx is parent.ctx.root ancestor = parent.descend_path("Child", "Grandchild") assert parent.ctx is ancestor.ctx.root
def test_import_works(self): '''Verify that the resolved name points to this module's TestNode. ''' name = 'ExampleNode' newtype = Node().descend(name) self.assertIs(type(newtype), ExampleNode)
def test__iter__(self): parent = Node() child = parent.descend('Child') parent.ctx['a'] = 1 child.ctx['b'] = 2 assert list(child.ctx) == list(child.ctx.map) + list(parent.ctx)
def test__get__(self): node = Node() assert node.ctx.inst is node assert node.ctx._inst is node
def test__repr__(self): parent = Node() child = parent.descend('Child') parent.ctx['a'] = 1 child.ctx['b'] = 2 assert repr(child.ctx) == "{'b': 2} -> {'a': 1}"
def test__init__(self): node = Node() node.ctx['a'] = 1 child = node.descend('Child') newmap = ChainMap(inst=child) assert newmap['a'] == 1