def asmts_to_include_by_bulk_verify_filter(self, control_mapped_to_program,
                                            audit, audit_w_auditor,
                                            second_creator):
     """Creates assessment with 'In Review' state, map a comment, evidence url
 and control snapshot to it.
 Returns created assessment."""
     expected_asmnt = rest_facade.create_asmt(audit,
                                              verifiers=second_creator)
     rest_facade.map_to_snapshot(expected_asmnt,
                                 obj=control_mapped_to_program,
                                 parent_obj=audit)
     comment = rest_service.CommentsService().create_obj()
     evidence = rest_service.EvidencesService().create_obj()
     rest_facade.update_object(
         expected_asmnt,
         status=object_states.READY_FOR_REVIEW,
         actions={
             "add_related":
             [comment.repr_min_dict(),
              evidence.repr_min_dict()]
         })
     comment.modified_by = users.current_person().email
     expected_asmnt.update_attrs(evidence_urls=[evidence.title],
                                 comments=[comment.repr_ui()],
                                 mapped_objects=[control_mapped_to_program],
                                 status=object_states.READY_FOR_REVIEW,
                                 custom_attribute_definitions=[])
     return expected_asmnt.repr_ui()
Esempio n. 2
0
 def test_add_evidence_url(
     self, program, login_role, obj, obj_role, selenium
 ):
   """Test that various users have possibility to add an evidence url into
   assessment.
   """
   # pylint: disable=too-many-arguments
   login_user = rest_facade.create_user_with_role(login_role)
   obj_args = {obj_role: [login_user]}
   audit = rest_facade.create_audit(
       program, **obj_args if obj == "audit" else {})
   asmt = rest_facade.create_asmt(
       audit, **obj_args if obj == "assessment" else {})
   users.set_current_user(login_user)
   url = string_utils.StringMethods.random_string()
   asmt_service = webui_service.AssessmentsService(selenium)
   asmt_service.add_evidence_urls(asmt, [url])
   actual_asmt = asmt_service.get_obj_from_info_page(obj=asmt)
   rest_asmt_obj = rest_facade.get_obj(asmt)
   asmt.update_attrs(
       updated_at=rest_asmt_obj.updated_at,
       modified_by=rest_asmt_obj.modified_by,
       status=object_states.IN_PROGRESS,
       evidence_urls=[url]).repr_ui()
   self.general_equal_assert(asmt, actual_asmt, "audit")
Esempio n. 3
0
 def test_fill_asmt_gcas_in_popup(
     self, program, gcads_for_asmt, obj, obj_role, selenium
 ):
   """Test for checking population of GCA from UI Edit popup.
   Preconditions:
   - Program created via REST API.
   - Audit created via REST API.
   - Global Custom Attributes for Assessment created via REST API.
   - Assessment created via REST API.
   """
   user = rest_facade.create_user_with_role(roles.CREATOR)
   obj_args = {obj_role: [user]}
   audit = rest_facade.create_audit(
       program, **obj_args if obj == "audit" else {})
   asmt = rest_facade.create_asmt(
       audit, **obj_args if obj == "assessment" else {})
   users.set_current_user(user)
   custom_attributes = CustomAttributeDefinitionsFactory(
   ).generate_custom_attributes(gcads_for_asmt)
   asmts_ui_service = webui_service.AssessmentsService(selenium)
   asmts_ui_service.fill_obj_gcas_in_popup(asmt, custom_attributes)
   act_asmt = rest_facade.get_obj(asmt)
   asmt.update_attrs(
       updated_at=act_asmt.updated_at, status=act_asmt.status,
       custom_attributes=custom_attributes)
   _assert_asmt(asmts_ui_service, asmt)
Esempio n. 4
0
def asmt_w_control_snapshot(obj, control_mapped_to_program):
    """Creates an assessment with control snapshot."""
    asmt = rest_facade.create_asmt(obj)
    rest_facade.map_to_snapshot(asmt,
                                obj=control_mapped_to_program,
                                parent_obj=obj)
    return asmt
Esempio n. 5
0
def _create_mapped_asmt(audit, assessment_type, objs_to_map):
  """Create assessment with assessment type=`assessment_type` and
  map it to snapshots of `objs_to_map`"""
  assessment = rest_facade.create_asmt(audit, assessment_type=assessment_type)
  for obj in objs_to_map:
    rest_facade.map_to_snapshot(assessment, obj=obj, parent_obj=audit)
  assessment.update_attrs(mapped_objects=objs_to_map)
  return assessment
def asmts_w_verifier(second_creator, audit_w_auditor):
    """Creates 7 assessments, set global creator as a verifier.

  Returns:
    List of created assessments.
  """
    return [
        rest_facade.create_asmt(audit_w_auditor, verifiers=second_creator)
        for _ in xrange(7)
    ]
 def asmts_to_exclude_by_bulk_verify_filter(self, audit, audit_w_auditor,
                                            second_creator):
     """Creates assessments, one for each of possible status, within one audit.
 Create assessment with 'In Review' status within second audit.
 Set global creator as a verifier for all assessments where applicable.
 Returns list of created assessments."""
     asmts_not_for_bulk_verify_filter = []
     asmts_not_for_bulk_verify_filter.append(
         rest_facade.create_asmt(audit_w_auditor,
                                 verifiers=second_creator,
                                 status=object_states.READY_FOR_REVIEW))
     for status in object_states.ASSESSMENT_STATUSES_NOT_READY_FOR_REVIEW:
         asmts_not_for_bulk_verify_filter.append(
             rest_facade.create_asmt(
                 audit,
                 status=status,
                 verifiers=second_creator
                 # assessment cannot be in completed state if it has verifiers
                 # GGRC-7802: validation should be added on backend side
                 if status != object_states.COMPLETED else []))
     return asmts_not_for_bulk_verify_filter
Esempio n. 8
0
 def test_auditor_can_edit_asmt(self, selenium, test_data):
     """Preconditions:
 Global editor creates program with mapped control.
 Global editor creates audit and assigns Global Creator user as an auditor
 - log in as GC
 - navigate to audit page => Assessments tab
 Test that GC can edit new asmt in audit."""
     creator = test_data["creator"]
     users.set_current_user(creator)
     audit = test_data["audit"]
     expected_asmt = rest_facade.create_asmt(audit)
     webui_facade.assert_can_edit_asmt(selenium, expected_asmt)
 def test_add_person_to_acl_list(self, program, audit, selenium):
     """Test that an assessment assignee can add a person to ACL"""
     assignee = rest_facade.create_user_with_role(roles.CREATOR)
     primary_contact = rest_facade.create_user_with_role(roles.CREATOR)
     asmt = rest_facade.create_asmt(audit, assignees=[assignee])
     users.set_current_user(assignee)
     asmt_service = webui_service.AssessmentsService(selenium)
     asmt_service.add_primary_contact(asmt, primary_contact)
     selenium.refresh()
     actual_asmt = asmt_service.get_obj_from_info_page(asmt)
     asmt.update_attrs(updated_at=rest_facade.get_obj(asmt).updated_at,
                       primary_contacts=[primary_contact],
                       modified_by=assignee).repr_ui()
     self.general_equal_assert(asmt, actual_asmt, "audit")
Esempio n. 10
0
 def test_auditor_can_edit_asmt(
     self, selenium, test_data
 ):
   """Preconditions:
   Global editor creates program with mapped control.
   Global editor creates audit and assigns Global Creator user as an auditor
   - log in as GC
   - navigate to audit page => Assessments tab
   Test that GC can edit new asmt in audit."""
   creator = test_data["creator"]
   users.set_current_user(creator)
   audit = test_data["audit"]
   expected_asmt = rest_facade.create_asmt(audit)
   webui_facade.assert_can_edit_asmt(
       selenium, expected_asmt)
Esempio n. 11
0
 def test_view_evidence_urls_as_verifier(self, program, audit, selenium):
   """Test that an assessment verifier can see evidence urls
   on assessment page
   """
   verifier = rest_facade.create_user_with_role(roles.CREATOR)
   asmt = rest_facade.create_asmt(audit, verifiers=[verifier])
   asmt_service = webui_service.AssessmentsService(selenium)
   url = string_utils.StringMethods.random_string()
   asmt_service.add_evidence_urls(asmt, [url])
   users.set_current_user(verifier)
   actual_asmt = asmt_service.get_obj_from_info_page(asmt)
   asmt.update_attrs(
       status=object_states.IN_PROGRESS,
       updated_at=self.info_service().get_obj(obj=asmt).updated_at,
       evidence_urls=[url]).repr_ui()
   self.general_equal_assert(asmt, actual_asmt, "audit")
Esempio n. 12
0
 def test_change_asmt_state_as_verifier(
     self, program, audit, initial_state, action, end_state, selenium
 ):
   """Tests for changing assessment state as assessment verifier"""
   verifier = rest_facade.create_user_with_role(roles.CREATOR)
   asmt = rest_facade.create_asmt(audit,
                                  status=initial_state, verifiers=[verifier])
   users.set_current_user(verifier)
   asmt_service = webui_service.AssessmentsService(selenium)
   getattr(asmt_service, action)(asmt)
   actual_asmt = asmt_service.get_obj_from_info_page(asmt)
   asmt.update_attrs(
       updated_at=rest_facade.get_obj(asmt).updated_at,
       status=end_state,
       verified=(True if action == "verify_assessment" else False)).repr_ui()
   self.general_equal_assert(asmt, actual_asmt, "audit")
Esempio n. 13
0
 def test_auditor_can_assign_user_to_asmt(self, selenium, test_data):
     """Preconditions:
 Global editor creates program with mapped control.
 Global editor creates audit and assigns Global Creator user as an auditor
 - log in as GC
 - navigate to audit page => Assessments tab
 Test that GC can assign user to new asmt in audit."""
     # pylint: disable=invalid-name
     creator = test_data["creator"]
     users.set_current_user(creator)
     audit = test_data["audit"]
     expected_asmt = rest_facade.create_asmt(audit)
     asmt_service = webui_service.AssessmentsService(selenium)
     asmt_service.add_asignee(expected_asmt, test_data["editor"])
     expected_asmt.update_attrs(
         updated_at=rest_facade.get_obj(expected_asmt).updated_at,
         assignees=[creator.email, test_data["editor"].email],
         modified_by=users.current_user().email)
     webui_facade.assert_can_view(selenium, expected_asmt)
Esempio n. 14
0
 def test_auditor_can_assign_user_to_asmt(
     self, selenium, test_data
 ):
   """Preconditions:
   Global editor creates program with mapped control.
   Global editor creates audit and assigns Global Creator user as an auditor
   - log in as GC
   - navigate to audit page => Assessments tab
   Test that GC can assign user to new asmt in audit."""
   # pylint: disable=invalid-name
   creator = test_data["creator"]
   users.set_current_user(creator)
   audit = test_data["audit"]
   expected_asmt = rest_facade.create_asmt(audit)
   asmt_service = webui_service.AssessmentsService(selenium)
   asmt_service.add_asignee(expected_asmt, test_data["editor"])
   expected_asmt.update_attrs(
       updated_at=rest_facade.get_obj(expected_asmt).updated_at,
       assignees=[creator.email, test_data["editor"].email],
       modified_by=users.current_user().email)
   webui_facade.assert_can_view(selenium, expected_asmt)
Esempio n. 15
0
 def test_add_evidence_url(self, program, login_role, obj, obj_role,
                           selenium):
     """Test that various users have possibility to add an evidence url into
 assessment.
 """
     # pylint: disable=too-many-arguments
     login_user = rest_facade.create_user_with_role(login_role)
     obj_args = {obj_role: [login_user]}
     audit = rest_facade.create_audit(program,
                                      **obj_args if obj == "audit" else {})
     asmt = rest_facade.create_asmt(
         audit, **obj_args if obj == "assessment" else {})
     users.set_current_user(login_user)
     url = string_utils.StringMethods.random_string()
     asmt_service = webui_service.AssessmentsService(selenium)
     asmt_service.add_evidence_urls(asmt, [url])
     actual_asmt = asmt_service.get_obj_from_info_page(obj=asmt)
     asmt.update_attrs(updated_at=rest_facade.get_obj(asmt).updated_at,
                       status=object_states.IN_PROGRESS,
                       evidence_urls=[url]).repr_ui()
     self.general_equal_assert(asmt, actual_asmt, "audit")
Esempio n. 16
0
def assessment(audit):
  """Creates an assessment within audit."""
  return rest_facade.create_asmt(audit)
Esempio n. 17
0
def assessments(audit):
    """Creates an assessment within audit."""
    return [rest_facade.create_asmt(audit) for _ in xrange(2)]
Esempio n. 18
0
def assessment(audit):
    """Creates an assessment within audit."""
    return rest_facade.create_asmt(audit)
Esempio n. 19
0
def assessments(audit):
  """Creates an assessment within audit."""
  return [rest_facade.create_asmt(audit) for _ in xrange(2)]
 def deprecated_asmts(self, audit):
     """Returns 5 assessments in 'Deprecated' status."""
     return [
         rest_facade.create_asmt(audit, status=object_states.DEPRECATED)
         for _ in xrange(5)
     ]