def testPlacefulWorflow(self):
        ''' validates if our folder structure is created with placeful workflow
            in it
        '''
        wt = self.portal.portal_workflow
        wPID = WorkflowPolicyConfig_id
        e = GroupByDateAction()
        e.base_folder = '/target'
        e.structure = '%Y/%m/%d'
        e.container = 'Folder'

        ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)),
                             IExecutable)
        self.assertEquals(True, ex())

        self.failIf('d1' in self.folder.objectIds())
        target_folder = self.portal.unrestrictedTraverse('%s/2009/04/22' %
                                                          e.base_folder[1:])
        self.failUnless('d1' in target_folder.objectIds())

        # @ folder 22
        self.failUnless(wPID in target_folder.objectIds())
        # @ folder 04
        self.failUnless(wPID in target_folder.aq_parent.objectIds())
        # @ folder 2009
        self.failUnless(wPID in target_folder.aq_parent.aq_parent.objectIds())
        review_state = wt.getInfoFor(target_folder, 'review_state')
        self.failUnless(review_state == 'visible')
    def testWrongStrftimeFmt(self):
        """ Execute the action using a typoed strftime formatting string
        """
        e = GroupByDateAction()
        e.base_folder = "/target"
        e.structure = "Y/%m"
        e.container = "Folder"

        ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)), IExecutable)
        self.assertTrue(ex())

        self.assertNotIn("d1", self.folder.objectIds())
        target_folder = self.portal.unrestrictedTraverse("%s/Y/04" % e.base_folder[1:])
        self.assertIn("d1", target_folder.objectIds())
Exemple #3
0
    def testWrongStrftimeFmt(self):
        ''' Execute the action using a typoed strftime formatting string
        '''
        e = GroupByDateAction()
        e.base_folder = '/target'
        e.structure = 'Y/%m'
        e.container = 'Folder'

        ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)),
                             IExecutable)
        self.assertEquals(True, ex())

        self.failIf('d1' in self.folder.objectIds())
        target_folder = self.portal.unrestrictedTraverse('%s/Y/04' %
                                                         e.base_folder[1:])
        self.failUnless('d1' in target_folder.objectIds())
    def testWrongStrftimeFmt(self):
        ''' Execute the action using a typoed strftime formatting string
        '''
        e = GroupByDateAction()
        e.base_folder = '/target'
        e.structure = 'Y/%m'
        e.container = 'Folder'

        ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)),
                             IExecutable)
        self.assertEquals(True, ex())

        self.failIf('d1' in self.folder.objectIds())
        target_folder = self.portal.unrestrictedTraverse('%s/Y/04' %
                                                          e.base_folder[1:])
        self.failUnless('d1' in target_folder.objectIds())
    def testPlacefulWorflowPermissions(self):
        ''' validates permissions on folders created by our rule
        '''
        portal = self.portal
        e = GroupByDateAction()
        e.base_folder = '/target'
        e.structure = '%Y/%m/%d'
        e.container = 'Folder'

        ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)),
                             IExecutable)
        self.assertEquals(True, ex())

        self.failIf('d1' in self.folder.objectIds())
        base_folder = portal.unrestrictedTraverse('%s' % e.base_folder[1:])

        # Permissions
        view_perm = 'View'
        access_perm = 'Access contents information'

        # year folder
        folder = base_folder['2009']
        self.assertEquals(folder.acquiredRolesAreUsedBy(view_perm),
                          'CHECKED')
        self.assertEquals(folder.acquiredRolesAreUsedBy(access_perm),
                          'CHECKED')
        # month folder
        folder = base_folder['2009']['04']
        self.assertEquals(folder.acquiredRolesAreUsedBy(view_perm),
                          'CHECKED')
        self.assertEquals(folder.acquiredRolesAreUsedBy(access_perm),
                          'CHECKED')
        # month folder
        folder = base_folder['2009']['04']['22']
        self.assertEquals(folder.acquiredRolesAreUsedBy(view_perm),
                          'CHECKED')
        self.assertEquals(folder.acquiredRolesAreUsedBy(access_perm),
                          'CHECKED')
    def testExcludeFolderFromNav(self):
        ''' Execute the action specifying some folders that should be
            excluded from navigation
        '''
        e = GroupByDateAction()
        e.base_folder = '/target'
        e.structure = '%Yee/%m/%dee'
        e.container = 'Folder'

        ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)),
                             IExecutable)
        self.assertEquals(True, ex())

        foldera = self.portal.unrestrictedTraverse('%s/2009' %
                                                         e.base_folder[1:])
        folderb = self.portal.unrestrictedTraverse('%s/2009/04' %
                                                         e.base_folder[1:])
        folderc = self.portal.unrestrictedTraverse('%s/2009/04/22' %
                                                         e.base_folder[1:])

        self.assertTrue(foldera.exclude_from_nav())
        self.assertFalse(folderb.exclude_from_nav())
        self.assertTrue(folderc.exclude_from_nav())