예제 #1
0
 def test_filter_by_task_comment(self):
     """Test filter by comment"""
     task_id = self.generate_tasks_for_cycle(4)[0]
     comment_text = "123"
     task = CycleTaskGroupObjectTask.query.filter(
         CycleTaskGroupObjectTask.id == task_id).one()
     factories.CycleTaskEntryFactory(
         cycle_task_group_object_task=task,
         description=comment_text,
     )
     self.assertSlugs("task comment", comment_text, [task.slug])
예제 #2
0
    def test_get_cte_g_reader_no_role(self):
        """GET CycleTaskEntry collection logged in as GlobalReader & No Role."""
        with factories.single_commit():
            wf_factories.CycleTaskEntryFactory()
            self.setup_helper.setup_person(rbac_helper.GR_RNAME, "No Role")

        g_reader = self.setup_helper.get_person(rbac_helper.GR_RNAME,
                                                "No Role")
        self.api_helper.set_user(g_reader)

        comment = all_models.CycleTaskEntry.query.one()
        response = self.api_helper.get_collection(comment, (comment.id, ))
        self.assertTrue(response.json["cycle_task_entries_collection"]
                        ["cycle_task_entries"])
    def test_filter_by_task_comment(self, cycle_count, task_count):
        """Test filter groups by task comments."""
        task_cycle_filter = self.generate_tasks_for_cycle(
            cycle_count, task_count)
        filter_params = {}
        for task_id, slug in task_cycle_filter.iteritems():
            task = CycleTaskGroupObjectTask.query.filter(
                CycleTaskGroupObjectTask.id == task_id).one()
            comment = "comment for task # {}".format(task_id)
            factories.CycleTaskEntryFactory(
                cycle_task_group_object_task=task,
                description=comment,
            )
            filter_params[comment] = slug

        for comment, slug in filter_params.iteritems():
            self.assert_slugs("task comments", comment, [slug])
예제 #4
0
  def test_comment_cascade_deletion_on_cycle_task_delete(self):  # noqa pylint: disable=invalid-name
    """Test comment cascade deletion on CycleTask delete."""
    ctask = all_models.CycleTaskGroupObjectTask.query.first()
    ctask_id = ctask.id
    wf_factories.CycleTaskEntryFactory(
        cycle=ctask.cycle,
        cycle_task_group_object_task=ctask,
        description="Cycle task comment",
    )
    self.assertEqual(all_models.CycleTaskEntry.query.count(), 1)

    user = all_models.Person.query.filter_by(email=self.WORKFLOW_ADMIN).one()
    self.api.set_user(user)

    response = self.api.delete(
        all_models.CycleTaskGroupObjectTask.query.get(ctask_id))
    self.assert200(response)

    self.assertEqual(all_models.CycleTaskGroupObjectTask.query.filter_by(
        id=ctask_id).count(), 0)
    self.assertEqual(all_models.CycleTaskEntry.query.count(), 0)
 def _create_propagation_acl_test_data(self):  # noqa pylint: disable=invalid-name
     """Create objects for Workflow ACL propagation test."""
     with freezegun.freeze_time("2017-08-9"):
         with factories.single_commit():
             workflow = wf_factories.WorkflowFactory(
                 title='wf1',
                 unit=all_models.Workflow.WEEK_UNIT,
                 is_verification_needed=True,
                 repeat_every=1)
             wf_factories.TaskGroupTaskFactory(
                 title='tgt1',
                 task_group=wf_factories.TaskGroupFactory(
                     title='tg1',
                     context=factories.ContextFactory(),
                     workflow=workflow),
                 # One cycle should be created
                 start_date=datetime.date(2017, 8, 3),
                 end_date=datetime.date(2017, 8, 7))
         self.generator.activate_workflow(workflow)
         cycle = all_models.Cycle.query.one()
         cycle_task = all_models.CycleTaskGroupObjectTask.query.one()
         wf_factories.CycleTaskEntryFactory(
             cycle=cycle,
             cycle_task_group_object_task=cycle_task,
             description="Cycle task comment",
         )
         workflow = all_models.Workflow.query.one()
         acl_map = {
             self.people_ids[0]: WF_ROLES['Admin'],
             self.people_ids[1]: WF_ROLES['Workflow Member'],
             self.people_ids[2]: WF_ROLES['Workflow Member'],
         }
         put_params = {
             'access_control_list': acl_helper.get_acl_list(acl_map)
         }
         response = self.api.put(workflow, put_params)
         self.assert200(response)