def test_new_version_pusblish_with_expiration_datetime_in_future(self):
        """If you make a new version of a published version that have
        an expiration date in the future it is kept.
        """
        content = self.root.test
        expiration_time = DateTime() + 30
        content.set_unapproved_version_expiration_datetime(expiration_time)

        publisher = IPublicationWorkflow(content)
        publisher.publish()
        self.assertTrue(content.is_published())

        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)

        publisher.new_version()
        self.assertTrue(content.is_published())

        self.assertEqual(content.get_public_version(), '0')
        self.assertEqual(content.get_approved_version(), None)
        self.assertEqual(content.get_unapproved_version(), '1')
        self.assertEqual(content.get_last_closed_version(), None)
        self.assertEqual(
            content.get_unapproved_version_expiration_datetime(),
            expiration_time)
        self.assertEqual(
            content.get_unapproved_version_publication_datetime(),
            None)
    def  test_new_version_published(self):
        """Create a new version while there is a published version.
        """
        content = self.root.test
        publisher = IPublicationWorkflow(content)
        publisher.publish()
        self.assertTrue(content.is_published())

        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)

        publisher.new_version()
        self.assertTrue(content.is_published())

        self.assertEqual(content.get_public_version(), '0')
        self.assertEqual(content.get_approved_version(), None)
        self.assertEqual(content.get_unapproved_version(), '1')
        self.assertEqual(content.get_last_closed_version(), None)
        self.assertEqual(
            content.get_unapproved_version_expiration_datetime(),
            None)
        self.assertEqual(
            content.get_unapproved_version_publication_datetime(),
            None)
    def test_new_version_closed_with_expiration_datetime_in_past(self):
        """If you make a new version out of a published version that
        have an expiration date in the past, it is not kept.
        """
        content = self.root.test
        expiration_time = DateTime() - 30
        content.set_unapproved_version_expiration_datetime(expiration_time)

        publisher = IPublicationWorkflow(content)
        publisher.publish()
        self.assertFalse(content.is_published())

        # The version is directly closed, because it is expired.
        self.assertEqual(content.get_public_version(), None)
        self.assertEqual(content.get_approved_version(), None)
        self.assertEqual(content.get_unapproved_version(), None)
        self.assertEqual(content.get_last_closed_version(), '0')

        publisher.new_version()
        self.assertFalse(content.is_published())

        self.assertEqual(content.get_public_version(), None)
        self.assertEqual(content.get_approved_version(), None)
        self.assertEqual(content.get_unapproved_version(), '1')
        self.assertEqual(content.get_last_closed_version(), '0')
        self.assertEqual(
            content.get_unapproved_version_expiration_datetime(),
            None)
        self.assertEqual(
            content.get_unapproved_version_publication_datetime(),
            None)
Ejemplo n.º 4
0
    def setUp(self):
        self.root = self.layer.get_application()
        self.layer.login('editor')

        factory = self.root.manage_addProduct['Silva']
        factory.manage_addMockupVersionedContent('test', 'Test Content')

        publisher = IPublicationWorkflow(self.root.test)
        for version_id in range(1, 5):
            publisher.publish()
            publisher.new_version()

        self.layer.login('author')
Ejemplo n.º 5
0
 def update(self):
     assert self.manager.ghost is not None
     if IGhost.providedBy(self.manager.ghost):
         publication = IPublicationWorkflow(self.manager.ghost)
         if self.manager.ghost.get_editable() is None:
             publication.new_version()
         version = self.manager.ghost.get_editable()
         version.set_haunted(
             self.target, auto_delete=self.manager.auto_delete)
         if self.manager.auto_publish:
             publication.publish()
     else:
         self.recreate()
     return self.manager.ghost
Ejemplo n.º 6
0
 def update(self):
     assert self.manager.ghost is not None
     if IGhost.providedBy(self.manager.ghost):
         publication = IPublicationWorkflow(self.manager.ghost)
         if self.manager.ghost.get_editable() is None:
             publication.new_version()
         version = self.manager.ghost.get_editable()
         version.set_haunted(self.target,
                             auto_delete=self.manager.auto_delete)
         if self.manager.auto_publish:
             publication.publish()
     else:
         self.recreate()
     return self.manager.ghost
    def test_get_versions(self):
        """ get versions ordered by id
        """
        content = self.root.test
        publisher = IPublicationWorkflow(content)
        for i in range(0, 10):
            publisher.publish()
            publisher.new_version()

        versions = publisher.get_versions()
        self.assertEquals(11, len(versions))
        for version in versions:
            self.assertTrue(IVersion.providedBy(version))
            self.assertTrue(content, version.get_content())
    def test_new_version_unapproved(self):
        """Create a new version while there is a unapproved one
        available. This is not possible.
        """
        content = self.root.test
        publisher = IPublicationWorkflow(content)
        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)

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

        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)