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
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
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
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))