def test_destructive_asmt_and_issue_mapped_to_origin_control( self, create_audit_with_control_and_update_control, assessment, obj, selenium ): """ Check Assessment, Issue was mapped to origin Control after mapping: - snapshot of Control to Assessment; - Assessment with mapped snapshot of Control to Issue. """ is_issue_flow = obj["issue"] is not None origin_control = create_audit_with_control_and_update_control[ "updated_control"] snapshoted_control = create_audit_with_control_and_update_control[ "control"] expected_obj = ( obj["issue"] if is_issue_flow else obj["assessment"]).repr_ui().update_attrs( status=obj["expected_state"]) ui_mapping_service, src_obj, dest_objs = ( (webui_service.IssuesService(selenium), obj["assessment"], [obj["issue"]]) if is_issue_flow else (webui_service.ControlsService(selenium), expected_obj, [snapshoted_control])) ui_mapping_service.map_objs_via_tree_view( src_obj=src_obj, dest_objs=dest_objs) actual_objs = (get_cls_webui_service( objects.get_plural(expected_obj.type))(selenium). get_list_objs_from_tree_view(src_obj=origin_control)) # 'actual_controls': created_at, updated_at, custom_attributes, audit # assessment_type, modified_by (None) exclude_attrs = (Representation.tree_view_attrs_to_exclude + ("audit", "assessment_type", "modified_by")) if is_issue_flow: exclude_attrs += ("objects_under_assessment", ) self.general_equal_assert([expected_obj], actual_objs, *exclude_attrs)
def test_asmt_and_issue_mapped_to_origin_control( self, create_audit_with_control_and_update_control, dynamic_objects, dynamic_relationships, expected_state, selenium): """ Check Assessment, Issue was mapped to origin Control after mapping: - snapshot of Control to Assessment; - Assessment with mapped snapshot of Control to Issue. """ is_issue_flow = (isinstance(dynamic_objects, dict) and dynamic_objects.get("new_issue_rest") is not None) origin_control = create_audit_with_control_and_update_control[ "update_control_rest"][0] snapshoted_control = create_audit_with_control_and_update_control[ "new_control_rest"][0] expected_obj = (dynamic_objects.get("new_issue_rest") if is_issue_flow else dynamic_objects).repr_ui().update_attrs( status=expected_state) ui_mapping_service, src_obj, dest_objs = ( (webui_service.IssuesService(selenium), dynamic_objects.get("new_assessment_rest"), [dynamic_objects.get("new_issue_rest")]) if is_issue_flow else (webui_service.ControlsService(selenium), expected_obj, [snapshoted_control])) ui_mapping_service.map_objs_via_tree_view(src_obj=src_obj, dest_objs=dest_objs) actual_objs = (get_cls_webui_service( objects.get_plural( expected_obj.type))(selenium).get_list_objs_from_tree_view( src_obj=origin_control)) # 'actual_controls': created_at, updated_at, custom_attributes (None) exclude_attrs = Representation.tree_view_attrs_to_exclude if is_issue_flow: exclude_attrs += ("objects_under_assessment", ) self.general_equal_assert([expected_obj], actual_objs, *exclude_attrs)
def test_non_clonable_objs_donot_move_to_cloned_audit( self, create_and_clone_audit, selenium): """Check via UI that non clonable objects Assessment, Issue do not move to cloned Audit. Preconditions: - Execution and return of fixture 'create_and_clone_audit'. """ actual_audit = create_and_clone_audit["actual_audit"] actual_asmts_tab_count = ( webui_service.AssessmentsService(selenium).get_count_objs_from_tab( src_obj=actual_audit)) actual_asmts = (webui_service.AssessmentsService( selenium).get_list_objs_from_tree_view(src_obj=actual_audit)) actual_issues_tab_count = ( webui_service.IssuesService(selenium).get_count_objs_from_tab( src_obj=actual_audit)) actual_issues = ( webui_service.IssuesService(selenium).get_list_objs_from_tree_view( src_obj=actual_audit)) assert actual_asmts_tab_count == actual_issues_tab_count == 0 assert bool(actual_asmts) == bool(actual_issues) == 0