plone.app.discussion/plone/app/discussion/tests/test_indexers.py

113 lines
3.7 KiB
Python
Raw Normal View History

import unittest
from zope.component import createObject
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_description, comment_searchable_text
class IndexersTest(PloneTestCase):
layer = DiscussionLayer
def afterSetUp(self):
# First we need to create some content.
self.loginAsPortalOwner()
typetool = self.portal.portal_types
typetool.constructContent('Document', self.portal, 'doc1')
provideAdapter(comment_title, name='title')
def test_comment_title(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_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
pass
def test_searchable_text(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_searchable_text(comment)(), ('Comment 1', 'Comment text'))
self.assert_(isinstance(comment_searchable_text, DelegatingIndexerFactory))
def test_creator(self):
pass
def test_title(self):
pass
def test_in_reply_to(self):
pass
def test_path(self):
pass
def test_review_state(self):
pass
def test_object_provides(self):
pass
def test_suite():
return unittest.defaultTestLoader.loadTestsFromName(__name__)