Ejemplo n.º 1
0
    def test_make_editable_with_approved(self):
        """Make an old version editable while having an approved and
        yet not published version. This will not work.
        """
        content = self.root.test

        self.layer.login('editor')

        publisher = IPublicationWorkflow(content)
        publisher.approve(DateTime() + 50)

        self.layer.login('author')

        manager = IVersionManager(content.get_mockup_version(1))
        with self.assertRaises(VersioningError):
            manager.make_editable()
        self.assertEqual(len(content.objectIds('Mockup Version')), 5)
    def test_revoke_approval(self):
        """ revoke approval, on approved content (normal scenario)
        """
        content = self.root.test
        publisher = IPublicationWorkflow(content)
        publisher.approve(datetime.now() + timedelta(1))

        self.assertEqual(content.get_public_version(), None)
        self.assertEqual(content.get_approved_version(), '0')
        self.assertEqual(content.get_unapproved_version(), None)
        self.assertEqual(content.get_last_closed_version(), None)

        self.assertTrue(publisher.revoke_approval())

        self.assertEqual(content.get_public_version(), None)
        self.assertEqual(content.get_approved_version(), None)
        self.assertEqual(content.get_unapproved_version(), '0')
        self.assertEqual(content.get_last_closed_version(), None)
    def test_revoke_approval_published(self):
        """ datetime for approval is in the past so the content get
        published and cannot be revoked.
        """
        content = self.root.test
        publisher = IPublicationWorkflow(content)
        publisher.approve(datetime.now() - timedelta(1))

        self.assertEqual(content.get_public_version(), '0')
        self.assertEqual(content.get_approved_version(), None)
        self.assertEqual(content.get_unapproved_version(), None)
        self.assertEqual(content.get_last_closed_version(), None)

        with self.assertRaises(VersioningError):
            publisher.revoke_approval()

        self.assertEqual(content.get_public_version(), '0')
        self.assertEqual(content.get_approved_version(), None)
        self.assertEqual(content.get_unapproved_version(), None)
        self.assertEqual(content.get_last_closed_version(), None)