Пример #1
0
 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'))
Пример #2
0
 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())
Пример #3
0
 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'))