コード例 #1
0
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()
コード例 #2
0
    def setUp(self):
        super().setUp()

        # connect s3
        global client_s3
        if not client_s3:
            client_s3 = s3_utils.client_connect()
コード例 #3
0
    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')
コード例 #4
0
    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')
コード例 #5
0
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()
コード例 #6
0
    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)
コード例 #7
0
    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)