use plone.base and remove dependencies to CMFPlone
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
from .. import interfaces
|
||||
from ..browser.comment import EditCommentForm
|
||||
from ..browser.comments import CommentForm
|
||||
from ..browser.comments import CommentsViewlet
|
||||
from ..interfaces import IConversation
|
||||
from ..interfaces import IDiscussionSettings
|
||||
from ..testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
from AccessControl import Unauthorized
|
||||
from datetime import datetime
|
||||
from OFS.Image import Image
|
||||
from plone.app.discussion import interfaces
|
||||
from plone.app.discussion.browser.comment import EditCommentForm
|
||||
from plone.app.discussion.browser.comments import CommentForm
|
||||
from plone.app.discussion.browser.comments import CommentsViewlet
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.interfaces import IDiscussionSettings
|
||||
from plone.app.discussion.testing import ( # noqa
|
||||
PLONE_APP_DISCUSSION_INTEGRATION_TESTING,
|
||||
)
|
||||
from plone.app.testing import login
|
||||
from plone.app.testing import logout
|
||||
from plone.app.testing import setRoles
|
||||
@@ -17,7 +15,6 @@ from plone.app.testing import TEST_USER_ID
|
||||
from plone.app.testing import TEST_USER_NAME
|
||||
from plone.registry.interfaces import IRegistry
|
||||
from Products.CMFCore.utils import getToolByName
|
||||
from Products.CMFPlone.tests import dummy
|
||||
from z3c.form.interfaces import IFormLayer
|
||||
from zope import interface
|
||||
from zope.annotation.interfaces import IAttributeAnnotatable
|
||||
@@ -29,9 +26,43 @@ from zope.interface import alsoProvides
|
||||
from zope.interface import Interface
|
||||
from zope.publisher.browser import TestRequest
|
||||
from zope.publisher.interfaces.browser import IBrowserRequest
|
||||
from ZPublisher.HTTPRequest import FileUpload
|
||||
|
||||
import time
|
||||
import unittest
|
||||
import io
|
||||
|
||||
|
||||
TEXT = b"file data"
|
||||
|
||||
|
||||
class DummyFile(FileUpload):
|
||||
"""Dummy upload object
|
||||
Used to fake uploaded files.
|
||||
"""
|
||||
|
||||
__allow_access_to_unprotected_subobjects__ = 1
|
||||
filename = "dummy.txt"
|
||||
data = TEXT
|
||||
headers = {}
|
||||
|
||||
def __init__(self, filename=None, data=None, headers=None):
|
||||
if filename is not None:
|
||||
self.filename = filename
|
||||
if data is not None:
|
||||
self.data = data
|
||||
if headers is not None:
|
||||
self.headers = headers
|
||||
self.file = io.BytesIO(self.data)
|
||||
|
||||
def seek(self, *args):
|
||||
pass
|
||||
|
||||
def tell(self, *args):
|
||||
return 1
|
||||
|
||||
def read(self, *args):
|
||||
return self.data
|
||||
|
||||
|
||||
class TestCommentForm(unittest.TestCase):
|
||||
@@ -631,7 +662,7 @@ class TestCommentsViewlet(unittest.TestCase):
|
||||
self.memberdata._setPortrait(
|
||||
Image(
|
||||
id="jim",
|
||||
file=dummy.File(),
|
||||
file=DummyFile(),
|
||||
title="",
|
||||
),
|
||||
"jim",
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
from ..interfaces import IComment
|
||||
from ..interfaces import IConversation
|
||||
from ..interfaces import IDiscussionLayer
|
||||
from ..interfaces import IDiscussionSettings
|
||||
from ..interfaces import IReplies
|
||||
from ..testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
from Acquisition import aq_base
|
||||
from Acquisition import aq_parent
|
||||
from datetime import datetime
|
||||
from datetime import timedelta
|
||||
from plone.app.discussion import interfaces
|
||||
from plone.app.discussion.interfaces import IComment
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.interfaces import IDiscussionSettings
|
||||
from plone.app.discussion.interfaces import IReplies
|
||||
from plone.app.discussion.testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
from plone.app.testing import setRoles
|
||||
from plone.app.testing import TEST_USER_ID
|
||||
from plone.app.vocabularies.types import BAD_TYPES
|
||||
@@ -29,7 +29,7 @@ class ConversationTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.portal = self.layer["portal"]
|
||||
setRoles(self.portal, TEST_USER_ID, ["Manager"])
|
||||
interface.alsoProvides(self.portal.REQUEST, interfaces.IDiscussionLayer)
|
||||
interface.alsoProvides(self.portal.REQUEST, IDiscussionLayer)
|
||||
|
||||
self.typetool = self.portal.portal_types
|
||||
self.portal_discussion = getToolByName(
|
||||
@@ -675,7 +675,7 @@ class ConversationEnabledForDexterityTypesTest(unittest.TestCase):
|
||||
setRoles(self.portal, TEST_USER_ID, ["Manager"])
|
||||
interface.alsoProvides(
|
||||
self.portal.REQUEST,
|
||||
interfaces.IDiscussionLayer,
|
||||
IDiscussionLayer,
|
||||
)
|
||||
|
||||
interface.alsoProvides(
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.interfaces import IReplies
|
||||
from plone.app.discussion.testing import ( # noqa
|
||||
PLONE_APP_DISCUSSION_INTEGRATION_TESTING,
|
||||
)
|
||||
from ..interfaces import IConversation
|
||||
from ..interfaces import IReplies
|
||||
from ..testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
from plone.app.testing import setRoles
|
||||
from plone.app.testing import TEST_USER_ID
|
||||
from Zope2.App import zcml
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
These test are only triggered when Plone 4 (and plone.testing) is installed.
|
||||
"""
|
||||
from plone.app.discussion.testing import PLONE_APP_DISCUSSION_FUNCTIONAL_TESTING # noqa
|
||||
from ..testing import PLONE_APP_DISCUSSION_FUNCTIONAL_TESTING # noqa
|
||||
from plone.testing import layered
|
||||
|
||||
import doctest
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
"""Test for the plone.app.discussion indexers
|
||||
"""
|
||||
from .. import catalog
|
||||
from ..interfaces import IConversation
|
||||
from ..testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING # noqa
|
||||
from datetime import datetime
|
||||
from DateTime import DateTime
|
||||
from plone.app.discussion import catalog
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.testing import ( # noqa
|
||||
PLONE_APP_DISCUSSION_INTEGRATION_TESTING,
|
||||
)
|
||||
from plone.app.testing import setRoles
|
||||
from plone.app.testing import TEST_USER_ID
|
||||
from plone.indexer.delegate import DelegatingIndexerFactory
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
from plone.app.discussion.browser.moderation import BulkActionsView
|
||||
from plone.app.discussion.browser.moderation import CommentTransition
|
||||
from plone.app.discussion.browser.moderation import DeleteComment
|
||||
from plone.app.discussion.browser.moderation import View
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.interfaces import IDiscussionSettings
|
||||
from plone.app.discussion.testing import ( # noqa
|
||||
PLONE_APP_DISCUSSION_INTEGRATION_TESTING,
|
||||
)
|
||||
from ..browser.moderation import BulkActionsView
|
||||
from ..browser.moderation import CommentTransition
|
||||
from ..browser.moderation import DeleteComment
|
||||
from ..browser.moderation import View
|
||||
from ..interfaces import IConversation
|
||||
from ..interfaces import IDiscussionSettings
|
||||
from ..testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
from plone.app.testing import setRoles
|
||||
from plone.app.testing import TEST_USER_ID
|
||||
from plone.registry.interfaces import IRegistry
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
from plone.app.discussion.browser.moderation import BulkActionsView
|
||||
from plone.app.discussion.browser.moderation import CommentTransition
|
||||
from plone.app.discussion.browser.moderation import DeleteComment
|
||||
from plone.app.discussion.browser.moderation import View
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.interfaces import IDiscussionSettings
|
||||
from plone.app.discussion.testing import ( # noqa
|
||||
PLONE_APP_DISCUSSION_INTEGRATION_TESTING,
|
||||
)
|
||||
from ..browser.moderation import BulkActionsView
|
||||
from ..browser.moderation import CommentTransition
|
||||
from ..browser.moderation import DeleteComment
|
||||
from ..browser.moderation import View
|
||||
from ..interfaces import IConversation
|
||||
from ..interfaces import IDiscussionSettings
|
||||
from ..testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
from plone.app.testing import setRoles
|
||||
from plone.app.testing import TEST_USER_ID
|
||||
from plone.registry.interfaces import IRegistry
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
from ..interfaces import IConversation
|
||||
from ..testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
from Acquisition import aq_base
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.testing import ( # noqa
|
||||
PLONE_APP_DISCUSSION_INTEGRATION_TESTING,
|
||||
)
|
||||
from persistent.list import PersistentList
|
||||
from plone.app.testing import setRoles
|
||||
from plone.app.testing import TEST_USER_ID
|
||||
from plone.base.interfaces import IMailSchema
|
||||
from plone.registry.interfaces import IRegistry
|
||||
from Products.CMFPlone.interfaces import IMailSchema
|
||||
from Products.CMFPlone.tests.utils import MockMailHost
|
||||
from Products.MailHost.interfaces import IMailHost
|
||||
from Products.MailHost.MailHost import _mungeHeaders
|
||||
from Products.MailHost.MailHost import MailBase
|
||||
from zope.component import createObject
|
||||
from zope.component import getSiteManager
|
||||
from zope.component import getUtility
|
||||
@@ -17,6 +17,42 @@ from zope.component import queryUtility
|
||||
import unittest
|
||||
|
||||
|
||||
class MockMailHost(MailBase):
|
||||
"""A MailHost that collects messages instead of sending them."""
|
||||
|
||||
def __init__(self, id):
|
||||
self.reset()
|
||||
|
||||
def reset(self):
|
||||
self.messages = PersistentList()
|
||||
|
||||
def _send(self, mfrom, mto, messageText, immediate=False):
|
||||
"""Send the message"""
|
||||
self.messages.append(messageText)
|
||||
|
||||
def send(
|
||||
self,
|
||||
messageText,
|
||||
mto=None,
|
||||
mfrom=None,
|
||||
subject=None,
|
||||
encode=None,
|
||||
immediate=False,
|
||||
charset=None,
|
||||
msg_type=None,
|
||||
):
|
||||
"""send *messageText* modified by the other parameters.
|
||||
|
||||
*messageText* can either be an ``email.message.Message``
|
||||
or a string.
|
||||
Note that Products.MailHost 4.10 had changes here.
|
||||
"""
|
||||
msg, mto, mfrom = _mungeHeaders(
|
||||
messageText, mto, mfrom, subject, charset, msg_type, encode
|
||||
)
|
||||
self.messages.append(msg)
|
||||
|
||||
|
||||
class TestUserNotificationUnit(unittest.TestCase):
|
||||
|
||||
layer = PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from plone.app.discussion.testing import PLONE_APP_DISCUSSION_ROBOT_TESTING
|
||||
from ..testing import PLONE_APP_DISCUSSION_ROBOT_TESTING
|
||||
from plone.app.testing import ROBOT_TEST_LEVEL
|
||||
from plone.testing import layered
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
"""Test plone.app.discussion workflow and permissions.
|
||||
"""
|
||||
from ..interfaces import IConversation
|
||||
from ..interfaces import IDiscussionLayer
|
||||
from ..testing import PLONE_APP_DISCUSSION_INTEGRATION_TESTING
|
||||
from AccessControl import Unauthorized
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.interfaces import IDiscussionLayer
|
||||
from plone.app.discussion.testing import ( # noqa
|
||||
PLONE_APP_DISCUSSION_INTEGRATION_TESTING,
|
||||
)
|
||||
from plone.app.testing import login
|
||||
from plone.app.testing import logout
|
||||
from plone.app.testing import setRoles
|
||||
|
||||
Reference in New Issue
Block a user