def test_query_key_convert_response(self): # prepare data mock_pm_exclusionResources.create(data_pm_exclusion_resources) # call function test result = pm_exclusionResources.query_key( trace_id, data_pm_exclusion_resources['ExclusionResourceID'], convert_response=True) # check data self.assertEqual(data_pm_exclusion_resources['ExclusionResourceID'], result['id']) self.assertEqual(data_pm_exclusion_resources['AWSAccount'], result['awsAccount']) self.assertEqual(data_pm_exclusion_resources['CheckItemCode'], result['checkItemCode']) self.assertEqual(data_pm_exclusion_resources['RegionName'], result['regionName']) self.assertEqual(data_pm_exclusion_resources['ResourceName'], result['resourceName']) self.assertEqual(data_pm_exclusion_resources['ResourceType'], result['resourceType']) self.assertEqual(data_pm_exclusion_resources['ExclusionComment'], result['exclusionComment']) self.assertEqual(data_pm_exclusion_resources['OrganizationID'], result['organizationId']) self.assertEqual(data_pm_exclusion_resources['ProjectID'], result['projectId']) self.assertEqual(data_pm_exclusion_resources['MailAddress'], result['mailAddress']) self.assertEqual(data_pm_exclusion_resources['CreatedAt'], result['createdAt']) self.assertEqual(data_pm_exclusion_resources['UpdatedAt'], result['updatedAt'])
def test_query_check_item_refine_code_success(self): # perpare data test # create record query mock_pm_exclusionResources.create(data_pm_exclusion_resources) # call function test actual_exclusion_resources_query = pm_exclusionResources.query_check_item_refine_code( trace_id, data_pm_exclusion_resources['CheckItemRefineCode']) # Check data self.assertDictEqual(data_pm_exclusion_resources, actual_exclusion_resources_query[0])
def test_query_account_refine_index_not_convert_response_success(self): # perpare data test # create record query mock_pm_exclusionResources.create(data_pm_exclusion_resources) # call function test actual_exclusion_resources_query = pm_exclusionResources.query_account_refine_index( trace_id, data_pm_exclusion_resources['AccountRefineCode']) # Check data self.assertDictEqual(data_pm_exclusion_resources, actual_exclusion_resources_query[0])
def test_get_excluded_resources_handler_success_case_exists_excluded_resource( self): # perpare data test mock_pm_affiliation.create(data_pm_affiliation) mock_pm_awsAccountCoops.create(data_pm_aws_account_coops) # create record pm_exclusionResources mock_pm_exclusionResources.create(data_pm_exclusion_resources) # Call function test actual_response = checkitemsettings.get_excluded_resources_handler( event_mock, {}) # get record pm_exclusionResources expected_exclusion_resources = mock_pm_exclusionResources.query_key( data_pm_exclusion_resources['ExclusionResourceID']) # Get data response actual_status_code = actual_response['statusCode'] actual_response_body = json.loads(actual_response['body']) # Check data self.assertEqual(HTTPStatus.OK, actual_status_code) self.assertEqual(1, len(actual_response_body)) self.assertEqual(12, len(actual_response_body[0])) self.assertEqual(expected_exclusion_resources['ExclusionResourceID'], actual_response_body[0]['id']) self.assertEqual(expected_exclusion_resources['OrganizationID'], actual_response_body[0]['organizationId']) self.assertEqual(expected_exclusion_resources['ProjectID'], actual_response_body[0]['projectId']) self.assertEqual(expected_exclusion_resources['AWSAccount'], actual_response_body[0]['awsAccount']) self.assertEqual(expected_exclusion_resources['CheckItemCode'], actual_response_body[0]['checkItemCode']) self.assertEqual(expected_exclusion_resources['RegionName'], actual_response_body[0]['regionName']) self.assertEqual(expected_exclusion_resources['ResourceName'], actual_response_body[0]['resourceName']) self.assertEqual(expected_exclusion_resources['ResourceType'], actual_response_body[0]['resourceType']) self.assertEqual(expected_exclusion_resources['ExclusionComment'], actual_response_body[0]['exclusionComment']) self.assertEqual(expected_exclusion_resources['MailAddress'], actual_response_body[0]['mailAddress']) self.assertEqual(expected_exclusion_resources['CreatedAt'], actual_response_body[0]['createdAt']) self.assertEqual(expected_exclusion_resources['UpdatedAt'], actual_response_body[0]['updatedAt'])
def test_query_filter_region_name_and_resource_name_success(self): # perpare data test # create record query mock_pm_exclusionResources.create(data_pm_exclusion_resources) # call function test actual_exclusion_resources_query = pm_exclusionResources.query_filter_region_name_and_resource_name( trace_id, data_pm_exclusion_resources['CheckItemRefineCode'], data_pm_exclusion_resources['RegionName'], data_pm_exclusion_resources['ResourceType'], data_pm_exclusion_resources['ResourceName']) # Check data self.assertDictEqual(data_pm_exclusion_resources, actual_exclusion_resources_query[0])
def test_create_excluded_resources_handler_success_case_exists_data_create( self): # perpare data test body_update = { "regionName": data_pm_exclusion_resources['RegionName'], "resourceType": data_pm_exclusion_resources['ResourceType'], "resourceName": data_pm_exclusion_resources['ResourceName'], "exclusionComment": exclusion_comment_update } event_mock_update = event_create.get_event_object( trace_id=copy.deepcopy(DataCommon.USER_ID_TEST.format(str(3))), path_parameters=path_parameters, body=json.dumps(body_update)) mock_pm_affiliation.create(data_pm_affiliation) mock_pm_awsAccountCoops.create(data_pm_aws_account_coops) mock_pm_exclusionResources.create(data_pm_exclusion_resources) # Call function test actual_response = checkitemsettings.create_excluded_resources_handler( event_mock_update, {}) # Get data response actual_status_code = actual_response['statusCode'] actual_response_body = json.loads(actual_response['body']) # Check data self.assertEqual(HTTPStatus.CREATED, actual_status_code) self.assertEqual(data_pm_exclusion_resources["ExclusionResourceID"], actual_response_body["id"]) self.assertEqual(data_pm_exclusion_resources["OrganizationID"], actual_response_body["organizationId"]) self.assertEqual(data_pm_exclusion_resources["ProjectID"], actual_response_body["projectId"]) self.assertEqual(data_pm_exclusion_resources["AWSAccount"], actual_response_body["awsAccount"]) self.assertEqual(data_pm_exclusion_resources["CheckItemCode"], actual_response_body["checkItemCode"]) self.assertEqual(data_pm_exclusion_resources["RegionName"], actual_response_body["regionName"]) self.assertEqual(data_pm_exclusion_resources["ResourceName"], actual_response_body["resourceName"]) self.assertEqual(data_pm_exclusion_resources["ResourceType"], actual_response_body["resourceType"]) self.assertEqual(exclusion_comment_update, actual_response_body["exclusionComment"])
def setUp(self): super().setUp() global session global excluded_resources # truncate old data in the table if db_utils.check_table_exist(Tables.PM_EXCLUSION_RESOURCES): db_utils.delete_table(Tables.PM_EXCLUSION_RESOURCES) # create pm_userAttribute table mock_pm_exclusionResources.create_table() # create record query # create resource for check code item 1.22 resource type = "user" data_pm_exclusion_resources[ 'ExclusionResourceID'] = "aa4fee9c-790f-478d-9f5d-7aeef688d541" data_pm_exclusion_resources['CheckItemCode'] = check_item_code data_pm_exclusion_resources['RegionName'] = region_global data_pm_exclusion_resources['ResourceType'] = resource_type_users data_pm_exclusion_resources[ 'ResourceName'] = "insightwatch-190611-ContentProtectedReadOnlyPolicy-YDBNQDSP9W1M,PolicyUsers1" data_pm_exclusion_resources['OrganizationID'] = organization_id data_pm_exclusion_resources['ProjectID'] = project_id data_pm_exclusion_resources['AWSAccount'] = aws_account data_pm_exclusion_resources['AccountRefineCode'] = account_refine_code data_pm_exclusion_resources[ 'CheckItemRefineCode'] = check_item_refine_code mock_pm_exclusionResources.create(data_pm_exclusion_resources) # create resource for check code item 1.22 resource type = "group" data_pm_exclusion_resources[ 'ExclusionResourceID'] = "aa4fee9c-790f-478d-9f5d-7aeef688d542" data_pm_exclusion_resources[ 'ResourceName'] = "insightwatch-190611-ContentProtectedReadOnlyPolicy-YDBNQDSP9W1M,PolicyGroups2" data_pm_exclusion_resources['ResourceType'] = resource_type_groups mock_pm_exclusionResources.create(data_pm_exclusion_resources) # create resource for check code item 1.22 resource type = "role" data_pm_exclusion_resources[ 'ExclusionResourceID'] = "aa4fee9c-790f-478d-9f5d-7aeef688d543" data_pm_exclusion_resources[ 'ResourceName'] = "insightwatch-190611-ContentProtectedReadOnlyPolicy-YDBNQDSP9W1M,PolicyRoles3" data_pm_exclusion_resources['ResourceType'] = resource_type_roles mock_pm_exclusionResources.create(data_pm_exclusion_resources) # create resource for check code item other data_pm_exclusion_resources[ 'ExclusionResourceID'] = "aa4fee9c-790f-478d-9f5d-7aeef688d544" data_pm_exclusion_resources['CheckItemCode'] = "CHECK_CIS12_ITEM_OTHER" mock_pm_exclusionResources.create(data_pm_exclusion_resources) # get data excluded resource excluded_resources = mock_pm_exclusionResources.query_account_refine_index( trace_id, account_refine_code) if session is None: session = sts_utils.create_session()
def test_update(self): # prepare data mock_pm_exclusionResources.create(data_pm_exclusion_resources) exclusion_comment_update = copy.deepcopy( DataPmExclusionResources.EXCLUSION_COMMENT_UPDATE) attribute = {'ExclusionComment': {"Value": exclusion_comment_update}} # call function test pm_exclusionResources.update( trace_id, data_pm_exclusion_resources["ExclusionResourceID"], attribute) # Get data result = mock_pm_exclusionResources.query_key( data_pm_exclusion_resources["ExclusionResourceID"]) # check data self.assertEqual(data_pm_exclusion_resources['ExclusionResourceID'], result['ExclusionResourceID']) self.assertEqual(data_pm_exclusion_resources['AWSAccount'], result['AWSAccount']) self.assertEqual(data_pm_exclusion_resources['CheckItemCode'], result['CheckItemCode']) self.assertEqual(data_pm_exclusion_resources['RegionName'], result['RegionName']) self.assertEqual(data_pm_exclusion_resources['ResourceType'], result['ResourceType']) self.assertEqual(data_pm_exclusion_resources['ResourceName'], result['ResourceName']) self.assertEqual(exclusion_comment_update, result['ExclusionComment']) self.assertEqual(data_pm_exclusion_resources['UserID'], result['UserID']) self.assertEqual(data_pm_exclusion_resources['MailAddress'], result['MailAddress']) self.assertEqual(data_pm_exclusion_resources['AccountRefineCode'], result['AccountRefineCode']) self.assertEqual(data_pm_exclusion_resources['CheckItemRefineCode'], result['CheckItemRefineCode']) self.assertEqual(data_pm_exclusion_resources['OrganizationID'], result['OrganizationID']) self.assertEqual(data_pm_exclusion_resources['ProjectID'], result['ProjectID']) self.assertEqual(data_pm_exclusion_resources['TimeToLive'], result['TimeToLive']) self.assertEqual(data_pm_exclusion_resources['CreatedAt'], result['CreatedAt'])
def test_query_filter_account_refine_code(self): # prepare data group_filter = copy.deepcopy(DataPmExclusionResources.GROUP_FILTER) mock_pm_exclusionResources.create(data_pm_exclusion_resources) mock_pm_exclusionResources.create( data_pm_exclusion_resources_check_item_code_asc) # call function test result = pm_exclusionResources.query_filter_account_refine_code( trace_id, account_refine_code, group_filter) # check data self.assertEqual(1, len(result)) result = result[0] self.assertEqual(data_pm_exclusion_resources['ExclusionResourceID'], result['ExclusionResourceID']) self.assertEqual(data_pm_exclusion_resources['AWSAccount'], result['AWSAccount']) self.assertEqual(data_pm_exclusion_resources['CheckItemCode'], result['CheckItemCode']) self.assertEqual(data_pm_exclusion_resources['RegionName'], result['RegionName']) self.assertEqual(data_pm_exclusion_resources['ResourceName'], result['ResourceName']) self.assertEqual(data_pm_exclusion_resources['ExclusionComment'], result['ExclusionComment']) self.assertEqual(data_pm_exclusion_resources['UserID'], result['UserID']) self.assertEqual(data_pm_exclusion_resources['MailAddress'], result['MailAddress']) self.assertEqual(data_pm_exclusion_resources['AccountRefineCode'], result['AccountRefineCode']) self.assertEqual(data_pm_exclusion_resources['CheckItemRefineCode'], result['CheckItemRefineCode']) self.assertEqual(data_pm_exclusion_resources['OrganizationID'], result['OrganizationID']) self.assertEqual(data_pm_exclusion_resources['ProjectID'], result['ProjectID']) self.assertEqual(data_pm_exclusion_resources['TimeToLive'], result['TimeToLive']) self.assertEqual(data_pm_exclusion_resources['CreatedAt'], result['CreatedAt']) self.assertEqual(data_pm_exclusion_resources['UpdatedAt'], result['UpdatedAt'])
def setUp(self): super().setUp() global session global excluded_resources global kms_client_connect if not session: session = sts_utils.create_session() if not kms_client_connect: kms_client_connect = kms_utils.client_connect() # truncate old data in the table if db_utils.check_table_exist(Tables.PM_EXCLUSION_RESOURCES): db_utils.delete_table(Tables.PM_EXCLUSION_RESOURCES) # create pm_exclusionResources table mock_pm_exclusionResources.create_table() # create record query # create resource for check code item 2.08 data_pm_exclusion_resources[ 'ExclusionResourceID'] = "aa4fee9c-790f-478d-9f5d-7aeef688d541" data_pm_exclusion_resources['CheckItemCode'] = check_item_code data_pm_exclusion_resources['RegionName'] = region_name data_pm_exclusion_resources['ResourceType'] = resource_type data_pm_exclusion_resources['ResourceName'] = resource_name_test data_pm_exclusion_resources['OrganizationID'] = organization_id data_pm_exclusion_resources['ProjectID'] = project_id data_pm_exclusion_resources['AWSAccount'] = aws_account data_pm_exclusion_resources['AccountRefineCode'] = account_refine_code data_pm_exclusion_resources[ 'CheckItemRefineCode'] = check_item_refine_code mock_pm_exclusionResources.create(data_pm_exclusion_resources) # create resource for check code item other data_pm_exclusion_resources[ 'ExclusionResourceID'] = "aa4fee9c-790f-478d-9f5d-7aeef688d542" data_pm_exclusion_resources['CheckItemCode'] = "CHECK_CIS12_ITEM_OTHER" mock_pm_exclusionResources.create(data_pm_exclusion_resources) # get data excluded resource excluded_resources = mock_pm_exclusionResources.query_account_refine_index( trace_id, account_refine_code)
def test_query_key(self): # prepare data mock_pm_exclusionResources.create(data_pm_exclusion_resources) # call function test result = pm_exclusionResources.query_key( trace_id, data_pm_exclusion_resources['ExclusionResourceID']) # check data self.assertEqual(data_pm_exclusion_resources['ExclusionResourceID'], result['ExclusionResourceID']) self.assertEqual(data_pm_exclusion_resources['AWSAccount'], result['AWSAccount']) self.assertEqual(data_pm_exclusion_resources['CheckItemCode'], result['CheckItemCode']) self.assertEqual(data_pm_exclusion_resources['RegionName'], result['RegionName']) self.assertEqual(data_pm_exclusion_resources['ResourceName'], result['ResourceName']) self.assertEqual(data_pm_exclusion_resources['ResourceType'], result['ResourceType']) self.assertEqual(data_pm_exclusion_resources['ExclusionComment'], result['ExclusionComment']) self.assertEqual(data_pm_exclusion_resources['UserID'], result['UserID']) self.assertEqual(data_pm_exclusion_resources['MailAddress'], result['MailAddress']) self.assertEqual(data_pm_exclusion_resources['AccountRefineCode'], result['AccountRefineCode']) self.assertEqual(data_pm_exclusion_resources['CheckItemRefineCode'], result['CheckItemRefineCode']) self.assertEqual(data_pm_exclusion_resources['OrganizationID'], result['OrganizationID']) self.assertEqual(data_pm_exclusion_resources['ProjectID'], result['ProjectID']) self.assertEqual(data_pm_exclusion_resources['TimeToLive'], result['TimeToLive']) self.assertEqual(data_pm_exclusion_resources['CreatedAt'], result['CreatedAt']) self.assertEqual(data_pm_exclusion_resources['UpdatedAt'], result['UpdatedAt'])
def test_query_check_item_refine_code_convert_response_success(self): # perpare data test # create record query mock_pm_exclusionResources.create(data_pm_exclusion_resources) # call function test actual_exclusion_resources_query = pm_exclusionResources.query_check_item_refine_code( trace_id, data_pm_exclusion_resources['CheckItemRefineCode'], None, True) # Check data self.assertEqual(data_pm_exclusion_resources['ExclusionResourceID'], actual_exclusion_resources_query[0]['id']) self.assertEqual(data_pm_exclusion_resources['OrganizationID'], actual_exclusion_resources_query[0]['organizationId']) self.assertEqual(data_pm_exclusion_resources['ProjectID'], actual_exclusion_resources_query[0]['projectId']) self.assertEqual(data_pm_exclusion_resources['AWSAccount'], actual_exclusion_resources_query[0]['awsAccount']) self.assertEqual(data_pm_exclusion_resources['CheckItemCode'], actual_exclusion_resources_query[0]['checkItemCode']) self.assertEqual(data_pm_exclusion_resources['RegionName'], actual_exclusion_resources_query[0]['regionName']) self.assertEqual(data_pm_exclusion_resources['ResourceName'], actual_exclusion_resources_query[0]['resourceName']) self.assertEqual(data_pm_exclusion_resources['ExclusionComment'], actual_exclusion_resources_query[0]['exclusionComment']) self.assertEqual(data_pm_exclusion_resources['MailAddress'], actual_exclusion_resources_query[0]['mailAddress']) self.assertEqual(data_pm_exclusion_resources['CreatedAt'], actual_exclusion_resources_query[0]['createdAt']) self.assertEqual(data_pm_exclusion_resources['UpdatedAt'], actual_exclusion_resources_query[0]['updatedAt'])
def test_delete_excluded_resources_handler_success(self): # perpare data test mock_pm_affiliation.create(data_pm_affiliation) mock_pm_awsAccountCoops.create(data_pm_aws_account_coops) event_mock = event_create.get_event_object( trace_id=copy.deepcopy(DataCommon.USER_ID_TEST.format(str(3))), path_parameters=path_parameters, query_string_parameters=query_string_parameters) # create record pm_exclusionResources delete mock_pm_exclusionResources.create(data_pm_exclusion_resources) # create record pm_exclusionResources not delete mock_pm_exclusionResources.create(data_exclusion_resources_not_delete) # Call function test actual_response = checkitemsettings.delete_excluded_resources_handler( event_mock, {}) # get record pm_exclusionResources delete actual_exclusion_resources_delete = mock_pm_exclusionResources.query_key( data_pm_exclusion_resources['ExclusionResourceID']) # get record pm_exclusionResources not delete actual_exclusion_resources_not_delete = mock_pm_exclusionResources.query_key( data_exclusion_resources_not_delete['ExclusionResourceID']) # Get data response actual_status_code = actual_response['statusCode'] actual_response_body = json.loads(actual_response['body']) # Check data self.assertEqual(None, actual_exclusion_resources_delete) self.assertEqual(None, actual_response_body) self.assertEqual(HTTPStatus.NO_CONTENT, actual_status_code) self.assertDictEqual(data_exclusion_resources_not_delete, actual_exclusion_resources_not_delete)
def test_list_item_settings_handler_success_case_exists_data_exclusion_resource( self): # perpare data test aws_account = copy.deepcopy(DataCommon.AWS_ACCOUNT) mock_pm_affiliation.create(data_pm_affiliation) mock_pm_projects.create(data_pm_projects) mock_pm_awsAccountCoops.create(data_pm_aws_account_coops) for check_item_code in LIST_CHECK_ITEM_CODE_EXCLUDED_RESOURCE: data_pm_exclusion_resources[ 'ExclusionResourceID'] = common_utils.get_uuid4() data_pm_exclusion_resources['CheckItemCode'] = check_item_code data_pm_exclusion_resources['CheckItemRefineCode'] = copy.deepcopy( DataPmExclusionResources.CHECK_ITEM_REFINE_CODE_TEMPLATE. format(organization_id, project_id, aws_account, check_item_code)) data_pm_exclusion_resources['AccountRefineCode'] = copy.deepcopy( DataPmExclusionResources.ACCOUNT_REFINE_CODE_TEMPLATE.format( organization_id, project_id, aws_account)) mock_pm_exclusionResources.create(data_pm_exclusion_resources) # Call function test actual_response = checkitemsettings.list_item_settings_handler( event_mock, {}) # Get data response actual_status_code = actual_response['statusCode'] actual_response_bodys = json.loads(actual_response['body']) # Check data self.assertEqual(HTTPStatus.OK, actual_status_code) for actual_response_body in actual_response_bodys: if actual_response_body[ "checkItemCode"] in LIST_CHECK_ITEM_CODE_EXCLUDED_RESOURCE: self.assertEqual(ExcludedResourceFlag.Enable, actual_response_body["excludedResourceFlag"]) else: self.assertEqual(ExcludedResourceFlag.Other, actual_response_body["excludedResourceFlag"])
def test_delete_success(self): # perpare data test # create record delete mock_pm_exclusionResources.create(data_pm_exclusion_resources) # create record not delete mock_pm_exclusionResources.create(data_exclusion_resources_not_delete) # call function test pm_exclusionResources.delete(trace_id, data_pm_exclusion_resources['ExclusionResourceID']) # get record pm_exclusionResources delete actual_exclusion_resources_delete = mock_pm_exclusionResources.query_key( data_pm_exclusion_resources['ExclusionResourceID']) # get record pm_exclusionResources not delete actual_exclusion_resources_not_delete = mock_pm_exclusionResources.query_key( data_exclusion_resources_not_delete['ExclusionResourceID']) # Check data self.assertEqual(None, actual_exclusion_resources_delete) self.assertDictEqual(data_exclusion_resources_not_delete, actual_exclusion_resources_not_delete)