Приложение Django + Amazon S3 генерирует RequestTimeTooSkewed при модульном тестировании - PullRequest
0 голосов
/ 24 апреля 2019

Я поддерживаю большой веб-сайт Django и решил переместить хранилище на Amazon S3.

У нас есть много модульных тестов, которые охватывают код выставления счетов / выставления счетов.Все сгенерированные документы автоматически сохраняются в виде файлов, и благодаря django-s3-storage они прозрачно помещаются в S3.

Однако для правильного моделирования различных сценариев мы используем утилиту freezegun, которая подделывает системное время в тестах.Некоторые из них меняют время на год или более назад, и при попытке отправить файлы на S3 мы получаем множество сбоев An error occurred (RequestTimeTooSkewed) when calling the ListObjectsV2 operation: The difference between the request time and the current time is too large.

У кого-нибудь есть хорошее решение для таких ошибок?Мои первые идеи:

  1. Переход на локальное хранилище для тестов - плохая идея, так как мы хотим, чтобы тесты использовали среду, максимально приближенную к рабочей.
  2. Исправьте код хранилищас mock и вставьте туда реальный datetime - своего рода патч на патче, который добавляет слой усложнения.
...