$ pip install ' moto[ec2,s3,all] '
Moto es una biblioteca que permite que sus pruebas simulen fácilmente los servicios de AWS.
Imagine que tiene el siguiente código Python que desea probar:
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 )
Tómate un minuto para pensar cómo lo habrías probado en el pasado.
Ahora mira cómo puedes probarlo con 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"
Con el decorador finalizando la prueba, todas las llamadas a s3 se burlan automáticamente. El simulacro realiza un seguimiento del estado de los depósitos y las llaves.
Para obtener una lista completa de los servicios y funciones cubiertos, consulte nuestra cobertura de implementación.
La documentación completa se puede encontrar aquí:
http://docs.getmoto.org/en/latest/
¡Apoya este proyecto y su continuo desarrollo, patrocinándonos!
Haga clic en el botón Sponsor
en la parte superior de la página para obtener más información.
Nuestras finanzas son gestionadas por OpenCollective, lo que significa que tienes total visibilidad de todas nuestras aportaciones y gastos: https://opencollective.com/moto
Para informar una vulnerabilidad de seguridad, utilice el contacto de seguridad de Tidelift. Tidelift coordinará la solución y la divulgación.