moto - AWSインフラストラクチャに基づいてテストを簡単にモックアウトできるライブラリ。

(A library that allows you to easily mock out tests based on AWS infrastructure.)

Created at: 2013-02-19 05:10:59
Language: Python
License: Apache-2.0

Moto-モックAWSサービス

https://gitter.im/awsmoto/Lobbyでチャットに参加してください

ビルドステータス カバレッジステータス ドキュメント PyPI PyPI-Pythonバージョン PyPI-ダウンロード コードスタイル:黒

インストール

$ pip install moto[ec2,s3,all]

一言で言えば

Motoは、テストでAWSサービスを簡単にモックアウトできるライブラリです。

テストしたい次のPythonコードがあるとします。

import boto3

class MyModel(object):
    def __init__(self, name, value):
        self.name = name
        self.value = value

    def save(self):
        s3 = boto3.client('s3', region_name='us-east-1')
        s3.put_object(Bucket='mybucket', Key=self.name, Body=self.value)

少し時間を取って、過去にそれをどのようにテストしたかを考えてください。

次に、Motoでテストする方法を確認します。

import boto3
from moto import mock_s3
from mymodule import MyModel

@mock_s3
def test_my_model_save():
    conn = boto3.resource('s3', region_name='us-east-1')
    # We need to create the bucket since this is all in Moto's 'virtual' AWS account
    conn.create_bucket(Bucket='mybucket')
    model_instance = MyModel('steve', 'is awesome')
    model_instance.save()
    body = conn.Object('mybucket', 'steve').get()['Body'].read().decode("utf-8")
    assert body == 'is awesome'

デコレータがテストをラップすると、s3へのすべての呼び出しが自動的にモックアウトされます。モックはバケットとキーの状態を保持します。

対象となるサービスと機能の完全なリストについては、実装範囲をご覧ください。

ドキュメンテーション

完全なドキュメントはここにあります:

http://docs.getmoto.org/en/latest/