def test_IdmUtilsMethods_can_do_transition0(self): imail = sub_create(self.portal['incoming-mail'], 'dmsincomingmail', datetime.now(), 'my-id') self.assertEqual(api.content.get_state(imail), 'created') view = IdmUtilsMethods(imail, imail.REQUEST) # no treating_group nor title: NOK self.assertFalse(view.can_do_transition('propose_to_agent')) imail.title = u'test' # tg ok, state ok, assigner_user nok but auc ok: OK imail.treating_groups = get_registry_organizations()[0] self.assertTrue(view.can_do_transition('propose_to_agent')) # tg ok, state ok, assigner_user nok, auc nok: NOK setRoles(self.portal, TEST_USER_ID, ['Reviewer']) api.portal.set_registry_record(AUC_RECORD, 'mandatory') self.assertFalse(view.can_do_transition('propose_to_agent')) # tg ok, state ok, assigner_user nok, auc ok: OK api.portal.set_registry_record(AUC_RECORD, 'no_check') self.assertTrue(view.can_do_transition('propose_to_agent')) # tg ok, state ok, assigner_user ok, auc nok: OK imail.assigned_user = '******' api.portal.set_registry_record(AUC_RECORD, 'mandatory') self.assertTrue(view.can_do_transition('propose_to_agent')) # WE DO TRANSITION api.content.transition(imail, 'propose_to_agent') self.assertEqual(api.content.get_state(imail), 'proposed_to_agent') # tg ok, state ok, (assigner_user nok, auc nok): OK imail.assigned_user = None self.assertTrue(view.can_do_transition('back_to_creation')) self.assertTrue(view.can_do_transition('back_to_manager')) self.assertFalse(view.can_do_transition('unknown'))
def test_IdmUtilsMethods_can_close(self): imail = sub_create(self.portal['incoming-mail'], 'dmsincomingmail', datetime.now(), 'my-id', **{'title': u'test'}) self.assertEqual(api.content.get_state(imail), 'created') view = IdmUtilsMethods(imail, imail.REQUEST) imail.treating_groups = get_registry_organizations()[ 0] # direction-generale self.assertTrue(view.can_do_transition('propose_to_agent')) api.content.transition(imail, 'propose_to_agent') login(self.portal, 'agent') self.assertIsNone(imail.sender) self.assertIsNone(imail.mail_type) self.assertFalse(view.can_close()) intids = getUtility(IIntIds) imail.sender = [ RelationValue(intids.getId(self.portal.contacts['electrabel'])) ] imail.mail_type = u'courrier' self.assertFalse( view.can_close()) # not part of treating group editors api.group.add_user(groupname='{}_editeur'.format( imail.treating_groups), username='******') self.assertTrue(view.can_close())
def test_IdmUtilsMethods_can_do_transition2(self): # imail = createContentInContainer(self.portal['incoming-mail'], 'dmsincomingmail') # creation is made earlier otherwise wf_from_to['to'] is again at default value ?????????????? self.assertEqual(api.content.get_state(self.imail), 'created') view = IdmUtilsMethods(self.imail, self.imail.REQUEST) setRoles(self.portal, TEST_USER_ID, ['Reviewer']) # no treating_group: NOK self.assertFalse(view.can_do_transition('propose_to_agent')) # tg ok, following states self.imail.treating_groups = get_registry_organizations()[0] api.portal.set_registry_record(AUC_RECORD, 'no_check') self.assertTrue(view.can_do_transition('propose_to_n_plus_2')) self.assertFalse(view.can_do_transition('propose_to_n_plus_1')) self.assertFalse(view.can_do_transition('propose_to_agent')) # tg ok, following states: no more n_plus_ user groupname2 = '{}_n_plus_2'.format(self.imail.treating_groups) api.group.remove_user(groupname=groupname2, username='******') self.assertFalse(group_has_user(groupname2)) self.assertFalse(view.can_do_transition('propose_to_n_plus_2')) self.assertTrue(view.can_do_transition('propose_to_n_plus_1')) self.assertFalse(view.can_do_transition('propose_to_agent')) groupname1 = '{}_n_plus_1'.format(self.imail.treating_groups) api.group.remove_user(groupname=groupname1, username='******') self.assertFalse(group_has_user(groupname1)) self.assertFalse(view.can_do_transition('propose_to_n_plus_2')) self.assertFalse(view.can_do_transition('propose_to_n_plus_1')) self.assertTrue(view.can_do_transition('propose_to_agent')) # tg ok, assigner_user nok, auc ok api.portal.set_registry_record(AUC_RECORD, 'n_plus_1') self.assertFalse( view.can_do_transition('propose_to_n_plus_1')) # no user self.assertTrue(view.can_do_transition( 'propose_to_agent')) # ok because no n+1 level # tg ok, assigner_user nok, auc nok api.portal.set_registry_record(AUC_RECORD, 'mandatory') self.assertFalse(view.can_do_transition('propose_to_agent')) # tg ok, state ok, assigner_user ok, auc nok self.imail.assigned_user = '******' self.assertTrue(view.can_do_transition('propose_to_agent')) # WE DO TRANSITION api.group.add_user(groupname=groupname2, username='******') api.content.transition(self.imail, 'propose_to_n_plus_2') self.assertEqual(api.content.get_state(self.imail), 'proposed_to_n_plus_2') # tg ok, state ok, assigner_user nok, auc nok self.imail.assigned_user = None self.assertFalse(view.can_do_transition('propose_to_n_plus_1')) self.assertFalse(view.can_do_transition('propose_to_agent')) self.assertTrue(view.can_do_transition('back_to_creation')) self.assertTrue(view.can_do_transition('back_to_manager')) # WE DO TRANSITION api.group.add_user(groupname=groupname1, username='******') api.content.transition(self.imail, 'propose_to_n_plus_1') self.assertEqual(api.content.get_state(self.imail), 'proposed_to_n_plus_1') self.assertFalse(view.can_do_transition('propose_to_agent')) self.assertTrue(view.can_do_transition('back_to_n_plus_2')) self.assertFalse(view.can_do_transition('back_to_creation')) self.assertFalse(view.can_do_transition('back_to_manager')) # we remove n+2 users api.group.remove_user(groupname=groupname2, username='******') self.assertFalse(view.can_do_transition('back_to_n_plus_2')) self.assertTrue(view.can_do_transition('back_to_creation')) self.assertTrue(view.can_do_transition('back_to_manager')) # WE DO TRANSITION self.imail.assigned_user = '******' api.content.transition(self.imail, 'propose_to_agent') self.assertEqual(api.content.get_state(self.imail), 'proposed_to_agent') self.assertTrue(view.can_do_transition('back_to_n_plus_1')) self.assertFalse(view.can_do_transition('back_to_n_plus_2')) self.assertFalse(view.can_do_transition('back_to_creation')) self.assertFalse(view.can_do_transition('back_to_manager')) # we remove n+1 users api.group.remove_user(groupname=groupname1, username='******') api.group.add_user(groupname=groupname2, username='******') self.assertTrue(view.can_do_transition('back_to_n_plus_2')) self.assertFalse(view.can_do_transition('back_to_n_plus_1')) self.assertFalse(view.can_do_transition('back_to_creation')) self.assertFalse(view.can_do_transition('back_to_manager'))