Как смоделировать объект / вызов клиента boto3
Я пытаюсь издеваться над одной конкретной функцией boto3. Мой модуль, Cleanup, импортирует boto3. Уборка также имеет класс «уборщик». Во время init уборщик создает клиента ec2:
self.ec2_client = boto3.client('ec2')
Я хочу издеваться над клиентским методом ec2: desribe_tags (), который Python говорит:
<bound method EC2.describe_tags of <botocore.client.EC2 object at 0x7fd98660add0>>
самое большее, что я получил, это импортирование botocore в мой тестовый файл и попытка:
mock.patch(Cleaner.botocore.client.EC2.describe_tags)
который терпит неудачу с:
AttributeError: 'module' object has no attribute 'EC2'
Как мне издеваться над этим методом?
Очистка выглядит так:
import boto3
class cleaner(object):
def __init__(self):
self.ec2_client = boto3.client('ec2')
Объект ec2_client имеет метод desribe_tags (). Это объект botocore.client.EC2, но я никогда напрямую не импортирую botocore.