Использование Boto3 Stubber в качестве менеджера контекста при вызове пользовательских функций - PullRequest
1 голос
/ 10 июня 2019

Я пишу несколько юнит-тестов, и мы хотели бы использовать 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 и фактически извлекает данные для наших экземпляров.

...