Могу ли я протестировать 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
Вернуться на верх