fschulze resolved the problem for me. Turns out the implicit user in tests in not a Manager. Adding:

self.setRoles(['Manager']

before creating the Topic solved the problem. Sorry for the noise!

Derek

Derek Richardson wrote:
The following ftest fails in 3.0 rc1:


# Start test case

from Products.PloneTestCase.PloneTestCase import FunctionalTestCase
from Products.PloneTestCase.PloneTestCase import setupPloneSite
setupPloneSite()

class TestTopic(FunctionalTestCase):
    def testCreate(self):
        self.portal.error_log._ignored_exceptions = ()
        self.folder.invokeFactory('Topic', 'fooTopic', name='fooTopic')

def test_suite():
    from unittest import TestSuite, makeSuite
    suite = TestSuite()
    suite.addTest(makeSuite(TestTopic

# end test case

I'm doing this like I've seen it done in other packages. I get the following traceback:


Error in test testCreate (plone.app.syndication.outbound.tests.testTopic.TestTopic)
Traceback (most recent call last):
File "/Users/dkr/zope-insts/vice/parts/zope2/lib/python/Testing/ZopeTestCase/profiler.py", line 98, in __call__
    testMethod()
File "/Users/dkr/zope-insts/vice/src/plone.app.syndication.outbound/plone/app/syndication/outbound/tests/testTopic.py", line 7, in testCreate
    self.folder.invokeFactory('Topic', 'fooTopic', name='fooTopic')
File "/Users/dkr/zope-insts/vice/parts/plone/ATContentTypes/lib/constraintypes.py", line 281, in invokeFactory
    RESPONSE=None, *args, **kw)
File "/Users/dkr/zope-insts/vice/parts/plone/CMFCore/PortalFolder.py", line 311, in invokeFactory
    return pt.constructContent(type_name, self, id, RESPONSE, *args, **kw)
File "/Users/dkr/zope-insts/vice/parts/plone/CMFCore/TypesTool.py", line 716, in constructContent
    ob = info.constructInstance(container, id, *args, **kw)
File "/Users/dkr/zope-insts/vice/parts/plone/CMFCore/TypesTool.py", line 274, in constructInstance
    raise AccessControl_Unauthorized('Cannot create %s' % self.getId())
Unauthorized: Cannot create Topic

I am surprised to get an Unauthorized error when directly manipulating the zodb in a functional test. I have verbose security on. But I get no additional info.

Any hints appreciated!

Derek


_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to