added test for total comments.

svn path=/plone.app.discussion/trunk/; revision=27033
This commit is contained in:
Timo Stollenwerk 2009-05-20 15:39:45 +00:00
parent 7d79304b33
commit a279520592

View File

@ -11,20 +11,20 @@ from plone.app.discussion.tests.layer import DiscussionLayer
from plone.app.discussion.interfaces import IConversation, IComment from plone.app.discussion.interfaces import IConversation, IComment
class ConversationTest(PloneTestCase): class ConversationTest(PloneTestCase):
layer = DiscussionLayer layer = DiscussionLayer
def afterSetUp(self): def afterSetUp(self):
# First we need to create some content. # First we need to create some content.
self.loginAsPortalOwner() self.loginAsPortalOwner()
typetool = self.portal.portal_types typetool = self.portal.portal_types
typetool.constructContent('Document', self.portal, 'doc1') typetool.constructContent('Document', self.portal, 'doc1')
def test_add_comment(self): def test_add_comment(self):
# Create a conversation. In this case we doesn't assign it to an # Create a conversation. In this case we doesn't assign it to an
# object, as we just want to check the Conversation object API. # object, as we just want to check the Conversation object API.
conversation = IConversation(self.portal.doc1) conversation = IConversation(self.portal.doc1)
# Pretend that we have traversed to the comment by aq wrapping it. # Pretend that we have traversed to the comment by aq wrapping it.
conversation = conversation.__of__(self.portal.doc1) conversation = conversation.__of__(self.portal.doc1)
@ -34,9 +34,9 @@ class ConversationTest(PloneTestCase):
comment = createObject('plone.Comment') comment = createObject('plone.Comment')
comment.title = 'Comment 1' comment.title = 'Comment 1'
comment.text = 'Comment text' comment.text = 'Comment text'
new_id = conversation.addComment(comment) new_id = conversation.addComment(comment)
# Check that the conversation methods return the correct data # Check that the conversation methods return the correct data
self.assert_(isinstance(comment.comment_id, long)) self.assert_(isinstance(comment.comment_id, long))
self.assert_(IComment.providedBy(conversation[new_id])) self.assert_(IComment.providedBy(conversation[new_id]))
@ -46,25 +46,51 @@ class ConversationTest(PloneTestCase):
self.assertEquals(len(conversation.getThreads()), 1) self.assertEquals(len(conversation.getThreads()), 1)
self.assertEquals(conversation.total_comments, 1) self.assertEquals(conversation.total_comments, 1)
self.assert_(conversation.last_comment_date - datetime.now() < timedelta(seconds=1)) self.assert_(conversation.last_comment_date - datetime.now() < timedelta(seconds=1))
def test_delete(self): def test_delete(self):
pass pass
def test_dict_operations(self): def test_dict_operations(self):
# test dict operations and acquisition wrapping # test dict operations and acquisition wrapping
pass pass
def test_total_comments(self): def test_total_comments(self):
pass # Create a conversation. In this case we doesn't assign it to an
# object, as we just want to check the Conversation object API.
conversation = IConversation(self.portal.doc1)
# Pretend that we have traversed to the comment by aq wrapping it.
conversation = conversation.__of__(self.portal.doc1)
# Add a three comment. Note: in real life, we always create comments via the factory
# to allow different factories to be swapped in
comment1 = createObject('plone.Comment')
comment1.title = 'Comment 1'
comment1.text = 'Comment text'
comment2 = createObject('plone.Comment')
comment2.title = 'Comment 2'
comment2.text = 'Comment text'
comment3 = createObject('plone.Comment')
comment3.title = 'Comment 3'
comment3.text = 'Comment text'
new_comment1_id = conversation.addComment(comment1)
new_comment2_id = conversation.addComment(comment2)
new_comment3_id = conversation.addComment(comment3)
self.assertEquals(len(conversation.getComments()), 3)
def test_commentators(self): def test_commentators(self):
# add and remove a few comments to make sure the commenetators # add and remove a few comments to make sure the commentators
# property returns a true set # property returns a true set
pass pass
def test_last_comment_date(self): def test_last_comment_date(self):
pass pass
def test_get_comments_flat(self): def test_get_comments_flat(self):
pass pass
@ -78,26 +104,26 @@ class ConversationTest(PloneTestCase):
pass pass
class RepliesTest(PloneTestCase): class RepliesTest(PloneTestCase):
# test the IReplies adapter on a conversation # test the IReplies adapter on a conversation
layer = DiscussionLayer layer = DiscussionLayer
def afterSetUp(self): def afterSetUp(self):
# First we need to create some content. # First we need to create some content.
self.loginAsPortalOwner() self.loginAsPortalOwner()
typetool = self.portal.portal_types typetool = self.portal.portal_types
typetool.constructContent('Document', self.portal, 'doc1') typetool.constructContent('Document', self.portal, 'doc1')
def test_add_comment(self): def test_add_comment(self):
pass pass
def test_delete_comment(self): def test_delete_comment(self):
pass pass
def test_dict_api(self): def test_dict_api(self):
# ensure all operations use only top-level comments # ensure all operations use only top-level comments
pass pass
def test_suite(): def test_suite():
return unittest.defaultTestLoader.loadTestsFromName(__name__) return unittest.defaultTestLoader.loadTestsFromName(__name__)