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_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)
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_request_approval_published_version(self): """ request approval on already publish version must fail with exception. """ content = self.root.test publisher = IPublicationWorkflow(content) publisher.publish() with self.assertRaises(VersioningError): publisher.request_approval("please approve.") self.assertFalse(content.is_approval_requested())
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')
def test_reject_published(self): """ rejecting a published content must fail. """ content = self.root.test publisher = IPublicationWorkflow(content) publisher.request_approval('please approve') publisher.publish() self.assertFalse(content.is_approval_requested()) with self.assertRaises(VersioningError): publisher.reject_request('u suck anyway')
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 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_publish_unapproved(self): """Publish an unapproved content. """ 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) 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)
def test_close_published(self): """Close a published content """ content = self.root.test # Need to publish content first. publisher = IPublicationWorkflow(content) publisher.publish() 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 = IPublicationWorkflow(content) publisher.close() 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(), None) self.assertEqual(content.get_last_closed_version(), '0')