2015-04-06 2 views
1

Я выполняю интеграционное тестирование для проекта. Часть теста включает в себя следующие этапы последующей:boto python для SNS и SQS - Являются ли методы синхронными?

  1. Создать очереди SQS X
  2. Подписаться на SNS тему Y
  3. Проверить, если X существует
  4. Проверьте, если X подписан на Y
  5. Отписался X от Y
  6. Проверить, если X является отписался в Y
  7. Удалить X
  8. Проверьте, если X не является EXI стент

Мой тестовый пример обычно проходит нормально до проверки на шаге 6, после чего он терпит неудачу.

Я использую sns.get_all_subscriptions_by_topic(), чтобы проверить наличие подписки и, по-видимому, я все еще могу найти X, подписанный на Y в этот момент. Поэтому это заставляет меня задаться вопросом, является ли вся библиотека асинхронной. Если это так, я не уверен, могу ли я легко выполнить интеграционное тестирование с ним.

К сожалению, boto API page ничего не говорит о синхронизации.

+1

Да, на самом деле это не его AWS. Многие из этих операций в конечном итоге согласуются просто из-за огромного масштаба AWS. Вызов boto ожидает ответа от службы перед возвратом, но этот ответ не означает, что операция на стороне сервера завершена. – garnaat

+0

Спасибо, ребята. Может ли один из вас опубликовать это как ответ, чтобы я мог дать ему галочку? – user1836155

ответ

1

Возможно, это не имеет ничего общего с boto - многие из методов AWS являются асинхронными и в конечном итоге последовательными.

Это, как представляется, не документировано, но я видел асинхронное поведение нескольких методов SQS (например, очистка очереди) в прошлом.

Смежные вопросы