def test_remove_excerpt_for_agendaitem_removes_relation_in_submitted_proposal( self, browser): self.login(self.committee_responsible, browser) agenda_item = self.schedule_proposal(self.meeting, self.submitted_proposal) agenda_item.decide() excerpt1 = agenda_item.generate_excerpt('excerpt 1') agenda_item.generate_excerpt('excerpt 2') self.assertEqual(2, len(self.submitted_proposal.excerpts)) self.assertEqual( 2, len(self.submitted_proposal.get_excerpts(include_trashed=True))) self.assertEqual( 2, len(agenda_item.get_excerpt_documents(include_trashed=True))) self.assertEqual(2, len(list(_relations(self.submitted_proposal)))) ITrashable(excerpt1).trash() with elevated_privileges(): Remover([excerpt1]).remove() self.assertEqual(1, len(self.submitted_proposal.excerpts)) self.assertEqual( 1, len(self.submitted_proposal.get_excerpts(include_trashed=True))) self.assertEqual( 1, len(agenda_item.get_excerpt_documents(include_trashed=True))) self.assertEqual(1, len(list(_relations(self.submitted_proposal))))
def test_removing_is_journalized_on_object(self): Remover([self.mail, self.document]).remove() self.assert_journal_entry(self.mail, OBJECT_REMOVED, u'Document T\xe4st Mail removed.') self.assert_journal_entry(self.document, OBJECT_REMOVED, u'Document T\xe4st Doc removed.')
def test_error_when_untrashing_removed_document(self, browser): self.login(self.manager, browser=browser) data = self.make_path_param(self.empty_document) data['_authenticator'] = createToken() self.trash_documents(self.empty_document) Remover([self.empty_document]).remove() # Removed document cannot be untrashed browser.open(self.empty_dossier, view="untrashed", data=data) self.assertTrue(ITrashed.providedBy(self.empty_document)) self.assertEquals( [u'Untrashing {} is forbidden'.format(self.empty_document.title)], error_messages()) # When restored, document can be untrashed api.content.transition( obj=self.empty_document, transition=self.empty_document.restore_transition) self.assertEqual(self.empty_document.active_state, api.content.get_state(self.empty_document)) browser.open(self.empty_dossier, view="untrashed", data=data) self.assertFalse(ITrashed.providedBy(self.empty_document))
def test_raises_runtimeerror_when_preconditions_are_not_satisified(self): doc1 = create(Builder('document').trashed()) doc2 = create(Builder('document')) with self.assertRaises(RuntimeError) as cm: Remover([doc1, doc2]).remove() self.assertEquals('RemoveConditions not satisified', str(cm.exception))
def test_raises_unauthorized_when_user_does_not_have_remove_permission( self): self.login(self.regular_user) self.trash_documents(self.empty_document) with self.assertRaises(Unauthorized): Remover([self.empty_document]).remove()
def test_raises_runtimeerror_when_preconditions_are_not_satisified(self): self.login(self.manager) self.trash_documents(self.inbox_document) with self.assertRaises(RuntimeError) as cm: Remover([self.document, self.inbox_document]).remove() self.assertEqual('RemoveConditions not satisified', str(cm.exception))
def test_changes_state_to_removed_for_all_documents(self): doc1 = create(Builder('document').trashed()) doc2 = create(Builder('document').trashed()) Remover([doc1, doc2]).remove() self.assertEquals(Document.removed_state, api.content.get_state(obj=doc1)) self.assertEquals(Document.removed_state, api.content.get_state(obj=doc2))
def test_removing_is_journalized_on_parent(self): self.login(self.manager) self.trash_documents(self.empty_document, self.mail_eml) Remover([self.empty_document, self.mail_eml]).remove() self.assert_journal_entry(self.subdossier, OBJECT_REMOVED, u'Document L\xe4\xe4r removed.') self.assert_journal_entry(self.dossier, OBJECT_REMOVED, u'Document Die B\xfcrgschaft removed.')
def test_document_must_not_already_be_removed(self): self.login(self.manager) self.trash_documents(self.empty_document) Remover([self.empty_document]).remove() checker = RemoveConditionsChecker(self.empty_document) self.assertFalse(checker.removal_allowed()) self.assert_error_messages([u'The document is already removed.'], checker.error_msg)
def test_raises_unauthorized_when_user_does_not_have_remove_permission( self): doc1 = create(Builder('document').trashed()) create_plone_user(self.portal, 'hugo.boss') self.login(user_id='hugo.boss') setRoles(self.portal, 'hugo.boss', ['Member']) transaction.commit() with self.assertRaises(Unauthorized): Remover([doc1]).remove()
def test_changes_state_to_removed_for_all_documents(self): self.login(self.manager) documents = [self.inbox_document, self.empty_document] self.trash_documents(*documents) Remover(documents).remove() self.assertEqual(Document.removed_state, api.content.get_state(obj=self.empty_document)) self.assertEqual(Document.removed_state, api.content.get_state(obj=self.inbox_document))
def setUp(self): super(TestRestoreJournalization, self).setUp() self.login(self.manager) self.trash_documents(self.empty_document, self.mail_eml) Remover([self.empty_document, self.mail_eml]).remove() api.content.transition(obj=self.mail_eml, transition=self.mail_eml.restore_transition) api.content.transition( obj=self.empty_document, transition=self.empty_document.restore_transition)
def test_remove_excerpt_for_adhoc_agendaitem_removes_entry_from_sql_database( self, browser): self.login(self.committee_responsible, browser) agenda_item = self.schedule_ad_hoc(self.meeting, 'Foo') agenda_item.decide() excerpt1 = agenda_item.generate_excerpt('excerpt 1') agenda_item.generate_excerpt('excerpt 2') self.assertEqual( 2, len(agenda_item.get_excerpt_documents(include_trashed=True))) excerpts = Excerpt.query.filter( Excerpt.agenda_item_id == agenda_item.agenda_item_id).all() self.assertEqual(2, len(excerpts)) ITrashable(excerpt1).trash() with elevated_privileges(): Remover([excerpt1]).remove() self.assertEqual( 1, len(agenda_item.get_excerpt_documents(include_trashed=True))) excerpts = Excerpt.query.filter( Excerpt.agenda_item_id == agenda_item.agenda_item_id).all() self.assertEqual(1, len(excerpts))
def remove_objects(self): documents = self.get_selected_documents() Remover(documents).remove()