Moto是一个允许你轻松模拟出基于AWS基础设施的测试的库。
如果你有以下的Pytho代码想测试:
importboto3classMyModel(object):def__iit__(self,ame,value):self.ame=ameself.value=valuedefsave(self):s3=boto3.cliet('s3',regio_ame='us-east-1')s3.put_object(Bucket='mybucket',Key=self.ame,Body=self.value)用Moto来测试:
importboto3frommotoimportmock_s3frommymoduleimportMyModel@mock_s3deftest_my_model_save():co=boto3.resource('s3',regio_ame='us-east-1')#WeeedtocreatethebucketsicethisisalliMoto's'virtual'AWSaccoutco.create_bucket(Bucket='mybucket')model_istace=MyModel('steve','isawesome')model_istace.save()body=co.Object('mybucket','steve').get()['Body'].read().decode("utf-8")assertbody=='isawesome'
评论