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 將協調修復和揭露。