So verspotten Sie ein boto3-Client-Objekt / call
Ich versuche, eine bestimmte boto3-Funktion zu verspotten. Mein Modul Cleanup importiert boto3. Cleanup hat auch eine Klasse, "sauberer". Während der Initialisierung erstellt Cleaner einen ec2-Client:
self.ec2_client = boto3.client('ec2')
Ich möchte die ec2-Client-Methode desribe_tags () verspotten, die laut Python wie folgt lautet:
<bound method EC2.describe_tags of <botocore.client.EC2 object at 0x7fd98660add0>>
das weiteste, was ich bekommen habe, ist Botocore in meine Testdatei zu importieren und zu versuchen:
mock.patch(Cleaner.botocore.client.EC2.describe_tags)
was fehlschlägt mit:
AttributeError: 'module' object has no attribute 'EC2'
Wie verspotte ich diese Methode?
Cleanup sieht so aus:
import boto3
class cleaner(object):
def __init__(self):
self.ec2_client = boto3.client('ec2')
Das ec2_client-Objekt ist das Objekt mit der desribe_tags () -Methode. Es ist ein botocore.client.EC2-Objekt, aber ich importiere Botocore nie direkt.