Added test (currently failing) to trigger "can't pickle objects in acquisition wrapper". Refs #11157

svn path=/plone.app.discussion/trunk/; revision=40357
This commit is contained in:
Timo Stollenwerk 2010-09-27 19:03:43 +00:00
parent c444c74680
commit 77e44f96ad

View File

@ -0,0 +1,99 @@
# -*- coding: utf-8 -*-
import unittest
import time
from datetime import datetime
from AccessControl import Unauthorized
from zope.component import createObject, queryUtility
from OFS.Image import Image
from zope.interface import alsoProvides
from zope.publisher.browser import TestRequest
from zope.annotation.interfaces import IAttributeAnnotatable
from z3c.form.interfaces import IFormLayer
from zope.component import provideAdapter
from zope.publisher.interfaces.browser import IBrowserRequest
from zope.interface import Interface
from zope.component import getMultiAdapter
from plone.registry.interfaces import IRegistry
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.tests import dummy
from Products.Five.testbrowser import Browser
from Products.PloneTestCase.ptc import PloneTestCase
from Products.PloneTestCase.ptc import FunctionalTestCase
from Products.PloneTestCase.setup import portal_owner, default_password
from plone.app.discussion.browser.comments import CommentsViewlet
from plone.app.discussion.browser.comments import CommentForm
from plone.app.discussion.interfaces import IConversation
from plone.app.discussion.tests.layer import DiscussionLayer
class TestPostCommentsRegression(FunctionalTestCase):
layer = DiscussionLayer
def testCantPickleObjectsInAcquisitionWrapper(self):
"""https://dev.plone.org/plone/ticket/11157
"""
browser = Browser()
portal_url = self.portal.absolute_url()
browser.handleErrors = False
browser.open(portal_url + '/login_form')
browser.getControl(name='__ac_name').value = portal_owner
browser.getControl(name='__ac_password').value = default_password
browser.getControl(name='submit').click()
browser.open(portal_url)
browser.getLink(id='document').click()
browser.getControl(name='title').value = "Doc1"
browser.getControl(name='allowDiscussion:boolean').value = True
browser.getControl(name='form.button.save').click()
browser.getLink('Publish').click()
urldoc1 = browser.url
# Enable anonymous comment
browser.open(portal_url+'/@@discussion-settings')
browser.getControl(name='form.widgets.anonymous_comments:list').value = [True]
browser.getControl(name='form.buttons.save').click()
def post(poster=None, password=None, url=urldoc1):
if poster:
browser.open(portal_url + '/logout')
browser.open(portal_url + '/login_form')
browser.getControl(name='__ac_name').value = poster
browser.getControl(name='__ac_password').value = password
browser.getControl(name='submit').click()
browser.open(url)
browser.getControl(name='form.widgets.title').value = "%s My Comment" % poster
browser.getControl(name='form.widgets.text').value = "%s Lorem ipsum" % poster
submit = browser.getControl(name='form.buttons.comment')
submit.click()
browser.open(portal_url + '/logout')
# Login and post comment as Anonymous
post()
browser.open(portal_url + '/login_form')
browser.getControl(name='__ac_name').value = portal_owner
browser.getControl(name='__ac_password').value = default_password
browser.getControl(name='submit').click()
browser.open(portal_url + '/doc1/edit')
browser.getControl(name='title').value = "New Doc1"
browser.getControl(name='text').value = "Lorem ipsum"
browser.getControl(name='form.button.save').click()
self.failUnless('Lorem ipsum' in contents)
def test_suite():
return unittest.defaultTestLoader.loadTestsFromName(__name__)