Как протестировать модуль, который зависит от boto и сервиса Amazon AWS?

Я пишу очень маленькую Python ORM около boto.dynamodb.layer2. Я хотел бы написать для него тесты, но я не хочу, чтобы тесты действительно взаимодействовали с AWS, так как это потребует сложной настройки, учетных данных, доступа к сети и т. д.

Поскольку я планирую открыть исходный код модуля, включение учетных данных в исходный код кажется плохой идеей, поскольку с меня будет взиматься плата за использование, а включение учетных данных в среду — это боль.

Связывание моих тестов с сетью кажется плохой идеей, так как это замедляет работу тестов или может привести к сбою тестов из-за сетевых ошибок или дросселирования. Моя цель не в том, чтобы протестировать интерфейс DynamoDB или AWS от boto. Я просто хочу проверить свой собственный код.

Я планирую использоватьunittest2написать тесты иmockиздеваться над частями boto, попавшими в сеть, но я никогда раньше этого не делал, поэтому мой вопрос сводится к этим:

  1. Правильно ли я поступаю?
  2. Кто-нибудь еще сделал это?
  3. Есть ли в интерфейсе boto.dynamodbкакие-то определенные точки, которые лучше всего замаскировать?

14
задан David Eyk 1 August 2012 в 18:06
поделиться