예제 #1
0
 def test_check_asmt_state_change(
     self, new_program_rest, new_audit_rest, dynamic_objects_w_factory_params,
     action, expected_initial_state, expected_final_state, expected_verified,
     selenium
 ):
   """Check Assessment workflow status change to correct state.
   Preconditions:
   - Program created via REST API.
   - Audit created under Program via REST API.
   - Assessment created and updated under Audit via REST API.
   """
   expected_asmt = dynamic_objects_w_factory_params
   if expected_initial_state:
     (rest_service.AssessmentsService().
      update_obj(expected_asmt, status=expected_initial_state))
   asmts_ui_service = webui_service.AssessmentsService(selenium)
   getattr(asmts_ui_service, action)(expected_asmt)
   # 'expected_asmt': updated_at (outdated)
   expected_asmt = (expected_asmt.update_attrs(
       title=(element.AssessmentInfoWidget.TITLE_EDITED_PART +
              expected_asmt.title if "edit" in action
              else expected_asmt.title),
       status=expected_final_state.title(), verified=expected_verified,
       updated_at=self.info_service.get_obj(
           obj=expected_asmt).updated_at).repr_ui())
   actual_asmt = asmts_ui_service.get_obj_from_info_page(expected_asmt)
   self.general_equal_assert(expected_asmt, actual_asmt)
 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 Global Custom Attributes
   in audit scope.
   Preconditions:
   - Program created via REST API.
   - Audit created via REST API.
   - Global Custom Attributes for Assessment created via REST API.
   - Assessments created via REST API.
   """
   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]})
   self._check_assessments_filtration(expected_asmt, custom_attr_values,
                                      operator, new_audit_rest, selenium)
예제 #3
0
 def test_asmts_gcas_filtering(
     self, new_program_rest, new_audit_rest, new_cas_for_assessments_rest,
     new_assessments_rest, selenium, operator
 ):
   """Test for checking filtering of Assessment by Custom Attributes in
   audit scope.
   Preconditions:
   - Program created via REST API.
   - Audit created via REST API.
   - Assessment created via REST API.
   - Global Custom Attributes for Assessment created via REST API.
   """
   custom_attr_values = (
       CustomAttributeDefinitionsFactory().generate_ca_values(
           list_ca_def_objs=new_cas_for_assessments_rest))
   expected_asmt = new_assessments_rest[0]
   (rest_service.AssessmentsService().update_obj(
       obj=expected_asmt, custom_attributes=custom_attr_values))
   filter_exprs = FilterUtils().get_filter_exprs_by_cas(
       expected_asmt.custom_attribute_definitions, custom_attr_values,
       operator)
   # due to 'actual_asmt.custom_attributes = {None: None}'
   expected_asmt = expected_asmt.repr_ui().update_attrs(
       custom_attributes={None: None}, status=AssessmentStates.IN_PROGRESS)
   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(expected_results,
                                                       actual_results))
예제 #4
0
 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 = entity.Entity.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 (None)
   expected_asmt = entity.Entity.extract_objs_wo_excluded_attrs(
       [expected_asmt.update_attrs(
           status=AssessmentStates.IN_PROGRESS).repr_ui()],
       *Representation.tree_view_attrs_to_exclude)[0]
   expected_results = [{"filter": filter_expr,
                        "objs": [expected_asmt]}
                       for filter_expr in filter_exprs]
   actual_results = [
       {"filter": filter_expr,
        "objs": entity.Entity.extract_objs_wo_excluded_attrs(
            webui_service.AssessmentsService(
                selenium).filter_and_get_list_objs_from_tree_view(
                new_audit_rest, filter_expr),
            *("updated_at", "custom_attributes"))
        } 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(
           string_utils.convert_list_elements_to_list(
               [exp_res["objs"] for exp_res in expected_results]),
           string_utils.convert_list_elements_to_list(
               [act_res["objs"] for act_res in actual_results])))
예제 #5
0
 def _set_values_for_assessment(assessment, cads,
                                only_checkbox, checkbox_value):
   """Set CA values for assessment"""
   checkbox_cad = Representation.filter_objs_by_attrs(
       objs=cads,
       attribute_type=element.AdminWidgetCustomAttributes.CHECKBOX)
   if only_checkbox:
     cavs = [CustomAttributeDefinitionsFactory.generate_cav(
         checkbox_cad, checkbox_value)]
   else:
     cavs = CustomAttributeDefinitionsFactory.generate_cavs(cads)
     for cav in cavs:
       if cav.custom_attribute_id == checkbox_cad.id:
         cav.attribute_value = checkbox_value
   rest_service.AssessmentsService().update_obj(
       obj=assessment,
       custom_attribute_values=[cav.__dict__ for cav in cavs])
   return cavs
 def set_values_for_assessment(assessment, only_checkbox, checkbox_value):
   """Set LCA values for assessment"""
   custom_attr_definitions = [
       CustomAttributeDefinitionsFactory().create(**definition)
       for definition
       in assessment.cads_from_template()]
   checkbox_id = Representation.filter_objs_by_attrs(
       objs=custom_attr_definitions,
       attribute_type=element.AdminWidgetCustomAttributes.CHECKBOX).id
   if only_checkbox:
     attr_values = {}
   else:
     attr_values = CustomAttributeDefinitionsFactory().generate_ca_values(
         list_ca_def_objs=custom_attr_definitions)
     attr_values[checkbox_id] = checkbox_value
   rest_service.AssessmentsService().update_obj(
       obj=assessment, custom_attributes=attr_values)
   return attr_values
예제 #7
0
 def test_check_asmt_state_change(
     self, new_program_rest, new_audit_rest, dynamic_object_w_factory_params,
     action, expected_initial_state, expected_final_state, selenium
 ):
   """Check Assessment workflow status change to correct state.
   Preconditions:
   - Program created via REST API.
   - Audit created under Program via REST API.
   - Assessment created and updated under Audit via REST API.
   """
   expected_asmt = dynamic_object_w_factory_params
   if expected_initial_state:
     (rest_service.AssessmentsService().
      update_obj(expected_asmt, status=expected_initial_state))
   assessments_service = webui_service.AssessmentsService(selenium)
   getattr(assessments_service, action)(expected_asmt)
   actual_asmt = assessments_service.get_obj_from_info_page(expected_asmt)
   self.general_assert(
       expected_asmt.update_attrs(status=expected_final_state.title(),
                                  title=actual_asmt.title,
                                  verified=actual_asmt.verified).repr_ui(),
       actual_asmt, "updated_at")
예제 #8
0
def create_asmt(audit, **attrs):
    """Create an assessment within an audit `audit`"""
    attrs["audit"] = audit.__dict__
    return rest_service.AssessmentsService().create_obj(factory_params=attrs)
예제 #9
0
def create_assessment(audit, **attrs):
    """Create an assessment within an audit `audit`"""
    attrs["audit"] = audit.__dict__
    return rest_service.AssessmentsService().create_objs(count=1, **attrs)[0]