def test_cut_and_paste_content_copy_tags(self): from kotti import DBSession from kotti.resources import get_root from kotti.resources import Tag, TagsToContents, Content from kotti.views.edit import paste_node ses = DBSession root = get_root() root[u'folder_1'] = Content() root[u'content_1'] = Content() root[u'content_1'].tags = [u'my tag'] assert ses.query(Tag).count() == 1 assert ses.query(TagsToContents).count() == 1 request = DummyRequest() request.params['paste'] = u'on' request.session['kotti.paste'] = (root[u'content_1'].id, 'cut') paste_node(root[u'folder_1'], request) assert root[u'folder_1'][u'content_1'].tags == [u'my tag'] assert ses.query(Tag).count() == 1 assert ses.query(TagsToContents).count() == 1
def test_paste_non_existing_node(self): from kotti import DBSession from kotti.resources import Node from kotti.views.edit import paste_node root = DBSession.query(Node).get(1) request = DummyRequest() for index, action in enumerate(["copy", "cut"]): request.session["kotti.paste"] = (1701, "copy") response = paste_node(root, request) self.assertEqual(response.status, "302 Found") self.assertEqual(len(request.session["_f_error"]), index + 1)
def test_paste_non_existing_node(self): from kotti import DBSession from kotti.resources import Node from kotti.views.edit import paste_node root = DBSession.query(Node).get(1) request = DummyRequest() for index, action in enumerate(['copy', 'cut']): request.session['kotti.paste'] = (1701, 'copy') response = paste_node(root, request) self.assertEqual(response.status, '302 Found') self.assertEqual(len(request.session['_f_error']), index + 1)
def test_paste_non_existing_node(self): from kotti import DBSession from kotti.resources import Node from kotti.views.edit import paste_node root = DBSession().query(Node).get(1) request = DummyRequest() for index, action in enumerate(['copy', 'cut']): request.session['kotti.paste'] = (1701, 'copy') response = paste_node(root, request) self.assertEqual(response.status, '302 Found') self.assertEqual(len(request.session['_f_error']), index + 1)
def test_paste_without_edit_permission(self): from kotti import DBSession from kotti.resources import Node from kotti.views.edit import paste_node root = DBSession.query(Node).get(1) request = DummyRequest() request.params["paste"] = u"on" self.config.testing_securitypolicy(permissive=False) # We need to have the 'edit' permission on the original object # to be able to cut and paste: request.session["kotti.paste"] = (1, "cut") self.assertRaises(Forbidden, paste_node, root, request) # We don't need 'edit' permission if we're just copying: request.session["kotti.paste"] = (1, "copy") response = paste_node(root, request) self.assertEqual(response.status, "302 Found")
def test_paste_without_edit_permission(self): from kotti import DBSession from kotti.resources import Node from kotti.views.edit import paste_node root = DBSession.query(Node).get(1) request = DummyRequest() request.params['paste'] = u'on' self.config.testing_securitypolicy(permissive=False) # We need to have the 'edit' permission on the original object # to be able to cut and paste: request.session['kotti.paste'] = (1, 'cut') self.assertRaises(Forbidden, paste_node, root, request) # We don't need 'edit' permission if we're just copying: request.session['kotti.paste'] = (1, 'copy') response = paste_node(root, request) self.assertEqual(response.status, '302 Found')