Ejemplo n.º 1
0
 def test_TaskUtilsMethods_can_do_transition1(self):
     task = get_object(oid='courrier1', ptype='dmsincomingmail')['tache1']
     api.content.transition(task, transition='do_to_assign')
     self.assertEqual(api.content.get_state(task), 'to_do')
     view = TaskUtilsMethods(task, task.REQUEST)
     setRoles(self.portal, TEST_USER_ID, ['Editor', 'Reviewer'])
     # no assigned_group: NOK
     task.assigned_group = None
     self.assertFalse(view.can_do_transition('back_in_created2'))
     self.assertFalse(view.can_do_transition('back_in_to_assign'))
     # ag ok, no user in group
     task.assigned_group = get_registry_organizations()[0]
     groupname = '{}_n_plus_1'.format(task.assigned_group)
     self.assertFalse(group_has_user(groupname))
     self.assertTrue(view.can_do_transition('back_in_created2'))
     self.assertFalse(view.can_do_transition('back_in_to_assign'))
     # ag ok, user in group
     api.group.add_user(groupname=groupname, username='******')
     self.assertTrue(group_has_user(groupname))
     self.assertFalse(view.can_do_transition('back_in_created2'))
     self.assertTrue(view.can_do_transition('back_in_to_assign'))
     # we do transition
     api.content.transition(task, transition='back_in_to_assign')
     api.content.transition(task, transition='back_in_created')
     api.content.transition(task, transition='do_to_assign')
     self.assertEqual(api.content.get_state(task), 'to_assign')
Ejemplo n.º 2
0
 def test_OdmUtilsMethods_can_do_transition1(self):
     # self.assertEqual(api.content.get_state(self.omail), 'created')
     view = OdmUtilsMethods(self.omail, self.omail.REQUEST)
     setRoles(self.portal, TEST_USER_ID, ['Reviewer', 'Manager'])
     # no treating_groups: NOK
     self.assertIsNone(self.omail.treating_groups)
     self.assertFalse(view.can_do_transition('propose_to_n_plus_1'))
     self.assertFalse(view.can_do_transition('back_to_n_plus_1'))
     # tg ok, no user in group
     self.omail.treating_groups = get_registry_organizations()[0]
     groupname = '{}_n_plus_1'.format(self.omail.treating_groups)
     api.group.remove_user(groupname=groupname, username='******')
     self.assertFalse(group_has_user(groupname))
     self.assertFalse(view.can_do_transition('propose_to_n_plus_1'))
     # tg ok, user in group
     api.group.add_user(groupname=groupname, username='******')
     self.assertTrue(group_has_user(groupname))
     self.assertTrue(view.can_do_transition('propose_to_n_plus_1'))
     # we do transition
     api.content.transition(self.omail, transition='propose_to_n_plus_1')
     createContentInContainer(
         self.omail,
         'dmsommainfile')  # add a file so it's possible to do transition
     api.content.transition(self.omail, transition='propose_to_be_signed')
     self.assertEqual(api.content.get_state(self.omail), 'to_be_signed')
     # tg ok, user in group
     self.assertTrue(view.can_do_transition('back_to_n_plus_1'))
     # tg ok, no user in group
     api.group.remove_user(groupname=groupname, username='******')
     self.assertFalse(group_has_user(groupname))
     self.assertFalse(view.can_do_transition('back_to_n_plus_1'))
Ejemplo n.º 3
0
 def setUp(self):
     self.portal = self.layer['portal']
     setRoles(self.portal, TEST_USER_ID, ['Manager'])
     self.pw = self.portal.portal_workflow
     self.tw = self.pw['task_workflow']
     self.portal.portal_setup.runImportStepFromProfile(
         'profile-imio.dms.mail:singles',
         'imiodmsmail-task_n_plus_1_wfadaptation',
         run_dependencies=False)
     for uid in get_registry_organizations():
         groupname = "%s_n_plus_1" % uid
         if group_has_user(groupname):
             api.group.remove_user(groupname=groupname, username='******')
Ejemplo n.º 4
0
 def test_group_has_user(self):
     self.assertFalse(group_has_user('xxx', 'delete'))
     self.assertFalse(group_has_user('xxx'))  # group not found
     self.assertFalse(group_has_user('abc_group_encoder'))  # no user
     self.assertTrue(group_has_user('abc_group_encoder',
                                    'add'))  # we are adding a user
     api.group.add_user(groupname='abc_group_encoder', username='******')
     self.assertTrue(
         group_has_user('abc_group_encoder'))  # group has one user
     self.assertFalse(
         group_has_user('abc_group_encoder',
                        'remove'))  # we are removing the only one user
Ejemplo n.º 5
0
 def common_tests(self):
     # check workflow
     self.assertSetEqual(
         set(self.omw.states), {
             'created', 'scanned', 'proposed_to_n_plus_1', 'to_print',
             'to_be_signed', 'sent'
         })
     self.assertSetEqual(
         set(self.omw.transitions), {
             'back_to_creation', 'back_to_agent', 'back_to_scanned',
             'back_to_n_plus_1', 'back_to_print', 'back_to_be_signed',
             'set_scanned', 'propose_to_n_plus_1', 'set_to_print',
             'propose_to_be_signed', 'mark_as_sent'
         })
     self.assertSetEqual(
         set(self.omw.states['created'].transitions), {
             'set_scanned', 'propose_to_n_plus_1', 'set_to_print',
             'propose_to_be_signed', 'mark_as_sent'
         })
     self.assertSetEqual(set(self.omw.states['scanned'].transitions),
                         {'back_to_agent', 'mark_as_sent'})
     self.assertSetEqual(
         set(self.omw.states['proposed_to_n_plus_1'].transitions), {
             'back_to_creation', 'set_to_print', 'propose_to_be_signed',
             'mark_as_sent'
         })
     self.assertSetEqual(
         set(self.omw.states['to_print'].transitions),
         {'back_to_creation', 'back_to_n_plus_1', 'propose_to_be_signed'})
     self.assertSetEqual(
         set(self.omw.states['to_be_signed'].transitions), {
             'back_to_creation', 'back_to_n_plus_1', 'back_to_print',
             'mark_as_sent'
         })
     self.assertSetEqual(
         set(self.omw.states['sent'].transitions), {
             'back_to_be_signed', 'back_to_scanned', 'back_to_creation',
             'back_to_n_plus_1'
         })
     # check collection position
     folder = self.portal['outgoing-mail']['mail-searches']
     self.assertEqual(folder.getObjectPosition('searchfor_to_be_signed'),
                      11)
     self.assertEqual(folder.getObjectPosition('searchfor_to_print'), 10)
     self.assertEqual(
         folder.getObjectPosition('searchfor_proposed_to_n_plus_1'), 9)
     res = [
         dic['v'] for dic in folder['om_treating'].query
         if dic['i'] == 'review_state'
     ][0]
     self.assertIn('to_print', res)
     self.assertIn('proposed_to_n_plus_1', res)
     # check dms config
     view = OdmUtilsMethods(self.omail, self.omail.REQUEST)
     setRoles(self.portal, TEST_USER_ID, ['Reviewer', 'Manager'])
     # no treating_groups: NOK
     self.assertIsNone(self.omail.treating_groups)
     self.assertFalse(view.can_do_transition('propose_to_n_plus_1'))
     self.assertFalse(view.can_do_transition('back_to_n_plus_1'))
     # tg ok, no user in group
     self.omail.treating_groups = get_registry_organizations()[0]
     groupname = '{}_n_plus_1'.format(self.omail.treating_groups)
     api.group.remove_user(groupname=groupname, username='******')
     self.assertFalse(group_has_user(groupname))
     self.assertFalse(view.can_do_transition('propose_to_n_plus_1'))
     # tg ok, user in group
     api.group.add_user(groupname=groupname, username='******')
     self.assertTrue(group_has_user(groupname))
     self.assertTrue(view.can_do_transition('propose_to_n_plus_1'))
     # we do transition
     api.content.transition(self.omail, transition='propose_to_n_plus_1')
     createContentInContainer(
         self.omail,
         'dmsommainfile')  # add a file so it's possible to do transition
     api.content.transition(self.omail, transition='set_to_print')
     self.assertEqual(api.content.get_state(self.omail), 'to_print')
     # tg ok, user in group
     self.assertTrue(view.can_do_transition('back_to_n_plus_1'))
     # tg ok, no user in group
     api.group.remove_user(groupname=groupname, username='******')
     self.assertFalse(group_has_user(groupname))
     self.assertFalse(view.can_do_transition('back_to_n_plus_1'))
Ejemplo n.º 6
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'))