prevent the viewlet from raising an error for objects that are not annotatable

This commit is contained in:
Andreas Zeidler 2013-08-15 00:01:22 +02:00
parent fa7a1acd64
commit b027789391
2 changed files with 12 additions and 1 deletions

View File

@ -358,7 +358,10 @@ class CommentsViewlet(ViewletBase):
returned with workflow actions.
"""
context = aq_inner(self.context)
conversation = IConversation(context)
conversation = IConversation(context, None)
if conversation is None:
return iter([])
wf = getToolByName(context, 'portal_workflow')

View File

@ -370,6 +370,14 @@ class TestCommentsViewlet(unittest.TestCase):
replies.next()
self.assertRaises(StopIteration, replies.next)
def test_get_replies_on_non_annotatable_object(self):
context = self.portal.MailHost # the mail host is not annotatable
viewlet = CommentsViewlet(context, self.request, None, None)
replies = viewlet.get_replies()
self.assertEqual(len(tuple(replies)), 0)
replies = viewlet.get_replies()
self.assertRaises(StopIteration, replies.next)
def test_get_replies_with_workflow_actions(self):
self.assertFalse(self.viewlet.get_replies(workflow_actions=True))
comment = createObject('plone.Comment')