moto
5.0.21
$ pip install ' moto[ec2,s3,all] '
Moto는 테스트에서 AWS 서비스를 쉽게 모형화할 수 있는 라이브러리입니다.
테스트하려는 다음과 같은 Python 코드가 있다고 가정해 보세요.
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 )
과거에 이를 어떻게 테스트했을지 잠시 생각해 보십시오.
이제 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"
데코레이터가 테스트를 래핑하면 s3에 대한 모든 호출이 자동으로 조롱됩니다. 모의 객체는 버킷과 키의 상태를 추적합니다.
적용되는 서비스 및 기능의 전체 목록을 보려면 구현 적용 범위를 참조하세요.
전체 문서는 여기에서 찾을 수 있습니다:
http://docs.getmoto.org/en/latest/
우리를 후원하여 이 프로젝트와 지속적인 발전을 지원하십시오!
자세한 내용을 보려면 페이지 상단의 Sponsor
버튼을 클릭하세요.
우리의 재정은 OpenCollective에 의해 관리됩니다. 즉, 귀하는 우리의 모든 기부금과 비용을 완벽하게 확인할 수 있습니다: https://opencollective.com/moto
보안 취약점을 신고하려면 Tidelift 보안 담당자에게 문의하세요. Tidelift는 수정 및 공개를 조정할 것입니다.