def test_order_of_addable_parents(self): from kotti.views.edit import add_node # The 'add_node' view sorts the 'possible_parents' returned by # 'addable_types' so that the parent comes first if the # context we're looking at does not have any children yet. session = DBSession() root = session.query(Node).get(1) request = testing.DummyRequest() with nodes_addable(): # The child Document does not contain any other Nodes, so it's # second in the 'possible_parents' list returned by 'node_add': child = root['child'] = Document(title=u"Child") info = add_node(child, request) first_parent, second_parent = info['possible_parents'] self.assertEqual(first_parent['node'], root) self.assertEqual(second_parent['node'], child) # Now we add a grandchild and see that this behaviour changes: child['grandchild'] = Document(title=u"Grandchild") info = add_node(child, request) first_parent, second_parent = info['possible_parents'] self.assertEqual(first_parent['node'], child) self.assertEqual(second_parent['node'], root)
def test_single_choice(self): from kotti.views.edit import add_node # The view should redirect straight to the add form if there's # only one choice of parent and type: root = get_root() request = DummyRequest() response = add_node(root, request) self.assertEqual(response.status, '302 Found') self.assertEqual(response.location, 'http://example.com/@@add_document')