Esempio n. 1
0
 def test_destructive_mapping_control_to_existing_audit(
     self, new_program_rest, new_audit_rest, new_control_rest, selenium
 ):
   """Check if Control can be mapped to existing Audit and mapping
   between Control and Program of this Audit automatically created.
   Preconditions:
   - Audit and program, and different control created via REST API
   """
   # 'actual_controls': created_at, updated_at, custom_attributes (None)
   expected_control = Representation.extract_objs_wo_excluded_attrs(
       [new_control_rest.repr_ui()],
       *Representation.tree_view_attrs_to_exclude)[0]
   controls_ui_service = webui_service.ControlsService(selenium)
   controls_ui_service.map_objs_via_tree_view(
       src_obj=new_audit_rest, dest_objs=[new_control_rest])
   actual_controls_count_in_tab_audit = (
       controls_ui_service.get_count_objs_from_tab(src_obj=new_audit_rest))
   actual_controls_in_audit = (
       controls_ui_service.get_list_objs_from_tree_view(
           src_obj=new_audit_rest))
   actual_controls_count_in_tab_program = (
       controls_ui_service.get_count_objs_from_tab(src_obj=new_program_rest))
   actual_controls_in_program = (
       controls_ui_service.get_list_objs_from_tree_view(
           src_obj=new_program_rest))
   assert (len([expected_control]) == actual_controls_count_in_tab_audit ==
           actual_controls_count_in_tab_program)
   assert ([expected_control] == actual_controls_in_audit ==
           actual_controls_in_program), (
       messages.AssertionMessages.format_err_msg_equal(
           messages.AssertionMessages.format_err_msg_equal(
               [expected_control], actual_controls_in_audit),
           messages.AssertionMessages.format_err_msg_equal(
               [expected_control], actual_controls_in_program)))
Esempio n. 2
0
 def _check_assessments_filtration(assessment, cavs, operator,
                                   audit, selenium):
   """Check that filtration of assessments works."""
   # pylint: disable=too-many-locals
   cads = [Representation.repr_dict_to_obj(cad)
           for cad in assessment.custom_attribute_definitions]
   filter_exprs = FilterUtils().get_filter_exprs_by_cavs(
       cads, cavs, operator)
   assessment = Representation.extract_objs_wo_excluded_attrs(
       [assessment.repr_ui()],
       *(Representation.tree_view_attrs_to_exclude + (
           "audit", "assessment_type", "modified_by"))
   )[0]
   expected_results = [{"filter": filter_expr, "objs": [assessment]}
                       for filter_expr in filter_exprs]
   actual_results = []
   for filter_expr in filter_exprs:
     result = {
         "filter": filter_expr,
         "objs": webui_service.AssessmentsService(
             selenium).filter_and_get_list_objs_from_tree_view(audit,
                                                               filter_expr)
     }
     actual_results.append(result)
   error_message = messages.AssertionMessages.format_err_msg_equal(
       [{exp_res["filter"]: [exp_obj.title for exp_obj in exp_res["objs"]]}
        for exp_res in expected_results],
       [{act_res["filter"]: [act_obj.title for act_obj in act_res["objs"]]}
        for act_res in actual_results]
   ) + messages.AssertionMessages.format_err_msg_equal(
       StringMethods.convert_list_elements_to_list(
           [exp_res["objs"] for exp_res in expected_results]),
       StringMethods.convert_list_elements_to_list(
           [act_res["objs"] for act_res in actual_results]))
   assert expected_results == actual_results, error_message
Esempio n. 3
0
 def _check_assessments_filtration(assessment, cavs, operator,
                                   audit, selenium):
   """Check that filtration of assessments works."""
   cads = [Representation.repr_dict_to_obj(cad)
           for cad in assessment.custom_attribute_definitions]
   filter_exprs = FilterUtils().get_filter_exprs_by_cavs(
       cads, cavs, operator)
   assessment = Representation.extract_objs_wo_excluded_attrs(
       [assessment.repr_ui()],
       *(Representation.tree_view_attrs_to_exclude + (
         "audit", "assessment_type", "modified_by"))
   )[0]
   expected_results = [{"filter": filter_expr, "objs": [assessment]}
                       for filter_expr in filter_exprs]
   actual_results = []
   for filter_expr in filter_exprs:
     result = {
         "filter": filter_expr,
         "objs": webui_service.AssessmentsService(selenium)
         .filter_and_get_list_objs_from_tree_view(audit, filter_expr)
     }
     actual_results.append(result)
   error_message = messages.AssertionMessages.format_err_msg_equal(
       [{exp_res["filter"]: [exp_obj.title for exp_obj in exp_res["objs"]]}
        for exp_res in expected_results],
       [{act_res["filter"]: [act_obj.title for act_obj in act_res["objs"]]}
        for act_res in actual_results]
   ) + messages.AssertionMessages.format_err_msg_equal(
       StringMethods.convert_list_elements_to_list(
           [exp_res["objs"] for exp_res in expected_results]),
       StringMethods.convert_list_elements_to_list(
           [act_res["objs"] for act_res in actual_results]))
   assert expected_results == actual_results, error_message
Esempio n. 4
0
 def general_contain_assert(expected_obj, actual_objs, *exclude_attrs):
   """Perform general contain assert for deepcopy converted expected object
   and actual objects according to '*exclude_attrs' tuple of excluding
   attributes' names
   (compare objects' collections w/ attributes' values set to None).
   """
   expected_obj_wo_excluded_attrs = (
       Representation.extract_objs_wo_excluded_attrs(
           help_utils.convert_to_list(expected_obj), *exclude_attrs)[0])
   actual_objs_wo_excluded_attrs = (
       Representation.extract_objs_wo_excluded_attrs(
           help_utils.convert_to_list(actual_objs), *exclude_attrs))
   assert (expected_obj_wo_excluded_attrs in
           actual_objs_wo_excluded_attrs), (
       messages.AssertionMessages.format_err_msg_contains(
           expected_obj_wo_excluded_attrs, actual_objs_wo_excluded_attrs))
Esempio n. 5
0
 def test_destructive_mapping_control_to_existing_audit(
         self, program, audit, control, selenium):
     """Check if Control can be mapped to existing Audit and mapping
 between Control and Program of this Audit automatically created.
 Preconditions:
 - Audit and program, and different control created via REST API
 """
     # 'actual_controls': created_at, updated_at, custom_attributes (None)
     expected_control = Representation.extract_objs_wo_excluded_attrs(
         [control.repr_ui()], *Representation.tree_view_attrs_to_exclude)[0]
     controls_ui_service = webui_service.ControlsService(selenium)
     controls_ui_service.map_objs_via_tree_view(src_obj=audit,
                                                dest_objs=[control])
     actual_controls_count_in_tab_audit = (
         controls_ui_service.get_count_objs_from_tab(src_obj=audit))
     actual_controls_in_audit = (
         controls_ui_service.get_list_objs_from_tree_view(src_obj=audit))
     actual_controls_count_in_tab_program = (
         controls_ui_service.get_count_objs_from_tab(src_obj=program))
     actual_controls_in_program = (
         controls_ui_service.get_list_objs_from_tree_view(src_obj=program))
     assert (len([expected_control]) == actual_controls_count_in_tab_audit
             == actual_controls_count_in_tab_program)
     assert ([expected_control] == actual_controls_in_audit ==
             actual_controls_in_program), (
                 messages.AssertionMessages.format_err_msg_equal(
                     messages.AssertionMessages.format_err_msg_equal(
                         [expected_control], actual_controls_in_audit),
                     messages.AssertionMessages.format_err_msg_equal(
                         [expected_control], actual_controls_in_program)))
Esempio n. 6
0
 def general_contain_assert(expected_obj, actual_objs, *exclude_attrs):
   """Perform general contain assert for deepcopy converted expected object
   and actual objects according to '*exclude_attrs' tuple of excluding
   attributes' names
   (compare objects' collections w/ attributes' values set to None).
   """
   expected_obj_wo_excluded_attrs = (
       Representation.extract_objs_wo_excluded_attrs(
           help_utils.convert_to_list(expected_obj), *exclude_attrs)[0])
   actual_objs_wo_excluded_attrs = (
       Representation.extract_objs_wo_excluded_attrs(
           help_utils.convert_to_list(actual_objs), *exclude_attrs))
   assert (expected_obj_wo_excluded_attrs in
           actual_objs_wo_excluded_attrs), (
       messages.AssertionMessages.format_err_msg_contains(
           expected_obj_wo_excluded_attrs, actual_objs_wo_excluded_attrs))
 def test_asmts_gcas_filtering(self, new_program_rest, new_audit_rest,
                               new_cas_for_assessments_rest,
                               new_assessments_rest, operator, selenium):
     """Test for checking filtering of Assessment by Custom Attributes in
 audit scope.
 Preconditions:
 - Program created via REST API.
 - Audit created via REST API.
 - Assessments created via REST API.
 - Global Custom Attributes for Assessment created via REST API.
 - Set revers value of GCA with Checkbox type for second Assessment.
 """
     # pylint: disable=too-many-locals
     custom_attr_values = (
         CustomAttributeDefinitionsFactory().generate_ca_values(
             list_ca_def_objs=new_cas_for_assessments_rest))
     checkbox_id = Representation.filter_objs_by_attrs(
         objs=new_cas_for_assessments_rest,
         attribute_type=element.AdminWidgetCustomAttributes.CHECKBOX).id
     expected_asmt = new_assessments_rest[0]
     asmts_rest_service = rest_service.AssessmentsService()
     asmts_rest_service.update_obj(obj=expected_asmt,
                                   custom_attributes=custom_attr_values)
     asmts_rest_service.update_obj(obj=new_assessments_rest[1],
                                   custom_attributes={
                                       checkbox_id:
                                       not custom_attr_values[checkbox_id]
                                   })
     filter_exprs = FilterUtils().get_filter_exprs_by_cas(
         expected_asmt.custom_attribute_definitions, custom_attr_values,
         operator)
     # 'expected_asmt': updated_at (outdated)
     # 'actual_asmts': created_at, updated_at, custom_attributes, audit
     #                 assessment_type, modified_by (None)
     expected_asmt = Representation.extract_objs_wo_excluded_attrs(
         [expected_asmt.repr_ui()],
         *(Representation.tree_view_attrs_to_exclude +
           ("audit", "assessment_type", "modified_by")))[0]
     expected_results = [{
         "filter": filter_expr,
         "objs": [expected_asmt]
     } for filter_expr in filter_exprs]
     actual_results = [{
         "filter":
         filter_expr,
         "objs":
         webui_service.AssessmentsService(
             selenium).filter_and_get_list_objs_from_tree_view(
                 new_audit_rest, filter_expr)
     } for filter_expr in filter_exprs]
     assert expected_results == actual_results, (
         messages.AssertionMessages.format_err_msg_equal([{
             exp_res["filter"]:
             [exp_obj.title for exp_obj in exp_res["objs"]]
         } for exp_res in expected_results], [{
             act_res["filter"]:
             [act_obj.title for act_obj in act_res["objs"]]
         } for act_res in actual_results]) +
         messages.AssertionMessages.format_err_msg_equal(
             StringMethods.convert_list_elements_to_list(
                 [exp_res["objs"] for exp_res in expected_results]),
             StringMethods.convert_list_elements_to_list(
                 [act_res["objs"] for act_res in actual_results])))