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)
def test_destructive_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)
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
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_ca_value( checkbox_cad, checkbox_value)] else: cavs = CustomAttributeDefinitionsFactory.generate_ca_values(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 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])))