def connect_aws_mock(): db_utils.resource_connect() db_utils.client_connect() cognito_idp_utils.client_connect() ses_utils.client_connect() sns_utils.client_connect() sts_utils.client_connect() iam_utils.client_connect() s3_utils.client_connect() ec2_utils.resource_connect() ec2_utils.client_connect() s3_utils.client_connect() s3_utils.resource_connect() step_functions_utils.client_connect()
def setUp(self): super().setUp() # connect s3 global client_s3 if not client_s3: client_s3 = s3_utils.client_connect()
def test_s3_delete_report_success(self): # connect s3 resource_s3 = s3_utils.resource_connect() client_s3 = s3_utils.client_connect() report_bucket = common_utils.get_environ("S3_REPORT_BUCKET") # prepare data resource_s3.create_bucket(Bucket=report_bucket) client_s3.put_object(Body=json.dumps( copy.deepcopy(DataTestS3.INFO_BUCKET)), Bucket=report_bucket, Key=prefix) mybucket = resource_s3.Bucket(name=report_bucket) with patch.object(boto3, 'resource') as mock_method_resource: mock_method_resource.return_value = resource_s3 with patch.object(resource_s3, 'Bucket') as mock_method_bucket: mock_method_bucket.return_value = mybucket # call function test aws_common.s3_delete_report(trace_id, report_id) report_delete = True # check report delete for obj in mybucket.objects.filter(Prefix=prefix): report_delete = False # check result self.assertTrue(report_delete) # check connect resource mock_method_resource.assert_called_with('s3')
def test_check_exists_file_s3_success_case_exists_file_s3(self): # connect s3 resource_s3 = s3_utils.resource_connect() client_s3 = s3_utils.client_connect() check_bucket = common_utils.get_environ("S3_CHECK_BUCKET") # prepare data resource_s3.create_bucket(Bucket=check_bucket) client_s3.put_object(Body=json.dumps( copy.deepcopy(DataTestS3.INFO_BUCKET)), Bucket=check_bucket, Key=s3_file_name) mybucket = resource_s3.Bucket(name=check_bucket) with patch.object(boto3, 'resource') as mock_method_resource: mock_method_resource.return_value = resource_s3 with patch.object(resource_s3, 'Bucket') as mock_method_bucket: mock_method_bucket.return_value = mybucket # call function test actual_response = aws_common.check_exists_file_s3( trace_id, "S3_CHECK_BUCKET", s3_file_name) # check result expected_response = True self.assertEqual(expected_response, actual_response) # check connect resource mock_method_resource.assert_called_with('s3')
def side_effect_client(service_name, region_name=None, endpoint_url=None, aws_access_key_id=None, aws_secret_access_key=None): if service_name == "cognito-idp": return cognito_idp_utils.client_connect() if service_name == "dynamodb": return db_utils.resource_connect() if service_name == "ses": return ses_utils.client_connect() if service_name == "sts": return sts_utils.client_connect() if service_name == "iam": return iam_utils.client_connect() if service_name == "s3": return s3_utils.client_connect() if service_name == "ec2": return ec2_utils.client_connect() if service_name == "s3": return s3_utils.client_connect() if service_name == "stepfunctions": return step_functions_utils.client_connect()
def setUp(self): super().setUp() global session global s3_client_connect global excluded_resources if not session: session = sts_utils.create_session() if not s3_client_connect: s3_client_connect = s3_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_userAttribute table mock_pm_exclusionResources.create_table() # create record query # create resource for check code item 2.06 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_s3_delete_report_error_call_obj_delete(self): # connect s3 resource_s3 = s3_utils.resource_connect() client_s3 = s3_utils.client_connect() report_bucket = common_utils.get_environ("S3_REPORT_BUCKET") # prepare data resource_s3.create_bucket(Bucket=report_bucket) client_s3.put_object(Body=json.dumps( copy.deepcopy(DataTestS3.INFO_BUCKET)), Bucket=report_bucket, Key=prefix) my_bucket = resource_s3.Bucket(name=report_bucket) data_bucket_filter = [] for obj in my_bucket.objects.filter(Prefix=prefix): patch_delete = patch.object(obj, "delete") # start mock object mock_delete = patch_delete.start() # mock data mock_delete.side_effect = ClientError( error_response=copy.deepcopy(DataCommon.ERROR_RESPONSE), operation_name=copy.deepcopy(DataCommon.OPERATION_NAME)) # addClean mock self.addCleanup(patch_delete.stop) data_bucket_filter.append(obj) objects = my_bucket.objects type(my_bucket).objects = objects # mock patch object patch_boto3_resource_s3 = patch.object(boto3, "resource") patch_boto3_bucket_s3 = patch.object(resource_s3, "Bucket") patch_boto3_bucket_filter_s3 = patch.object(objects, "filter") # start mock object mock_boto3_resource_s3 = patch_boto3_resource_s3.start() mock_boto3_bucket_s3 = patch_boto3_bucket_s3.start() mock_boto3_bucket_filter_s3 = patch_boto3_bucket_filter_s3.start() # mock data mock_boto3_resource_s3.return_value = resource_s3 mock_boto3_bucket_s3.return_value = my_bucket mock_boto3_bucket_filter_s3.return_value = data_bucket_filter # addClean mock self.addCleanup(patch_boto3_resource_s3.stop) self.addCleanup(patch_boto3_bucket_s3.stop) self.addCleanup(patch_boto3_bucket_filter_s3.stop) # call function test with patch.object(PmLogAdapter, 'error', return_value=None) as mock_method_error: aws_common.s3_delete_report(trace_id, report_id) # check write log error mock_method_error.assert_any_call("S3のファイル削除に失敗しました。: path=: %s", prefix)