$ pip install ' moto[ec2,s3,all] '
Moto é uma biblioteca que permite que seus testes simulem facilmente os serviços AWS.
Imagine que você tem o seguinte código python que deseja testar:
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 )
Reserve um minuto para pensar como você teria testado isso no passado.
Agora veja como você poderia testá-lo com o 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"
Com o decorador encerrando o teste, todas as chamadas para s3 são automaticamente simuladas. A simulação monitora o estado dos buckets e das chaves.
Para obter uma lista completa de quais serviços e recursos são cobertos, consulte nossa cobertura de implementação.
A documentação completa pode ser encontrada aqui:
http://docs.getmoto.org/en/latest/
Apoie este projeto e o seu desenvolvimento contínuo, patrocinando-nos!
Clique no botão Sponsor
na parte superior da página para obter mais informações.
Nossas finanças são gerenciadas pela OpenCollective, o que significa que você tem total visibilidade de todas as nossas contribuições e despesas: https://opencollective.com/moto
Para relatar uma vulnerabilidade de segurança, use o contato de segurança da Tidelift. A Tidelift coordenará a correção e divulgação.