def create_assessments(self, audit, template, control_snapshots): """Create assessments from template.""" assessments = [] for control_snapshot in control_snapshots: assessment = entities_factory.AssessmentsFactory().create() assessment.update_attrs(audit=audit, template=template, object=control_snapshot) response = self.client.create_object(**assessment.__dict__) attrs = BaseRestService.get_items_from_resp(response) assessment = AssessmentsFactory().create() assessment.__dict__.update({k: v for k, v in attrs.iteritems() if v and k not in ["type", ]}) assessment.verifiers = assessment.creators assessments.append(assessment) return assessments
def test_asmt_creation(self, program, audit, selenium): """Check if Assessment can be created from Audit page via Assessments widget. Preconditions: - Audit created under Program via REST API. """ asmt = entities_factory.AssessmentsFactory().create() asmts_service = webui_service.AssessmentsService(selenium) asmts_service.create_obj_via_tree_view(src_obj=audit, obj=asmt) tree_view_asmt = asmts_service.get_list_objs_from_tree_view(audit)[0] actual_asmt = asmts_service.get_obj_from_info_page(tree_view_asmt) rest_asmt = rest_facade.get_obj(actual_asmt) asmt.update_attrs(created_at=rest_asmt.created_at, updated_at=rest_asmt.updated_at, modified_by=rest_asmt.modified_by).repr_ui() self.general_equal_assert(asmt, actual_asmt, "custom_attributes")
def create_asmt(selenium, audit): """Create audit via UI.""" expected_asmt = entities_factory.AssessmentsFactory().create() asmts_ui_service = webui_service.AssessmentsService(selenium) asmts_ui_service.create_obj_via_tree_view(src_obj=audit, obj=expected_asmt) asmt_tree_view = generic_widget.TreeView(selenium, None, objects.ASSESSMENTS) expected_asmt.url = (asmt_tree_view.get_obj_url_from_tree_view_by_title( expected_asmt.title)) expected_asmt.id = expected_asmt.url.split('/')[-1] expected_asmt_rest = rest_facade.get_obj(expected_asmt) expected_asmt.assignees = audit.audit_captains expected_asmt.creators = [users.current_user().email] expected_asmt.verifiers = audit.auditors expected_asmt.created_at = expected_asmt_rest.created_at expected_asmt.modified_by = users.current_user().email expected_asmt.updated_at = expected_asmt_rest.updated_at return expected_asmt
def test_asmt_creation(self, new_program_rest, new_audit_rest, selenium): """Check if Assessment can be created from Audit page via Assessments widget. Preconditions: - Audit created under Program via REST API. """ expected_asmt = ( entities_factory.AssessmentsFactory().create().repr_ui()) (webui_service.AssessmentsService(selenium).create_obj_via_tree_view( src_obj=new_audit_rest, obj=expected_asmt)) actual_asmts_tab_count = ( webui_service.AssessmentsService(selenium).get_count_objs_from_tab( src_obj=new_audit_rest)) assert len([expected_asmt]) == actual_asmts_tab_count actual_asmts = (webui_service.AssessmentsService( selenium).get_list_objs_from_tree_view(src_obj=new_audit_rest)) # due to 'expected_asmt.updated_at = None' self.general_assert([expected_asmt], actual_asmts, "updated_at")
def test_asmts_generation(self, new_program_rest, new_controls_rest, map_new_program_rest_to_new_controls_rest, new_audit_rest, dynamic_new_assessment_template, selenium): """Check if Assessments can be generated from Audit page via Assessments widget using Assessment template and Controls. Preconditions: - Program, Controls created via REST API. - Controls mapped to Program via REST API. - Audit created under Program via REST API. - Assessment Template with CAs created under Audit via REST API. """ expected_asmts = (entities_factory.AssessmentsFactory().generate( objs_under_asmt=new_controls_rest, audit=new_audit_rest, asmt_tmpl=dynamic_new_assessment_template)) expected_asmts = [ expected_asmt.repr_ui() for expected_asmt in expected_asmts ] (webui_service.AssessmentsService( selenium).generate_objs_via_tree_view( src_obj=new_audit_rest, objs_under_asmt=new_controls_rest, asmt_tmpl_obj=dynamic_new_assessment_template)) actual_asmts_tab_count = ( webui_service.AssessmentsService(selenium).get_count_objs_from_tab( src_obj=new_audit_rest)) assert len(expected_asmts) == actual_asmts_tab_count actual_asmts = (webui_service.AssessmentsService( selenium).get_list_objs_from_info_panels(src_obj=new_audit_rest, objs=expected_asmts)) # due to 'expected_asmt.updated_at = None', # 'expected_asmt.custom_attributes = {None: None}' actual_asmts = [ actual_asmt.update_attrs(is_replace_attrs=True, slug=None).update_attrs( is_replace_attrs=False, custom_attributes={None: None}) for actual_asmt in actual_asmts ] assert expected_asmts == actual_asmts, ( messages.AssertionMessages.format_err_msg_equal( expected_asmts, actual_asmts))
def test_asmt_creation(self, new_program_rest, new_audit_rest, selenium): """Check if Assessment can be created from Audit page via Assessments widget. Preconditions: - Audit created under Program via REST API. """ expected_asmt = (entities_factory.AssessmentsFactory().create()) asmts_ui_service = webui_service.AssessmentsService(selenium) asmts_ui_service.create_obj_via_tree_view(src_obj=new_audit_rest, obj=expected_asmt) actual_asmts_tab_count = asmts_ui_service.get_count_objs_from_tab( src_obj=new_audit_rest) assert len([expected_asmt]) == actual_asmts_tab_count actual_asmts = asmts_ui_service.get_list_objs_from_tree_view( src_obj=new_audit_rest) # 'expected_asmts': modified_by (None) *factory # 'actual_asmts': os_state (None) self.general_equal_assert([expected_asmt], actual_asmts, "modified_by", "os_state", "assessment_type")
def test_asmt_creation_with_mapping(self, program, obj, audit, selenium): """Check if Assessment can be created with mapped snapshot via Modal Create on Assessments TreeView. Objects structure: Program -> Obj (Control or Objective) -> Audit """ expected_asmt = (entities_factory.AssessmentsFactory().create( mapped_objects=[obj])) asmts_service = webui_service.AssessmentsService(selenium) asmts_service.create_obj_via_tree_view(src_obj=audit, obj=expected_asmt) tree_view_asmt = asmts_service.get_list_objs_from_tree_view(audit)[0] actual_asmt = asmts_service.get_obj_from_info_page(tree_view_asmt) rest_asmt = rest_facade.get_obj(actual_asmt) expected_asmt.update_attrs(created_at=rest_asmt.created_at, updated_at=rest_asmt.updated_at, modified_by=users.current_user(), slug=rest_asmt.slug).repr_ui() self.general_equal_assert(expected_asmt, actual_asmt, "custom_attributes")