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 将协调修复和披露。