Как смоделировать объект / вызов клиента 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.

Ответы на вопрос(2)

Ваш ответ на вопрос