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
Example #2
0
 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")
Example #3
0
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
Example #4
0
 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")
Example #5
0
 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))
Example #6
0
 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")
Example #7
0
 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")