Как вы издеваетесь над сервисом aws, который не издевается над мото? - PullRequest
3 голосов
/ 15 января 2020

Я использую moto для макетирования aws сервисов для написания своих тестов и поддерживаемых сценариев, это нормально:

@mock_sts
def test_check_aws_profile(self):
    session = boto3.Session(profile_name='foo')
    client = session.client('sts')
    client.get_caller_identity().get('Account')

Но есть несколько сервисов, таких как es, которые не поддерживаются в все. Как мне начать это издеваться?

Я пробовал этот альтернативный подход к проверке, но не уверен, что есть лучший подход

def test_with_some_domains(self, mocker):
    mocked_boto = mocker.patch('mymodule.boto3')
    mocked_session = mocked_boto.Session()
    mocked_client.list_domain_names.return_value = ['foo-bar-baz']
    mymodule.function_call()

mymodule.py 

def function_call():
    session = boto3.Session(profile_name=my_profile)
    client = session.client('es', some_region)
    domain_names = client.list_domain_names()
...