moto
5.0.21
$ pip install ' moto[ec2,s3,all] '
Moto は、テストで AWS サービスを簡単にモックアウトできるようにするライブラリです。
テストしたい次の Python コードがあると想像してください。
import boto3
class MyModel :
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_aws
from mymodule import MyModel
@ mock_aws
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/
私たちをスポンサーして、このプロジェクトとその継続的な発展をサポートしてください!
詳細については、ページ上部のSponsor
ボタンをクリックしてください。
私たちの財務は OpenCollective によって管理されています。つまり、すべての寄付と経費を完全に把握できます: https://opencollective.com/moto
セキュリティの脆弱性を報告するには、Tidelift のセキュリティ連絡先を使用してください。 Tidelift が修正と公開を調整します。