$ pip install ' moto[ec2,s3,all] '
Moto ist eine Bibliothek, die es Ihren Tests ermöglicht, AWS Services einfach nachzuahmen.
Stellen Sie sich vor, Sie haben den folgenden Python-Code, den Sie testen möchten:
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 )
Nehmen Sie sich eine Minute Zeit und überlegen Sie, wie Sie das in der Vergangenheit getestet hätten.
Sehen Sie sich jetzt an, wie Sie es mit Moto testen können:
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"
Wenn der Dekorateur den Test umschließt, werden alle Aufrufe von s3 automatisch ausgeblendet. Der Mock verfolgt den Zustand der Buckets und Schlüssel.
Eine vollständige Liste der abgedeckten Dienste und Funktionen finden Sie in unserer Implementierungsabdeckung.
Die vollständige Dokumentation finden Sie hier:
http://docs.getmoto.org/en/latest/
Unterstützen Sie dieses Projekt und seine Weiterentwicklung, indem Sie uns sponsern!
Klicken Sie oben auf der Seite auf die Schaltfläche Sponsor
, um weitere Informationen zu erhalten.
Unsere Finanzen werden von OpenCollective verwaltet, was bedeutet, dass Sie vollständigen Einblick in alle unsere Beiträge und Ausgaben haben: https://opencollective.com/moto
Um eine Sicherheitslücke zu melden, wenden Sie sich bitte an den Sicherheitskontakt von Tidelift. Tidelift wird die Behebung und Offenlegung koordinieren.