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 client global client_connect_iam if not client_connect_iam: client_connect_iam = iam_utils.client_connect()
def test_get_account_password_policy_error_no_such_entity(self): # connect client client_connect_iam = iam_utils.client_connect() expected_error_response = copy.deepcopy(DataCommon.ERROR_RESPONSE) expected_operation_name = copy.deepcopy(DataCommon.OPERATION_NAME) expected_error_response['Error']['Code'] = "NoSuchEntity" # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock error no such entity call API get_account_password_policy with patch.object(client_connect_iam, 'get_account_password_policy') as mock_method: mock_method.side_effect = ClientError( error_response=expected_error_response, operation_name=expected_operation_name) with patch.object(PmLogAdapter, 'error', return_value=None) as mock_method_error: with self.assertRaises(PmError) as exception: IAMUtils.get_account_password_policy( trace_id, session, aws_account) # 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) # check message log error mock_method_error.assert_any_call("[%s] アカウントパスワードポリシーが設定されていません。", aws_account)
def test_list_virtual_mfa_devices_success_response_is_truncate_false(self): # connect client client_connect_iam = iam_utils.client_connect() expected_list_virtual_mfa_devices = copy.deepcopy( DataTestIAM.DATA_LIST_VIRTUAL_MFA_DEVICES_IS_TRUNCATED_FALSE) # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock response API list_virtual_mfa_devices with patch.object(client_connect_iam, 'list_virtual_mfa_devices') as mock_method: mock_method.return_value = expected_list_virtual_mfa_devices actual_list_virtual_mfa_devices = IAMUtils.list_virtual_mfa_devices( trace_id, session, aws_account) # check response self.assertEqual( expected_list_virtual_mfa_devices['VirtualMFADevices'], actual_list_virtual_mfa_devices) # check connect client mock_method_client.assert_any_call(service_name="iam")
def test_list_virtual_mfa_devices_error_call_list_virtual_mfa_devices( self): # connect client client_connect_iam = iam_utils.client_connect() expected_error_response = copy.deepcopy(DataCommon.ERROR_RESPONSE) expected_operation_name = copy.deepcopy(DataCommon.OPERATION_NAME) # mock client with patch.object(session, 'client') as mock_client: mock_client.return_value = client_connect_iam # mock error call API list_virtual_mfa_devices with patch.object(client_connect_iam, 'list_virtual_mfa_devices') as mock_method: mock_method.side_effect = ClientError( error_response=expected_error_response, operation_name=expected_operation_name) with patch.object(PmLogAdapter, 'error', return_value=None) as mock_method_error: with self.assertRaises(PmError) as exception: IAMUtils.list_virtual_mfa_devices( trace_id, session, aws_account) # 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) # check message log error mock_method_error.assert_any_call("[%s]仮想MFAデバイスリストの取得に失敗しました。", aws_account)
def test_get_list_user_policies_success_response_is_truncate_true(self): # connect client client_connect_iam = iam_utils.client_connect() expected_list_user_policies = copy.deepcopy( DataTestIAM.LIST_USER_POLICY_DATA) # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock response API list_user_policies with patch.object(client_connect_iam, 'list_user_policies') as mock_method: mock_method.side_effect = iam_utils.side_effect_list_user_policies actual_list_user_policies = IAMUtils.get_list_user_policies( trace_id, session, aws_account, user_name) # check response self.assertEqual(expected_list_user_policies, actual_list_user_policies) # check connect client mock_method_client.assert_any_call(service_name="iam") # check call API list_user_policies mock_method.assert_any_call(UserName=user_name)
def test_get_iam_client_success(self): # connect client expected_client_connect_iam = iam_utils.client_connect() # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = expected_client_connect_iam actual_client_connect_iam = IAMUtils.get_iam_client( trace_id, session, aws_account) # check response self.assertEqual(expected_client_connect_iam, actual_client_connect_iam) # check connect client mock_method_client.assert_any_call(service_name="iam")
def test_get_list_policies_success_response_not_exists_policies(self): # connect client client_connect_iam = iam_utils.client_connect() expected_list_policies = [] # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock API list_policies with patch.object(client_connect_iam, 'list_policies') as mock_method: mock_method.return_value = {'IsTruncated': False} actual_list_policies = IAMUtils.get_list_policies( trace_id, session, aws_account) # check response self.assertEqual(expected_list_policies, actual_list_policies) # check connect client mock_method_client.assert_any_call(service_name="iam")
def test_get_credential_report_success_response_not_exists_content(self): # connect client client_connect_iam = iam_utils.client_connect() expected_data_credential_report = [] # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock response API get_credential_report with patch.object(client_connect_iam, 'get_credential_report') as mock_method: mock_method.return_value = {} actual_credential_report = IAMUtils.get_credential_report( trace_id, session, aws_account) # check response self.assertEqual(expected_data_credential_report, actual_credential_report) # check connect client mock_method_client.assert_any_call(service_name="iam")
def test_get_account_password_policy_success_response_not_exists_password_policy( self): # connect client client_connect_iam = iam_utils.client_connect() expected_list_password_policy = [] # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock API get_account_password_policy with patch.object(client_connect_iam, 'get_account_password_policy') as mock_method: mock_method.return_value = {} actual_list_password_policy = IAMUtils.get_account_password_policy( trace_id, session, aws_account) # check response self.assertEqual(expected_list_password_policy, actual_list_password_policy) # check connect client mock_method_client.assert_any_call(service_name="iam")
def test_get_account_summary_success_by_response_not_exists_attribute_summary_map( self): # connect client client_connect_iam = iam_utils.client_connect() expected_data_account_summary = [] # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock response API get_account_summary with patch.object(client_connect_iam, 'get_account_summary') as mock_method: mock_method.return_value = {} actual_data_account_summary = IAMUtils.get_account_summary( trace_id, session, aws_account) # check response self.assertEqual(expected_data_account_summary, actual_data_account_summary) # check connect client mock_method_client.assert_any_call(service_name="iam")
def test_get_credential_report_success_response_exists_content(self): # connect client client_connect_iam = iam_utils.client_connect() expected_credential_report = copy.deepcopy( DataTestIAM.DATA_GET_CREDENTIAL_REPORT) # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock response API get_credential_report with patch.object(client_connect_iam, 'get_credential_report') as mock_method: mock_method.return_value = expected_credential_report actual_credential_report = IAMUtils.get_credential_report( trace_id, session, aws_account) # check response self.assertEqual(expected_credential_report['Content'].decode(), actual_credential_report) # check connect client mock_method_client.assert_any_call(service_name="iam")
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_get_account_password_policy_success_response_exists_password_policy( self): # connect client client_connect_iam = iam_utils.client_connect() expected_list_password_policy = copy.deepcopy( DataTestIAM.LIST_PASSWORD_POLICY) # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock API get_account_password_policy with patch.object(client_connect_iam, 'get_account_password_policy') as mock_method: mock_method.return_value = expected_list_password_policy actual_list_password_policy = IAMUtils.get_account_password_policy( trace_id, session, aws_account) # check response self.assertEqual(expected_list_password_policy['PasswordPolicy'], actual_list_password_policy) # check connect client mock_method_client.assert_any_call(service_name="iam")
def test_get_account_summary_success_by_response_exists_attribute_summary_map( self): # connect client client_connect_iam = iam_utils.client_connect() expected_data_account_summary = copy.deepcopy( DataTestIAM.DATA_ACCOUNT_SUMMARY_EXISTS_ATTRIBUTE) # mock client with patch.object(session, 'client') as mock_method_client: mock_method_client.return_value = client_connect_iam # mock response API get_account_summary with patch.object(client_connect_iam, 'get_account_summary') as mock_method: mock_method.return_value = expected_data_account_summary actual_data_account_summary = IAMUtils.get_account_summary( trace_id, session, aws_account) # check response self.assertEqual(expected_data_account_summary['SummaryMap'], actual_data_account_summary) # check connect client mock_method_client.assert_any_call(service_name="iam")