Пример #1
0
 def setUp(self):
     self.site = DummySite('site')
     sm = getSiteManager()
     sm.registerUtility(self.site, ISiteRoot)
     sm.registerUtility(DummyTool(), IMembershipTool)
     sm.registerUtility(DummyTool().__of__(self.site), IURLTool)
     self.site._setObject('target', DummyContent())
Пример #2
0
    def test_deleteMembersUnsupported(self):
        # Quite a few user folders do not support the deletion API
        # http://www.zope.org/Collectors/CMF/481
        # Make sure we get the right exception
        site = self._makeSite()
        mtool = site.portal_membership
        members = site._setObject( 'Members', PortalFolder('Members') )
        acl_users = site._setObject( 'acl_users', DummyUserFolder() )
        utool = site._setObject( 'portal_url', DummyTool() )
        wtool = site._setObject( 'portal_workflow', DummyTool() )
        mdtool = site._setObject( 'portal_memberdata', MemberDataTool() )
        newSecurityManager(None, acl_users.all_powerful_Oz)

        self.assertEqual( acl_users.getUserById('user_foo'),
                          acl_users.user_foo )
        mtool.createMemberArea('user_foo')
        self.failUnless( hasattr(members.aq_self, 'user_foo') )
        mdtool.registerMemberData('Dummy', 'user_foo')
        self.failUnless( mdtool._members.has_key('user_foo') )

        # Fake an incompatible user folder by deleting the class method
        deletion_method = DummyUserFolder.userFolderDelUsers
        del DummyUserFolder.userFolderDelUsers
        self.assertRaises( NotImplementedError
                         , mtool.deleteMembers
                         , ('user_foo',)
                         )
        self.failUnless( acl_users.getUserById('user_foo', None) )
        self.failUnless( mdtool._members.has_key('user_foo') )
        self.failUnless( hasattr(members.aq_self, 'user_foo') )

        # Cleanup
        DummyUserFolder.userFolderDelUsers = deletion_method
Пример #3
0
 def setUp(self):
     sm = getSiteManager()
     self.site = DummySite('site')
     sm.registerUtility(self.site, ISiteRoot)
     self.site._setObject('portal_membership', DummyTool())
     self.site._setObject('portal_url', DummyTool())
     self.site._setObject('target', DummyContent())
Пример #4
0
    def test_deleteMembers(self):
        site = self._makeSite()
        sm = getSiteManager()
        mtool = site.portal_membership
        members = site._setObject('Members', PortalFolder('Members'))
        acl_users = site._setObject('acl_users', DummyUserFolder())
        utool = site._setObject('portal_url', DummyTool())
        sm.registerUtility(utool, IURLTool)
        wtool = site._setObject('portal_workflow', DummyTool())
        mdtool = site._setObject('portal_memberdata', MemberDataTool())
        sm.registerUtility(mdtool, IMemberDataTool)
        newSecurityManager(None, acl_users.all_powerful_Oz)

        self.assertEqual(acl_users.getUserById('user_foo'), acl_users.user_foo)
        mtool.createMemberArea('user_foo')
        self.failUnless(hasattr(members.aq_self, 'user_foo'))
        mdtool.registerMemberData('Dummy', 'user_foo')
        self.failUnless(mdtool._members.has_key('user_foo'))

        rval = mtool.deleteMembers(('user_foo', 'user_baz'))
        self.assertEqual(rval, ('user_foo', ))
        self.failIf(acl_users.getUserById('user_foo', None))
        self.failIf(mdtool._members.has_key('user_foo'))
        self.failIf(hasattr(members.aq_self, 'user_foo'))

        cleanUp()
Пример #5
0
 def setUp(self):
     sm = getSiteManager()
     self.site = DummySite('site')
     self.site._setObject('portal_membership', DummyTool())
     sm.registerUtility(self.site.portal_membership, IMembershipTool)
     self.site._setObject('portal_url', DummyTool())
     sm.registerUtility(self.site.portal_url, IURLTool)
Пример #6
0
 def setUp(self):
     self._trap_warning_output()
     SecurityTest.setUp(self)
     self.site = DummySite('site').__of__(self.root)
     sm = getSiteManager()
     sm.registerUtility(DummyTool(), IMembershipTool)
     sm.registerUtility(DummyTool().__of__(self.site), IURLTool)
Пример #7
0
 def setUp(self):
     """Setup a site"""
     self.site = DummySite('site')
     self.mtool = DummyMemberTool()
     sm = getSiteManager()
     sm.registerUtility(DummyTool(), IActionsTool)
     sm.registerUtility(self.mtool, IMembershipTool)
     sm.registerUtility(DummyTool().__of__(self.site), IURLTool)
Пример #8
0
 def setUp(self):
     SecurityRequestTest.setUp(self)
     self.site = DummySite('site').__of__(self.root)
     sm = getSiteManager()
     utool = self.site._setObject('portal_url', DummyTool())
     sm.registerUtility(self.site.portal_url, IURLTool)
     mtool = self.site._setObject('portal_membership', DummyTool())
     sm.registerUtility(self.site.portal_membership, IMembershipTool)
Пример #9
0
 def setUp(self):
     SecurityRequestTest.setUp(self)
     self.site = DummySite('site').__of__(self.root)
     self.site._setObject('portal_membership', DummyTool())
     self.site._setObject('portal_types', TypesTool())
     self.site._setObject('portal_url', DummyTool())
     fti = FTIDATA_CMF15[0].copy()
     self.site.portal_types._setObject('Dummy Content 15', FTI(**fti))
     self.site._setObject('foo', DummyContent())
Пример #10
0
 def setUp(self):
     self.site = DummySite('site')
     sm = getSiteManager()
     self.site._setObject('portal_discussion', self._makeOne())
     sm.registerUtility(self.site.portal_discussion, IDiscussionTool)
     self.site._setObject('portal_membership', DummyTool())
     sm.registerUtility(self.site.portal_membership, IMembershipTool)
     self.site._setObject('portal_types', DummyTool())
     sm.registerUtility(self.site.portal_types, ITypesTool)
Пример #11
0
 def setUp(self):
     """Setup a site"""
     self.site = site = DummySite('site')
     sm = getSiteManager()
     sm.registerUtility(DummyTool(), IMembershipTool)
     sm.registerUtility(DummyTool().__of__(site), IPropertiesTool)
     sm.registerUtility(DummyTool().__of__(site), IURLTool)
     sm.registerUtility(DummyTool(), ITypesTool)
     folder = PortalFolder('test_folder')
     self.folder = site._setObject('test_folder', folder)
Пример #12
0
class FavoriteTests( TestCase ):

    def setUp( self ):
        self.tool = DummyURLTool()
        self.site = DummySite( portal_url=self.tool )

    def _makeOne( self, *args, **kw ):

        f = apply( Favorite, args, kw )
        return f.__of__( self.site )

    def test_Empty( self ):

        f = self._makeOne( 'foo' )

        self.assertEqual( f.getId(), 'foo' )
        self.assertEqual( f.Title(), '' )
        self.assertEqual( f.Description(), '' )
        self.assertEqual( f.getRemoteUrl(), self.tool.root )
        self.assertEqual( f.getObject(), self.site )
        self.assertEqual( f.getIcon(), self.site.getIcon() )
        self.assertEqual( f.getIcon(1), self.site.getIcon(1) )

    def test_CtorArgs( self ):

        self.assertEqual( self._makeOne( 'foo'
                                       , title='Title'
                                       ).Title(), 'Title' )

        self.assertEqual( self._makeOne( 'bar'
                                       , description='Description'
                                       ).Description(), 'Description' )

        baz = self._makeOne( 'baz', remote_url='portal_url' )
        self.assertEqual( baz.getObject(), self.tool )
        self.assertEqual( baz.getRemoteUrl()
                        , '%s/portal_url' % self.tool.root )
        self.assertEqual( baz.getIcon(), self.tool.getIcon() )

    def test_edit( self ):

        f = self._makeOne( 'foo' )
        f.edit( 'portal_url' )
        self.assertEqual( f.getObject(), self.tool )
        self.assertEqual( f.getRemoteUrl()
                        , '%s/portal_url' % self.tool.root )
        self.assertEqual( f.getIcon(), self.tool.getIcon() )

    def test_editEmpty( self ):

        f = self._makeOne( 'gnnn' )
        f.edit( '' )
        self.assertEqual( f.getObject(), self.site )
        self.assertEqual( f.getRemoteUrl(), self.tool.root )
        self.assertEqual( f.getIcon(), self.site.getIcon() )
Пример #13
0
class FavoriteTests( TestCase ):

    def setUp( self ):
        self.tool = DummyURLTool()
        self.site = DummySite( portal_url=self.tool )

    def _makeOne( self, *args, **kw ):

        f = Favorite(*args, **kw)
        return f.__of__( self.site )

    def test_Empty( self ):

        f = self._makeOne( 'foo' )

        self.assertEqual( f.getId(), 'foo' )
        self.assertEqual( f.Title(), '' )
        self.assertEqual( f.Description(), '' )
        self.assertEqual( f.getRemoteUrl(), self.tool.root )
        self.assertEqual( f.getObject(), self.site )
        self.assertEqual( f.getIcon(), self.site.getIcon() )
        self.assertEqual( f.getIcon(1), self.site.getIcon(1) )

    def test_CtorArgs( self ):

        self.assertEqual( self._makeOne( 'foo'
                                       , title='Title'
                                       ).Title(), 'Title' )

        self.assertEqual( self._makeOne( 'bar'
                                       , description='Description'
                                       ).Description(), 'Description' )

        baz = self._makeOne( 'baz', remote_url='portal_url' )
        self.assertEqual( baz.getObject(), self.tool )
        self.assertEqual( baz.getRemoteUrl()
                        , '%s/portal_url' % self.tool.root )
        self.assertEqual( baz.getIcon(), self.tool.getIcon() )

    def test_edit( self ):

        f = self._makeOne( 'foo' )
        f.edit( 'portal_url' )
        self.assertEqual( f.getObject(), self.tool )
        self.assertEqual( f.getRemoteUrl()
                        , '%s/portal_url' % self.tool.root )
        self.assertEqual( f.getIcon(), self.tool.getIcon() )

    def test_editEmpty( self ):

        f = self._makeOne( 'gnnn' )
        f.edit( '' )
        self.assertEqual( f.getObject(), self.site )
        self.assertEqual( f.getRemoteUrl(), self.tool.root )
        self.assertEqual( f.getIcon(), self.site.getIcon() )
Пример #14
0
 def setUp(self):
     SecurityTest.setUp(self)
     self.site = DummySite('site').__of__(self.app)
     ttool = TypesTool()
     fti = FTIDATA_CMF[0].copy()
     ttool._setObject('Dummy Content 15', FTI(**fti))
     self.site._setObject('foo', DummyContent())
     sm = getSiteManager()
     sm.registerUtility(DummyTool(), IMembershipTool)
     sm.registerUtility(DummyTool().__of__(self.site), IURLTool)
     sm.registerUtility(ttool, ITypesTool)
Пример #15
0
 def setUp(self):
     """Setup a site"""
     self.site = DummySite('site')
     sm = getSiteManager()
     from Products.CMFDefault.SyndicationInfo import ISyndicationInfo
     syndtool = DummySyndicationTool()
     alsoProvides(syndtool, ISyndicationInfo)
     sm.registerUtility(syndtool, ISyndicationTool)
     sm.registerUtility(DummyTool(), IActionsTool)
     sm.registerUtility(DummyTool(), IMembershipTool)
     sm.registerUtility(DummyTool().__of__(self.site), IURLTool)
Пример #16
0
    def setUp(self):
        from Products.CMFDefault.DefaultWorkflow \
                import DefaultWorkflowDefinition
        self.site = DummySite('site')
        self.site._setObject('portal_types', DummyTool())
        self.site._setObject('portal_workflow', WorkflowTool())
        self.site._setObject('portal_membership', DummyTool())
        self.site._setObject('acl_users', DummyUserFolder())

        wftool = self.site.portal_workflow
        wftool._setObject('wf', DefaultWorkflowDefinition('wf'))
        wftool.setDefaultChain('wf')
Пример #17
0
    def _setupCallTests(self, aliases):
        # root
        root = Folder('root')

        # set up dummy type info with problematic double-default alias
        ttool = DummyTool()
        ttool._type_actions = aliases
        getSiteManager().registerUtility(ttool, ITypesTool)

        # dummy content and skin
        root._setObject('dummycontent', DummyContent())
        root._setObject('dummy_view', DummyObject())
        return root.dummycontent
Пример #18
0
 def setUp(self):
     """Setup a site"""
     # maybe there is a base class for this?
     self.site = site = DummySite('site')
     self.sm = getSiteManager()
     mtool = site._setObject('portal_membership', DummyTool())
     ptool = site._setObject('portal_properties', DummyTool())
     self.sm.registerUtility(ptool, IPropertiesTool)
     ttool = site._setObject('portal_types', DummyTool())
     utool = site._setObject('portal_url', DummyTool())
     folder = PortalFolder('test_folder')
     self.folder = site._setObject('test_folder', folder)
     self.uf = self.site._setObject('acl_users', DummyUserFolder())
Пример #19
0
 def setUp(self):
     SecurityRequestTest.setUp(self)
     self.site = DummySite('site').__of__(self.root)
     sm = getSiteManager()
     self.site._setObject( 'portal_membership', DummyTool() )
     sm.registerUtility(self.site.portal_membership, IMembershipTool)
     self.site._setObject( 'portal_types', TypesTool() )
     sm.registerUtility(self.site.portal_types, ITypesTool)
     self.site._setObject( 'portal_url', DummyTool() )
     sm.registerUtility(self.site.portal_url, IURLTool)
     fti = FTIDATA_CMF15[0].copy()
     self.site.portal_types._setObject( 'Dummy Content 15', FTI(**fti) )
     self.site._setObject( 'foo', DummyContent() )
Пример #20
0
    def setUp(self):
        from Products.CMFDefault.DefaultWorkflow \
                import DefaultWorkflowDefinition
        self.site = DummySite('site')
        self.site._setObject('acl_users', DummyUserFolder())

        self.wtool = WorkflowTool()
        self.wtool._setObject('wf', DefaultWorkflowDefinition('wf'))
        self.wtool.setDefaultChain('wf')
        sm = getSiteManager()
        sm.registerUtility(self.wtool, IWorkflowTool)
        sm.registerUtility(DummyTool(), IMembershipTool)
        sm.registerUtility(DummyTool(), ITypesTool)
Пример #21
0
 def setUp(self):
     """Setup a site"""
     self.site = DummySite('site')
     self.syndtool = DummySyndicationTool()
     sm = getSiteManager()
     sm.registerUtility(self.syndtool, ISyndicationTool)
     from Products.CMFDefault.SyndicationInfo import ISyndicationInfo
     from Products.CMFDefault.SyndicationInfo import SyndicationInfo
     sm.registerAdapter(SyndicationInfo, [IFolderish], ISyndicationInfo)
     from zope.annotation.interfaces import IAnnotations
     from zope.annotation.attribute import AttributeAnnotations
     sm.registerAdapter(AttributeAnnotations, [IFolderish], IAnnotations)
     sm.registerUtility(DummyTool(), IActionsTool)
     sm.registerUtility(DummyTool(), IMembershipTool)
     sm.registerUtility(DummyTool().__of__(self.site), IURLTool)
Пример #22
0
 def setUp(self):
     SecurityTest.setUp(self)
     setUpEvents()
     self.site = DummySite('site').__of__(self.root)
     self.site._setObject( 'portal_discussion', DiscussionTool() )
     self.site._setObject( 'portal_membership', DummyTool() )
     self.site._setObject( 'portal_types', TypesTool() )
    def test_createMemberAreaCMFBTreeFolder(self):
        # Test member area creation if the toplevel "Members" folder is
        # a CMFBTreeFolder (http://www.zope.org/Collectors/CMF/441
        site = self._makeSite()
        mtool = site.portal_membership
        members = site._setObject( 'Members', CMFBTreeFolder('Members') )
        acl_users = site._setObject( 'acl_users', DummyUserFolder() )
        wtool = site._setObject( 'portal_workflow', DummyTool() )

        # permission
        mtool.createMemberArea('user_foo')
        self.assertFalse( hasattr(members.aq_self, 'user_foo') )
        newSecurityManager(None, acl_users.user_bar)
        mtool.createMemberArea('user_foo')
        self.assertFalse( hasattr(members.aq_self, 'user_foo') )
        newSecurityManager(None, acl_users.user_foo)
        mtool.setMemberareaCreationFlag()
        mtool.createMemberArea('user_foo')
        self.assertFalse( hasattr(members.aq_self, 'user_foo') )
        newSecurityManager(None, acl_users.all_powerful_Oz)
        mtool.setMemberareaCreationFlag()
        mtool.createMemberArea('user_foo')
        self.assertTrue( hasattr(members.aq_self, 'user_foo') )

        # default content
        f = members.user_foo
        ownership = acl_users.user_foo
        localroles = ( ( 'user_foo', ('Owner',) ), )
        self.assertEqual( f.getOwner(), ownership )
        self.assertEqual( f.get_local_roles(), localroles,
                          'CMF Collector issue #162 (LocalRoles broken): %s'
                          % str( f.get_local_roles() ) )
 def setUp(self):
     SecurityTest.setUp(self)
     self.site = DummySite('site')
     sm = getSiteManager()
     self.site._setObject( 'portal_discussion', self._makeOne() )
     sm.registerUtility(self.site.portal_discussion, IDiscussionTool)
     self.site._setObject( 'portal_types', DummyTool() )
Пример #25
0
    def test_createMemberArea(self):
        site = self._makeSite()
        mtool = site.portal_membership
        members = site._setObject('Members', PortalFolder('Members'))
        acl_users = site._setObject('acl_users', DummyUserFolder())
        wtool = site._setObject('portal_workflow', DummyTool())

        # permission
        mtool.createMemberArea('user_foo')
        self.failIf(hasattr(members.aq_self, 'user_foo'))
        newSecurityManager(None, acl_users.user_bar)
        mtool.createMemberArea('user_foo')
        self.failIf(hasattr(members.aq_self, 'user_foo'))
        newSecurityManager(None, acl_users.user_foo)
        mtool.setMemberareaCreationFlag()
        mtool.createMemberArea('user_foo')
        self.failIf(hasattr(members.aq_self, 'user_foo'))
        newSecurityManager(None, acl_users.all_powerful_Oz)
        mtool.setMemberareaCreationFlag()
        mtool.createMemberArea('user_foo')
        self.failUnless(hasattr(members.aq_self, 'user_foo'))

        # default content
        f = members.user_foo
        ownership = acl_users.user_foo
        localroles = (('user_foo', ('Owner', )), )
        self.assertEqual(f.getOwner(), ownership)
        self.assertEqual(
            f.get_local_roles(), localroles,
            'CMF Collector issue #162 (LocalRoles broken): %s' %
            str(f.get_local_roles()))
Пример #26
0
    def test_changeActions( self ):


        apb = DummyTool()
        old_actions = list( apb._actions )

        keys = [ ( 'id_%d', None )
               , ( 'name_%d', None )
               , ( 'action_%d', '' )
               , ( 'condition_%d', '' )
               , ( 'permission_%d', None )
               , ( 'category_%d', None )
               , ( 'visible_%d', 0 )
               ]

        properties = {}
        for i in range( len( old_actions ) ):
            for key, value in keys:
                token = key % i
                if value is None:
                    value = token
                properties[ token ] = value

        apb.changeActions( properties=properties )

        marker = []
        for i in range( len( apb._actions ) ):

            for key, value in keys:
                attr = key[ : -3 ]

                if value is None:
                    value = key % i

                if attr == 'name':    # WAAAA
                    attr = 'title'

                if attr == 'permission':    # WAAAA
                    attr = 'permissions'
                    value = ( value, )

                attr_value = getattr( apb._actions[i], attr, marker )
                self.assertEqual( attr_value
                                , value
                                , '%s, %s != %s, %s'
                                  % ( attr, attr_value, key, value )  )
        self.failIf( apb._actions is old_actions )
Пример #27
0
    def test_changeActions( self ):


        apb = DummyTool()
        old_actions = list( apb._actions )

        keys = [ ( 'id_%d', None )
               , ( 'name_%d', None )
               , ( 'action_%d', '' )
               , ( 'condition_%d', '' )
               , ( 'permission_%d', None )
               , ( 'category_%d', None )
               , ( 'visible_%d', 0 )
               ]

        properties = {}
        for i in range( len( old_actions ) ):
            for key, value in keys:
                token = key % i
                if value is None:
                    value = token
                properties[ token ] = value

        apb.changeActions( properties=properties )

        marker = []
        for i in range( len( apb._actions ) ):

            for key, value in keys:
                attr = key[ : -3 ]

                if value is None:
                    value = key % i

                if attr == 'name':    # WAAAA
                    attr = 'title'

                if attr == 'permission':    # WAAAA
                    attr = 'permissions'
                    value = ( value, )

                attr_value = getattr( apb._actions[i], attr, marker )
                self.assertEqual( attr_value
                                , value
                                , '%s, %s != %s, %s'
                                  % ( attr, attr_value, key, value )  )
        self.failIf( apb._actions is old_actions )
Пример #28
0
    def setUp(self):
        from Products.CMFCore.MembershipTool import BBBHomeFolderFactory

        SecurityTest.setUp(self)
        sm = getSiteManager()
        sm.registerUtility(DummyTool(), IWorkflowTool)
        sm.registerUtility(BBBHomeFolderFactory, IFactory,
                           'cmf.folder.home.bbb1')
Пример #29
0
    def setUp(self):
        from Products.DCWorkflow.DCWorkflow import DCWorkflowDefinition

        self.site = DummySite('site')
        self.site._setObject('portal_types', DummyTool())
        self.site._setObject('portal_workflow', WorkflowTool())
        addWorkflowFactory(DCWorkflowDefinition)
        self._constructDummyWorkflow()
Пример #30
0
 def setUp(self):
     SecurityTest.setUp(self)
     self.site = DummySite('site').__of__(self.root)
     sm = getSiteManager()
     self.site._setObject('portal_discussion', DiscussionTool())
     sm.registerUtility(self.site.portal_discussion, IDiscussionTool)
     self.site._setObject('portal_membership', DummyTool())
     self.site._setObject('portal_types', TypesTool())
Пример #31
0
 def setUp(self):
     SecurityTest.setUp(self)
     self.root._setObject('site', DummySite('site'))
     self.site = self.root._getOb('site')
     self.site._setObject('portal_types', DummyTool())
     self.site._setObject('portal_workflow', WorkflowTool())
     self._constructDummyWorkflow()
     transaction.savepoint(optimistic=True)
     newSecurityManager(None, OmnipotentUser().__of__(self.site))
Пример #32
0
    def setUp(self):
        self.site = DummySite('site')
        self.site._setObject('portal_types', DummyTool())
        self.site._setObject('portal_workflow', WorkflowTool())

        # Construct a workflow
        wftool = self.site.portal_workflow
        wftool._setObject('wf', DCWorkflowDefinition('wf'))
        wftool.setDefaultChain('wf')
Пример #33
0
 def setUp( self ):
     self.tool = DummyURLTool()
     self.site = DummySite( portal_url=self.tool )