def create_and_clone_audit(self, new_program_rest, new_control_rest, map_new_program_rest_to_new_control_rest, new_audit_rest, new_assessment_rest, new_assessment_template_rest, new_issue_rest, selenium): """Create Audit with clonable and non clonable objects via REST API and clone it with them via UI. Preconditions: - Program, Control created via REST API. - Control mapped to Program via REST API. - Audit created under Program via REST API. - Assessment, Assessment Template, Issue created under Audit via REST API. - Issue mapped to Audit via REST API. """ # pylint: disable=too-many-locals expected_audit = entities_factory.AuditsFactory().clone( audit=new_audit_rest)[0] expected_asmt_tmpl = entities_factory.AssessmentTemplatesFactory( ).clone(asmt_tmpl=new_assessment_template_rest)[0] actual_audit = (webui_service.AuditsService( selenium).clone_via_info_page_and_get_obj( audit_obj=new_audit_rest)) return { "audit": new_audit_rest, "expected_audit": expected_audit, "actual_audit": actual_audit, "assessment": new_assessment_rest, "issue": new_issue_rest, "assessment_template": new_assessment_template_rest, "expected_assessment_template": expected_asmt_tmpl, "control": new_control_rest, "program": new_program_rest }
def create_audit(selenium, program, **kwargs): """Create audit via UI.""" audit = entities_factory.AuditsFactory().create(**kwargs) audits_service = webui_service.AuditsService(selenium) audits_service.create_obj_via_tree_view(program, audit) audit.url = audits_service.open_widget_of_mapped_objs( program).tree_view.tree_view_items()[0].url() return audit
def test_create_audit(self, program, selenium): """Test creation of an audit via UI.""" audit = entities_factory.AuditsFactory().create() audits_service = webui_service.AuditsService(selenium) audits_service.create_obj_via_tree_view(program, audit) tree_view_audit = audits_service.get_list_objs_from_tree_view( program)[0] actual_audit = audits_service.get_obj_from_info_page(tree_view_audit) rest_audit = rest_facade.get_obj(actual_audit) audit.update_attrs(created_at=rest_audit.created_at, updated_at=rest_audit.updated_at, modified_by=users.current_user(), slug=rest_audit.slug).repr_ui() self.general_equal_assert(audit, actual_audit, "custom_attributes")
def create_and_clone_audit_w_params_to_update( self, request, new_program_rest, new_control_rest, map_new_program_rest_to_new_control_rest, new_audit_rest, new_assessment_rest, new_assessment_template_rest, new_issue_rest, selenium): """Create Audit with clonable and non clonable objects via REST API and clone it with them via UI. Preconditions: - Program, Control created via REST API. - Control mapped to Program via REST API. - Audit created under Program via REST API. - Assessment, Assessment Template, Issue created under Audit via REST API. - Issue mapped to Audit via REST API. """ # pylint: disable=too-many-locals if hasattr(request, "param") and request.param: if isinstance(request.param, tuple): fixture, params_to_update = request.param # fixtures which are objects if fixture in request.fixturenames and fixture.startswith( "new_"): fixture = locals().get(fixture) (get_cls_rest_service(objects.get_plural( fixture.type))().update_obj(obj=fixture, **params_to_update)) expected_audit = entities_factory.AuditsFactory().clone( audit=new_audit_rest)[0] expected_asmt_tmpl = entities_factory.AssessmentTemplatesFactory( ).clone(asmt_tmpl=new_assessment_template_rest)[0] actual_audit = (webui_service.AuditsService( selenium).clone_via_info_page_and_get_obj( audit_obj=new_audit_rest)) return { "audit": new_audit_rest, "expected_audit": expected_audit, "actual_audit": actual_audit, "assessment": new_assessment_rest, "issue": new_issue_rest, "assessment_template": new_assessment_template_rest, "expected_assessment_template": expected_asmt_tmpl, "control": new_control_rest, "program": new_program_rest }