Ejemplo n.º 1
0
  def _create_cycle_structure():
    """Create cycle structure.

    It will create workflow, cycle, group and 3 tasks in that group.

    Retruns tuple:
        workflow, cycle, group and list of tasks.
    """
    workflow = wf_factories.WorkflowFactory(
        status=all_models.Workflow.ACTIVE)
    cycle = wf_factories.CycleFactory(workflow=workflow)
    group = wf_factories.CycleTaskGroupFactory(
        cycle=cycle,
        context=cycle.workflow.context
    )
    tasks = []
    for ind in xrange(3):
      tasks.append(wf_factories.CycleTaskFactory(
          title='task{}'.format(ind),
          cycle=cycle,
          cycle_task_group=group,
          context=cycle.workflow.context,
          start_date=datetime.datetime.now(),
          end_date=datetime.datetime.now() + datetime.timedelta(7)
      ))
    return workflow, cycle, group, tasks
Ejemplo n.º 2
0
    def test_cycle_task_model(self, model_name):
        """Test Relationship POST for CycleTask<->{0}.

    Args:
        model_name: Non-Relatable model with which we are trying to create
            Relationship.
    """
        with factories.single_commit():
            workflow = wf_factories.WorkflowFactory()
            cycle = wf_factories.CycleFactory(workflow=workflow)
            cycle_task_group = wf_factories.CycleTaskGroupFactory(cycle=cycle)
            task_group = wf_factories.TaskGroupFactory(workflow=workflow)
            task_group_task = wf_factories.TaskGroupTaskFactory(
                task_group=task_group)
            wf_factories.CycleTaskFactory(cycle=cycle,
                                          cycle_task_group=cycle_task_group,
                                          task_group_task=task_group_task)

        cycle_task = all_models.CycleTaskGroupObjectTask.query.one()
        instance = getattr(all_models, model_name).query.one()
        data_ct_src = relationship_api.get_relationship_post_dict(
            cycle_task, instance)
        data_ct_dst = relationship_api.get_relationship_post_dict(
            instance, cycle_task)

        response = self.api_helper.post(all_models.Relationship, data_ct_src)
        self.assertEqual(response.status_code, 201)

        response = self.api_helper.post(all_models.Relationship, data_ct_dst)
        self.assertEqual(response.status_code, 201)
 def generate_tasks_for_cycle(task_count):
   """generate number of task groups and task for current task group"""
   results = []
   with ggrc_factories.single_commit():
     for idx in range(task_count):
       person = ggrc_factories.PersonFactory(
           name="user for group {}".format(idx)
       )
       task = factories.CycleTaskFactory()
       role = all_models.AccessControlRole.query.filter(
           all_models.AccessControlRole.name == "Task Assignees",
           all_models.AccessControlRole.object_type == task.type,
       ).one()
       ggrc_factories.AccessControlListFactory(
           ac_role=role, object=task, person=person)
       results.append(task.id)
   return results
Ejemplo n.º 4
0
    def generate_tasks_for_cycle(cycle_count, task_count):
        """generate seceted number of cycles and tasks"""
        role_names = ("Task Assignees", "Task Secondary Assignees")
        results = {}
        with ggrc_factories.single_commit():
            for _ in range(cycle_count):
                workflow = factories.WorkflowFactory()
                cycle = factories.CycleFactory(workflow=workflow, )
                cycle.contact = ggrc_factories.PersonFactory(
                    name="user for cycle {}".format(cycle.id))
                person = ggrc_factories.PersonFactory(
                    name="user for cycle tasks {}".format(cycle.id))
                task_group = factories.TaskGroupFactory(workflow=workflow)
                for _ in range(task_count):
                    task_group_task = factories.TaskGroupTaskFactory(
                        task_group=task_group)
                    for r_name in role_names:
                        role = all_models.AccessControlRole.query.filter(
                            all_models.AccessControlRole.name == r_name,
                            all_models.AccessControlRole.object_type ==
                            task_group_task.type,
                        ).one()
                        ggrc_factories.AccessControlListFactory(
                            ac_role=role,
                            object=task_group_task,
                            person=person)
                    cycle_task_group = factories.CycleTaskGroupFactory(
                        cycle=cycle, contact=person)

                    task = factories.CycleTaskFactory(
                        cycle=cycle,
                        cycle_task_group=cycle_task_group,
                        task_group_task=task_group_task)
                    for r_name in role_names:
                        role = all_models.AccessControlRole.query.filter(
                            all_models.AccessControlRole.name == r_name,
                            all_models.AccessControlRole.object_type ==
                            task.type,
                        ).one()
                        ggrc_factories.AccessControlListFactory(ac_role=role,
                                                                object=task,
                                                                person=person)
                    results[task.id] = cycle.slug
        return results
 def generate_tasks_for_cycle(group_count, task_count):
     """generate number of task groups and task for current task group"""
     results = {}
     workflow = factories.WorkflowFactory()
     cycle = factories.CycleFactory(workflow=workflow)
     task_group = factories.TaskGroupFactory(workflow=workflow)
     for idx in range(group_count):
         person = PersonFactory(name="user for group {}".format(idx))
         cycle_task_group = factories.CycleTaskGroupFactory(cycle=cycle,
                                                            contact=person)
         for _ in range(task_count):
             task_group_task = factories.TaskGroupTaskFactory(
                 task_group=task_group, contact=person)
             task = factories.CycleTaskFactory(
                 cycle=cycle,
                 cycle_task_group=cycle_task_group,
                 contact=person,
                 task_group_task=task_group_task)
             results[task.id] = cycle_task_group.slug
     return results
Ejemplo n.º 6
0
 def setUp(self):
     super(TestStatusApiPatch, self).setUp()
     self.api = Api()
     with factories.single_commit():
         self.assignee = factories.PersonFactory(
             email="*****@*****.**")
         self.workflow = wf_factories.WorkflowFactory()
         self.cycle = wf_factories.CycleFactory(workflow=self.workflow)
         self.group = wf_factories.CycleTaskGroupFactory(
             cycle=self.cycle, context=self.cycle.workflow.context)
         self.tasks = []
         for ind in xrange(3):
             self.tasks.append(
                 wf_factories.CycleTaskFactory(
                     title='task{}'.format(ind),
                     cycle=self.cycle,
                     cycle_task_group=self.group,
                     context=self.cycle.workflow.context))
     # Emulate that current user is assignee for all test CycleTasks.
     all_models.CycleTaskGroupObjectTask.current_user_wfo_or_assignee = (
         MagicMock(return_value=True))