Creo que moto (https://github.com/spulec/moto) es la herramienta perfecta para sus unittests. Moto se burla de todos los accesos a S3, SQS, etc. y puede usarse en cualquier lenguaje de programación usando su servidor web.
Es trivial de configurar, ligero y rápido.
De README de moto:
Imagine que tiene el siguiente código que desea probar:
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)
Tome un minuto para pensar en lo que habría probado que en el pasado. Ahora veamos cómo se puede probar con 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'
algo relacionado (aunque más orientado al uso de producción que las pruebas unitarias): http://serverfault.com/questions/283914/s3-compatible-object-storage-systems – Thilo