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 test_describe_flow_log_error(self):
        # create data mock
        ec2_client = ec2_utils_mock.client_connect()

        with patch.object(PmLogAdapter, 'error',
                          return_value=None) as mock_error:
            with patch.object(ec2_client, 'describe_flow_logs') as mock_method:
                mock_method.side_effect = ClientError(
                    {
                        'Error': {
                            'Code': data_client_error['service_error_code'],
                            'Message': data_client_error['service_message']
                        }
                    }, 'EXCEPTION')
                with self.assertRaises(PmError) as exception:
                    # Call function test
                    ec2_utils.describe_flow_logs(trace_id, aws_account,
                                                 ec2_client, region_name)

                cause_error = exception.exception.cause_error.response['Error']
                # Check result
                self.assertEqual(data_client_error['service_error_code'],
                                 cause_error['Code'])
                self.assertEqual(data_client_error['service_message'],
                                 cause_error['Message'])
        mock_error.assert_any_call("[%s/%s] VPCフローログ情報の取得に失敗しました。",
                                   aws_account, region_name)
示例#3
0
 def test_describe_instances_not_exist(self):
     # create data mock
     ec2_client = ec2_utils_mock.client_connect()
     # Call function test
     actual_instances = ec2_utils.describe_instances(
         trace_id, aws_account, ec2_client, region_name)
     # Check result
     self.assertListEqual([], actual_instances)
    def test_describe_vpcs_empty(self):
        # create data mock
        ec2_client = ec2_utils_mock.client_connect()

        with patch.object(ec2_client, 'describe_vpcs') as mock_method:
            mock_method.return_value = {}
            actual_describe_vpcs = ec2_utils.describe_vpcs(
                trace_id, aws_account, ec2_client, region_name)
            self.assertListEqual([], actual_describe_vpcs)
 def test_describe_volumes_not_exist(self):
     # create data mock
     ec2_client = ec2_utils_mock.client_connect()
     # Call function test
     with patch.object(ec2_client, 'describe_volumes') as mock_obj:
         mock_obj.return_value = {}
         actual_volumes = ec2_utils.describe_volumes(
             trace_id, aws_account, ec2_client, region_name)
         # Check result
     self.assertEqual([], actual_volumes)
    def test_describe_vpcs_suscess(self):
        # create data mock
        ec2_client = ec2_utils_mock.client_connect()
        # Call function test
        expect_list_vpc = ec2_client.describe_vpcs()['Vpcs']

        actual_describe_vpcs = ec2_utils.describe_vpcs(trace_id, aws_account,
                                                       ec2_client, region_name)
        # Check result
        self.assertListEqual(expect_list_vpc, actual_describe_vpcs)
示例#7
0
    def test_describe_security_groups_not_exist(self):
        # create data mock
        ec2_client = ec2_utils_mock.client_connect()

        with patch.object(ec2_client,
                          'describe_security_groups') as mock_method:
            mock_method.return_value = {}
            # Call function test
            actual_security_groups = ec2_utils.describe_security_groups(
                trace_id, aws_account, ec2_client, region_name)
        # Check result
        self.assertListEqual([], actual_security_groups)
示例#8
0
 def test_describe_not_exist_flow_logs(self):
     # create data mock
     ec2_client = ec2_utils_mock.client_connect()
     except_result = copy.deepcopy(
         DataTestEC2.DATA_DESCRIBE_FLOW_LOGS_EMPTY)
     with patch.object(ec2_client, 'describe_flow_logs') as mock_obj:
         mock_obj.return_value = except_result
         # Call function test
         actual_instances = ec2_utils.describe_flow_logs(
             trace_id, aws_account, ec2_client, region_name)
     # Check result
     self.assertListEqual([], actual_instances)
示例#9
0
 def test_describe_instances_exist_next_token(self):
     # create data mock
     ec2_client = ec2_utils_mock.client_connect()
     with patch.object(ec2_client, 'describe_instances') as mock_obj:
         mock_obj.side_effect = ec2_utils_mock.side_effect_describe_instances
         # Call function test
         actual_instances = ec2_utils.describe_instances(
             trace_id, aws_account, ec2_client, region_name)
     # Check result
     expect_resual = copy.deepcopy(
         DataTestEC2.DATA_CHECK_ALL_DESCRIBE_INSTANCES['Reservations'])
     self.assertListEqual(expect_resual, actual_instances)
示例#10
0
    def test_describe_flow_log_exist_next_token(self):
        # create data mock
        ec2_client = ec2_utils_mock.client_connect()

        with patch.object(ec2_client, 'describe_flow_logs') as mock_obj:
            mock_obj.side_effect = ec2_utils_mock.side_effect_describe_flow_log
            # Call function test
            actual_instances = ec2_utils.describe_flow_logs(
                trace_id, aws_account, ec2_client, region_name)
        # Check result
        except_result = copy.deepcopy(
            DataTestEC2.DATA_CHECK_ALL_DESCRIBE_FLOW_LOGS['FlowLogs'])
        self.assertListEqual(except_result, actual_instances)
示例#11
0
    def test_describe_security_groups_exist_next_token(self):
        # create data mock
        ec2_client = ec2_utils_mock.client_connect()

        with patch.object(ec2_client, 'describe_security_groups') as mock_obj:
            mock_obj.side_effect = ec2_utils_mock.side_effect_describe_security_groups
            # Call function test
            actual_security_groups = ec2_utils.describe_security_groups(
                trace_id, aws_account, ec2_client, region_name)
        # Check result
        expect_data = copy.deepcopy(
            DataTestEC2.
            DATA_CHECK_ALL_DESCRIBE_SECURITY_GROUPS['SecurityGroups'])
        self.assertListEqual(expect_data, actual_security_groups)
示例#12
0
    def test_describe_instances_success(self):
        # create data mock
        ec2_resource_connect = ec2_utils_mock.resource_connect()
        ec2_client = ec2_utils_mock.client_connect()

        ec2_resource_connect.create_instances(ImageId='',
                                              MinCount=1,
                                              MaxCount=1)
        expect_response = ec2_client.describe_instances()
        # Call function test
        actual_instances = ec2_utils.describe_instances(
            trace_id, aws_account, ec2_client, region_name)
        # Check result
        self.assertListEqual(expect_response['Reservations'], actual_instances)
示例#13
0
    def test_describe_security_groups_success(self):
        # create data mock
        ec2_client = ec2_utils_mock.client_connect()
        group_name_test = "group_name_test"
        ec2_client.create_security_group(GroupName=group_name_test,
                                         Description='description_test')

        expect_describe = ec2_client.describe_security_groups()
        # Call function test
        actual_security_groups = ec2_utils.describe_security_groups(
            trace_id, aws_account, ec2_client, region_name)

        # Check result
        self.assertListEqual(expect_describe['SecurityGroups'],
                             actual_security_groups)
示例#14
0
    def setUp(self):
        super().setUp()
        global session
        global ec2_client_connect
        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.21
        data_pm_exclusion_resources[
            'ExclusionResourceID'] = "aa4fee9c-790f-478d-9f5d-7aeef688d541"
        data_pm_exclusion_resources['CheckItemCode'] = check_item_code
        data_pm_exclusion_resources['RegionName'] = region
        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)

        if not session:
            session = sts_utils.create_session()

        if not ec2_client_connect:
            ec2_client_connect = ec2_utils.client_connect()
示例#15
0
    def test_get_regions_error(self):
        # create data mock
        expected_error_response = copy.deepcopy(DataCommon.ERROR_RESPONSE)
        expected_operation_name = copy.deepcopy(DataCommon.OPERATION_NAME)
        ec2_client_connect = ec2_utils_mock.client_connect()

        with patch.object(ec2_client_connect,
                          'describe_regions') as mock_method:
            mock_method.side_effect = ClientError(
                error_response=expected_error_response,
                operation_name=expected_operation_name)
            with self.assertRaises(PmError) as exception:
                # Call function test
                aws_common.get_regions(trace_id)

        # check error
        actual_cause_error = exception.exception.cause_error
        self.assertEqual(expected_error_response['Error'],
                         actual_cause_error.response['Error'])
        self.assertEqual(expected_operation_name,
                         actual_cause_error.operation_name)
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 test_describe_volumes_suscess(self):
        # create data mock
        ec2_client = ec2_utils_mock.client_connect()

        ec2_client.create_volume(
            AvailabilityZone=volum_test['AvailabilityZone'],
            Encrypted=volum_test['Encrypted'],
            Size=volum_test['Size'],
            TagSpecifications=volum_test['TagSpecifications'])

        # Call function test
        actual_volumes = ec2_utils.describe_volumes(trace_id, aws_account,
                                                    ec2_client, region_name)
        # Check result
        self.assertEqual(1, len(actual_volumes))
        self.assertEqual(volum_test['Encrypted'],
                         actual_volumes[0]['Encrypted'])

        self.assertEqual(volum_test['Size'], actual_volumes[0]['Size'])

        self.assertDictEqual(
            volum_test['TagSpecifications'][0]['Tags'][0],
            actual_volumes[0]['Tags'][0],
        )