Я думаю, что moto (https://github.com/spulec/moto) - идеальный инструмент для ваших unittests. Moto перебирает все обращения к S3, SQS и т. Д. И может использоваться на любом языке программирования с использованием своего веб-сервера.
Это тривиально настроить, легко и быстро.
С README MOTO по:
Представьте у вас есть следующий код, который вы хотите проверить:
import boto
from boto.s3.key import Key
class MyModel(object):
def __init__(self, name, value):
self.name = name
self.value = value
def save(self):
conn = boto.connect_s3()
bucket = conn.get_bucket('mybucket')
k = Key(bucket)
k.key = self.name
k.set_contents_from_string(self.value)
занять минуту, чтобы думать, как бы вы испытали, что в прошлом. Теперь посмотрим, как вы могли проверить его с Moto:
import boto
from moto import mock_s3
from mymodule import MyModel
@mock_s3
def test_my_model_save():
model_instance = MyModel('steve', 'is awesome')
model_instance.save()
conn = boto.connect_s3()
assert conn.get_bucket('mybucket').get_key('steve') == 'is awesome'
несколько связанный (хотя более ориентированный на производство, чем модульное тестирование): http://serverfault.com/questions/283914/s3-compatible-object-storage-systems – Thilo 2012-03-14 07:30:33