Я поддерживаю большой веб-сайт 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.
У кого-нибудь есть хорошее решение для таких ошибок?Мои первые идеи:
- Переход на локальное хранилище для тестов - плохая идея, так как мы хотим, чтобы тесты использовали среду, максимально приближенную к рабочей.
- Исправьте код хранилищас
mock
и вставьте туда реальный datetime
- своего рода патч на патче, который добавляет слой усложнения.