예제 #1
0
 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
     }
예제 #2
0
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
예제 #3
0
 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")
예제 #4
0
 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
     }