[Python] Transformez les ressources AWS simulées avec Moto en appareils Pytest

moto est un outil très utile qui peut se moquer des services AWS.

spulec/moto - GitHub

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.

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

[Python] Transformez les ressources AWS simulées avec Moto en appareils Pytest
Pyinstaller transforme les scripts Python en .exes qui peuvent être exécutés sous Windows
Convertir JSON en CSV avec Python de Splunk
Créez des tweets ordinaires comme une flotte avec AWS Lambda et Python
Créez Puyopuyo AI avec Python
Faites une loterie avec Python
Faisons une discussion WEB en utilisant WebSocket avec AWS sans serveur (Python)!
Créez un bot LINE avec Python + heroku
Faisons une interface graphique avec python.
Extraction de texte avec AWS Textract (Python3.6)
Créer un système de recommandation avec python
Faisons un graphe avec python! !!
Notifier HipChat avec AWS Lambda (Python)
[AWS] [GCP] J'ai essayé de rendre les services cloud faciles à utiliser avec Python
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Mettez des tampons de protocole dans sqlite avec python
Fractal pour faire et jouer avec Python
Faisons la voix lentement avec Python
Je veux jouer avec aws avec python
Facilitez la soumission de pypy avec atcoder-cli (python)
[Python] Rendons matplotlib compatible avec le japonais
Connectez-vous à s3 avec AWS Lambda Python
Créez un framework Web avec Python! (1)
Créez une application de bureau avec Python avec Electron
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
Touchez AWS avec Serverless Framework et Python
API Boto3 (manipuler les ressources AWS avec la bibliothèque Python) qui est souvent utilisée en privé