def update_account_alias(self): """ Update the account alias. Args: None Returns: (String, String) Account ID, Account Alias """ account_id, account_alias = get_account_alias_from_role_arn( self._role_arn) with AccountAliasAccessor(account_id, self._schema) as alias_accessor: alias_accessor.set_account_alias(account_alias) accounts = get_account_names_by_organization(self._role_arn) for account in accounts: acct_id = account.get('id') acct_alias = account.get('name') if acct_id and acct_alias: with AccountAliasAccessor(acct_id, self._schema) as alias_accessor: alias_accessor.set_account_alias(acct_alias) return account_id, account_alias
def test_get_account_names_by_organization_no_session(self, mock_get_role_session): """Test get_account_names_by_organization gets nothing if there are no sessions.""" mock_session = mock_get_role_session.return_value mock_client = mock_session.client mock_client.return_value.get_paginator.side_effect = ClientError({}, "Error") mock_account_id = "111111111111" role_arn = f"arn:aws:iam::{mock_account_id}:role/CostManagement" accounts = utils.get_account_names_by_organization(role_arn) self.assertEqual(accounts, [])
def test_get_account_names_by_organization_no_session( self, mock_get_role_session): mock_session = mock_get_role_session.return_value mock_client = mock_session.client mock_client.return_value.get_paginator.side_effect = ClientError( {}, 'Error') mock_account_id = '111111111111' role_arn = 'arn:aws:iam::{}:role/CostManagement'.format( mock_account_id) accounts = utils.get_account_names_by_organization(role_arn) self.assertEqual(accounts, [])
def test_get_account_names_by_organization(self): """Test get_account_names_by_organization is functional.""" mock_account_id = "111111111111" role_arn = f"arn:aws:iam::{mock_account_id}:role/CostManagement" mock_alias = "test-alias" expected = [{"id": mock_account_id, "name": mock_alias}] session = Mock() mock_client = Mock() mock_paginator = Mock() paginated_results = [{"Accounts": [{"Id": mock_account_id, "Name": mock_alias}]}] mock_paginator.paginate.return_value = paginated_results mock_client.get_paginator.return_value = mock_paginator session.client.return_value = mock_client accounts = utils.get_account_names_by_organization(role_arn, session) self.assertEqual(accounts, expected)
def test_get_account_names_by_organization(self): mock_account_id = '111111111111' role_arn = 'arn:aws:iam::{}:role/CostManagement'.format( mock_account_id) mock_alias = 'test-alias' expected = [{'id': mock_account_id, 'name': mock_alias}] session = Mock() mock_client = Mock() mock_paginator = Mock() paginated_results = [{ 'Accounts': [{ 'Id': mock_account_id, 'Name': mock_alias }] }] mock_paginator.paginate.return_value = paginated_results mock_client.get_paginator.return_value = mock_paginator session.client.return_value = mock_client accounts = utils.get_account_names_by_organization(role_arn, session) self.assertEqual(accounts, expected)