[Python] Machen Sie mit Moto verspottete AWS-Ressourcen zu Pytest-Fixtures

moto ist ein sehr nützliches Tool, das AWS-Services verspotten kann.

spulec/moto - GitHub

Wenn Sie dies mit dem Pytest-Gerät kombinieren, können Sie den AWS-Service automatisch mit setUp in conftest.py verspotten.

Referenz- Problem mit Moto und Erstellen des Pytest-Geräts Nr. 620

SQS-Beispiel

--Erstellen Sie eine Scheinwarteschlange für SQS --Senden Sie eine Nachricht an die Scheinwarteschlange

import boto3
import pytest
from moto import mock_sqs
import json


@pytest.fixture()
def mock_fixture():
    """Erstellen Sie eine Warteschlange und senden Sie eine Nachricht"""
    mock = mock_sqs()
    mock.start()  #Fangen Sie an zu verspotten
    client = boto3.client('sqs')
    #Erstellen Sie eine Scheinwarteschlange
    response = client.create_queue(QueueName='example')
    queue_url = response['QueueUrl']
    #Nachricht senden
    client.send_message(QueueUrl=queue_url,
                        MessageBody=json.dumps({'msg': 'hello'}))
    yield client, queue_url  #Übergang zum Test hier
    mock.stop()  #Ende der Verspottung


def test_moto_sqs(mock_fixture):
    """Vorrichtungsprüfung"""
    client, queue_url = mock_fixture
    messages = client.receive_message(QueueUrl=queue_url)['Messages']
    assert messages[0]['Body'] == '{"msg": "hello"}'

Es gibt 3 Punkte.

Wenn Sie "return" anstelle von "ield "setzen, wird der Teardown-Prozess (" mock.stop () "oben) nicht ausgeführt.

Recommended Posts

[Python] Machen Sie mit Moto verspottete AWS-Ressourcen zu Pytest-Fixtures
Pyinstaller verwandelt Python-Skripte in EXE-Dateien, die unter Windows ausgeführt werden können
Konvertieren Sie JSON mit Python von Splunk in CSV
Machen Sie mit AWS Lambda und Python gewöhnliche Tweets flottenartig
Erstelle Puyopuyo AI mit Python
Machen Sie eine Lotterie mit Python
Lassen Sie uns einen Web-Chat mit WebSocket mit AWS serverless (Python) durchführen!
Erstelle einen LINE-Bot mit Python + Heroku
Lassen Sie uns eine GUI mit Python erstellen.
Textextraktion mit AWS Textract (Python3.6)
Erstellen Sie ein Empfehlungssystem mit Python
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
[AWS] [GCP] Ich habe versucht, die Verwendung von Cloud-Diensten mit Python zu vereinfachen
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Fügen Sie Protokollpuffer mit Python in SQLite ein
Fraktal zum Erstellen und Spielen mit Python
Lassen Sie uns mit Python langsam sprechen
Ich möchte mit aws mit Python spielen
Erleichtern Sie die Einreichung von Pypys mit atcoder-cli (Python)
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
Erstellen Sie ein Webframework mit Python! (1)
Erstellen Sie eine Desktop-App mit Python mit Electron
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Berühren Sie AWS mit Serverless Framework und Python
Boto3-API (AWS-Ressourcen mit Python-Bibliothek bearbeiten), die häufig privat verwendet wird