From f3d97b2f20149ef8eb7d376a4328eec995cd7cef Mon Sep 17 00:00:00 2001 From: Timo Stollenwerk Date: Sun, 17 Apr 2011 08:50:34 +0000 Subject: [PATCH] Use plone.app.testing in test_moderation_view. svn path=/plone.app.discussion/trunk/; revision=48915 --- .../discussion/tests/test_moderation_view.py | 100 ++++++------------ 1 file changed, 35 insertions(+), 65 deletions(-) diff --git a/plone/app/discussion/tests/test_moderation_view.py b/plone/app/discussion/tests/test_moderation_view.py index b722b0c..0da420f 100644 --- a/plone/app/discussion/tests/test_moderation_view.py +++ b/plone/app/discussion/tests/test_moderation_view.py @@ -8,27 +8,36 @@ from zope.component import createObject from Products.CMFCore.utils import getToolByName from Products.PloneTestCase.ptc import PloneTestCase +from plone.app.testing import TEST_USER_ID, setRoles + +from plone.app.discussion.testing import\ + PLONE_APP_DISCUSSION_INTEGRATION_TESTING + from plone.app.discussion.browser.moderation import View from plone.app.discussion.browser.moderation import BulkActionsView from plone.app.discussion.interfaces import IConversation -from plone.app.discussion.tests.layer import DiscussionLayer -class ModerationViewTest(PloneTestCase): +class ModerationViewTest(unittest.TestCase): - layer = DiscussionLayer + layer = PLONE_APP_DISCUSSION_INTEGRATION_TESTING - def afterSetUp(self): - self.loginAsPortalOwner() + def setUp(self): + self.app = self.layer['app'] + self.portal = self.layer['portal'] + self.request = self.layer['request'] + setRoles(self.portal, TEST_USER_ID, ['Manager']) + typetool = self.portal.portal_types typetool.constructContent('Document', self.portal, 'doc1') self.portal_discussion = getToolByName(self.portal, 'portal_discussion', None) - self.membership_tool = getToolByName(self.folder, + self.membership_tool = getToolByName(self.portal, 'portal_membership') self.memberdata = self.portal.portal_memberdata + request = self.app.REQUEST context = getattr(self.portal, 'doc1') self.view = View(context, request) @@ -36,35 +45,7 @@ class ModerationViewTest(PloneTestCase): self.portal.portal_workflow.setChainForPortalTypes( ('Discussion Item',), 'comment_review_workflow') self.wf_tool = self.portal.portal_workflow - - # Add a conversation with three comments - - conversation = IConversation(self.portal.doc1) - - comment1 = createObject('plone.Comment') - comment1.title = 'Comment 1' - comment1.text = 'Comment text' - comment1.Creator = 'Jim' - new_id_1 = conversation.addComment(comment1) - self.comment1 = self.portal.doc1.restrictedTraverse(\ - '++conversation++default/%s' % new_id_1) - - comment2 = createObject('plone.Comment') - comment2.title = 'Comment 2' - comment2.text = 'Comment text' - comment2.Creator = 'Joe' - new_id_2 = conversation.addComment(comment2) - self.comment2 = self.portal.doc1.restrictedTraverse(\ - '++conversation++default/%s' % new_id_2) - - comment3 = createObject('plone.Comment') - comment3.title = 'Comment 3' - comment3.text = 'Comment text' - comment3.Creator = 'Emma' - new_id_3 = conversation.addComment(comment3) - self.comment3 = self.portal.doc1.restrictedTraverse(\ - '++conversation++default/%s' % new_id_3) - + def test_moderation_enabled(self): """Make sure that moderation_enabled returns true if the comment workflow implements a 'pending' state. @@ -77,11 +58,8 @@ class ModerationViewTest(PloneTestCase): self.wf_tool.setChainForPortalTypes(('Discussion Item',), ('comment_review_workflow,')) self.assertEqual(self.view.moderation_enabled(), True) - + def test_old_comments_not_shown_in_moderation_view(self): - # Create an old comment and make sure it is not shown - # in the moderation view. - # Create old comment discussion = getToolByName(self.portal, 'portal_discussion', None) discussion.overrideDiscussionFor(self.portal.doc1, 1) @@ -96,25 +74,27 @@ class ModerationViewTest(PloneTestCase): self.assertTrue('Jim' in reply.listCreators()) self.assertEqual(talkback.replyCount(self.portal.doc1), 1) self.assertEqual(reply.inReplyTo(), self.portal.doc1) - - # Make sure only the two new comments are shown - self.view() - self.assertEqual(len(self.view.comments), 3) + + view = self.view() + + self.assertTrue('No comments to moderate' in view) + self.assertEqual(len(self.view.comments), 0) -class ModerationBulkActionsViewTest(PloneTestCase): +class ModerationBulkActionsViewTest(unittest.TestCase): - layer = DiscussionLayer + layer = PLONE_APP_DISCUSSION_INTEGRATION_TESTING - def afterSetUp(self): - self.loginAsPortalOwner() + def setUp(self): + self.app = self.layer['app'] + self.portal = self.layer['portal'] + self.request = self.layer['request'] + setRoles(self.portal, TEST_USER_ID, ['Manager']) typetool = self.portal.portal_types typetool.constructContent('Document', self.portal, 'doc1') self.wf = getToolByName(self.portal, 'portal_workflow', None) - - self.request = self.app.REQUEST self.context = self.portal self.portal.portal_workflow.setChainForPortalTypes( ('Discussion Item',), 'comment_review_workflow') @@ -152,29 +132,23 @@ class ModerationBulkActionsViewTest(PloneTestCase): def test_default_bulkaction(self): # Make sure no error is raised when no bulk actions has been supplied - self.request = self.app.REQUEST - self.context = self.portal self.request.set('form.select.BulkAction', '-1') self.request.set('paths', ['/'.join(self.comment1.getPhysicalPath())]) - view = BulkActionsView(self.context, self.request) + view = BulkActionsView(self.portal, self.request) self.assertFalse(view()) def test_retract(self): - self.request = self.app.REQUEST - self.context = self.portal self.request.set('form.select.BulkAction', 'retract') self.request.set('paths', ['/'.join(self.comment1.getPhysicalPath())]) - view = BulkActionsView(self.context, self.request) + view = BulkActionsView(self.portal, self.request) self.assertRaises(NotImplementedError, view) def test_publish(self): - self.request = self.app.REQUEST - self.context = self.portal self.request.set('form.select.BulkAction', 'publish') self.request.set('paths', ['/'.join(self.comment1.getPhysicalPath())]) - view = BulkActionsView(self.context, self.request) + view = BulkActionsView(self.portal, self.request) view() # Count published comments @@ -189,19 +163,15 @@ class ModerationBulkActionsViewTest(PloneTestCase): self.assertEqual(published_comments, 1) def test_mark_as_spam(self): - self.request = self.app.REQUEST - self.context = self.portal self.request.set('form.select.BulkAction', 'mark_as_spam') self.request.set('paths', ['/'.join(self.comment1.getPhysicalPath())]) - view = BulkActionsView(self.context, self.request) + + view = BulkActionsView(self.portal, self.request) self.assertRaises(NotImplementedError, view) def test_delete(self): - self.request = self.app.REQUEST - self.context = self.app - # Initially we have three comments self.assertEqual(self.conversation.total_comments, 3) @@ -209,7 +179,7 @@ class ModerationBulkActionsViewTest(PloneTestCase): self.request.set('form.select.BulkAction', 'delete') self.request.set('paths', ['/'.join(self.comment1.getPhysicalPath()), '/'.join(self.comment3.getPhysicalPath())]) - view = BulkActionsView(self.context, self.request) + view = BulkActionsView(self.app, self.request) view() # Make sure that the two comments have been deleted