コード例 #1
0
ファイル: test_asmts_workflow.py プロジェクト: zdqf/ggrc-core
 def test_related_asmts_in_different_audits_mapped_to_mapped_controls(
         self, program, selenium):
     """Objects structure:
 Program
 -> Control-1
 -> Control-2
 Control-1 and Control-2 are mapped.
 -> Audit-1 -> Asmt-1 mapped to Control-1
 -> Audit-2 -> Asmt-2 mapped to Control-2
 As a result, assessments are related."""
     controls = [rest_facade.create_control(program) for _ in xrange(2)]
     rest_facade.map_objs(controls[0], controls[1])
     audits = [rest_facade.create_audit(program) for _ in xrange(2)]
     assessments = [
         _create_mapped_asmt(audit=audit,
                             assessment_type="Control",
                             objs_to_map=[control])
         for control, audit in zip(controls, audits)
     ]
     related_asmts_titles = [(assessments[1].title, controls[1].title,
                              audits[1].title)]
     self._assert_asmt_with_related_asmts(
         checked_asmt=assessments[0],
         related_asmts_titles=related_asmts_titles,
         selenium=selenium)
コード例 #2
0
 def test_data(self, control_reader_role, selenium):
     """Create 2 GC users.
 GC 1 creates Control and adds GC 2 as a control reader.
 """
     if not TestProposals._data:
         control_creator = rest_facade.create_user_with_role(roles.CREATOR)
         proposal_creator = rest_facade.create_user_with_role(roles.CREATOR)
         global_reader = rest_facade.create_user_with_role(roles.READER)
         users.set_current_user(control_creator)
         control_custom_roles = [
             (control_reader_role.name, control_reader_role.id,
              [proposal_creator])
         ]
         control = rest_facade.create_control(
             custom_roles=control_custom_roles)
         users.set_current_user(proposal_creator)
         proposal = proposal_ui_facade.create_proposal(selenium, control)
         users.set_current_user(control_creator)
         proposal.datetime = (proposal_rest_service.ProposalsService().
                              get_proposal_creation_date(control, proposal))
         users.set_current_user(global_reader)
         proposal_from_gr = proposal_ui_facade.create_proposal(
             selenium, control)
         proposal_from_gr.datetime = (
             proposal_rest_service.ProposalsService(
             ).get_proposal_creation_date(control, proposal_from_gr))
         TestProposals._data = {
             "control_creator": control_creator,
             "proposal_creator": proposal_creator,
             "global_reader": global_reader,
             "control": control,
             "proposal": proposal,
             "proposal_from_gr": proposal_from_gr
         }
     return TestProposals._data
コード例 #3
0
ファイル: test_rbac.py プロジェクト: egorhm/ggrc-core
 def test_object_creation(self, role, selenium):
   """Test that users with all global roles can create, then edit and delete
   objects.
   """
   user = rest_facade.create_user_with_role(role_name=role)
   users.set_current_user(user)
   objs = [rest_facade.create_program(), rest_facade.create_control()]
   for obj in objs:
     webui_facade.assert_can_edit(selenium, obj, can_edit=True)
     webui_facade.assert_can_delete(selenium, obj, can_delete=True)
コード例 #4
0
 def test_object_creation(self, role, selenium):
     """Test that users with all global roles can create, then edit and delete
 objects.
 """
     user = rest_facade.create_user_with_role(role_name=role)
     users.set_current_user(user)
     objs = [rest_facade.create_program(), rest_facade.create_control()]
     for obj in objs:
         webui_facade.assert_can_edit(selenium, obj, can_edit=True)
         webui_facade.assert_can_delete(selenium, obj, can_delete=True)
コード例 #5
0
ファイル: test_rbac.py プロジェクト: egorhm/ggrc-core
 def test_data(self):
   """Objects structure:
   Program
   -> Control
   -> Audit (Auditor is a user with global creator role)
   """
   editor = rest_facade.create_user_with_role(roles.EDITOR)
   creator = rest_facade.create_user_with_role(roles.CREATOR)
   users.set_current_user(editor)
   program = rest_facade.create_program()
   control = rest_facade.create_control(program=program)
   audit = rest_facade.create_audit(program, auditors=[creator])
   return {
       "editor": editor,
       "creator": creator,
       "program": program,
       "audit": audit,
       "control": control
   }
コード例 #6
0
 def test_data(self):
     """Objects structure:
 Program
 -> Control
 -> Audit (Auditor is a user with global creator role)
 """
     editor = rest_facade.create_user_with_role(roles.EDITOR)
     creator = rest_facade.create_user_with_role(roles.CREATOR)
     users.set_current_user(editor)
     program = rest_facade.create_program()
     control = rest_facade.create_control(program=program)
     audit = rest_facade.create_audit(program, auditors=[creator])
     return {
         "editor": editor,
         "creator": creator,
         "program": program,
         "audit": audit,
         "control": control
     }
コード例 #7
0
ファイル: test_rbac.py プロジェクト: inesp/ggrc-core
 def test_permissions(
     self, users_with_all_roles, login_role, can_view, can_edit, selenium
 ):  # pylint: disable=too-many-arguments
   """Test that users have permissions to objects created by other users
   according to their global role.
   """
   objs = []
   other_roles = [role for role in self.ALL_ROLES if role != login_role]
   for role in other_roles:
     users.set_current_user(users_with_all_roles[role])
     program = rest_facade.create_program()
     control = rest_facade.create_control(program)
     objs.extend([program, control])
   users.set_current_user(users_with_all_roles[login_role])
   for obj in objs:
     if can_view:
       webui_facade.assert_can_view(selenium, obj)
       webui_facade.assert_can_edit(selenium, obj, can_edit=can_edit)
       webui_facade.assert_can_delete(selenium, obj, can_delete=can_edit)
     else:
       webui_facade.assert_cannot_view(selenium, obj)
コード例 #8
0
ファイル: test_rbac.py プロジェクト: egorhm/ggrc-core
 def test_permissions(
     self, users_with_all_roles, login_role, can_view, can_edit, selenium
 ):  # pylint: disable=too-many-arguments
   """Test that users have permissions to objects created by other users
   according to their global role.
   """
   objs = []
   other_roles = [role for role in self.ALL_ROLES if role != login_role]
   for role in other_roles:
     users.set_current_user(users_with_all_roles[role])
     program = rest_facade.create_program()
     control = rest_facade.create_control(program)
     objs.extend([program, control])
   users.set_current_user(users_with_all_roles[login_role])
   for obj in objs:
     if can_view:
       webui_facade.assert_can_view(selenium, obj)
       webui_facade.assert_can_edit(selenium, obj, can_edit=can_edit)
       webui_facade.assert_can_delete(selenium, obj, can_delete=can_edit)
     else:
       webui_facade.assert_cannot_view(selenium, obj)
コード例 #9
0
 def test_related_asmts_in_different_audits_mapped_to_mapped_controls(
     self, program, selenium
 ):
   """Objects structure:
   Program
   -> Control-1
   -> Control-2
   Control-1 and Control-2 are mapped.
   -> Audit-1 -> Asmt-1 mapped to Control-1
   -> Audit-2 -> Asmt-2 mapped to Control-2
   As a result, assessments are related."""
   controls = [rest_facade.create_control(program) for _ in xrange(2)]
   rest_facade.map_objs(controls[0], controls[1])
   audits = [rest_facade.create_audit(program) for _ in xrange(2)]
   assessments = [_create_mapped_asmt(
       audit=audit, assessment_type="Control", objs_to_map=[control])
       for control, audit in zip(controls, audits)]
   related_asmts_titles = [
       (assessments[1].title, controls[1].title, audits[1].title)]
   self._assert_asmt_with_related_asmts(
       checked_asmt=assessments[0],
       related_asmts_titles=related_asmts_titles,
       selenium=selenium)
コード例 #10
0
ファイル: conftest.py プロジェクト: rkottakota/ggrc-core
def product_mapped_to_control(product):
    """Creates a product mapped to control."""
    control = rest_facade.create_control()
    rest_facade.map_objs(product, control)
    return product
コード例 #11
0
def control_mapped_to_program(program):
    """Create a control mapped to the program"""
    return rest_facade.create_control(program)
コード例 #12
0
def controls_mapped_to_program(program):
    """Create 2 controls mapped to the program"""
    return [rest_facade.create_control(program) for _ in xrange(2)]
コード例 #13
0
def control_mapped_to_program(program):
  """Create a control mapped to the program"""
  control = rest_facade.create_control()
  rest_facade.map_objs(program, control)
  return control
コード例 #14
0
def controls():
  """Create 2 controls."""
  return [rest_facade.create_control() for _ in xrange(2)]
コード例 #15
0
def controls_mapped_to_program(program):
  return [rest_facade.create_control(program) for _ in xrange(2)]
コード例 #16
0
def controls_mapped_to_program(program):
  """Create 2 controls mapped to the program"""
  controls = [rest_facade.create_control() for _ in xrange(2)]
  for control in controls:
    rest_facade.map_objs(program, control)
  return controls
コード例 #17
0
ファイル: conftest.py プロジェクト: egorhm/ggrc-core
def controls_mapped_to_program(program):
  """Create 2 controls mapped to the program"""
  return [rest_facade.create_control(program) for _ in xrange(2)]
コード例 #18
0
def control_mapped_to_program(program):
  return rest_facade.create_control(program)
コード例 #19
0
def control():
  """Create a control."""
  return rest_facade.create_control()
コード例 #20
0
def control_mapped_to_program(program):
    """Create a control mapped to the program"""
    control = rest_facade.create_control()
    rest_facade.map_objs(program, control)
    return control
コード例 #21
0
def control():
    """Create a control."""
    return rest_facade.create_control()
コード例 #22
0
def control_mapped_to_program(program):
    return rest_facade.create_control(program)
コード例 #23
0
def controls_mapped_to_program(program):
    return [rest_facade.create_control(program) for _ in xrange(2)]
コード例 #24
0
def controls():
    """Create 2 controls."""
    return [rest_facade.create_control() for _ in xrange(2)]
コード例 #25
0
ファイル: conftest.py プロジェクト: egorhm/ggrc-core
def control_mapped_to_program(program):
  """Create a control mapped to the program"""
  return rest_facade.create_control(program)
コード例 #26
0
def controls_mapped_to_program(program):
    """Create 2 controls mapped to the program"""
    controls = [rest_facade.create_control() for _ in xrange(2)]
    for control in controls:
        rest_facade.map_objs(program, control)
    return controls
コード例 #27
0
    def tested_events(self, selenium):
        """Create events to verify events functionality:
    0. Save event log count before test data creation,
    1. Create control editor role, create 2 users with global creator role
    under admin
    2. Create control#1 under global creator#1 and set global creator#2 to
    newly created control editor role
    3. Create control#2 under global creator#2 and map it control#1
    """
        if not self.__class__._data:
            # generate enough data, so test can be executed independently
            for _ in xrange(6):
                rest_facade.create_user_with_role(roles.READER)

            initial_count = self.get_event_tab().tab_events.count
            ctrl1_creator = rest_facade.create_user_with_role(roles.CREATOR)
            ctrl2_creator = rest_facade.create_user_with_role(roles.CREATOR)
            ctrl_editor_role = rest_facade.create_access_control_role(
                object_type="Control", read=True, update=True, delete=True)
            admin = users.current_user()
            users.set_current_user(ctrl1_creator)
            ctrl_custom_roles = [(ctrl_editor_role.name, ctrl_editor_role.id,
                                  [ctrl2_creator])]
            ctrl1 = rest_facade.create_control(custom_roles=ctrl_custom_roles)
            # wait until notification and acl will assigned by background task
            rest_facade.get_obj(ctrl1)

            users.set_current_user(ctrl2_creator)
            ctrl2 = rest_facade.create_control()
            rest_facade.map_objs(ctrl1, ctrl2)

            users.set_current_user(admin)
            # generate expected event data
            acl_roles_len = 7
            exp_event_data = [{
                "actions":
                sorted([
                    ctrl1_creator.email + " created", u"PersonProfile created"
                ]),
                "user_email":
                admin.email,
                "time":
                date_utils.iso8601_to_local_datetime(ctrl1_creator.updated_at)
            }, {
                "actions": ["Creator linked to " + ctrl1_creator.email],
                "user_email":
                admin.email,
                "time":
                date_utils.iso8601_to_local_datetime(ctrl1_creator.updated_at)
            }, {
                "actions":
                sorted([
                    ctrl2_creator.email + " created", u"PersonProfile created"
                ]),
                "user_email":
                admin.email,
                "time":
                date_utils.iso8601_to_local_datetime(ctrl2_creator.updated_at)
            }, {
                "actions": ["Creator linked to " + ctrl2_creator.email],
                "user_email":
                admin.email,
                "time":
                date_utils.iso8601_to_local_datetime(ctrl2_creator.updated_at)
            }, {
                "actions": [ctrl_editor_role.name + " created"],
                "user_email":
                admin.email,
                "time":
                date_utils.iso8601_to_local_datetime(
                    ctrl_editor_role.updated_at)
            }, {
                "actions": [u"AccessControlList created"] * acl_roles_len +
                [u"AccessControlPerson created"] * 2 +
                [ctrl1.title + " created", u"Security created"],
                "user_email":
                ctrl1_creator.email,
                "time":
                date_utils.iso8601_to_local_datetime(ctrl1.updated_at)
            }, {
                "actions": [u"AccessControlList created"] * acl_roles_len + [
                    u"AccessControlPerson created", ctrl2.title + " created",
                    u"Security created"
                ],
                "user_email":
                ctrl2_creator.email,
                "time":
                date_utils.iso8601_to_local_datetime(ctrl2.updated_at)
            }, {
                "actions": [
                    u"Control:{id2} linked to Control:{id1}".format(
                        id1=ctrl1.id, id2=ctrl2.id)
                ],
                "user_email":
                ctrl2_creator.email,
                "time":
                date_utils.iso8601_to_local_datetime(ctrl2.updated_at)
            }]
            exp_event_data.reverse()
            self.__class__._data = {
                "ctrl1_creator": ctrl1_creator,
                "ctrl2_creator": ctrl2_creator,
                "ctrl_editor_role": ctrl_editor_role,
                "ctrl1": ctrl1,
                "ctrl2": ctrl2,
                "exp_added_events": exp_event_data,
                "initial_count": initial_count
            }
        return self.__class__._data