$ pip install ' moto[ec2,s3,all] '
Moto adalah perpustakaan yang memungkinkan pengujian Anda meniru Layanan AWS dengan mudah.
Bayangkan Anda memiliki kode python berikut yang ingin Anda uji:
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 )
Luangkan waktu sejenak untuk memikirkan bagaimana Anda akan mengujinya di masa lalu.
Sekarang lihat bagaimana Anda bisa mengujinya dengan 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"
Dengan dekorator yang menyelesaikan pengujian, semua panggilan ke s3 secara otomatis diolok-olok. Tiruan ini melacak status ember dan kunci.
Untuk daftar lengkap layanan dan fitur apa saja yang tercakup, silakan lihat cakupan penerapan kami.
Dokumentasi lengkap dapat ditemukan di sini:
http://docs.getmoto.org/en/latest/
Dukung proyek ini dan pengembangan berkelanjutannya, dengan mensponsori kami!
Klik tombol Sponsor
di bagian atas halaman untuk informasi lebih lanjut.
Keuangan kami dikelola oleh OpenCollective, yang berarti Anda memiliki visibilitas penuh atas semua kontribusi dan pengeluaran kami: https://opencollective.com/moto
Untuk melaporkan kerentanan keamanan, silakan gunakan kontak keamanan Tidelift. Tidelift akan mengoordinasikan perbaikan dan pengungkapan.