Avoid using deprecated test assertions, see http://docs.python.org/dev/library/unittest.html#deprecated-aliases for the full list
svn path=/plone.app.discussion/trunk/; revision=48881
This commit is contained in:
parent
811d4a0429
commit
9db8909ea7
@ -54,7 +54,7 @@ you need to set it up and tear it down in each test.
|
||||
};
|
||||
|
||||
window.equals = function(a, b, msg) {
|
||||
assertEquals(msg ? msg : '', b, a);
|
||||
assertEqual(msg ? msg : '', b, a);
|
||||
};
|
||||
|
||||
window.start = window.stop = function() {
|
||||
|
@ -21,13 +21,13 @@ class CatalogSetupTest(PloneTestCase):
|
||||
layer = DiscussionLayer
|
||||
|
||||
def test_catalog_installed(self):
|
||||
self.failUnless('total_comments' in
|
||||
self.assertTrue('total_comments' in
|
||||
self.portal.portal_catalog.indexes())
|
||||
self.failUnless('commentators' in
|
||||
self.assertTrue('commentators' in
|
||||
self.portal.portal_catalog.indexes())
|
||||
self.failUnless('total_comments' in
|
||||
self.assertTrue('total_comments' in
|
||||
self.portal.portal_catalog.schema())
|
||||
self.failUnless('in_response_to' in
|
||||
self.assertTrue('in_response_to' in
|
||||
self.portal.portal_catalog.schema())
|
||||
|
||||
def test_collection_criteria_installed(self):
|
||||
@ -77,8 +77,8 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
self.new_comment1_id = new_comment1_id
|
||||
|
||||
def test_total_comments(self):
|
||||
self.failUnless('total_comments' in self.doc1_brain)
|
||||
self.assertEquals(self.doc1_brain.total_comments, 1)
|
||||
self.assertTrue('total_comments' in self.doc1_brain)
|
||||
self.assertEqual(self.doc1_brain.total_comments, 1)
|
||||
|
||||
comment2 = createObject('plone.Comment')
|
||||
comment2.title = 'Comment 2'
|
||||
@ -95,11 +95,11 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
portal_type="Document"
|
||||
))
|
||||
doc1_brain = brains[0]
|
||||
self.assertEquals(doc1_brain.total_comments, 2)
|
||||
self.assertEqual(doc1_brain.total_comments, 2)
|
||||
|
||||
def test_last_comment_date(self):
|
||||
self.failUnless('last_comment_date' in self.doc1_brain)
|
||||
self.assertEquals(self.doc1_brain.last_comment_date,
|
||||
self.assertTrue('last_comment_date' in self.doc1_brain)
|
||||
self.assertEqual(self.doc1_brain.last_comment_date,
|
||||
datetime(2006, 9, 17, 14, 18, 12))
|
||||
|
||||
# Add another comment and check if last comment date is updated.
|
||||
@ -120,7 +120,7 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
portal_type="Document"
|
||||
))
|
||||
doc1_brain = brains[0]
|
||||
self.assertEquals(doc1_brain.last_comment_date,
|
||||
self.assertEqual(doc1_brain.last_comment_date,
|
||||
datetime(2009, 9, 17, 14, 18, 12))
|
||||
|
||||
# Remove the comment again
|
||||
@ -133,7 +133,7 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
))
|
||||
doc1_brain = brains[0]
|
||||
|
||||
self.assertEquals(doc1_brain.last_comment_date,
|
||||
self.assertEqual(doc1_brain.last_comment_date,
|
||||
datetime(2006, 9, 17, 14, 18, 12))
|
||||
|
||||
# remove all comments
|
||||
@ -144,11 +144,11 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
portal_type="Document"
|
||||
))
|
||||
doc1_brain = brains[0]
|
||||
self.assertEquals(doc1_brain.last_comment_date, None)
|
||||
self.assertEqual(doc1_brain.last_comment_date, None)
|
||||
|
||||
def test_commentators(self):
|
||||
self.failUnless('commentators' in self.doc1_brain)
|
||||
self.assertEquals(self.doc1_brain.commentators, ('Jim',))
|
||||
self.assertTrue('commentators' in self.doc1_brain)
|
||||
self.assertEqual(self.doc1_brain.commentators, ('Jim',))
|
||||
|
||||
# add another comment with another author
|
||||
comment2 = createObject('plone.Comment')
|
||||
@ -169,7 +169,7 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
))
|
||||
doc1_brain = brains[0]
|
||||
|
||||
self.assertEquals(doc1_brain.commentators, ('Emma', 'Jim'))
|
||||
self.assertEqual(doc1_brain.commentators, ('Emma', 'Jim'))
|
||||
|
||||
# remove one comments
|
||||
del self.conversation[new_comment2_id]
|
||||
@ -179,7 +179,7 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
portal_type="Document"
|
||||
))
|
||||
doc1_brain = brains[0]
|
||||
self.assertEquals(doc1_brain.commentators, ('Jim',))
|
||||
self.assertEqual(doc1_brain.commentators, ('Jim',))
|
||||
|
||||
# remove all comments
|
||||
del self.conversation[self.new_comment1_id]
|
||||
@ -189,7 +189,7 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
portal_type="Document"
|
||||
))
|
||||
doc1_brain = brains[0]
|
||||
self.assertEquals(doc1_brain.commentators, ())
|
||||
self.assertEqual(doc1_brain.commentators, ())
|
||||
|
||||
def test_conversation_indexes_not_in_comments(self):
|
||||
brains = self.catalog.searchResults(dict(
|
||||
@ -198,9 +198,9 @@ class ConversationCatalogTest(PloneTestCase):
|
||||
portal_type="Discussion Item"
|
||||
))
|
||||
comment1_brain = brains[0]
|
||||
self.assertEquals(comment1_brain.commentators, None)
|
||||
self.assertEquals(comment1_brain.last_comment_date, None)
|
||||
self.assertEquals(comment1_brain.total_comments, None)
|
||||
self.assertEqual(comment1_brain.commentators, None)
|
||||
self.assertEqual(comment1_brain.last_comment_date, None)
|
||||
self.assertEqual(comment1_brain.total_comments, None)
|
||||
|
||||
|
||||
class CommentCatalogTest(PloneTestCase):
|
||||
@ -234,7 +234,7 @@ class CommentCatalogTest(PloneTestCase):
|
||||
self.comment_brain = brains[0]
|
||||
|
||||
def test_title(self):
|
||||
self.assertEquals(self.comment_brain.Title, 'Jim on Document 1')
|
||||
self.assertEqual(self.comment_brain.Title, 'Jim on Document 1')
|
||||
|
||||
def test_no_name_title(self):
|
||||
comment = createObject('plone.Comment')
|
||||
@ -248,27 +248,27 @@ class CommentCatalogTest(PloneTestCase):
|
||||
path={'query':
|
||||
'/'.join(comment.getPhysicalPath())}))
|
||||
comment_brain = brains[0]
|
||||
self.assertEquals(comment_brain.Title, "Anonymous on Document 1")
|
||||
self.assertEqual(comment_brain.Title, "Anonymous on Document 1")
|
||||
|
||||
def test_type(self):
|
||||
self.assertEquals(self.comment_brain.portal_type, 'Discussion Item')
|
||||
self.assertEquals(self.comment_brain.meta_type, 'Discussion Item')
|
||||
self.assertEquals(self.comment_brain.Type, 'Comment')
|
||||
self.assertEqual(self.comment_brain.portal_type, 'Discussion Item')
|
||||
self.assertEqual(self.comment_brain.meta_type, 'Discussion Item')
|
||||
self.assertEqual(self.comment_brain.Type, 'Comment')
|
||||
|
||||
def test_review_state(self):
|
||||
self.assertEquals(self.comment_brain.review_state, 'published')
|
||||
self.assertEqual(self.comment_brain.review_state, 'published')
|
||||
|
||||
def test_creator(self):
|
||||
self.assertEquals(self.comment_brain.Creator, 'Jim')
|
||||
self.assertEqual(self.comment_brain.Creator, 'Jim')
|
||||
|
||||
def test_in_response_to(self):
|
||||
"""Make sure in_response_to returns the title or id of the content
|
||||
object the comment was added to.
|
||||
"""
|
||||
self.assertEquals(self.comment_brain.in_response_to, 'Document 1')
|
||||
self.assertEqual(self.comment_brain.in_response_to, 'Document 1')
|
||||
|
||||
def test_add_comment(self):
|
||||
self.failUnless(self.comment_brain)
|
||||
self.assertTrue(self.comment_brain)
|
||||
|
||||
def test_delete_comment(self):
|
||||
# Make sure a comment is removed from the catalog as well when it is
|
||||
@ -277,17 +277,17 @@ class CommentCatalogTest(PloneTestCase):
|
||||
brains = self.catalog.searchResults(dict(
|
||||
path={'query':
|
||||
'/'.join(self.comment.getPhysicalPath())}))
|
||||
self.assertEquals(len(brains), 0)
|
||||
self.assertEqual(len(brains), 0)
|
||||
|
||||
def test_remove_comments_when_content_object_is_removed(self):
|
||||
"""Make sure all comments are removed from the catalog, if the content
|
||||
object is removed.
|
||||
"""
|
||||
brains = self.catalog.searchResults({'portal_type': 'Discussion Item'})
|
||||
self.assertEquals(len(brains), 1)
|
||||
self.assertEqual(len(brains), 1)
|
||||
self.portal.manage_delObjects(["doc1"])
|
||||
brains = self.catalog.searchResults({'portal_type': 'Discussion Item'})
|
||||
self.assertEquals(len(brains), 0)
|
||||
self.assertEqual(len(brains), 0)
|
||||
|
||||
def test_clear_and_rebuild_catalog(self):
|
||||
# Clear and rebuild catalog
|
||||
@ -295,9 +295,9 @@ class CommentCatalogTest(PloneTestCase):
|
||||
|
||||
# Check if comment is still there
|
||||
brains = self.catalog.searchResults({'portal_type': 'Discussion Item'})
|
||||
self.failUnless(brains)
|
||||
self.assertTrue(brains)
|
||||
comment_brain = brains[0]
|
||||
self.assertEquals(comment_brain.Title, u'Jim on Document 1')
|
||||
self.assertEqual(comment_brain.Title, u'Jim on Document 1')
|
||||
|
||||
def test_clear_and_rebuild_catalog_for_nested_comments(self):
|
||||
|
||||
@ -352,8 +352,8 @@ class CommentCatalogTest(PloneTestCase):
|
||||
|
||||
# Check if comments are still there
|
||||
brains = self.catalog.searchResults({'portal_type': 'Discussion Item'})
|
||||
self.failUnless(brains)
|
||||
self.assertEquals(len(brains), 6)
|
||||
self.assertTrue(brains)
|
||||
self.assertEqual(len(brains), 6)
|
||||
|
||||
def test_collection(self):
|
||||
self.portal.invokeFactory(id='topic', type_name='Topic')
|
||||
@ -363,9 +363,9 @@ class CommentCatalogTest(PloneTestCase):
|
||||
query = topic.buildQuery()
|
||||
|
||||
# Make sure the comment we just added is returned by the collection
|
||||
self.assertEquals(len(query), 1)
|
||||
self.assertEquals(query['Type'], 'Comment')
|
||||
self.assertEquals(len(topic.queryCatalog()), 1)
|
||||
self.assertEqual(len(query), 1)
|
||||
self.assertEqual(query['Type'], 'Comment')
|
||||
self.assertEqual(len(topic.queryCatalog()), 1)
|
||||
|
||||
|
||||
class NoConversationCatalogTest(PloneTestCase):
|
||||
@ -393,11 +393,11 @@ class NoConversationCatalogTest(PloneTestCase):
|
||||
self.doc1_brain = brains[0]
|
||||
|
||||
def test_total_comments(self):
|
||||
self.failUnless('total_comments' in self.doc1_brain)
|
||||
self.assertEquals(self.doc1_brain.total_comments, 0)
|
||||
self.assertTrue('total_comments' in self.doc1_brain)
|
||||
self.assertEqual(self.doc1_brain.total_comments, 0)
|
||||
|
||||
# Make sure no conversation has been created
|
||||
self.assert_('plone.app.discussion:conversation' not in
|
||||
self.assertTrue('plone.app.discussion:conversation' not in
|
||||
IAnnotations(self.portal.doc1))
|
||||
|
||||
|
||||
|
@ -40,7 +40,7 @@ class CommentTest(PloneTestCase):
|
||||
|
||||
def test_factory(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
self.assert_(IComment.providedBy(comment1))
|
||||
self.assertTrue(IComment.providedBy(comment1))
|
||||
|
||||
def test_UTCDates(self):
|
||||
utc_to_local_diff = datetime.datetime.now() - datetime.datetime.utcnow()
|
||||
@ -61,9 +61,9 @@ class CommentTest(PloneTestCase):
|
||||
def test_id(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.comment_id = 123
|
||||
self.assertEquals('123', comment1.id)
|
||||
self.assertEquals('123', comment1.getId())
|
||||
self.assertEquals(u'123', comment1.__name__)
|
||||
self.assertEqual('123', comment1.id)
|
||||
self.assertEqual('123', comment1.getId())
|
||||
self.assertEqual(u'123', comment1.__name__)
|
||||
|
||||
def test_uid(self):
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
@ -71,7 +71,7 @@ class CommentTest(PloneTestCase):
|
||||
conversation.addComment(comment1)
|
||||
comment_brain = self.catalog.searchResults(
|
||||
portal_type = 'Discussion Item')[0]
|
||||
self.failUnless(comment_brain.UID)
|
||||
self.assertTrue(comment_brain.UID)
|
||||
|
||||
def test_uid_is_unique(self):
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
@ -81,7 +81,7 @@ class CommentTest(PloneTestCase):
|
||||
conversation.addComment(comment2)
|
||||
brains = self.catalog.searchResults(
|
||||
portal_type = 'Discussion Item')
|
||||
self.assertNotEquals(brains[0].UID, brains[1].UID)
|
||||
self.assertNotEqual(brains[0].UID, brains[1].UID)
|
||||
|
||||
def test_comment_uid_differs_from_content_uid(self):
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
@ -89,20 +89,20 @@ class CommentTest(PloneTestCase):
|
||||
conversation.addComment(comment1)
|
||||
comment_brain = self.catalog.searchResults(
|
||||
portal_type = 'Discussion Item')[0]
|
||||
self.assertNotEquals(self.document_brain.UID, comment_brain.UID)
|
||||
self.assertNotEqual(self.document_brain.UID, comment_brain.UID)
|
||||
|
||||
def test_title(self):
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.creator = "Jim Fulton"
|
||||
conversation.addComment(comment1)
|
||||
self.assertEquals("Jim Fulton on Document 1", comment1.Title())
|
||||
self.assertEqual("Jim Fulton on Document 1", comment1.Title())
|
||||
|
||||
def test_no_name_title(self):
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
comment1 = createObject('plone.Comment')
|
||||
conversation.addComment(comment1)
|
||||
self.assertEquals("Anonymous on Document 1", comment1.Title())
|
||||
self.assertEqual("Anonymous on Document 1", comment1.Title())
|
||||
|
||||
def test_title_special_characters(self):
|
||||
self.portal.invokeFactory(id='doc_sp_chars',
|
||||
@ -112,54 +112,54 @@ class CommentTest(PloneTestCase):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.creator = u"Tarek Ziadé"
|
||||
conversation.addComment(comment1)
|
||||
self.assertEquals(u"Tarek Ziadé on Document äüö", comment1.Title())
|
||||
self.assertEqual(u"Tarek Ziadé on Document äüö", comment1.Title())
|
||||
|
||||
def test_creator(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.creator = "Jim"
|
||||
self.assertEquals("Jim", comment1.Creator())
|
||||
self.assertEqual("Jim", comment1.Creator())
|
||||
|
||||
def test_type(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
self.assertEquals(comment1.Type(), 'Comment')
|
||||
self.assertEqual(comment1.Type(), 'Comment')
|
||||
|
||||
def test_getText(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.text = """First paragraph
|
||||
|
||||
Second paragraph"""
|
||||
self.assertEquals(comment1.getText(),
|
||||
self.assertEqual(comment1.getText(),
|
||||
"<p>First paragraph<br /><br /> Second paragraph</p>")
|
||||
|
||||
def test_getText_escapes_HTML(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.text = """<b>Got HTML?</b>"""
|
||||
self.assertEquals(comment1.getText(),
|
||||
self.assertEqual(comment1.getText(),
|
||||
"<p><b>Got HTML?</b></p>")
|
||||
|
||||
def test_getText_with_non_ascii_characters(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.text = u"""Umlaute sind ä, ö und ü."""
|
||||
self.assertEquals(comment1.getText(),
|
||||
self.assertEqual(comment1.getText(),
|
||||
'<p>Umlaute sind \xc3\xa4, \xc3\xb6 und \xc3\xbc.</p>')
|
||||
|
||||
def test_getText_doesnt_link(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.text = "Go to http://www.plone.org"
|
||||
self.assertEquals(comment1.getText(),
|
||||
self.assertEqual(comment1.getText(),
|
||||
"<p>Go to http://www.plone.org</p>")
|
||||
|
||||
def test_getText_uses_comment_mime_type(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.text = "Go to http://www.plone.org"
|
||||
comment1.mime_type = 'text/x-web-intelligent'
|
||||
self.assertEquals(comment1.getText(),
|
||||
self.assertEqual(comment1.getText(),
|
||||
'Go to <a href="http://www.plone.org" rel="nofollow">http://www.plone.org</a>')
|
||||
|
||||
def test_getText_w_custom_targetMimetype(self):
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.text = 'para'
|
||||
self.assertEquals(comment1.getText(targetMimetype='text/plain'), 'para')
|
||||
self.assertEqual(comment1.getText(targetMimetype='text/plain'), 'para')
|
||||
|
||||
def test_traversal(self):
|
||||
# make sure comments are traversable, have an id, absolute_url and
|
||||
@ -174,11 +174,11 @@ class CommentTest(PloneTestCase):
|
||||
|
||||
comment = self.portal.doc1.restrictedTraverse(
|
||||
'++conversation++default/%s' % new_comment1_id)
|
||||
self.assert_(IComment.providedBy(comment))
|
||||
self.assertTrue(IComment.providedBy(comment))
|
||||
|
||||
self.assertEquals(('', 'plone', 'doc1', '++conversation++default',
|
||||
self.assertEqual(('', 'plone', 'doc1', '++conversation++default',
|
||||
str(new_comment1_id)), comment.getPhysicalPath())
|
||||
self.assertEquals('http://nohost/plone/doc1/++conversation++default/' +
|
||||
self.assertEqual('http://nohost/plone/doc1/++conversation++default/' +
|
||||
str(new_comment1_id), comment.absolute_url())
|
||||
|
||||
def test_workflow(self):
|
||||
@ -196,26 +196,26 @@ class CommentTest(PloneTestCase):
|
||||
|
||||
# Make sure comments use the 'comment_review_workflow'
|
||||
chain = self.portal.portal_workflow.getChainFor(comment)
|
||||
self.assertEquals(('comment_review_workflow',), chain)
|
||||
self.assertEqual(('comment_review_workflow',), chain)
|
||||
|
||||
# Ensure the initial state was entered and recorded
|
||||
self.assertEquals(1,
|
||||
self.assertEqual(1,
|
||||
len(comment.workflow_history['comment_review_workflow']))
|
||||
self.assertEquals(None,
|
||||
self.assertEqual(None,
|
||||
comment.workflow_history['comment_review_workflow'][0]\
|
||||
['action'])
|
||||
self.assertEquals('pending',
|
||||
self.assertEqual('pending',
|
||||
self.portal.portal_workflow.getInfoFor(comment, 'review_state'))
|
||||
|
||||
def test_fti(self):
|
||||
# test that we can look up an FTI for Discussion Item
|
||||
|
||||
self.assert_("Discussion Item" in self.portal.portal_types.objectIds())
|
||||
self.assertTrue("Discussion Item" in self.portal.portal_types.objectIds())
|
||||
|
||||
comment1 = createObject('plone.Comment')
|
||||
|
||||
fti = self.portal.portal_types.getTypeInfo(comment1)
|
||||
self.assertEquals('Discussion Item', fti.getTypeInfo(comment1).getId())
|
||||
self.assertEqual('Discussion Item', fti.getTypeInfo(comment1).getId())
|
||||
|
||||
def test_view(self):
|
||||
# make sure that the comment view is there and redirects to the right
|
||||
@ -236,14 +236,14 @@ class CommentTest(PloneTestCase):
|
||||
'++conversation++default/%s' % new_comment1_id)
|
||||
|
||||
# make sure the view is there
|
||||
self.failUnless(getMultiAdapter((comment, self.app.REQUEST),
|
||||
self.assertTrue(getMultiAdapter((comment, self.app.REQUEST),
|
||||
name='view'))
|
||||
|
||||
# make sure the HTTP redirect (status code 302) works when a comment
|
||||
# is called directly
|
||||
view = View(comment, self.app.REQUEST)
|
||||
View.__call__(view)
|
||||
self.assertEquals(self.app.REQUEST.response.status, 302)
|
||||
self.assertEqual(self.app.REQUEST.response.status, 302)
|
||||
|
||||
|
||||
class RepliesTest(PloneTestCase):
|
||||
@ -284,16 +284,16 @@ class RepliesTest(PloneTestCase):
|
||||
new_re_id = replies.addComment(re_comment)
|
||||
|
||||
# check that replies provides the IReplies interface
|
||||
self.assert_(IReplies.providedBy(replies))
|
||||
self.assertTrue(IReplies.providedBy(replies))
|
||||
|
||||
# Make sure our comment was added
|
||||
self.failUnless(new_re_id in replies)
|
||||
self.assertTrue(new_re_id in replies)
|
||||
|
||||
# Make sure it is also reflected in the conversation
|
||||
self.failUnless(new_re_id in conversation)
|
||||
self.assertTrue(new_re_id in conversation)
|
||||
|
||||
# Make sure the conversation has the correct comment id
|
||||
self.assertEquals(conversation[new_re_id].comment_id, new_re_id)
|
||||
self.assertEqual(conversation[new_re_id].comment_id, new_re_id)
|
||||
|
||||
def test_delete_comment(self):
|
||||
# Add and remove a comment to a CommentReplies adapter
|
||||
@ -323,10 +323,10 @@ class RepliesTest(PloneTestCase):
|
||||
del replies[new_re_id]
|
||||
|
||||
# Make sure there is no comment left in CommentReplies
|
||||
self.assertEquals(len(replies), 0)
|
||||
self.assertEqual(len(replies), 0)
|
||||
|
||||
# Make sure the first comment is still in the conversation
|
||||
self.assertEquals(conversation.total_comments, 1)
|
||||
self.assertEqual(conversation.total_comments, 1)
|
||||
|
||||
def test_traversal(self):
|
||||
# Create a nested structure of comment replies and check the traversal
|
||||
@ -370,22 +370,22 @@ class RepliesTest(PloneTestCase):
|
||||
re_re_re_comment = self.portal.doc1.restrictedTraverse(
|
||||
'++conversation++default/%s' % new_re_re_re_id)
|
||||
|
||||
self.assertEquals(('', 'plone', 'doc1', '++conversation++default',
|
||||
self.assertEqual(('', 'plone', 'doc1', '++conversation++default',
|
||||
str(new_id)), comment.getPhysicalPath())
|
||||
self.assertEquals('http://nohost/plone/doc1/++conversation++default/' +
|
||||
self.assertEqual('http://nohost/plone/doc1/++conversation++default/' +
|
||||
str(new_id), comment.absolute_url())
|
||||
self.assertEquals(('', 'plone', 'doc1', '++conversation++default',
|
||||
self.assertEqual(('', 'plone', 'doc1', '++conversation++default',
|
||||
str(new_re_id)), re_comment.getPhysicalPath())
|
||||
self.assertEquals('http://nohost/plone/doc1/++conversation++default/' +
|
||||
self.assertEqual('http://nohost/plone/doc1/++conversation++default/' +
|
||||
str(new_re_id), re_comment.absolute_url())
|
||||
self.assertEquals(('', 'plone', 'doc1', '++conversation++default',
|
||||
self.assertEqual(('', 'plone', 'doc1', '++conversation++default',
|
||||
str(new_re_re_id)), re_re_comment.getPhysicalPath())
|
||||
self.assertEquals('http://nohost/plone/doc1/++conversation++default/' +
|
||||
self.assertEqual('http://nohost/plone/doc1/++conversation++default/' +
|
||||
str(new_re_re_id), re_re_comment.absolute_url())
|
||||
self.assertEquals(('', 'plone', 'doc1', '++conversation++default',
|
||||
self.assertEqual(('', 'plone', 'doc1', '++conversation++default',
|
||||
str(new_re_re_re_id)),
|
||||
re_re_re_comment.getPhysicalPath())
|
||||
self.assertEquals('http://nohost/plone/doc1/++conversation++default/' +
|
||||
self.assertEqual('http://nohost/plone/doc1/++conversation++default/' +
|
||||
str(new_re_re_re_id),
|
||||
re_re_re_comment.absolute_url())
|
||||
|
||||
|
@ -89,8 +89,8 @@ class TestCommentForm(PloneTestCase):
|
||||
commentForm.update()
|
||||
data, errors = commentForm.extractData() # pylint: disable-msg=W0612
|
||||
|
||||
self.assertEquals(len(errors), 1)
|
||||
self.failIf(commentForm.handleComment(commentForm, "foo"))
|
||||
self.assertEqual(len(errors), 1)
|
||||
self.assertFalse(commentForm.handleComment(commentForm, "foo"))
|
||||
|
||||
# The form is submitted successfully, if the required text field is
|
||||
# filled out
|
||||
@ -101,8 +101,8 @@ class TestCommentForm(PloneTestCase):
|
||||
commentForm.update()
|
||||
data, errors = commentForm.extractData() # pylint: disable-msg=W0612
|
||||
|
||||
self.assertEquals(len(errors), 0)
|
||||
self.failIf(commentForm.handleComment(commentForm, "foo"))
|
||||
self.assertEqual(len(errors), 0)
|
||||
self.assertFalse(commentForm.handleComment(commentForm, "foo"))
|
||||
|
||||
def test_add_anonymous_comment(self):
|
||||
"""Add a comment as anonymous.
|
||||
@ -142,8 +142,8 @@ class TestCommentForm(PloneTestCase):
|
||||
commentForm.update()
|
||||
data, errors = commentForm.extractData() # pylint: disable-msg=W0612
|
||||
|
||||
self.assertEquals(len(errors), 0)
|
||||
self.failIf(commentForm.handleComment(commentForm, "action"))
|
||||
self.assertEqual(len(errors), 0)
|
||||
self.assertFalse(commentForm.handleComment(commentForm, "action"))
|
||||
|
||||
def test_can_not_add_comments_if_discussion_is_not_allowed(self):
|
||||
"""Make sure that comments can't be posted if discussion is disabled.
|
||||
@ -172,7 +172,7 @@ class TestCommentForm(PloneTestCase):
|
||||
|
||||
# No form errors, but raise unauthorized because discussion is not
|
||||
# allowed
|
||||
self.assertEquals(len(errors), 0)
|
||||
self.assertEqual(len(errors), 0)
|
||||
self.assertRaises(Unauthorized,
|
||||
commentForm.handleComment,
|
||||
commentForm,
|
||||
@ -206,7 +206,7 @@ class TestCommentForm(PloneTestCase):
|
||||
commentForm.update()
|
||||
data, errors = commentForm.extractData() # pylint: disable-msg=W0612
|
||||
|
||||
self.assertEquals(len(errors), 0)
|
||||
self.assertEqual(len(errors), 0)
|
||||
self.assertRaises(Unauthorized,
|
||||
commentForm.handleComment,
|
||||
commentForm,
|
||||
@ -240,21 +240,21 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
|
||||
def test_can_reply(self):
|
||||
# Portal owner can reply
|
||||
self.failUnless(self.viewlet.can_reply())
|
||||
self.assertTrue(self.viewlet.can_reply())
|
||||
self.logout()
|
||||
# Anonymous users can not reply
|
||||
self.failIf(self.viewlet.can_reply())
|
||||
self.assertFalse(self.viewlet.can_reply())
|
||||
|
||||
def test_can_review(self):
|
||||
# Portal owner has 'can review' permission
|
||||
self.failUnless(self.viewlet.can_review())
|
||||
self.assertTrue(self.viewlet.can_review())
|
||||
self.logout()
|
||||
# Anonymous has no 'can review' permission
|
||||
self.failIf(self.viewlet.can_review())
|
||||
self.assertFalse(self.viewlet.can_review())
|
||||
# The reviewer role has the 'Review comments' permission
|
||||
self.portal.acl_users._doAddUser('reviewer', 'secret', ['Reviewer'], [])
|
||||
self.login('reviewer')
|
||||
self.failUnless(self.viewlet.can_review())
|
||||
self.assertTrue(self.viewlet.can_review())
|
||||
|
||||
def test_can_manage(self):
|
||||
"""We keep this method for backward compatibility. This method has been
|
||||
@ -262,29 +262,29 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
do API changes in beta releases.
|
||||
"""
|
||||
# Portal owner has 'can review' permission
|
||||
self.failUnless(self.viewlet.can_manage())
|
||||
self.assertTrue(self.viewlet.can_manage())
|
||||
self.logout()
|
||||
# Anonymous has no 'can review' permission
|
||||
self.failIf(self.viewlet.can_manage())
|
||||
self.assertFalse(self.viewlet.can_manage())
|
||||
# The reviewer role has the 'Review comments' permission
|
||||
self.portal.acl_users._doAddUser('reviewer', 'secret', ['Reviewer'], [])
|
||||
self.login('reviewer')
|
||||
self.failUnless(self.viewlet.can_manage())
|
||||
self.assertTrue(self.viewlet.can_manage())
|
||||
|
||||
def test_is_discussion_allowed(self):
|
||||
# By default, discussion is disabled
|
||||
self.failIf(self.viewlet.is_discussion_allowed())
|
||||
self.assertFalse(self.viewlet.is_discussion_allowed())
|
||||
# Enable discussion
|
||||
portal_discussion = getToolByName(self.portal, 'portal_discussion')
|
||||
portal_discussion.overrideDiscussionFor(self.portal.doc1, True)
|
||||
# Test if discussion has been enabled
|
||||
self.failUnless(self.viewlet.is_discussion_allowed())
|
||||
self.assertTrue(self.viewlet.is_discussion_allowed())
|
||||
|
||||
def test_comment_transform_message(self):
|
||||
|
||||
# Default transform is plain/text and comment moderation disabled
|
||||
self.failUnless(self.viewlet.comment_transform_message())
|
||||
self.assertEquals(
|
||||
self.assertTrue(self.viewlet.comment_transform_message())
|
||||
self.assertEqual(
|
||||
self.viewlet.comment_transform_message(),
|
||||
"You can add a comment by filling out the form below. Plain text " +
|
||||
"formatting.")
|
||||
@ -295,7 +295,7 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
settings.text_transform = "text/x-web-intelligent"
|
||||
|
||||
# Make sure the comment description changes accordingly
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
self.viewlet.comment_transform_message(),
|
||||
"You can add a comment by filling out the form below. " +
|
||||
"Plain text formatting. Web and email addresses are transformed " +
|
||||
@ -307,41 +307,41 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
('comment_review_workflow,'))
|
||||
|
||||
# Make sure the comment description shows that comments are moderated
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
self.viewlet.comment_transform_message(),
|
||||
"You can add a comment by filling out the form below. " +
|
||||
"Plain text formatting. Web and email addresses are transformed " +
|
||||
"into clickable links. Comments are moderated.")
|
||||
|
||||
def test_has_replies(self):
|
||||
self.assertEquals(self.viewlet.has_replies(), False)
|
||||
self.assertEqual(self.viewlet.has_replies(), False)
|
||||
comment = createObject('plone.Comment')
|
||||
comment.text = 'Comment text'
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
conversation.addComment(comment)
|
||||
self.assertEquals(self.viewlet.has_replies(), True)
|
||||
self.assertEqual(self.viewlet.has_replies(), True)
|
||||
|
||||
def test_get_replies(self):
|
||||
self.failIf(self.viewlet.get_replies())
|
||||
self.assertFalse(self.viewlet.get_replies())
|
||||
comment = createObject('plone.Comment')
|
||||
comment.text = 'Comment text'
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
conversation.addComment(comment)
|
||||
conversation.addComment(comment)
|
||||
replies = self.viewlet.get_replies()
|
||||
self.assertEquals(len(tuple(replies)), 2)
|
||||
self.assertEqual(len(tuple(replies)), 2)
|
||||
replies = self.viewlet.get_replies()
|
||||
replies.next()
|
||||
replies.next()
|
||||
self.assertRaises(StopIteration, replies.next)
|
||||
|
||||
def test_get_replies_with_workflow_actions(self):
|
||||
self.failIf(self.viewlet.get_replies(workflow_actions=True))
|
||||
self.assertFalse(self.viewlet.get_replies(workflow_actions=True))
|
||||
comment = createObject('plone.Comment')
|
||||
comment.text = 'Comment text'
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
c1 = conversation.addComment(comment)
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
len(tuple(self.viewlet.get_replies(workflow_actions=True))), 1)
|
||||
# Enable moderation workflow
|
||||
self.portal.portal_workflow.setChainForPortalTypes(
|
||||
@ -349,10 +349,10 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
('comment_review_workflow,'))
|
||||
# Check if workflow actions are available
|
||||
reply = self.viewlet.get_replies(workflow_actions=True).next()
|
||||
self.failUnless(reply.has_key('actions'))
|
||||
self.assertEquals(reply['actions'][0]['id'],
|
||||
self.assertTrue(reply.has_key('actions'))
|
||||
self.assertEqual(reply['actions'][0]['id'],
|
||||
'publish')
|
||||
self.assertEquals(reply['actions'][0]['url'],
|
||||
self.assertEqual(reply['actions'][0]['url'],
|
||||
'http://nohost/plone/doc1/++conversation++default/%s' % int(c1) +
|
||||
'/content_status_modify?workflow_action=publish')
|
||||
|
||||
@ -362,11 +362,11 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
IConversation(self.portal.doc1)
|
||||
portal_membership = getToolByName(self.portal, 'portal_membership')
|
||||
m = portal_membership.getAuthenticatedMember()
|
||||
self.assertEquals(self.viewlet.get_commenter_home_url(m.getUserName()),
|
||||
self.assertEqual(self.viewlet.get_commenter_home_url(m.getUserName()),
|
||||
'http://nohost/plone/author/portal_owner')
|
||||
|
||||
def test_get_commenter_home_url_is_none(self):
|
||||
self.failIf(self.viewlet.get_commenter_home_url())
|
||||
self.assertFalse(self.viewlet.get_commenter_home_url())
|
||||
|
||||
def test_get_commenter_portrait(self):
|
||||
|
||||
@ -393,11 +393,11 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
portrait_url = self.viewlet.get_commenter_portrait('jim')
|
||||
|
||||
# Check if the correct member image URL is returned
|
||||
self.assertEquals(portrait_url,
|
||||
self.assertEqual(portrait_url,
|
||||
'http://nohost/plone/portal_memberdata/portraits/jim')
|
||||
|
||||
def test_get_commenter_portrait_is_none(self):
|
||||
self.assertEquals(self.viewlet.get_commenter_portrait(),
|
||||
self.assertEqual(self.viewlet.get_commenter_portrait(),
|
||||
'defaultUser.gif')
|
||||
|
||||
def test_get_commenter_portrait_without_userimage(self):
|
||||
@ -420,35 +420,35 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
# Check if the correct default member image URL is returned.
|
||||
# Note that Products.PlonePAS 4.0.5 and later have .png and
|
||||
# earlier versions have .gif.
|
||||
self.failUnless(portrait_url in
|
||||
self.assertTrue(portrait_url in
|
||||
('http://nohost/plone/defaultUser.png',
|
||||
'http://nohost/plone/defaultUser.gif'))
|
||||
|
||||
def test_anonymous_discussion_allowed(self):
|
||||
# Anonymous discussion is not allowed by default
|
||||
self.failIf(self.viewlet.anonymous_discussion_allowed())
|
||||
self.assertFalse(self.viewlet.anonymous_discussion_allowed())
|
||||
# Allow anonymous discussion
|
||||
registry = queryUtility(IRegistry)
|
||||
registry['plone.app.discussion.interfaces.IDiscussionSettings.' +
|
||||
'anonymous_comments'] = True
|
||||
# Test if anonymous discussion is allowed for the viewlet
|
||||
self.failUnless(self.viewlet.anonymous_discussion_allowed())
|
||||
self.assertTrue(self.viewlet.anonymous_discussion_allowed())
|
||||
|
||||
def test_show_commenter_image(self):
|
||||
self.failUnless(self.viewlet.show_commenter_image())
|
||||
self.assertTrue(self.viewlet.show_commenter_image())
|
||||
registry = queryUtility(IRegistry)
|
||||
registry['plone.app.discussion.interfaces.IDiscussionSettings.' +
|
||||
'show_commenter_image'] = False
|
||||
self.failIf(self.viewlet.show_commenter_image())
|
||||
self.assertFalse(self.viewlet.show_commenter_image())
|
||||
|
||||
def test_is_anonymous(self):
|
||||
self.failIf(self.viewlet.is_anonymous())
|
||||
self.assertFalse(self.viewlet.is_anonymous())
|
||||
self.logout()
|
||||
self.failUnless(self.viewlet.is_anonymous())
|
||||
self.assertTrue(self.viewlet.is_anonymous())
|
||||
|
||||
def test_login_action(self):
|
||||
self.viewlet.update()
|
||||
self.assertEquals(self.viewlet.login_action(),
|
||||
self.assertEqual(self.viewlet.login_action(),
|
||||
'http://nohost/plone/login_form?came_from=http%3A//nohost')
|
||||
|
||||
def test_format_time(self):
|
||||
@ -464,7 +464,7 @@ class TestCommentsViewlet(PloneTestCase):
|
||||
python_time = datetime(
|
||||
*time.gmtime(time.mktime(python_time.timetuple()))[:7])
|
||||
localized_time = self.viewlet.format_time(python_time)
|
||||
self.assertEquals(localized_time, "Feb 01, 2009 11:32 PM")
|
||||
self.assertEqual(localized_time, "Feb 01, 2009 11:32 PM")
|
||||
|
||||
|
||||
def test_suite():
|
||||
|
@ -26,67 +26,67 @@ class RegistryTest(PloneTestCase):
|
||||
|
||||
def test_registry_registered(self):
|
||||
registry = queryUtility(IRegistry)
|
||||
self.failUnless(registry.forInterface(IDiscussionSettings))
|
||||
self.assertTrue(registry.forInterface(IDiscussionSettings))
|
||||
|
||||
def test_discussion_controlpanel_view(self):
|
||||
view = getMultiAdapter((self.portal, self.portal.REQUEST),
|
||||
name="discussion-settings")
|
||||
view = view.__of__(self.portal)
|
||||
self.failUnless(view())
|
||||
self.assertTrue(view())
|
||||
|
||||
def test_discussion_in_controlpanel(self):
|
||||
# Check if discussion is in the control panel
|
||||
self.controlpanel = getToolByName(self.portal, "portal_controlpanel")
|
||||
self.failUnless('discussion' in [a.getAction(self)['id']
|
||||
self.assertTrue('discussion' in [a.getAction(self)['id']
|
||||
for a in self.controlpanel.listActions()])
|
||||
|
||||
def test_globally_enabled(self):
|
||||
# Check globally_enabled record
|
||||
self.failUnless('globally_enabled' in IDiscussionSettings)
|
||||
self.assertEquals(
|
||||
self.assertTrue('globally_enabled' in IDiscussionSettings)
|
||||
self.assertEqual(
|
||||
self.registry['plone.app.discussion.interfaces.' +
|
||||
'IDiscussionSettings.globally_enabled'],
|
||||
False)
|
||||
|
||||
def test_anonymous_comments(self):
|
||||
# Check anonymous_comments record
|
||||
self.failUnless('anonymous_comments' in IDiscussionSettings)
|
||||
self.assertEquals(self.registry['plone.app.discussion.interfaces.' +
|
||||
self.assertTrue('anonymous_comments' in IDiscussionSettings)
|
||||
self.assertEqual(self.registry['plone.app.discussion.interfaces.' +
|
||||
'IDiscussionSettings.anonymous_comments'], False)
|
||||
|
||||
def test_moderation_enabled(self):
|
||||
# Check globally_enabled record
|
||||
self.failUnless('moderation_enabled' in IDiscussionSettings)
|
||||
self.assertEquals(
|
||||
self.assertTrue('moderation_enabled' in IDiscussionSettings)
|
||||
self.assertEqual(
|
||||
self.registry['plone.app.discussion.interfaces.' +
|
||||
'IDiscussionSettings.moderation_enabled'],
|
||||
False)
|
||||
|
||||
def test_text_transform(self):
|
||||
self.failUnless('text_transform' in IDiscussionSettings)
|
||||
self.assertEquals(
|
||||
self.assertTrue('text_transform' in IDiscussionSettings)
|
||||
self.assertEqual(
|
||||
self.registry['plone.app.discussion.interfaces.' +
|
||||
'IDiscussionSettings.text_transform'],
|
||||
'text/plain')
|
||||
|
||||
def test_captcha(self):
|
||||
# Check globally_enabled record
|
||||
self.failUnless('captcha' in IDiscussionSettings)
|
||||
self.assertEquals(self.registry['plone.app.discussion.interfaces.' +
|
||||
self.assertTrue('captcha' in IDiscussionSettings)
|
||||
self.assertEqual(self.registry['plone.app.discussion.interfaces.' +
|
||||
'IDiscussionSettings.captcha'],
|
||||
'disabled')
|
||||
|
||||
def test_show_commenter_image(self):
|
||||
# Check show_commenter_image record
|
||||
self.failUnless('show_commenter_image' in IDiscussionSettings)
|
||||
self.assertEquals(self.registry['plone.app.discussion.interfaces.' +
|
||||
self.assertTrue('show_commenter_image' in IDiscussionSettings)
|
||||
self.assertEqual(self.registry['plone.app.discussion.interfaces.' +
|
||||
'IDiscussionSettings.show_commenter_image'], True)
|
||||
|
||||
def test_moderator_notification_enabled(self):
|
||||
# Check show_commenter_image record
|
||||
self.failUnless('moderator_notification_enabled' in
|
||||
self.assertTrue('moderator_notification_enabled' in
|
||||
IDiscussionSettings)
|
||||
self.assertEquals(self.registry['plone.app.discussion.interfaces.' +
|
||||
self.assertEqual(self.registry['plone.app.discussion.interfaces.' +
|
||||
'IDiscussionSettings.moderator_notification_enabled'], False)
|
||||
|
||||
#def test_user_notification_enabled(self):
|
||||
@ -94,8 +94,8 @@ class RegistryTest(PloneTestCase):
|
||||
# show_commenter_image = self.registry.records['plone.app.discussion.' +
|
||||
# 'interfaces.IDiscussionSettings.user_notification_enabled']
|
||||
#
|
||||
# self.failUnless('user_notification_enabled' in IDiscussionSettings)
|
||||
# self.assertEquals(self.registry['plone.app.discussion.interfaces.' +
|
||||
# self.assertTrue('user_notification_enabled' in IDiscussionSettings)
|
||||
# self.assertEqual(self.registry['plone.app.discussion.interfaces.' +
|
||||
# 'IDiscussionSettings.user_notification_enabled'], False)
|
||||
|
||||
|
||||
@ -115,7 +115,7 @@ class ConfigurationChangedSubscriberTest(PloneTestCase):
|
||||
changes.
|
||||
"""
|
||||
# By default the one_state_workflow without moderation is enabled
|
||||
self.assertEquals(('one_state_workflow',),
|
||||
self.assertEqual(('one_state_workflow',),
|
||||
self.portal.portal_workflow.getChainForPortalType(
|
||||
'Discussion Item'))
|
||||
|
||||
@ -124,12 +124,12 @@ class ConfigurationChangedSubscriberTest(PloneTestCase):
|
||||
|
||||
# Make sure the comment_review_workflow with moderation enabled is
|
||||
# enabled
|
||||
self.assertEquals(('comment_review_workflow',),
|
||||
self.assertEqual(('comment_review_workflow',),
|
||||
self.portal.portal_workflow.getChainForPortalType(
|
||||
'Discussion Item'))
|
||||
# And back
|
||||
self.settings.moderation_enabled = False
|
||||
self.assertEquals(('one_state_workflow',),
|
||||
self.assertEqual(('one_state_workflow',),
|
||||
self.portal.portal_workflow.getChainForPortalType(
|
||||
'Discussion Item'))
|
||||
|
||||
|
@ -57,15 +57,15 @@ class ConversationTest(PloneTestCase):
|
||||
new_id = conversation.addComment(comment)
|
||||
|
||||
# Check that the conversation methods return the correct data
|
||||
self.assert_(isinstance(comment.comment_id, long))
|
||||
self.assert_(IComment.providedBy(conversation[new_id]))
|
||||
self.assertEquals(aq_base(conversation[new_id].__parent__),
|
||||
self.assertTrue(isinstance(comment.comment_id, long))
|
||||
self.assertTrue(IComment.providedBy(conversation[new_id]))
|
||||
self.assertEqual(aq_base(conversation[new_id].__parent__),
|
||||
aq_base(conversation))
|
||||
self.assertEquals(new_id, comment.comment_id)
|
||||
self.assertEquals(len(list(conversation.getComments())), 1)
|
||||
self.assertEquals(len(tuple(conversation.getThreads())), 1)
|
||||
self.assertEquals(conversation.total_comments, 1)
|
||||
self.assert_(conversation.last_comment_date - datetime.utcnow() <
|
||||
self.assertEqual(new_id, comment.comment_id)
|
||||
self.assertEqual(len(list(conversation.getComments())), 1)
|
||||
self.assertEqual(len(tuple(conversation.getThreads())), 1)
|
||||
self.assertEqual(conversation.total_comments, 1)
|
||||
self.assertTrue(conversation.last_comment_date - datetime.utcnow() <
|
||||
timedelta(seconds=1))
|
||||
|
||||
def test_delete_comment(self):
|
||||
@ -82,17 +82,17 @@ class ConversationTest(PloneTestCase):
|
||||
new_id = conversation.addComment(comment)
|
||||
|
||||
# make sure the comment has been added
|
||||
self.assertEquals(len(list(conversation.getComments())), 1)
|
||||
self.assertEquals(len(tuple(conversation.getThreads())), 1)
|
||||
self.assertEquals(conversation.total_comments, 1)
|
||||
self.assertEqual(len(list(conversation.getComments())), 1)
|
||||
self.assertEqual(len(tuple(conversation.getThreads())), 1)
|
||||
self.assertEqual(conversation.total_comments, 1)
|
||||
|
||||
# delete the comment we just created
|
||||
del conversation[new_id]
|
||||
|
||||
# make sure there is no comment left in the conversation
|
||||
self.assertEquals(len(list(conversation.getComments())), 0)
|
||||
self.assertEquals(len(tuple(conversation.getThreads())), 0)
|
||||
self.assertEquals(conversation.total_comments, 0)
|
||||
self.assertEqual(len(list(conversation.getComments())), 0)
|
||||
self.assertEqual(len(tuple(conversation.getThreads())), 0)
|
||||
self.assertEqual(conversation.total_comments, 0)
|
||||
|
||||
def test_delete_recursive(self):
|
||||
# Create a conversation. In this case we doesn't assign it to an
|
||||
@ -148,7 +148,7 @@ class ConversationTest(PloneTestCase):
|
||||
|
||||
del conversation[new_id_1]
|
||||
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
[{'comment': comment2, 'depth': 0, 'id': new_id_2},
|
||||
{'comment': comment2_1, 'depth': 1, 'id': new_id_2_1},
|
||||
], list(conversation.getThreads()))
|
||||
@ -165,9 +165,9 @@ class ConversationTest(PloneTestCase):
|
||||
self.portal.manage_delObjects(['doc1'])
|
||||
|
||||
# Make sure the comment has been deleted as well
|
||||
self.assertEquals(len(list(conversation.getComments())), 0)
|
||||
self.assertEquals(len(tuple(conversation.getThreads())), 0)
|
||||
self.assertEquals(conversation.total_comments, 0)
|
||||
self.assertEqual(len(list(conversation.getComments())), 0)
|
||||
self.assertEqual(len(tuple(conversation.getThreads())), 0)
|
||||
self.assertEqual(conversation.total_comments, 0)
|
||||
|
||||
def test_allow_discussion(self):
|
||||
# This is not a real test! It's only there to understand the
|
||||
@ -187,52 +187,52 @@ class ConversationTest(PloneTestCase):
|
||||
type_fti = getattr(portal_types, type)
|
||||
if type not in BAD_TYPES:
|
||||
if type != 'Discussion Item':
|
||||
self.failIf(type_fti.allowDiscussion())
|
||||
self.assertFalse(type_fti.allowDiscussion())
|
||||
|
||||
# By default, allow_discussion on newly created content objects is
|
||||
# set to False
|
||||
portal_discussion = getToolByName(self.portal, 'portal_discussion')
|
||||
self.assertEquals(portal_discussion.isDiscussionAllowedFor(
|
||||
self.assertEqual(portal_discussion.isDiscussionAllowedFor(
|
||||
self.portal.doc1), False)
|
||||
self.assertEquals(self.portal.doc1.getTypeInfo().allowDiscussion(),
|
||||
self.assertEqual(self.portal.doc1.getTypeInfo().allowDiscussion(),
|
||||
False)
|
||||
|
||||
# The allow discussion flag is None by default
|
||||
self.failIf(getattr(self.portal.doc1, 'allow_discussion', None))
|
||||
self.assertFalse(getattr(self.portal.doc1, 'allow_discussion', None))
|
||||
|
||||
# But isDiscussionAllowedFor, also checks if discussion is allowed on
|
||||
# the content type. So we allow discussion on the Document content
|
||||
# type and check if the Document object allows discussion now.
|
||||
document_fti = getattr(portal_types, 'Document')
|
||||
document_fti.manage_changeProperties(allow_discussion = True)
|
||||
self.assertEquals(portal_discussion.isDiscussionAllowedFor(
|
||||
self.assertEqual(portal_discussion.isDiscussionAllowedFor(
|
||||
self.portal.doc1), True)
|
||||
self.assertEquals(self.portal.doc1.getTypeInfo().allowDiscussion(),
|
||||
self.assertEqual(self.portal.doc1.getTypeInfo().allowDiscussion(),
|
||||
True)
|
||||
|
||||
# We can also override the allow_discussion locally
|
||||
self.portal_discussion.overrideDiscussionFor(self.portal.doc1, False)
|
||||
# Check if the Document discussion is disabled
|
||||
self.assertEquals(portal_discussion.isDiscussionAllowedFor(
|
||||
self.assertEqual(portal_discussion.isDiscussionAllowedFor(
|
||||
self.portal.doc1), False)
|
||||
# Check that the local allow_discussion flag is now explicitly set to
|
||||
# False
|
||||
self.assertEquals(getattr(self.portal.doc1, 'allow_discussion', None),
|
||||
self.assertEqual(getattr(self.portal.doc1, 'allow_discussion', None),
|
||||
False)
|
||||
|
||||
# Disallow discussion on the Document content type again
|
||||
document_fti.manage_changeProperties(allow_discussion = False)
|
||||
self.assertEquals(portal_discussion.isDiscussionAllowedFor(
|
||||
self.assertEqual(portal_discussion.isDiscussionAllowedFor(
|
||||
self.portal.doc1), False)
|
||||
self.assertEquals(self.portal.doc1.getTypeInfo().allowDiscussion(),
|
||||
self.assertEqual(self.portal.doc1.getTypeInfo().allowDiscussion(),
|
||||
False)
|
||||
|
||||
# Now we override allow_discussion again (True) for the Document
|
||||
# content object
|
||||
self.portal_discussion.overrideDiscussionFor(self.portal.doc1, True)
|
||||
self.assertEquals(portal_discussion.isDiscussionAllowedFor(
|
||||
self.assertEqual(portal_discussion.isDiscussionAllowedFor(
|
||||
self.portal.doc1), True)
|
||||
self.assertEquals(getattr(self.portal.doc1, 'allow_discussion', None),
|
||||
self.assertEqual(getattr(self.portal.doc1, 'allow_discussion', None),
|
||||
True)
|
||||
|
||||
def test_comments_enabled_on_doc_in_subfolder(self):
|
||||
@ -250,7 +250,7 @@ class ConversationTest(PloneTestCase):
|
||||
|
||||
doc = self.portal.folder1.doc2
|
||||
conversation = doc.restrictedTraverse('@@conversation_view')
|
||||
self.assertEquals(conversation.enabled(), False)
|
||||
self.assertEqual(conversation.enabled(), False)
|
||||
|
||||
# We have to allow discussion on Document content type, since
|
||||
# otherwise allow_discussion will always return False
|
||||
@ -258,7 +258,7 @@ class ConversationTest(PloneTestCase):
|
||||
document_fti = getattr(portal_types, 'Document')
|
||||
document_fti.manage_changeProperties(allow_discussion = True)
|
||||
|
||||
self.assertEquals(conversation.enabled(), True)
|
||||
self.assertEqual(conversation.enabled(), True)
|
||||
|
||||
def test_disable_commenting_globally(self):
|
||||
|
||||
@ -273,7 +273,7 @@ class ConversationTest(PloneTestCase):
|
||||
document_fti.manage_changeProperties(allow_discussion = True)
|
||||
|
||||
# Check if conversation is enabled now
|
||||
self.assertEquals(conversation.enabled(), True)
|
||||
self.assertEqual(conversation.enabled(), True)
|
||||
|
||||
# Disable commenting in the registry
|
||||
registry = queryUtility(IRegistry)
|
||||
@ -281,11 +281,11 @@ class ConversationTest(PloneTestCase):
|
||||
settings.globally_enabled = False
|
||||
|
||||
# Check if commenting is disabled on the conversation
|
||||
self.assertEquals(conversation.enabled(), False)
|
||||
self.assertEqual(conversation.enabled(), False)
|
||||
|
||||
# Enable discussion again
|
||||
settings.globally_enabled = True
|
||||
self.assertEquals(conversation.enabled(), True)
|
||||
self.assertEqual(conversation.enabled(), True)
|
||||
|
||||
|
||||
def test_allow_discussion_for_news_items(self):
|
||||
@ -301,7 +301,7 @@ class ConversationTest(PloneTestCase):
|
||||
document_fti.manage_changeProperties(allow_discussion = True)
|
||||
|
||||
# Check if conversation is enabled now
|
||||
self.assertEquals(conversation.enabled(), True)
|
||||
self.assertEqual(conversation.enabled(), True)
|
||||
|
||||
# Disable commenting in the registry
|
||||
registry = queryUtility(IRegistry)
|
||||
@ -309,11 +309,11 @@ class ConversationTest(PloneTestCase):
|
||||
settings.globally_enabled = False
|
||||
|
||||
# Check if commenting is disabled on the conversation
|
||||
self.assertEquals(conversation.enabled(), False)
|
||||
self.assertEqual(conversation.enabled(), False)
|
||||
|
||||
# Enable discussion again
|
||||
settings.globally_enabled = True
|
||||
self.assertEquals(conversation.enabled(), True)
|
||||
self.assertEqual(conversation.enabled(), True)
|
||||
|
||||
def test_disable_commenting_for_content_type(self):
|
||||
|
||||
@ -322,7 +322,7 @@ class ConversationTest(PloneTestCase):
|
||||
'@@conversation_view')
|
||||
|
||||
# The Document content type is disabled by default
|
||||
self.assertEquals(conversation.enabled(), False)
|
||||
self.assertEqual(conversation.enabled(), False)
|
||||
|
||||
# Allow discussion on Document content type
|
||||
portal_types = getToolByName(self.portal, 'portal_types')
|
||||
@ -330,7 +330,7 @@ class ConversationTest(PloneTestCase):
|
||||
document_fti.manage_changeProperties(allow_discussion = True)
|
||||
|
||||
# Check if conversation is enabled now
|
||||
self.assertEquals(conversation.enabled(), True)
|
||||
self.assertEqual(conversation.enabled(), True)
|
||||
|
||||
# Disallow discussion on Document content type
|
||||
portal_types = getToolByName(self.portal, 'portal_types')
|
||||
@ -338,7 +338,7 @@ class ConversationTest(PloneTestCase):
|
||||
document_fti.manage_changeProperties(allow_discussion = False)
|
||||
|
||||
# Check if conversation is enabled now
|
||||
self.assertEquals(conversation.enabled(), False)
|
||||
self.assertEqual(conversation.enabled(), False)
|
||||
|
||||
def test_allow_discussion_on_folder(self):
|
||||
# The enabled method should always return False for the folder
|
||||
@ -359,7 +359,7 @@ class ConversationTest(PloneTestCase):
|
||||
document_fti.manage_changeProperties(allow_discussion = True)
|
||||
|
||||
# Always return False
|
||||
self.failIf(conversation.enabled())
|
||||
self.assertFalse(conversation.enabled())
|
||||
|
||||
def test_is_discussion_allowed_for_folder(self):
|
||||
# When a content item provides IFolderish from CMF and
|
||||
@ -378,19 +378,19 @@ class ConversationTest(PloneTestCase):
|
||||
doc1 = self.portal.f1.doc1
|
||||
doc1_conversation = doc1.restrictedTraverse('@@conversation_view')
|
||||
|
||||
self.assertEquals(doc1_conversation.enabled(), False)
|
||||
self.assertEqual(doc1_conversation.enabled(), False)
|
||||
|
||||
# Allow commenting for the folder
|
||||
self.portal_discussion.overrideDiscussionFor(f1, True)
|
||||
|
||||
# Check if the content objects allows discussion
|
||||
self.assertEquals(doc1_conversation.enabled(), True)
|
||||
self.assertEqual(doc1_conversation.enabled(), True)
|
||||
|
||||
# Turn commenting for the folder off
|
||||
self.portal_discussion.overrideDiscussionFor(f1, False)
|
||||
|
||||
# Check if content objects do not allow discussion anymore
|
||||
self.assertEquals(doc1_conversation.enabled(), False)
|
||||
self.assertEqual(doc1_conversation.enabled(), False)
|
||||
|
||||
def test_is_discussion_allowed_on_content_object(self):
|
||||
# Allow discussion on a single content object
|
||||
@ -400,16 +400,16 @@ class ConversationTest(PloneTestCase):
|
||||
'@@conversation_view')
|
||||
|
||||
# Discussion is disallowed by default
|
||||
self.assertEquals(conversation.enabled(), False)
|
||||
self.assertEqual(conversation.enabled(), False)
|
||||
|
||||
# Allow discussion on content object
|
||||
self.portal_discussion.overrideDiscussionFor(self.portal.doc1, True)
|
||||
|
||||
# Check if discussion is now allowed on the content object
|
||||
self.assertEquals(conversation.enabled(), True)
|
||||
self.assertEqual(conversation.enabled(), True)
|
||||
|
||||
self.portal_discussion.overrideDiscussionFor(self.portal.doc1, False)
|
||||
self.assertEquals(conversation.enabled(), False)
|
||||
self.assertEqual(conversation.enabled(), False)
|
||||
|
||||
def test_dict_operations(self):
|
||||
# test dict operations and acquisition wrapping
|
||||
@ -433,41 +433,41 @@ class ConversationTest(PloneTestCase):
|
||||
|
||||
# check if get returns a comment object, and None if the key
|
||||
# can not be found
|
||||
self.failUnless(IComment.providedBy(conversation.get(new_id1)))
|
||||
self.failUnless(IComment.providedBy(conversation.get(new_id2)))
|
||||
self.assertEquals(conversation.get(123), None)
|
||||
self.assertTrue(IComment.providedBy(conversation.get(new_id1)))
|
||||
self.assertTrue(IComment.providedBy(conversation.get(new_id2)))
|
||||
self.assertEqual(conversation.get(123), None)
|
||||
|
||||
# check if keys return the ids of all comments
|
||||
self.assertEquals(len(conversation.keys()), 2)
|
||||
self.failUnless(new_id1 in conversation.keys())
|
||||
self.failUnless(new_id2 in conversation.keys())
|
||||
self.failIf(123 in conversation.keys())
|
||||
self.assertEqual(len(conversation.keys()), 2)
|
||||
self.assertTrue(new_id1 in conversation.keys())
|
||||
self.assertTrue(new_id2 in conversation.keys())
|
||||
self.assertFalse(123 in conversation.keys())
|
||||
|
||||
# check if items returns (key, comment object) pairs
|
||||
self.assertEquals(len(conversation.items()), 2)
|
||||
self.failUnless((new_id1, comment1) in conversation.items())
|
||||
self.failUnless((new_id2, comment2) in conversation.items())
|
||||
self.assertEqual(len(conversation.items()), 2)
|
||||
self.assertTrue((new_id1, comment1) in conversation.items())
|
||||
self.assertTrue((new_id2, comment2) in conversation.items())
|
||||
|
||||
# check if values returns the two comment objects
|
||||
self.assertEquals(len(conversation.values()), 2)
|
||||
self.failUnless(comment1 in conversation.values())
|
||||
self.failUnless(comment2 in conversation.values())
|
||||
self.assertEqual(len(conversation.values()), 2)
|
||||
self.assertTrue(comment1 in conversation.values())
|
||||
self.assertTrue(comment2 in conversation.values())
|
||||
|
||||
# check if comment ids are in iterkeys
|
||||
self.failUnless(new_id1 in conversation.iterkeys())
|
||||
self.failUnless(new_id2 in conversation.iterkeys())
|
||||
self.failIf(123 in conversation.iterkeys())
|
||||
self.assertTrue(new_id1 in conversation.iterkeys())
|
||||
self.assertTrue(new_id2 in conversation.iterkeys())
|
||||
self.assertFalse(123 in conversation.iterkeys())
|
||||
|
||||
# check if comment objects are in itervalues
|
||||
self.failUnless(comment1 in conversation.itervalues())
|
||||
self.failUnless(comment2 in conversation.itervalues())
|
||||
self.assertTrue(comment1 in conversation.itervalues())
|
||||
self.assertTrue(comment2 in conversation.itervalues())
|
||||
|
||||
# check if iteritems returns (key, comment object) pairs
|
||||
self.failUnless((new_id1, comment1) in conversation.iteritems())
|
||||
self.failUnless((new_id2, comment2) in conversation.iteritems())
|
||||
self.assertTrue((new_id1, comment1) in conversation.iteritems())
|
||||
self.assertTrue((new_id2, comment2) in conversation.iteritems())
|
||||
|
||||
# TODO test acquisition wrapping
|
||||
#self.failUnless(aq_base(aq_parent(comment1)) is conversation)
|
||||
#self.assertTrue(aq_base(aq_parent(comment1)) is conversation)
|
||||
|
||||
def test_total_comments(self):
|
||||
# Create a conversation. In this case we doesn't assign it to an
|
||||
@ -491,7 +491,7 @@ class ConversationTest(PloneTestCase):
|
||||
conversation.addComment(comment2)
|
||||
conversation.addComment(comment3)
|
||||
|
||||
self.assertEquals(conversation.total_comments, 3)
|
||||
self.assertEqual(conversation.total_comments, 3)
|
||||
|
||||
def test_commentators(self):
|
||||
# add and remove a few comments to make sure the commentators
|
||||
@ -501,7 +501,7 @@ class ConversationTest(PloneTestCase):
|
||||
# object, as we just want to check the Conversation object API.
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
|
||||
self.assertEquals(conversation.total_comments, 0)
|
||||
self.assertEqual(conversation.total_comments, 0)
|
||||
|
||||
# Add a four comments from three different users
|
||||
# Note: in real life, we always create
|
||||
@ -528,29 +528,29 @@ class ConversationTest(PloneTestCase):
|
||||
new_comment4_id = conversation.addComment(comment4)
|
||||
|
||||
# check if all commentators are in the commentators list
|
||||
self.assertEquals(conversation.total_comments, 4)
|
||||
self.failUnless('Jim' in conversation.commentators)
|
||||
self.failUnless('Joe' in conversation.commentators)
|
||||
self.failUnless('Jack' in conversation.commentators)
|
||||
self.assertEqual(conversation.total_comments, 4)
|
||||
self.assertTrue('Jim' in conversation.commentators)
|
||||
self.assertTrue('Joe' in conversation.commentators)
|
||||
self.assertTrue('Jack' in conversation.commentators)
|
||||
|
||||
# remove the comment from Jack
|
||||
del conversation[new_comment3_id]
|
||||
|
||||
# check if Jack is still in the commentators list (since
|
||||
# he had added two comments)
|
||||
self.failUnless('Jim' in conversation.commentators)
|
||||
self.failUnless('Joe' in conversation.commentators)
|
||||
self.failUnless('Jack' in conversation.commentators)
|
||||
self.assertEquals(conversation.total_comments, 3)
|
||||
self.assertTrue('Jim' in conversation.commentators)
|
||||
self.assertTrue('Joe' in conversation.commentators)
|
||||
self.assertTrue('Jack' in conversation.commentators)
|
||||
self.assertEqual(conversation.total_comments, 3)
|
||||
|
||||
# remove the second comment from Jack
|
||||
del conversation[new_comment4_id]
|
||||
|
||||
# check if Jack has been removed from the commentators list
|
||||
self.failUnless('Jim' in conversation.commentators)
|
||||
self.failUnless('Joe' in conversation.commentators)
|
||||
self.failIf('Jack' in conversation.commentators)
|
||||
self.assertEquals(conversation.total_comments, 2)
|
||||
self.assertTrue('Jim' in conversation.commentators)
|
||||
self.assertTrue('Joe' in conversation.commentators)
|
||||
self.assertFalse('Jack' in conversation.commentators)
|
||||
self.assertEqual(conversation.total_comments, 2)
|
||||
|
||||
def test_last_comment_date(self):
|
||||
# add and remove some comments and check if last_comment_date
|
||||
@ -580,9 +580,9 @@ class ConversationTest(PloneTestCase):
|
||||
new_comment3_id = conversation.addComment(comment3)
|
||||
|
||||
# check if the latest comment is exactly one day old
|
||||
self.assert_(conversation.last_comment_date < datetime.utcnow() -
|
||||
self.assertTrue(conversation.last_comment_date < datetime.utcnow() -
|
||||
timedelta(hours=23, minutes=59, seconds=59))
|
||||
self.assert_(conversation.last_comment_date >
|
||||
self.assertTrue(conversation.last_comment_date >
|
||||
datetime.utcnow() - timedelta(days=1, seconds=1))
|
||||
|
||||
# remove the latest comment
|
||||
@ -590,9 +590,9 @@ class ConversationTest(PloneTestCase):
|
||||
|
||||
# check if the latest comment has been updated
|
||||
# the latest comment should be exactly two days old
|
||||
self.assert_(conversation.last_comment_date < datetime.utcnow() -
|
||||
self.assertTrue(conversation.last_comment_date < datetime.utcnow() -
|
||||
timedelta(days=1, hours=23, minutes=59, seconds=59))
|
||||
self.assert_(conversation.last_comment_date > datetime.utcnow() -
|
||||
self.assertTrue(conversation.last_comment_date > datetime.utcnow() -
|
||||
timedelta(days=2, seconds=1))
|
||||
|
||||
# remove the latest comment again
|
||||
@ -600,9 +600,9 @@ class ConversationTest(PloneTestCase):
|
||||
|
||||
# check if the latest comment has been updated
|
||||
# the latest comment should be exactly four days old
|
||||
self.assert_(conversation.last_comment_date < datetime.utcnow() -
|
||||
self.assertTrue(conversation.last_comment_date < datetime.utcnow() -
|
||||
timedelta(days=3, hours=23, minutes=59, seconds=59))
|
||||
self.assert_(conversation.last_comment_date > datetime.utcnow() -
|
||||
self.assertTrue(conversation.last_comment_date > datetime.utcnow() -
|
||||
timedelta(days=4, seconds=2))
|
||||
|
||||
def test_get_comments_full(self):
|
||||
@ -666,7 +666,7 @@ class ConversationTest(PloneTestCase):
|
||||
|
||||
# Get threads
|
||||
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
[{'comment': comment1, 'depth': 0, 'id': new_id_1},
|
||||
{'comment': comment1_1, 'depth': 1, 'id': new_id_1_1},
|
||||
{'comment': comment1_1_1, 'depth': 2, 'id': new_id_1_1_1},
|
||||
@ -685,11 +685,11 @@ class ConversationTest(PloneTestCase):
|
||||
|
||||
conversation = self.portal.doc1.restrictedTraverse(
|
||||
'++conversation++default')
|
||||
self.assert_(IConversation.providedBy(conversation))
|
||||
self.assertTrue(IConversation.providedBy(conversation))
|
||||
|
||||
self.assertEquals(('', 'plone', 'doc1', '++conversation++default'),
|
||||
self.assertEqual(('', 'plone', 'doc1', '++conversation++default'),
|
||||
conversation.getPhysicalPath())
|
||||
self.assertEquals('http://nohost/plone/doc1/++conversation++default',
|
||||
self.assertEqual('http://nohost/plone/doc1/++conversation++default',
|
||||
conversation.absolute_url())
|
||||
|
||||
def test_parent(self):
|
||||
@ -699,19 +699,19 @@ class ConversationTest(PloneTestCase):
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
|
||||
# Check the parent
|
||||
self.failUnless(conversation.__parent__)
|
||||
self.failUnless(aq_parent(conversation))
|
||||
self.assertTrue(conversation.__parent__)
|
||||
self.assertTrue(aq_parent(conversation))
|
||||
|
||||
self.assertEquals(conversation.__parent__.getId(), 'doc1')
|
||||
self.assertEqual(conversation.__parent__.getId(), 'doc1')
|
||||
|
||||
def test_discussion_item_not_in_bad_types(self):
|
||||
self.failIf('Discussion Item' in BAD_TYPES)
|
||||
self.assertFalse('Discussion Item' in BAD_TYPES)
|
||||
|
||||
def test_no_comment(self):
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
|
||||
# Make sure no conversation has been created
|
||||
self.assert_('plone.app.discussion:conversation' not in
|
||||
self.assertTrue('plone.app.discussion:conversation' not in
|
||||
IAnnotations(self.portal.doc1))
|
||||
|
||||
|
||||
@ -742,15 +742,15 @@ class RepliesTest(PloneTestCase):
|
||||
new_id = replies.addComment(comment)
|
||||
|
||||
# check that replies provides the IReplies interface
|
||||
self.assert_(IReplies.providedBy(replies))
|
||||
self.assertTrue(IReplies.providedBy(replies))
|
||||
|
||||
# Make sure our comment was added
|
||||
self.failUnless(new_id in replies)
|
||||
self.assertTrue(new_id in replies)
|
||||
|
||||
# Make sure it is also reflected in the conversation
|
||||
self.failUnless(new_id in conversation)
|
||||
self.assertTrue(new_id in conversation)
|
||||
|
||||
self.assertEquals(conversation[new_id].comment_id, new_id)
|
||||
self.assertEqual(conversation[new_id].comment_id, new_id)
|
||||
|
||||
def test_delete_comment(self):
|
||||
# Create and remove a comment and check if the replies adapter
|
||||
@ -769,13 +769,13 @@ class RepliesTest(PloneTestCase):
|
||||
new_id = replies.addComment(comment)
|
||||
|
||||
# make sure the comment has been added
|
||||
self.assertEquals(len(replies), 1)
|
||||
self.assertEqual(len(replies), 1)
|
||||
|
||||
# delete the comment we just created
|
||||
del replies[new_id]
|
||||
|
||||
# make sure there is no comment left in the conversation
|
||||
self.assertEquals(len(replies), 0)
|
||||
self.assertEqual(len(replies), 0)
|
||||
|
||||
def test_dict_api(self):
|
||||
# This test is for the ConversationReplies as well as the
|
||||
@ -842,11 +842,11 @@ class RepliesTest(PloneTestCase):
|
||||
|
||||
# check that replies only contain the direct comments
|
||||
# and no comments deeper than 1
|
||||
self.assertEquals(conversation.total_comments, 6)
|
||||
self.assertEquals(len(replies), 2)
|
||||
self.assertEquals(len(replies_to_comment1), 2)
|
||||
self.assertEquals(len(replies_to_comment1_1), 1)
|
||||
self.assertEquals(len(replies_to_comment2), 1)
|
||||
self.assertEqual(conversation.total_comments, 6)
|
||||
self.assertEqual(len(replies), 2)
|
||||
self.assertEqual(len(replies_to_comment1), 2)
|
||||
self.assertEqual(len(replies_to_comment1_1), 1)
|
||||
self.assertEqual(len(replies_to_comment2), 1)
|
||||
|
||||
def test_suite():
|
||||
return unittest.defaultTestLoader.loadTestsFromName(__name__)
|
||||
|
@ -71,32 +71,32 @@ class ConversationIndexersTest(PloneTestCase):
|
||||
self.conversation = conversation
|
||||
|
||||
def test_conversation_total_comments(self):
|
||||
self.assert_(isinstance(catalog.total_comments,
|
||||
self.assertTrue(isinstance(catalog.total_comments,
|
||||
DelegatingIndexerFactory))
|
||||
self.assertEquals(catalog.total_comments(self.portal.doc1)(), 3)
|
||||
self.assertEqual(catalog.total_comments(self.portal.doc1)(), 3)
|
||||
del self.conversation[self.new_id1]
|
||||
self.assertEquals(catalog.total_comments(self.portal.doc1)(), 2)
|
||||
self.assertEqual(catalog.total_comments(self.portal.doc1)(), 2)
|
||||
del self.conversation[self.new_id2]
|
||||
del self.conversation[self.new_id3]
|
||||
self.assertEquals(catalog.total_comments(self.portal.doc1)(), 0)
|
||||
self.assertEqual(catalog.total_comments(self.portal.doc1)(), 0)
|
||||
|
||||
def test_conversation_last_comment_date(self):
|
||||
self.assert_(isinstance(catalog.last_comment_date,
|
||||
self.assertTrue(isinstance(catalog.last_comment_date,
|
||||
DelegatingIndexerFactory))
|
||||
self.assertEquals(catalog.last_comment_date(self.portal.doc1)(),
|
||||
self.assertEqual(catalog.last_comment_date(self.portal.doc1)(),
|
||||
datetime(2009, 4, 12, 11, 12, 12))
|
||||
del self.conversation[self.new_id3]
|
||||
self.assertEquals(catalog.last_comment_date(self.portal.doc1)(),
|
||||
self.assertEqual(catalog.last_comment_date(self.portal.doc1)(),
|
||||
datetime(2007, 12, 13, 4, 18, 12))
|
||||
del self.conversation[self.new_id2]
|
||||
del self.conversation[self.new_id1]
|
||||
self.assertEquals(catalog.last_comment_date(self.portal.doc1)(), None)
|
||||
self.assertEqual(catalog.last_comment_date(self.portal.doc1)(), None)
|
||||
|
||||
def test_conversation_commentators(self):
|
||||
pass
|
||||
#self.assertEquals(catalog.commentators(self.portal.doc1)(),
|
||||
#self.assertEqual(catalog.commentators(self.portal.doc1)(),
|
||||
# ('Jim', 'Emma', 'Lukas'))
|
||||
#self.assert_(isinstance(catalog.commentators,
|
||||
#self.assertTrue(isinstance(catalog.commentators,
|
||||
# DelegatingIndexerFactory))
|
||||
|
||||
|
||||
@ -129,13 +129,13 @@ class CommentIndexersTest(PloneTestCase):
|
||||
self.conversation = conversation
|
||||
|
||||
def test_title(self):
|
||||
self.assertEquals(catalog.title(self.comment)(), 'Jim on Document 1')
|
||||
self.assert_(isinstance(catalog.title, DelegatingIndexerFactory))
|
||||
self.assertEqual(catalog.title(self.comment)(), 'Jim on Document 1')
|
||||
self.assertTrue(isinstance(catalog.title, DelegatingIndexerFactory))
|
||||
|
||||
def test_description(self):
|
||||
self.assertEquals(catalog.description(self.comment)(),
|
||||
self.assertEqual(catalog.description(self.comment)(),
|
||||
'Lorem ipsum dolor sit amet.')
|
||||
self.assert_(isinstance(catalog.description, DelegatingIndexerFactory))
|
||||
self.assertTrue(isinstance(catalog.description, DelegatingIndexerFactory))
|
||||
|
||||
def test_description_long(self):
|
||||
# Create a 50 word comment and make sure the description returns
|
||||
@ -145,32 +145,32 @@ class CommentIndexersTest(PloneTestCase):
|
||||
comment_long.text = LONG_TEXT
|
||||
|
||||
self.conversation.addComment(comment_long)
|
||||
self.assertEquals(catalog.description(comment_long)(),
|
||||
self.assertEqual(catalog.description(comment_long)(),
|
||||
LONG_TEXT_CUT.replace("\n", " "))
|
||||
|
||||
def test_dates(self):
|
||||
# Test if created, modified, effective etc. are set correctly
|
||||
self.assertEquals(catalog.created(self.comment)(),
|
||||
self.assertEqual(catalog.created(self.comment)(),
|
||||
DateTime(2006, 9, 17, 14, 18, 12, 'GMT'))
|
||||
self.assertEquals(catalog.effective(self.comment)(),
|
||||
self.assertEqual(catalog.effective(self.comment)(),
|
||||
DateTime(2006, 9, 17, 14, 18, 12, 'GMT'))
|
||||
self.assertEquals(catalog.modified(self.comment)(),
|
||||
self.assertEqual(catalog.modified(self.comment)(),
|
||||
DateTime(2008, 3, 12, 7, 32, 52, 'GMT'))
|
||||
|
||||
def test_searchable_text(self):
|
||||
# Test if searchable text is a concatenation of title and comment text
|
||||
self.assertEquals(catalog.searchable_text(self.comment)(),
|
||||
self.assertEqual(catalog.searchable_text(self.comment)(),
|
||||
('Lorem ipsum dolor sit amet.'))
|
||||
self.assert_(isinstance(catalog.searchable_text,
|
||||
self.assertTrue(isinstance(catalog.searchable_text,
|
||||
DelegatingIndexerFactory))
|
||||
|
||||
def test_creator(self):
|
||||
self.assertEquals(catalog.creator(self.comment)(), ('Jim'))
|
||||
self.assertEqual(catalog.creator(self.comment)(), ('Jim'))
|
||||
|
||||
def test_in_response_to(self):
|
||||
# make sure in_response_to returns the title or id of the content
|
||||
# object the comment was added to
|
||||
self.assertEquals(catalog.in_response_to(self.comment)(), 'Document 1')
|
||||
self.assertEqual(catalog.in_response_to(self.comment)(), 'Document 1')
|
||||
|
||||
|
||||
def test_suite():
|
||||
|
@ -49,37 +49,37 @@ class MigrationTest(PloneTestCase):
|
||||
reply.setReplyTo(self.doc)
|
||||
reply.creation_date = DateTime(2003, 3, 11, 9, 28, 6, 'GMT')
|
||||
reply.modification_date = DateTime(2009, 7, 12, 19, 38, 7, 'GMT')
|
||||
self.assertEquals(reply.Title(), 'My Title')
|
||||
self.assertEquals(reply.EditableBody(), 'My Text')
|
||||
self.failUnless('Jim' in reply.listCreators())
|
||||
self.assertEquals(talkback.replyCount(self.doc), 1)
|
||||
self.assertEquals(reply.inReplyTo(), self.doc)
|
||||
self.assertEqual(reply.Title(), 'My Title')
|
||||
self.assertEqual(reply.EditableBody(), 'My Text')
|
||||
self.assertTrue('Jim' in reply.listCreators())
|
||||
self.assertEqual(talkback.replyCount(self.doc), 1)
|
||||
self.assertEqual(reply.inReplyTo(), self.doc)
|
||||
|
||||
# Call migration script
|
||||
self.view()
|
||||
|
||||
# Make sure a conversation has been created
|
||||
self.failUnless('plone.app.discussion:conversation' in
|
||||
self.assertTrue('plone.app.discussion:conversation' in
|
||||
IAnnotations(self.doc))
|
||||
conversation = IConversation(self.doc)
|
||||
|
||||
# Check migration
|
||||
self.assertEquals(conversation.total_comments, 1)
|
||||
self.failUnless(conversation.getComments().next())
|
||||
self.assertEqual(conversation.total_comments, 1)
|
||||
self.assertTrue(conversation.getComments().next())
|
||||
comment1 = conversation.values()[0]
|
||||
self.assert_(IComment.providedBy(comment1))
|
||||
self.assertEquals(comment1.Title(), 'My Title')
|
||||
self.assertEquals(comment1.text, '<p>My Text</p>\n')
|
||||
self.assertEquals(comment1.mime_type, 'text/html')
|
||||
self.assertEquals(comment1.Creator(), 'Jim')
|
||||
self.assertEquals(comment1.creation_date,
|
||||
self.assertTrue(IComment.providedBy(comment1))
|
||||
self.assertEqual(comment1.Title(), 'My Title')
|
||||
self.assertEqual(comment1.text, '<p>My Text</p>\n')
|
||||
self.assertEqual(comment1.mime_type, 'text/html')
|
||||
self.assertEqual(comment1.Creator(), 'Jim')
|
||||
self.assertEqual(comment1.creation_date,
|
||||
datetime(2003, 3, 11, 9, 28, 6))
|
||||
self.assertEquals(comment1.modification_date,
|
||||
self.assertEqual(comment1.modification_date,
|
||||
datetime(2009, 7, 12, 19, 38, 7))
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
[{'comment': comment1, 'depth': 0, 'id': long(comment1.id)},]
|
||||
, list(conversation.getThreads()))
|
||||
self.failIf(self.doc.talkback)
|
||||
self.assertFalse(self.doc.talkback)
|
||||
|
||||
def test_migrate_nested_comments(self):
|
||||
# Create some nested comments and migrate them
|
||||
@ -108,9 +108,9 @@ class MigrationTest(PloneTestCase):
|
||||
comment1_1 = talkback_comment1.getReplies()[0]
|
||||
talkback_comment1_1 = self.discussion.getDiscussionFor(comment1_1)
|
||||
|
||||
self.assertEquals(len(talkback.getReplies()), 1)
|
||||
self.assertEquals(len(talkback_comment1.getReplies()), 1)
|
||||
self.assertEquals(len(talkback_comment1_1.getReplies()), 0)
|
||||
self.assertEqual(len(talkback.getReplies()), 1)
|
||||
self.assertEqual(len(talkback_comment1.getReplies()), 1)
|
||||
self.assertEqual(len(talkback_comment1_1.getReplies()), 0)
|
||||
|
||||
#Re: Re: First comment
|
||||
talkback_comment1_1.createReply(title='Re: Re: First comment',
|
||||
@ -143,7 +143,7 @@ class MigrationTest(PloneTestCase):
|
||||
|
||||
# Check migration
|
||||
conversation = IConversation(self.doc)
|
||||
self.assertEquals(conversation.total_comments, 8)
|
||||
self.assertEqual(conversation.total_comments, 8)
|
||||
|
||||
comment1 = conversation.values()[0]
|
||||
comment1_1 = conversation.values()[1]
|
||||
@ -154,7 +154,7 @@ class MigrationTest(PloneTestCase):
|
||||
comment1_4 = conversation.values()[6]
|
||||
comment2 = conversation.values()[7]
|
||||
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
[{'comment': comment1, 'depth': 0, 'id': long(comment1.id)},
|
||||
{'comment': comment1_1, 'depth': 1, 'id': long(comment1_1.id)},
|
||||
{'comment': comment1_1_1, 'depth': 2, 'id': long(comment1_1_1.id)},
|
||||
@ -166,7 +166,7 @@ class MigrationTest(PloneTestCase):
|
||||
], list(conversation.getThreads()))
|
||||
|
||||
talkback = self.discussion.getDiscussionFor(self.doc)
|
||||
self.assertEquals(len(talkback.getReplies()), 0)
|
||||
self.assertEqual(len(talkback.getReplies()), 0)
|
||||
|
||||
def test_migrate_nested_comments_with_filter(self):
|
||||
# Create some nested comments and migrate them.
|
||||
@ -191,9 +191,9 @@ class MigrationTest(PloneTestCase):
|
||||
comment1_1 = talkback_comment1.getReplies()[0]
|
||||
talkback_comment1_1 = self.discussion.getDiscussionFor(comment1_1)
|
||||
|
||||
self.assertEquals(len(talkback.getReplies()), 1)
|
||||
self.assertEquals(len(talkback_comment1.getReplies()), 1)
|
||||
self.assertEquals(len(talkback_comment1_1.getReplies()), 0)
|
||||
self.assertEqual(len(talkback.getReplies()), 1)
|
||||
self.assertEqual(len(talkback_comment1.getReplies()), 1)
|
||||
self.assertEqual(len(talkback_comment1_1.getReplies()), 0)
|
||||
|
||||
def deny_comments(reply):
|
||||
return False
|
||||
@ -203,9 +203,9 @@ class MigrationTest(PloneTestCase):
|
||||
|
||||
# Check migration
|
||||
conversation = IConversation(self.doc)
|
||||
self.assertEquals(conversation.total_comments, 0)
|
||||
self.assertEqual(conversation.total_comments, 0)
|
||||
talkback = self.discussion.getDiscussionFor(self.doc)
|
||||
self.assertEquals(len(talkback.getReplies()), 0)
|
||||
self.assertEqual(len(talkback.getReplies()), 0)
|
||||
|
||||
def test_migrate_no_comment(self):
|
||||
|
||||
@ -213,7 +213,7 @@ class MigrationTest(PloneTestCase):
|
||||
self.view()
|
||||
|
||||
# Make sure no conversation has been created
|
||||
self.assert_('plone.app.discussion:conversation' not in
|
||||
self.assertTrue('plone.app.discussion:conversation' not in
|
||||
IAnnotations(self.doc))
|
||||
|
||||
|
||||
|
@ -72,11 +72,11 @@ class ModerationViewTest(PloneTestCase):
|
||||
# The one_state_workflow does not have a 'pending' state
|
||||
self.wf_tool.setChainForPortalTypes(('Discussion Item',),
|
||||
('one_state_workflow,'))
|
||||
self.assertEquals(self.view.moderation_enabled(), False)
|
||||
self.assertEqual(self.view.moderation_enabled(), False)
|
||||
# The comment_review_workflow does have a 'pending' state
|
||||
self.wf_tool.setChainForPortalTypes(('Discussion Item',),
|
||||
('comment_review_workflow,'))
|
||||
self.assertEquals(self.view.moderation_enabled(), True)
|
||||
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
|
||||
@ -91,15 +91,15 @@ class ModerationViewTest(PloneTestCase):
|
||||
reply.setReplyTo(self.portal.doc1)
|
||||
reply.creation_date = DateTime(2003, 3, 11, 9, 28, 6)
|
||||
reply.modification_date = DateTime(2009, 7, 12, 19, 38, 7)
|
||||
self.assertEquals(reply.Title(), 'My Title')
|
||||
self.assertEquals(reply.EditableBody(), 'My Text')
|
||||
self.failUnless('Jim' in reply.listCreators())
|
||||
self.assertEquals(talkback.replyCount(self.portal.doc1), 1)
|
||||
self.assertEquals(reply.inReplyTo(), self.portal.doc1)
|
||||
self.assertEqual(reply.Title(), 'My Title')
|
||||
self.assertEqual(reply.EditableBody(), 'My Text')
|
||||
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.assertEquals(len(self.view.comments), 3)
|
||||
self.assertEqual(len(self.view.comments), 3)
|
||||
|
||||
|
||||
class ModerationBulkActionsViewTest(PloneTestCase):
|
||||
@ -157,7 +157,7 @@ class ModerationBulkActionsViewTest(PloneTestCase):
|
||||
self.request.set('form.select.BulkAction', '-1')
|
||||
self.request.set('paths', ['/'.join(self.comment1.getPhysicalPath())])
|
||||
view = BulkActionsView(self.context, self.request)
|
||||
self.failIf(view())
|
||||
self.assertFalse(view())
|
||||
|
||||
def test_retract(self):
|
||||
self.request = self.app.REQUEST
|
||||
@ -186,7 +186,7 @@ class ModerationBulkActionsViewTest(PloneTestCase):
|
||||
published_comments += 1
|
||||
|
||||
# Make sure the comment has been published
|
||||
self.assertEquals(published_comments, 1)
|
||||
self.assertEqual(published_comments, 1)
|
||||
|
||||
def test_mark_as_spam(self):
|
||||
self.request = self.app.REQUEST
|
||||
@ -203,7 +203,7 @@ class ModerationBulkActionsViewTest(PloneTestCase):
|
||||
self.context = self.app
|
||||
|
||||
# Initially we have three comments
|
||||
self.assertEquals(self.conversation.total_comments, 3)
|
||||
self.assertEqual(self.conversation.total_comments, 3)
|
||||
|
||||
# Delete two comments with bulk actions
|
||||
self.request.set('form.select.BulkAction', 'delete')
|
||||
@ -213,10 +213,10 @@ class ModerationBulkActionsViewTest(PloneTestCase):
|
||||
view()
|
||||
|
||||
# Make sure that the two comments have been deleted
|
||||
self.assertEquals(self.conversation.total_comments, 1)
|
||||
self.assertEqual(self.conversation.total_comments, 1)
|
||||
comment = self.conversation.getComments().next()
|
||||
self.failUnless(comment)
|
||||
self.assertEquals(comment, self.comment2)
|
||||
self.assertTrue(comment)
|
||||
self.assertEqual(comment, self.comment2)
|
||||
|
||||
def test_suite():
|
||||
return unittest.defaultTestLoader.loadTestsFromName(__name__)
|
||||
|
@ -68,11 +68,11 @@ class TestUserNotificationUnit(PloneTestCase):
|
||||
comment = createObject('plone.Comment')
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
self.assertEquals(len(self.mailhost.messages), 1)
|
||||
self.failUnless(self.mailhost.messages[0])
|
||||
self.assertEqual(len(self.mailhost.messages), 1)
|
||||
self.assertTrue(self.mailhost.messages[0])
|
||||
msg = str(self.mailhost.messages[0])
|
||||
self.failUnless('To: john@plone.test' in msg)
|
||||
self.failUnless('From: portal@plone.test' in msg)
|
||||
self.assertTrue('To: john@plone.test' in msg)
|
||||
self.assertTrue('From: portal@plone.test' in msg)
|
||||
|
||||
# We expect the headers to be properly header encoded (7-bit):
|
||||
#>>> 'Subject: =?utf-8?q?Some_t=C3=A4st_subject=2E?=' in msg
|
||||
@ -100,7 +100,7 @@ class TestUserNotificationUnit(PloneTestCase):
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
|
||||
self.assertEquals(len(self.mailhost.messages), 0)
|
||||
self.assertEqual(len(self.mailhost.messages), 0)
|
||||
|
||||
def test_do_not_notify_user_when_email_address_is_given(self):
|
||||
comment = createObject('plone.Comment')
|
||||
@ -112,7 +112,7 @@ class TestUserNotificationUnit(PloneTestCase):
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
|
||||
self.assertEquals(len(self.mailhost.messages), 0)
|
||||
self.assertEqual(len(self.mailhost.messages), 0)
|
||||
|
||||
def test_do_not_notify_user_when_no_sender_is_available(self):
|
||||
# Set sender mail address to none and make sure no email is send to
|
||||
@ -129,7 +129,7 @@ class TestUserNotificationUnit(PloneTestCase):
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
|
||||
self.assertEquals(len(self.mailhost.messages), 0)
|
||||
self.assertEqual(len(self.mailhost.messages), 0)
|
||||
|
||||
def test_notify_only_once(self):
|
||||
# When a user has added two comments in a conversation and has
|
||||
@ -151,19 +151,19 @@ class TestUserNotificationUnit(PloneTestCase):
|
||||
self.conversation.addComment(comment)
|
||||
# Note that we might want to get rid of this message, as the
|
||||
# new comment is added by the same user.
|
||||
self.assertEquals(len(self.mailhost.messages), 1)
|
||||
self.assertEqual(len(self.mailhost.messages), 1)
|
||||
self.mailhost.reset()
|
||||
self.assertEquals(len(self.mailhost.messages), 0)
|
||||
self.assertEqual(len(self.mailhost.messages), 0)
|
||||
|
||||
# Comment 3
|
||||
comment = createObject('plone.Comment')
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
self.assertEquals(len(self.mailhost.messages), 1)
|
||||
self.failUnless(self.mailhost.messages[0])
|
||||
self.assertEqual(len(self.mailhost.messages), 1)
|
||||
self.assertTrue(self.mailhost.messages[0])
|
||||
msg = str(self.mailhost.messages[0])
|
||||
self.failUnless('To: john@plone.test' in msg)
|
||||
self.failUnless('From: portal@plone.test' in msg)
|
||||
self.assertTrue('To: john@plone.test' in msg)
|
||||
self.assertTrue('From: portal@plone.test' in msg)
|
||||
|
||||
|
||||
class TestModeratorNotificationUnit(PloneTestCase):
|
||||
@ -215,12 +215,12 @@ class TestModeratorNotificationUnit(PloneTestCase):
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
|
||||
self.assertEquals(len(self.mailhost.messages), 1)
|
||||
self.failUnless(self.mailhost.messages[0])
|
||||
self.assertEqual(len(self.mailhost.messages), 1)
|
||||
self.assertTrue(self.mailhost.messages[0])
|
||||
msg = self.mailhost.messages[0]
|
||||
|
||||
self.failUnless('To: portal@plone.test' in msg)
|
||||
self.failUnless('From: portal@plone.test' in msg)
|
||||
self.assertTrue('To: portal@plone.test' in msg)
|
||||
self.assertTrue('From: portal@plone.test' in msg)
|
||||
|
||||
#We expect the headers to be properly header encoded (7-bit):
|
||||
#>>> 'Subject: =?utf-8?q?Some_t=C3=A4st_subject=2E?=' in msg
|
||||
@ -243,12 +243,12 @@ class TestModeratorNotificationUnit(PloneTestCase):
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
|
||||
self.assertEquals(len(self.mailhost.messages), 1)
|
||||
self.assertEqual(len(self.mailhost.messages), 1)
|
||||
msg = self.mailhost.messages[0]
|
||||
if not isinstance(msg, str):
|
||||
self.failUnless('test@example.com' in msg.mto)
|
||||
self.assertTrue('test@example.com' in msg.mto)
|
||||
else:
|
||||
self.failUnless('To: test@example.com' in msg)
|
||||
self.assertTrue('To: test@example.com' in msg)
|
||||
|
||||
def test_do_not_notify_moderator_when_no_sender_is_available(self):
|
||||
# Set sender mail address to nonw and make sure no email is send to the
|
||||
@ -258,7 +258,7 @@ class TestModeratorNotificationUnit(PloneTestCase):
|
||||
comment = createObject('plone.Comment')
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
self.assertEquals(len(self.mailhost.messages), 0)
|
||||
self.assertEqual(len(self.mailhost.messages), 0)
|
||||
|
||||
def test_do_not_notify_moderator_when_notification_is_disabled(self):
|
||||
# Disable moderator notification setting and make sure no email is send
|
||||
@ -270,7 +270,7 @@ class TestModeratorNotificationUnit(PloneTestCase):
|
||||
comment = createObject('plone.Comment')
|
||||
comment.text = 'Comment text'
|
||||
self.conversation.addComment(comment)
|
||||
self.assertEquals(len(self.mailhost.messages), 0)
|
||||
self.assertEqual(len(self.mailhost.messages), 0)
|
||||
|
||||
def test_suite():
|
||||
return unittest.defaultTestLoader.loadTestsFromName(__name__)
|
||||
|
@ -33,9 +33,9 @@ class ToolTest(PloneTestCase):
|
||||
# Check that the comment got indexed in the tool:
|
||||
tool = queryUtility(ICommentingTool)
|
||||
comment = list(tool.searchResults())
|
||||
self.assert_(len(comment) == 1, "There is only one comment, but we got"
|
||||
self.assertTrue(len(comment) == 1, "There is only one comment, but we got"
|
||||
" %s results in the search" % len(comment))
|
||||
self.assertEquals(comment[0].Title, 'Jim on Document 1')
|
||||
self.assertEqual(comment[0].Title, 'Jim on Document 1')
|
||||
|
||||
def test_unindexing(self):
|
||||
pass
|
||||
|
@ -35,15 +35,15 @@ class WorkflowSetupTest(PloneTestCase):
|
||||
def test_workflows_installed(self):
|
||||
"""Make sure both comment workflows have been installed properly.
|
||||
"""
|
||||
self.failUnless('one_state_workflow' in
|
||||
self.assertTrue('one_state_workflow' in
|
||||
self.portal.portal_workflow.objectIds())
|
||||
self.failUnless('comment_review_workflow' in
|
||||
self.assertTrue('comment_review_workflow' in
|
||||
self.portal.portal_workflow.objectIds())
|
||||
|
||||
def test_default_workflow(self):
|
||||
"""Make sure one_state_workflow is the default workflow.
|
||||
"""
|
||||
self.assertEquals(('one_state_workflow',),
|
||||
self.assertEqual(('one_state_workflow',),
|
||||
self.portal.portal_workflow.getChainForPortalType(
|
||||
'Discussion Item'))
|
||||
|
||||
@ -51,10 +51,10 @@ class WorkflowSetupTest(PloneTestCase):
|
||||
#'Review comments' in self.portal.permissionsOfRole('Admin')
|
||||
|
||||
self.setRoles(('Reviewer',))
|
||||
self.failUnless(self.portal.portal_membership.checkPermission(
|
||||
self.assertTrue(self.portal.portal_membership.checkPermission(
|
||||
'Review comments', self.folder), self.folder)
|
||||
self.setRoles(('Member',))
|
||||
self.failIf(self.portal.portal_membership.checkPermission(
|
||||
self.assertFalse(self.portal.portal_membership.checkPermission(
|
||||
'Review comments', self.folder), self.folder)
|
||||
|
||||
def test_reply_to_item_permission(self):
|
||||
@ -79,16 +79,16 @@ class PermissionsSetupTest(PloneTestCase):
|
||||
"""
|
||||
ReplyToItemPerm = "Reply to item"
|
||||
# should be allowed as Member
|
||||
self.failUnless(self.checkPermission(ReplyToItemPerm, self.portal))
|
||||
self.assertTrue(self.checkPermission(ReplyToItemPerm, self.portal))
|
||||
# should be allowed as Authenticated
|
||||
self.setRoles(['Authenticated'])
|
||||
self.failUnless(self.checkPermission(ReplyToItemPerm, self.portal))
|
||||
self.assertTrue(self.checkPermission(ReplyToItemPerm, self.portal))
|
||||
# should be allowed as Manager
|
||||
self.setRoles(['Manager'])
|
||||
self.failUnless(self.checkPermission(ReplyToItemPerm, self.portal))
|
||||
self.assertTrue(self.checkPermission(ReplyToItemPerm, self.portal))
|
||||
# should not be allowed as anonymous
|
||||
self.logout()
|
||||
self.failIf(self.checkPermission(ReplyToItemPerm, self.portal))
|
||||
self.assertFalse(self.checkPermission(ReplyToItemPerm, self.portal))
|
||||
|
||||
|
||||
class CommentOneStateWorkflowTest(PloneTestCase):
|
||||
@ -133,22 +133,22 @@ class CommentOneStateWorkflowTest(PloneTestCase):
|
||||
"""
|
||||
# Owner is allowed
|
||||
#self.login(default_user)
|
||||
#self.failUnless(checkPerm(View, self.doc))
|
||||
#self.assertTrue(checkPerm(View, self.doc))
|
||||
# Member is allowed
|
||||
self.login('member')
|
||||
self.failUnless(checkPerm(View, self.comment))
|
||||
self.assertTrue(checkPerm(View, self.comment))
|
||||
# Reviewer is allowed
|
||||
self.login('reviewer')
|
||||
self.failUnless(checkPerm(View, self.comment))
|
||||
self.assertTrue(checkPerm(View, self.comment))
|
||||
# Anonymous is allowed
|
||||
self.logout()
|
||||
self.failUnless(checkPerm(View, self.comment))
|
||||
self.assertTrue(checkPerm(View, self.comment))
|
||||
# Editor is allowed
|
||||
self.login('editor')
|
||||
self.failUnless(checkPerm(View, self.comment))
|
||||
self.assertTrue(checkPerm(View, self.comment))
|
||||
# Reader is allowed
|
||||
self.login('reader')
|
||||
self.failUnless(checkPerm(View, self.comment))
|
||||
self.assertTrue(checkPerm(View, self.comment))
|
||||
|
||||
|
||||
class CommentReviewWorkflowTest(PloneTestCase):
|
||||
@ -193,7 +193,7 @@ class CommentReviewWorkflowTest(PloneTestCase):
|
||||
self.portal.REQUEST.form['comment_id'] = self.comment_id
|
||||
view = self.comment.restrictedTraverse('@@moderate-delete-comment')
|
||||
view()
|
||||
self.failIf(self.comment_id in self.conversation.objectIds())
|
||||
self.assertFalse(self.comment_id in self.conversation.objectIds())
|
||||
|
||||
def test_delete_as_anonymous(self):
|
||||
# Make sure that anonymous users can not delete comments
|
||||
@ -202,7 +202,7 @@ class CommentReviewWorkflowTest(PloneTestCase):
|
||||
self.assertRaises(Unauthorized,
|
||||
self.comment.restrictedTraverse,
|
||||
'@@moderate-delete-comment')
|
||||
self.failUnless(self.comment_id in self.conversation.objectIds())
|
||||
self.assertTrue(self.comment_id in self.conversation.objectIds())
|
||||
|
||||
def test_delete_as_user(self):
|
||||
# Make sure that members can not delete comments
|
||||
@ -212,29 +212,29 @@ class CommentReviewWorkflowTest(PloneTestCase):
|
||||
self.assertRaises(Unauthorized,
|
||||
self.comment.restrictedTraverse,
|
||||
'@@moderate-delete-comment')
|
||||
self.failUnless(self.comment_id in self.conversation.objectIds())
|
||||
self.assertTrue(self.comment_id in self.conversation.objectIds())
|
||||
|
||||
def test_publish(self):
|
||||
self.portal.REQUEST.form['comment_id'] = self.comment_id
|
||||
self.portal.REQUEST.form['workflow_action'] = 'publish'
|
||||
self.assertEquals('pending',
|
||||
self.assertEqual('pending',
|
||||
self.portal.portal_workflow.getInfoFor(
|
||||
self.comment, 'review_state'))
|
||||
view = self.comment.restrictedTraverse('@@moderate-publish-comment')
|
||||
view()
|
||||
self.assertEquals('published', self.portal.portal_workflow.\
|
||||
self.assertEqual('published', self.portal.portal_workflow.\
|
||||
getInfoFor(self.comment, 'review_state'))
|
||||
|
||||
def test_publish_as_anonymous(self):
|
||||
self.logout()
|
||||
self.portal.REQUEST.form['comment_id'] = self.comment_id
|
||||
self.portal.REQUEST.form['workflow_action'] = 'publish'
|
||||
self.assertEquals('pending', self.portal.portal_workflow.\
|
||||
self.assertEqual('pending', self.portal.portal_workflow.\
|
||||
getInfoFor(self.comment, 'review_state'))
|
||||
self.assertRaises(Unauthorized,
|
||||
self.comment.restrictedTraverse,
|
||||
'@@moderate-publish-comment')
|
||||
self.assertEquals('pending', self.portal.portal_workflow.\
|
||||
self.assertEqual('pending', self.portal.portal_workflow.\
|
||||
getInfoFor(self.comment, 'review_state'))
|
||||
|
||||
def test_suite():
|
||||
|
Loading…
Reference in New Issue
Block a user