def test_it_should_add_a_list_item_and_create_an_intervening_list(self): new_node = nodes.ListItem(Mock(), 'foo', level=4) result = self.root.incorporate_node(new_node) ensure(result).is_(new_node) ensure(self.root.value).is_an(nodes.List) ensure(result.parent).is_(self.root.value) ensure(self.root.value.parent).is_(self.root)
def test_it_should_add_a_list_item_at_a_higher_level_and_create_an_intervening_list(self): new_node = nodes.ListItem(Mock(), 'foo', level=self.level + 4) result = self.node.incorporate_node(new_node) ensure(result).is_(new_node) ensure(self.node.value).is_an(nodes.List) ensure(self.node.value.level).equals(new_node.level) ensure(result.parent).is_(self.node.value) ensure(self.node.value.parent).is_(self.node)
def test_it_should_cooperatively_add_a_list_item_at_the_same_level_to_the_parent_list(self): new_node = nodes.ListItem(Mock(), 'foo', level=self.level) result = self.node.incorporate_node(new_node) ensure(result).is_(new_node) ensure(self.node.value).is_none() ensure(self.node.parent.children).has_length(2) ensure(self.node.parent.children[-1]).is_(new_node) ensure(new_node.parent).is_(self.node.parent)
def test_it_should_not_add_a_list_item_at_a_lower_level(self): pnode = Mock( full_text = ' - bar\n - foo', text = '- foo', start = 16, ) new_node = nodes.ListItem(pnode, value='foo', level=3) (ensure(self.node.incorporate_node) .called_with(new_node) .raises(exceptions.OutOfContextNodeError) )
def test_it_should_add_a_list_item_at_a_higher_level(self): new_node = nodes.ListItem(Mock(), value='foo', level=8) result = self.node.incorporate_node(new_node) ensure(result).is_(new_node) ensure(result.parent).is_(self.node) ensure(self.node.children).contains(new_node)
def setUp(self): self.root = nodes.Root(Mock()) self.level = 4 self.node = self.root.incorporate_node(nodes.ListItem(Mock(), level=self.level))