Могу ли я протестировать celery с помощью mock.patch('django.utils.timezone.now', mock.Mock(return_value=mocked))?
У меня есть задача celery, которая создает новые объекты Alert
через 3 дня после действия POST
, и я хочу проверить это. Я создаю тест, который утверждает assert Alert.boject.count() == 0
прямо сейчас, и он утверждает, что оповещение будет равно 1 через 3 дня. Но оповещение возвращает 0 вместо 1.
Мой код настолько сложный и длинный, что делиться им нецелесообразно
- Цель Мне просто нужно знать, действительно ли mock.patch работает на функциях обратного отсчета сельдерея.
res = self.client.post('/alerts/rules/', data)
self.assertEqual(res.status_code, status.HTTP_201_CREATED)
i = now + delta_time(3,'days')
mocked = datetime.datetime(2021, 4, i, 0, 0, 0, tzinfo=pytz.utc)
assert Alert.boject.count() == 0
with mock.patch('django.utils.timezone.now', mock.Mock(return_value=mocked)):
assert Alert.bojects.count() == 1