У меня проблемы с тестированием следующего кода.Если я удаляю client_mock, тест успешно запускается, показывая, что был вызван boto3.client ().Но я не могу проверить ни один из звонков, которые делает возвращенный клиент.Я получаю AssertionError: Ожидается, что 'get_paginator' был вызван.
Я знаю о мото и плацебо, но для целей этого упражнения я пытаюсь научиться делать это с помощью unittest.mock.
accounts.py
import boto3
def get_accounts():
'''
Return a list of account information from the organization.
'''
client = boto3.client('organizations')
paginator = client.get_paginator('list_accounts')
response_iterator = paginator.paginate()
accounts = []
for page in response_iterator:
for account in page['Accounts']:
accounts.append(account)
return accounts
tests.py
import unittest
from accounts import get_accounts, get_session
from unittest.mock import patch
class TestAccounts(unittest.TestCase):
@patch('accounts.boto3')
@patch('accounts.boto3.client')
def test_get_accounts(self, client_mock, boto3_mock):
get_accounts()
boto3_mock.client.assert_called()
client_mock.get_paginator.assert_called()
if __name__ == '__main__':
unittest.main()