def test_destructive_search_unified_mapper_and_check_mapping( self, create_audit_with_control_and_update_control, control_for_mapper, control_for_tree_view, dynamic_objects, dynamic_relationships, expected_map_statuses, expected_is_found, selenium): """Check searching of shapshotable and snapshoted objects via Unified Mapper modal and check their correct mapping. """ audit_with_one_control = create_audit_with_control_and_update_control source_obj = dynamic_objects expected_control_from_mapper = ( audit_with_one_control[control_for_mapper][0].repr_ui()) expected_control_from_tree_view = ( (expected_control_from_mapper if control_for_mapper == control_for_tree_view else audit_with_one_control[control_for_tree_view][0].repr_ui()) if control_for_tree_view else None) expected_map_status = MappingStatusAttrs( expected_control_from_mapper.title, *expected_map_statuses) controls_ui_service = webui_service.ControlsService(selenium) actual_controls_from_mapper, actual_map_status = ( controls_ui_service.get_list_objs_from_mapper( src_obj=source_obj, dest_objs=[expected_control_from_mapper])) actual_controls_from_tree_view = ( controls_ui_service.get_list_objs_from_tree_view( src_obj=source_obj)) # 'actual_controls': created_at, updated_at, custom_attributes (None) expected_controls_from_mapper, actual_controls_from_mapper = ( Representation.extract_objs( [expected_control_from_mapper], actual_controls_from_mapper, *Representation.tree_view_attrs_to_exclude)) expected_controls_from_tree_view = [] if expected_control_from_tree_view: expected_controls_from_tree_view, actual_controls_from_tree_view = ( Representation.extract_objs( [expected_control_from_tree_view], actual_controls_from_tree_view, *Representation.tree_view_attrs_to_exclude)) assert (expected_is_found is (expected_controls_from_mapper[0] in actual_controls_from_mapper) is (expected_map_status in actual_map_status)) == ( (expected_controls_from_tree_view[0] in actual_controls_from_tree_view) if expected_control_from_tree_view else expected_controls_from_tree_view == actual_controls_from_tree_view), ( messages.AssertionMessages.format_err_msg_equal( messages.AssertionMessages.format_err_msg_contains( expected_controls_from_mapper[0], actual_controls_from_mapper), messages.AssertionMessages.format_err_msg_contains( expected_controls_from_tree_view[0], actual_controls_from_tree_view) if expected_control_from_tree_view else messages.AssertionMessages.format_err_msg_equal( expected_controls_from_tree_view, actual_controls_from_tree_view)))
def test_destructive_search_unified_mapper_and_check_mapping( self, create_audit_with_control_and_update_control, control_for_mapper, control_for_tree_view, dynamic_objects, dynamic_relationships, expected_map_statuses, expected_is_found, selenium ): """Check searching of shapshotable and snapshoted objects via Unified Mapper modal and check their correct mapping. """ audit_with_one_control = create_audit_with_control_and_update_control source_obj = dynamic_objects expected_control_from_mapper = ( audit_with_one_control[control_for_mapper][0].repr_ui()) expected_control_from_tree_view = ( (expected_control_from_mapper if control_for_mapper == control_for_tree_view else audit_with_one_control[control_for_tree_view][0].repr_ui()) if control_for_tree_view else None) expected_map_status = MappingStatusAttrs( expected_control_from_mapper.title, *expected_map_statuses) controls_ui_service = webui_service.ControlsService(selenium) actual_controls_from_mapper, actual_map_status = ( controls_ui_service.get_list_objs_from_mapper( src_obj=source_obj, dest_objs=[expected_control_from_mapper])) actual_controls_from_tree_view = ( controls_ui_service.get_list_objs_from_tree_view(src_obj=source_obj)) # 'actual_controls': created_at, updated_at, custom_attributes (None) expected_controls_from_mapper, actual_controls_from_mapper = ( Representation.extract_objs( [expected_control_from_mapper], actual_controls_from_mapper, *Representation.tree_view_attrs_to_exclude)) expected_controls_from_tree_view = [] if expected_control_from_tree_view: expected_controls_from_tree_view, actual_controls_from_tree_view = ( Representation.extract_objs( [expected_control_from_tree_view], actual_controls_from_tree_view, *Representation.tree_view_attrs_to_exclude)) assert ( expected_is_found is (expected_controls_from_mapper[0] in actual_controls_from_mapper) is (expected_map_status in actual_map_status)) == ( (expected_controls_from_tree_view[0] in actual_controls_from_tree_view) if expected_control_from_tree_view else expected_controls_from_tree_view == actual_controls_from_tree_view), ( messages.AssertionMessages.format_err_msg_equal( messages.AssertionMessages.format_err_msg_contains( expected_controls_from_mapper[0], actual_controls_from_mapper), messages.AssertionMessages.format_err_msg_contains( expected_controls_from_tree_view[0], actual_controls_from_tree_view) if expected_control_from_tree_view else messages.AssertionMessages.format_err_msg_equal( expected_controls_from_tree_view, actual_controls_from_tree_view)))
def general_equal_assert(expected_objs, actual_objs, *exclude_attrs): """Perform general equal assert for deepcopy converted to list expected and actual objects according to '*exclude_attrs' tuple of excluding attributes' names (compare objects' collections w/ attributes' values set to None). """ expected_objs_wo_excluded_attrs, actual_objs_wo_excluded_attrs = ( Representation.extract_objs( help_utils.convert_to_list(expected_objs), help_utils.convert_to_list(actual_objs), *exclude_attrs)) assert (expected_objs_wo_excluded_attrs == actual_objs_wo_excluded_attrs), ( messages.AssertionMessages.format_err_msg_equal( expected_objs_wo_excluded_attrs, actual_objs_wo_excluded_attrs))
def general_equal_assert(expected_objs, actual_objs, *exclude_attrs): """Perform general equal assert for deepcopy converted to list expected and actual objects according to '*exclude_attrs' tuple of excluding attributes' names (compare objects' collections w/ attributes' values set to None). """ expected_objs_wo_excluded_attrs, actual_objs_wo_excluded_attrs = ( Representation.extract_objs( help_utils.convert_to_list(expected_objs), help_utils.convert_to_list(actual_objs), *exclude_attrs)) assert (expected_objs_wo_excluded_attrs == actual_objs_wo_excluded_attrs), ( messages.AssertionMessages.format_err_msg_equal( expected_objs_wo_excluded_attrs, actual_objs_wo_excluded_attrs))
def test_filter_of_snapshotable_control( self, create_audit_with_control_and_update_control, version_of_ctrl, is_found, selenium ): """Check via UI that filtering work for snapshoted version of Control only, filtering by actual values returns no items in scope of Audit page. """ audit_with_one_control = create_audit_with_control_and_update_control audit = audit_with_one_control["new_audit_rest"][0] expected_control = audit_with_one_control[version_of_ctrl][0].repr_ui() filter_exp = FilterUtils.get_filter_exp_by_title(expected_control.title) actual_controls = (webui_service.ControlsService(selenium). filter_and_get_list_objs_from_tree_view( src_obj=audit, filter_exp=filter_exp)) # 'actual_controls': created_at, updated_at, custom_attributes (None) expected_controls, actual_controls = Representation.extract_objs( [expected_control], actual_controls, *Representation.tree_view_attrs_to_exclude) expected_control = expected_controls[0] assert is_found is (expected_control in actual_controls), ( messages.AssertionMessages.format_err_msg_contains( expected_control, actual_controls))
def test_filter_of_snapshotable_control( self, create_audit_with_control_and_update_control, version_of_ctrl, is_found, selenium): """Check via UI that filtering work for snapshoted version of Control only, filtering by actual values returns no items in scope of Audit page. """ audit_with_one_control = create_audit_with_control_and_update_control audit = audit_with_one_control["new_audit_rest"][0] expected_control = audit_with_one_control[version_of_ctrl][0].repr_ui() filter_exp = FilterUtils.get_filter_exp_by_title( expected_control.title) actual_controls = (webui_service.ControlsService( selenium).filter_and_get_list_objs_from_tree_view( src_obj=audit, filter_exp=filter_exp)) # 'actual_controls': created_at, updated_at, custom_attributes (None) expected_controls, actual_controls = Representation.extract_objs( [expected_control], actual_controls, *Representation.tree_view_attrs_to_exclude) expected_control = expected_controls[0] assert is_found is (expected_control in actual_controls), ( messages.AssertionMessages.format_err_msg_contains( expected_control, actual_controls))