예제 #1
0
  def setUp(self):
    super(TestPermissionsLoading, self).setUp()
    self.api = Api()
    self.generator = generator.ObjectGenerator()

    self.control_id = factories.ControlFactory().id

    _, user = self.generator.generate_person(user_role="Creator")
    self.api.set_user(user)
예제 #2
0
 def setUp(self):
   converters.TestCase.setUp(self)
   self.client.get("/login")
   self.api_helper = api_helper.Api()
   self.import_file("request_full_no_warnings.csv")
   self.request1 = Request.query.filter_by(slug="Request 1").one()
   self.request3 = Request.query.filter_by(slug="Request 3").one()
   self.generator = generator.ObjectGenerator()
   self.handlers = contributions.contributed_notifications()
예제 #3
0
 def setUp(self):
   super(TestAssessmentDataHandlers, self).setUp()
   self.client.get("/login")
   self.api_helper = api_helper.Api()
   self.import_file("assessment_notifications.csv")
   self.asmt1 = Assessment.query.filter_by(slug="A 1").one()
   self.asmt3 = Assessment.query.filter_by(slug="A 3").one()
   self.generator = generator.ObjectGenerator()
   self.handlers = contributions.contributed_notifications()
예제 #4
0
  def setUp(self):
    # pylint: disable=super-on-old-class
    # pylint seems to get confused, mro chain successfully resolves and returns
    # <type 'object'> as last entry.
    super(TestClonable, self).setUp()

    self.client.get("/login")
    self.generator = generator.Generator()
    self.object_generator = generator.ObjectGenerator()
예제 #5
0
  def setUp(self):
    super(TestPermissionsLoading, self).setUp()
    self.api = Api()
    self.generator = generator.ObjectGenerator()

    _, self.user = self.generator.generate_person(user_role="Creator")
    _, self.user1 = self.generator.generate_person(user_role="Creator")
    self.api.set_user(self.user)
    self.user_id = self.user.id
    self.user1_id = self.user1.id
예제 #6
0
 def setUp(self):
   self.clear_data()
   super(TestAuditActions, self).setUp()
   self.client.get("/login")
   self.gen = generator.ObjectGenerator()
   filename = "program_audit.csv"
   self.import_file(filename)
   self.assertEqual(2, Audit.query.count())
   audit = Audit.query.filter(Audit.slug == "Aud-1").first()
   program = Program.query.filter(Program.slug == "prog-1").first()
   self.assertEqual(audit.program_id, program.id)
예제 #7
0
    def setUp(self):
        """Set up for test cases."""
        from ggrc.fulltext import listeners
        from ggrc.models.background_task import reindex_on_commit

        super(TestTaskqueueIndexing, self).setUp()
        listeners.reindex_on_commit = reindex_on_commit
        self.api = api_helper.Api()
        self.init_taskqueue()
        self.object_generator = generator.ObjectGenerator()
        self._bg_tasks = {}
예제 #8
0
  def setUp(self):
    """Set up for test methods."""
    super(TestBulkIssuesSync, self).setUp()
    self.api = Api()
    self.gen = generator.ObjectGenerator()

    self.role_people = {
        "Audit Captains": factories.PersonFactory(email="*****@*****.**"),
        "Creators": factories.PersonFactory(email="*****@*****.**"),
        "Assignees": factories.PersonFactory(email="*****@*****.**"),
        "Verifiers": factories.PersonFactory(email="*****@*****.**"),
    }
    self.issue_id = "42"
예제 #9
0
    def __init__(self, user_id, acr, parent=None):
        """Set up objects for Assessment permission tests.

    Args:
        user_id: Id of user under which all operations will be run.
        acr: Instance of ACR that should be assigned for tested user.
        parent: Model name in scope of which objects should be set up.
    """
        self.setup_program_scope(user_id, acr, parent)

        self.api = Api()
        self.objgen = generator.ObjectGenerator()
        self.objgen.api = self.api

        if user_id:
            user = all_models.Person.query.get(user_id)
            self.api.set_user(user)
예제 #10
0
 def setUp(self):
     super(TestCADPermissions, self).setUp()
     self.api = Api()
     self.client.get("/login")
     self.definition_type = "control"
     self.generator = generator.ObjectGenerator()
     roles = {r.name: r for r in all_models.Role.query.all()}
     with factories.single_commit():
         self.people = {
             "Creator": factories.PersonFactory(),
             "Reader": factories.PersonFactory(),
             "Editor": factories.PersonFactory(),
             "Administrator": factories.PersonFactory(),
         }
         for role_name in ["Creator", "Reader", "Editor", "Administrator"]:
             rbac_factories.UserRoleFactory(role=roles[role_name],
                                            person=self.people[role_name])
         self.fake_cad = factories.CustomAttributeDefinitionFactory(
             definition_type=self.definition_type)
예제 #11
0
  def __init__(self, user_id, acr, parent=None):
    """Set up objects for permission tests.

    Args:
        user_id: Id of user under which all operations will be run.
        acr: Instance of ACR that should be assigned for tested user.
        parent: Model name in scope of which objects should be set up.
    """
    self.api = Api()
    self.objgen = generator.ObjectGenerator()
    self.objgen.api = self.api

    self.acr = acr
    self.user_id = user_id
    self.parent_name = parent
    self.document_id = None
    self.parent = None
    self.parent_id = None
    self.setup_models(self.parent_name)
    self.set_user(user_id)
예제 #12
0
    def setUp(self):
        """setUp, nothing else to add."""
        super(TestSyncServiceControl, self).setUp()
        self.api = api_helper.Api()
        self.generator = generator.ObjectGenerator()

        self.app_user_email = "*****@*****.**"
        self.ext_user_email = "*****@*****.**"
        self.ext_owner_email = "*****@*****.**"
        self.ext_compliance_email = "*****@*****.**"

        settings.EXTERNAL_APP_USER = self.app_user_email

        custom_headers = {
            'X-GGRC-user': '******' % self.app_user_email,
            'X-external-user': '******' % self.ext_user_email
        }

        self.api.headers.update(custom_headers)
        self.api.client.get("/login", headers=self.api.headers)
예제 #13
0
 def setUp(self):
     super(TestIssueAuditMapping, self).setUp()
     self.generator = generator.ObjectGenerator(fail_no_json=False)
     control = factories.ControlFactory()
     revision = all_models.Revision.query.filter(
         all_models.Revision.resource_type == control.type,
         all_models.Revision.resource_id == control.id,
     ).first()
     with factories.single_commit():
         self.audit = factories.AuditFactory()
         self.snapshot = factories.SnapshotFactory(parent=self.audit,
                                                   revision=revision)
         self.other_audits = [factories.AuditFactory() for _ in range(2)]
         self.issue_mapped = factories.IssueFactory()
         self.issue_unmapped = factories.IssueFactory()
         self.issue_audit_mapping = factories.RelationshipFactory(
             source=self.audit,
             destination=self.issue_mapped,
             context=self.audit.context,
         )
예제 #14
0
  def setUp(self):
    """Setup tests data"""
    super(TestIssueUnmap, self).setUp()
    self.generator = generator.ObjectGenerator(fail_no_json=False)

    # TODO: replace this hack with a special test util
    from ggrc.login import noop
    noop.login()  # this is needed to pass the permission checks in automapper

    with factories.single_commit():
      audit = factories.AuditFactory()
      self.audit_id = audit.id
      assessments = [
          factories.AssessmentFactory(audit=audit) for _ in range(2)
      ]

      controls = [factories.ControlFactory() for _ in range(2)]
      snapshots = self._create_snapshots(audit, controls)
      self.snapshot_ids = [s.id for s in snapshots]

      issue = factories.IssueFactory()
      self.issue_id = issue.id

      factories.RelationshipFactory(source=audit, destination=assessments[0])
      factories.RelationshipFactory(source=audit, destination=assessments[1])
      factories.RelationshipFactory(
          source=assessments[0], destination=snapshots[0]
      )
      factories.RelationshipFactory(
          source=assessments[0], destination=snapshots[1]
      )
      factories.RelationshipFactory(
          source=assessments[1], destination=snapshots[1]
      )
      self.unmap_rel_id1 = factories.RelationshipFactory(
          source=issue, destination=assessments[0]
      ).id
      self.unmap_rel_id2 = factories.RelationshipFactory(
          source=issue, destination=assessments[1]
      ).id
예제 #15
0
    def setUp(self):
        super(TestAssessmentUpdates, self).setUp()
        self.api = ggrc.api_helper.Api()
        self.generator = generator.ObjectGenerator()
        _, program = self.generator.generate_object(all_models.Program)
        program_id = program.id
        _, audit = self.generator.generate_object(
            all_models.Audit,
            {
                "title": "Assessment Updates Audit",
                "program": {
                    "id": program_id
                },
                "status": "Planned"
            },
        )

        with freezegun.freeze_time("2015-04-01 17:13:15"):
            _, assessment = self.generator.generate_object(
                all_models.Assessment, {
                    "title": "Assessment-Comment",
                    "audit": {
                        "id": audit.id,
                        "type": "Audit"
                    },
                    "audit_title": audit.title,
                    "people_value": [],
                    "default_people": {
                        "verifiers": "Admin",
                        "assignees": "Admin",
                    },
                    "context": {
                        "id": audit.context.id
                    },
                })

        self.assessment_id = assessment.id
        self.assessment = all_models.Assessment.query.get(self.assessment_id)
예제 #16
0
파일: audit.py 프로젝트: xuechaos/ggrc-core
  def __init__(self, user_id, acr, parent=None):
    """Set up objects for Audit permission tests.

    Args:
        user_id: Id of user under which all operations will be run.
        acr: Instance of ACR that should be assigned for tested user.
        parent: Model name in scope of which objects should be set up.
    """
    # pylint: disable=unused-argument
    self.setup_program_scope(user_id, acr, "Audit")

    self.api = Api()
    self.objgen = generator.ObjectGenerator()
    self.objgen.api = self.api

    self.admin_control_id = {
        name: id for id, name
        in access_control.role.get_custom_roles_for("Control").items()
    }["Admin"]
    if user_id:
      self.user_id = user_id
      user = all_models.Person.query.get(user_id)
      self.api.set_user(user)
예제 #17
0
    def setUp(self):
        super(TestWithLastCommentAssessment, self).setUp()
        self.client.get("/login")
        self.api = Api()
        self.gen = generator.ObjectGenerator()

        self.asmnt_comments = defaultdict(dict)
        with factories.single_commit():
            for _ in range(3):
                asmnt = factories.AssessmentFactory()
                for _ in range(3):
                    comment = factories.CommentFactory(
                        description=factories.random_str())
                    self.asmnt_comments[asmnt.id][
                        comment.id] = comment.description
                    factories.RelationshipFactory(source=asmnt,
                                                  destination=comment)

        query = all_models.Revision.query.filter_by(resource_type="Comment")
        revision_ids = [revision.id for revision in query]
        self.api.send_request(self.api.client.post,
                              api_link="/admin/compute_attributes",
                              data={"revision_ids": revision_ids})
예제 #18
0
  def setUp(self):
    """Setup tests data"""
    super(TestIssueUnmap, self).setUp()
    self.generator = generator.ObjectGenerator(fail_no_json=False)

    with factories.single_commit():
      audit = factories.AuditFactory()
      self.audit_id = audit.id
      assessments = [
          factories.AssessmentFactory(audit=audit) for _ in range(2)
      ]

      objectives = [factories.ObjectiveFactory() for _ in range(2)]
      snapshots = self._create_snapshots(audit, objectives)
      self.snapshot_ids = [s.id for s in snapshots]

      issue = factories.IssueFactory()
      self.issue_id = issue.id

      factories.RelationshipFactory(source=audit, destination=assessments[0])
      factories.RelationshipFactory(source=audit, destination=assessments[1])
      factories.RelationshipFactory(
          source=assessments[0], destination=snapshots[0]
      )
      factories.RelationshipFactory(
          source=assessments[0], destination=snapshots[1]
      )
      factories.RelationshipFactory(
          source=assessments[1], destination=snapshots[1]
      )
      self.unmap_rel_id1 = factories.RelationshipFactory(
          source=issue, destination=assessments[0]
      ).id
      self.unmap_rel_id2 = factories.RelationshipFactory(
          source=issue, destination=assessments[1]
      ).id
예제 #19
0
 def setUp(self):
     super(TestBasicCsvImport, self).setUp()
     self.generator = generator.ObjectGenerator()
     self.api = api_helper.Api()
     self.client.get("/login")
# Copyright (C) 2017 Google Inc.
# Licensed under http://www.apache.org/licenses/LICENSE-2.0 <see LICENSE file>
"""Integration tests for "preconditions_failed" CAV and CAable fields logic."""

from ggrc.models.assessment import Assessment
from integration.ggrc import TestCase
from integration.ggrc import generator
from integration.ggrc.models import factories

GENERATOR = generator.ObjectGenerator()


# pylint: disable=too-many-instance-attributes
class CustomAttributeMock(object):
    """Defines CustomAttributeDefinition and CustomAttributeValue objects"""

    # pylint: disable=too-many-arguments
    def __init__(self,
                 attributable,
                 attribute_type="Text",
                 mandatory=False,
                 dropdown_parameters=None,
                 global_=False,
                 value=None):
        self.attributable = attributable
        self.attribute_type = attribute_type
        self.mandatory = mandatory
        self.dropdown_parameters = dropdown_parameters
        self.attribute_value = value
        self.global_ = global_
        self.definition = self.make_definition()
예제 #21
0
 def setUp(self):
     super(TestReviewStatusUpdate, self).setUp()
     self.api = Api()
     self.api.client.get("/login")
     self.generator = generator.ObjectGenerator()
예제 #22
0
 def setUp(self):
     super(TestReviewNotification, self).setUp()
     self.client.get("/login")
     self.generator = generator.ObjectGenerator()
     self.api = Api()
예제 #23
0
 def setUp(self):
     super(TestAutomappings, self).setUp()
     self.gen = generator.ObjectGenerator()
     self.api = self.gen.api
    def setUp(self):
        super(TestLastAssessmentDate, self).setUp()
        self.api = Api()
        self.generator = generator.ObjectGenerator()
        self.client.get("/login")
        person = models.Person.query.first()
        admin_control = models.AccessControlRole.query.filter_by(
            name="Admin", object_type="Control").first()
        admin_objective = models.AccessControlRole.query.filter_by(
            name="Admin", object_type="Objective").first()
        with factories.single_commit():
            controls = [
                factories.ControlFactory(slug="Control_{}".format(i),
                                         title="Control_{}".format(i))
                for i in range(5)
            ]
            objectives = [
                factories.ObjectiveFactory(slug="Objective_{}".format(i),
                                           title="Objective_{}".format(i))
                for i in range(2)
            ]

            for obj in itertools.chain(controls, objectives):
                acr = admin_control if obj.type == "Control" else admin_objective
                factories.AccessControlList(object=obj,
                                            person=person,
                                            ac_role=acr)

            audit_0 = factories.AuditFactory(title="Audit_0")
            audit_1 = factories.AuditFactory(title="Audit_1")
            audit_0_snapshots = self._create_snapshots(
                audit_0, controls[:2] + objectives[:1])
            audit_1_snapshots = self._create_snapshots(
                audit_1, controls[1:4] + objectives)
            assessment_0 = factories.AssessmentFactory(title="Assessment_0",
                                                       audit=audit_0)
            assessment_1 = factories.AssessmentFactory(title="Assessment_1",
                                                       audit=audit_1)
            factories.RelationshipFactory(source=assessment_0,
                                          destination=audit_0)
            factories.RelationshipFactory(source=audit_1,
                                          destination=assessment_1)

            # Audit 0 assessment mappings:
            factories.RelationshipFactory(
                source=assessment_0,
                destination=audit_0_snapshots[1],  # snapshot of control_1
            )
            factories.RelationshipFactory(
                source=assessment_0,
                destination=audit_0_snapshots[2],  # snapshot of objective_0
            )
            # Audit 1 assessment mappings:
            factories.RelationshipFactory(
                source=audit_1_snapshots[0],  # snapshot of control_1
                destination=assessment_1,
            )
            factories.RelationshipFactory(
                source=assessment_1,
                destination=audit_1_snapshots[1],  # snapshot of control_2
            )
            factories.RelationshipFactory(
                source=assessment_1,
                destination=audit_1_snapshots[3],  # snapshot of objective_0
            )
            factories.RelationshipFactory(
                source=audit_1_snapshots[4],  # snapshot of objective_1
                destination=assessment_1,
            )
예제 #25
0
 def setUp(self):
     self.clear_data()
     super(TestSnapshotIndexing, self).setUp()
     self.generator = generator.ObjectGenerator()
     self.client.get("/login")
예제 #26
0
 def setUp(self):
     super(TestMetric, self).setUp()
     self.gen = generator.ObjectGenerator()
예제 #27
0
 def setUp(self):
   super(TestAssignableNotificationUsingAPI, self).setUp()
   self.api_helper = api_helper.Api()
   self.objgen = generator.ObjectGenerator()
예제 #28
0
 def setUp(self):
     super(TestCloneWorkflow, self).setUp()
     self.object_generator = generator.ObjectGenerator()
예제 #29
0
 def setUp(self):
     super(TestCommentNotification, self).setUp()
     self.client.get("/login")
     self._fix_notification_init()
     self.generator = generator.ObjectGenerator()
예제 #30
0
 def setUp(self):
     """Setup test case."""
     super(TestCommentAdmin, self).setUp()
     self.response = self.client.get("/login")
     self.generator = generator.ObjectGenerator()