Description index added.

svn path=/plone.app.discussion/trunk/; revision=27251
This commit is contained in:
Timo Stollenwerk 2009-05-31 19:07:35 +00:00
parent 1340aefe4e
commit d3ba4f58db
3 changed files with 33 additions and 1 deletions

View File

@ -12,6 +12,11 @@ from plone.app.discussion.interfaces import IComment
def comment_title(object):
return object.title
@indexer(IComment)
def comment_description(object):
# Todo: this is wrong!!!
return object.title
@indexer(IComment)
def comment_searchable_text(object):
return object.title, object.text

View File

@ -59,6 +59,7 @@
<!-- adapters for indexes -->
<adapter name="Title" factory=".catalog.comment_title" />
<adapter name="Description" factory=".catalog.comment_description" />
<adapter name="SearchableText" factory=".catalog.comment_searchable_text" />
</configure>

View File

@ -6,11 +6,13 @@ from Products.PloneTestCase.ptc import PloneTestCase
from plone.app.discussion.tests.layer import DiscussionLayer
from plone.app.discussion.interfaces import IConversation
from plone.indexer import indexer
from plone.indexer.delegate import DelegatingIndexerFactory
from zope.component import provideAdapter
from plone.app.discussion.catalog import comment_title, comment_searchable_text
from plone.app.discussion.catalog import comment_title, comment_description, comment_searchable_text
class IndexersTest(PloneTestCase):
@ -40,7 +42,30 @@ class IndexersTest(PloneTestCase):
comment.text = 'Comment text'
new_id = conversation.addComment(comment)
self.assertEquals(comment_title(comment)(), 'Comment 1')
self.assert_(isinstance(comment_title, DelegatingIndexerFactory))
def test_comment_description(self):
# Create a conversation. In this case we doesn't assign it to an
# object, as we just want to check the Conversation object API.
conversation = IConversation(self.portal.doc1)
# Pretend that we have traversed to the comment by aq wrapping it.
conversation = conversation.__of__(self.portal.doc1)
# Add a comment. Note: in real life, we always create comments via the factory
# to allow different factories to be swapped in
comment = createObject('plone.Comment')
comment.title = 'Comment 1'
comment.text = 'Comment text'
new_id = conversation.addComment(comment)
self.assertEquals(comment_description(comment)(), 'Comment 1')
self.assert_(isinstance(comment_description, DelegatingIndexerFactory))
def test_dates(self):
# created, modified, effective etc
@ -64,6 +89,7 @@ class IndexersTest(PloneTestCase):
new_id = conversation.addComment(comment)
self.assertEquals(comment_searchable_text(comment)(), ('Comment 1', 'Comment text'))
self.assert_(isinstance(comment_searchable_text, DelegatingIndexerFactory))
def test_creator(self):
pass