$ pip install ' moto[ec2,s3,all] '
Moto est une bibliothèque qui permet à vos tests de simuler facilement les services AWS.
Imaginez que vous ayez le code Python suivant que vous souhaitez tester :
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 )
Prenez une minute pour réfléchir à la manière dont vous auriez testé cela dans le passé.
Voyons maintenant comment vous pouvez le tester avec 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"
Lorsque le décorateur termine le test, tous les appels à s3 sont automatiquement simulés. La simulation garde une trace de l’état des compartiments et des clés.
Pour une liste complète des services et fonctionnalités couverts, veuillez consulter notre couverture de mise en œuvre.
La documentation complète peut être trouvée ici :
http://docs.getmoto.org/en/latest/
Soutenez ce projet et son développement continu, en nous parrainant !
Cliquez sur le bouton Sponsor
en haut de la page pour plus d'informations.
Nos finances sont gérées par OpenCollective, ce qui signifie que vous avez une visibilité complète sur toutes nos contributions et dépenses : https://opencollective.com/moto
Pour signaler une vulnérabilité de sécurité, veuillez utiliser le contact de sécurité Tidelift. Tidelift coordonnera le correctif et la divulgation.