Я создал CMS с платным доступом + систему выставления счетов для клиента, и мне нужно быть более строгим в своем тестировании.
Я храню все свои данные в ORM Django, и у меня есть куча задач Celery, которые выполняются с разными интервалами, что гарантирует отправку новых счетов и напоминаний о счетах и ограничение доступа, когда пользователи не оплачивают свои счета.
Например, я хотел бы иметь возможность запустить тест, который:
Создает нового пользователя и генерирует счет за X дней доступа к сайту
Имитирует прохождение X + 1 дней, и выполняет все задачи, которые я настроил в Celery.
Проверяет, выставлен ли пользователю новый счет за другие X дней.
Подход KISS, который я придумал до сих пор, заключается в том, чтобы выполнять все тесты на отдельной машине и фактически манипулировать датой/временем на уровне ОС. Таким образом, сценарий тестирования должен:
Установить системную дату на 1 день
Создать нового пользователя и сгенерировать первый счет за X дней доступа
Передвинуть системную дату на 1 день. Запустите все мои задачи сельдерея. Повторяйте, пока не «пройдёт» X + 1 дней.
Убедитесь, что новый счёт-фактура был выставлен.
Это немного неуклюже, но я думаю, что это может сработать. Любые другие идеи о том, как это сделать?