Я пишу несколько юнит-тестов, и мы хотели бы использовать boto.stub для макетирования ответов aws.
В этом случае тестируемые функции просто извлекают базы IP-адресов из некоторого входа, используя boto3.
Я следовал документам по Бото для Стаббера здесь: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/stubber.html
def test_ip_address_list(self):
ec2 = botocore.session.get_session().create_client('ec2')
response = api_stub_result() #just returns the mocked up response. IP address is set to 10.10.0.10 as a test
with Stubber(ec2) as stubber:
#stubber.activate() #I've tried with and without calling activate()
stubber.add_response('describe_instances', response, {})
results = ip_addresses("prod") #returns a list of ip addresses using describe_instances
print(results)
assert ("10.10.0.10") in results
Когда я запускаю это, я ожидаю, что экземпляр, описанный в api_stub_result, будет единственным возвращенным IP-адресом или, по крайней мере, будет в списке IP-адресов.
Вместо этого функция обратилась к AWS и фактически извлекает данные для наших экземпляров.