moto est un outil très utile qui peut se moquer des services AWS.
Si vous combinez cela avec le montage de pytest, vous pouvez automatiquement simuler le service AWS avec setUp de conftest.py
.
Référence - Problème avec Moto et création du montage pytest # 620
Exemple SQS
--Créer une file d'attente fictive pour SQS --Envoyer un message à la file d'attente fictive --Vérifier les messages de file d'attente fictive
import boto3
import pytest
from moto import mock_sqs
import json
@pytest.fixture()
def mock_fixture():
"""Créez une file d'attente et envoyez un message"""
mock = mock_sqs()
mock.start() #Commencer à simuler
client = boto3.client('sqs')
#Créer une file d'attente fictive
response = client.create_queue(QueueName='example')
queue_url = response['QueueUrl']
#Envoyer le message
client.send_message(QueueUrl=queue_url,
MessageBody=json.dumps({'msg': 'hello'}))
yield client, queue_url #Transition à tester ici
mock.stop() #Fin de la simulation
def test_moto_sqs(mock_fixture):
"""Test de montage"""
client, queue_url = mock_fixture
messages = client.receive_message(QueueUrl=queue_url)['Messages']
assert messages[0]['Body'] == '{"msg": "hello"}'
Il y a 3 points.
mock.start()
mock.stop()
yield
.Si vous le définissez sur «return» au lieu de «yield», le processus de démontage («mock.stop ()» ci-dessus) ne sera pas exécuté.
Recommended Posts