Conversation indexers won't work on old discussion items. Fix tests.
svn path=/plone.app.discussion/trunk/; revision=30658
This commit is contained in:
		
							parent
							
								
									d8d57d3b7a
								
							
						
					
					
						commit
						1ea36d7d82
					
				| @ -22,18 +22,28 @@ MAX_DESCRIPTION=25 | |||||||
| 
 | 
 | ||||||
| @indexer(IContentish, IZCatalog) | @indexer(IContentish, IZCatalog) | ||||||
| def total_comments(object): | def total_comments(object): | ||||||
|     conversation = IConversation(object) |     # Total number of comments on a conversation | ||||||
|     return conversation.total_comments |     # Indexers won't work on old discussion items | ||||||
|  |     if object.meta_type != 'Discussion Item': | ||||||
|  | 
 | ||||||
|  |         conversation = IConversation(object) | ||||||
|  |         return conversation.total_comments | ||||||
| 
 | 
 | ||||||
| @indexer(IContentish, IZCatalog) | @indexer(IContentish, IZCatalog) | ||||||
| def last_comment_date(object): | def last_comment_date(object): | ||||||
|     conversation = IConversation(object) |     # Date of the latest comment on a conversation | ||||||
|     return conversation.last_comment_date |     # Indexers won't work on old discussion items | ||||||
|  |     if object.meta_type != 'Discussion Item': | ||||||
|  |         conversation = IConversation(object) | ||||||
|  |         return conversation.last_comment_date | ||||||
| 
 | 
 | ||||||
| @indexer(IContentish, IZCatalog) | @indexer(IContentish, IZCatalog) | ||||||
| def commentators(object): | def commentators(object): | ||||||
|     conversation = IConversation(object) |     # List of commentators on a conversation | ||||||
|     return tuple(conversation.commentators.keys()) |     # Indexers won't work on old discussion items | ||||||
|  |     if object.meta_type != 'Discussion Item': | ||||||
|  |         conversation = IConversation(object) | ||||||
|  |         return tuple(conversation.commentators.keys()) | ||||||
| 
 | 
 | ||||||
| # Comment Indexers | # Comment Indexers | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -57,22 +57,19 @@ class ConversationCatalogTest(PloneTestCase): | |||||||
|         new_comment1_id = conversation.addComment(comment1) |         new_comment1_id = conversation.addComment(comment1) | ||||||
|         self.comment_id = new_comment1_id |         self.comment_id = new_comment1_id | ||||||
| 
 | 
 | ||||||
|         comment1 = self.portal.doc1.restrictedTraverse('++conversation++default/%s' % new_comment1_id) |  | ||||||
|         comment1.reindexObject() |  | ||||||
| 
 |  | ||||||
|         brains = self.catalog.searchResults( |         brains = self.catalog.searchResults( | ||||||
|                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, |                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, | ||||||
|                      portal_type = "Document" |                      portal_type = "Document" | ||||||
|                      ) |                      ) | ||||||
|         self.brains = brains |  | ||||||
|         self.conversation = conversation |         self.conversation = conversation | ||||||
|         self.conversation_brain = brains[0] |         self.brains = brains | ||||||
|  |         self.doc1_brain = brains[0] | ||||||
|         self.comment1 = comment1 |         self.comment1 = comment1 | ||||||
|         self.new_comment1_id = new_comment1_id |         self.new_comment1_id = new_comment1_id | ||||||
| 
 | 
 | ||||||
|     def test_total_comments(self): |     def test_total_comments(self): | ||||||
|         self.failUnless(self.conversation_brain.has_key('total_comments')) |         self.failUnless(self.doc1_brain.has_key('total_comments')) | ||||||
|         self.assertEquals(self.conversation_brain.total_comments, 1) |         self.assertEquals(self.doc1_brain.total_comments, 1) | ||||||
| 
 | 
 | ||||||
|         comment2 = createObject('plone.Comment') |         comment2 = createObject('plone.Comment') | ||||||
|         comment2.title = 'Comment 2' |         comment2.title = 'Comment 2' | ||||||
| @ -86,12 +83,12 @@ class ConversationCatalogTest(PloneTestCase): | |||||||
|                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, |                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, | ||||||
|                      portal_type = "Document" |                      portal_type = "Document" | ||||||
|                      ) |                      ) | ||||||
|         conversation_brain = brains[0] |         doc1_brain = brains[0] | ||||||
|         self.assertEquals(conversation_brain.total_comments, 2) |         self.assertEquals(doc1_brain.total_comments, 2) | ||||||
| 
 | 
 | ||||||
|     def test_last_comment_date(self): |     def test_last_comment_date(self): | ||||||
|         self.failUnless(self.conversation_brain.has_key('last_comment_date')) |         self.failUnless(self.doc1_brain.has_key('last_comment_date')) | ||||||
|         self.assertEquals(self.conversation_brain.last_comment_date, datetime(2006, 9, 17, 14, 18, 12)) |         self.assertEquals(self.doc1_brain.last_comment_date, datetime(2006, 9, 17, 14, 18, 12)) | ||||||
| 
 | 
 | ||||||
|         # Add another comment and check if last comment date is updated. |         # Add another comment and check if last comment date is updated. | ||||||
|         comment2 = createObject('plone.Comment') |         comment2 = createObject('plone.Comment') | ||||||
| @ -108,8 +105,8 @@ class ConversationCatalogTest(PloneTestCase): | |||||||
|                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, |                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, | ||||||
|                      portal_type = "Document" |                      portal_type = "Document" | ||||||
|                      ) |                      ) | ||||||
|         conversation_brain = brains[0] |         doc1_brain = brains[0] | ||||||
|         self.assertEquals(conversation_brain.last_comment_date, datetime(2009, 9, 17, 14, 18, 12)) |         self.assertEquals(doc1_brain.last_comment_date, datetime(2009, 9, 17, 14, 18, 12)) | ||||||
| 
 | 
 | ||||||
|         # Remove the comment again |         # Remove the comment again | ||||||
|         del self.conversation[new_comment2_id] |         del self.conversation[new_comment2_id] | ||||||
| @ -118,9 +115,9 @@ class ConversationCatalogTest(PloneTestCase): | |||||||
|                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, |                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, | ||||||
|                      portal_type = "Document" |                      portal_type = "Document" | ||||||
|                      ) |                      ) | ||||||
|         conversation_brain = brains[0] |         doc1_brain = brains[0] | ||||||
| 
 | 
 | ||||||
|         self.assertEquals(conversation_brain.last_comment_date, datetime(2006, 9, 17, 14, 18, 12)) |         self.assertEquals(doc1_brain.last_comment_date, datetime(2006, 9, 17, 14, 18, 12)) | ||||||
| 
 | 
 | ||||||
|         # remove all comments |         # remove all comments | ||||||
|         del self.conversation[self.new_comment1_id] |         del self.conversation[self.new_comment1_id] | ||||||
| @ -128,12 +125,12 @@ class ConversationCatalogTest(PloneTestCase): | |||||||
|                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, |                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, | ||||||
|                      portal_type = "Document" |                      portal_type = "Document" | ||||||
|                      ) |                      ) | ||||||
|         conversation_brain = brains[0] |         doc1_brain = brains[0] | ||||||
|         self.assertEquals(conversation_brain.last_comment_date, None) |         self.assertEquals(doc1_brain.last_comment_date, None) | ||||||
| 
 | 
 | ||||||
|     def test_commentators(self): |     def test_commentators(self): | ||||||
|         self.failUnless(self.conversation_brain.has_key('commentators')) |         self.failUnless(self.doc1_brain.has_key('commentators')) | ||||||
|         self.assertEquals(self.conversation_brain.commentators, ('Jim',)) |         self.assertEquals(self.doc1_brain.commentators, ('Jim',)) | ||||||
| 
 | 
 | ||||||
|         # add another comment with another author |         # add another comment with another author | ||||||
|         comment2 = createObject('plone.Comment') |         comment2 = createObject('plone.Comment') | ||||||
| @ -150,9 +147,9 @@ class ConversationCatalogTest(PloneTestCase): | |||||||
|                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, |                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, | ||||||
|                      portal_type = "Document" |                      portal_type = "Document" | ||||||
|                      ) |                      ) | ||||||
|         conversation_brain = brains[0] |         doc1_brain = brains[0] | ||||||
| 
 | 
 | ||||||
|         self.assertEquals(conversation_brain.commentators, ('Emma', 'Jim')) |         self.assertEquals(doc1_brain.commentators, ('Emma', 'Jim')) | ||||||
| 
 | 
 | ||||||
|         # remove one comments |         # remove one comments | ||||||
|         del self.conversation[new_comment2_id] |         del self.conversation[new_comment2_id] | ||||||
| @ -160,8 +157,8 @@ class ConversationCatalogTest(PloneTestCase): | |||||||
|                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, |                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, | ||||||
|                      portal_type = "Document" |                      portal_type = "Document" | ||||||
|                      ) |                      ) | ||||||
|         conversation_brain = brains[0] |         doc1_brain = brains[0] | ||||||
|         self.assertEquals(conversation_brain.commentators, ('Jim',)) |         self.assertEquals(doc1_brain.commentators, ('Jim',)) | ||||||
| 
 | 
 | ||||||
|         # remove all comments |         # remove all comments | ||||||
|         del self.conversation[self.new_comment1_id] |         del self.conversation[self.new_comment1_id] | ||||||
| @ -169,8 +166,8 @@ class ConversationCatalogTest(PloneTestCase): | |||||||
|                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, |                      path = {'query' : '/'.join(self.portal.doc1.getPhysicalPath()) }, | ||||||
|                      portal_type = "Document" |                      portal_type = "Document" | ||||||
|                      ) |                      ) | ||||||
|         conversation_brain = brains[0] |         doc1_brain = brains[0] | ||||||
|         self.assertEquals(conversation_brain.commentators, ()) |         self.assertEquals(doc1_brain.commentators, ()) | ||||||
| 
 | 
 | ||||||
|     def test_conversation_indexes_not_in_comments(self): |     def test_conversation_indexes_not_in_comments(self): | ||||||
|         brains = self.catalog.searchResults( |         brains = self.catalog.searchResults( | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user