В процессе разработки тестов, иногда возникает необходимость, записать
в поле DateTimeFiled с параметром auto_now_add=True свою дату и время отличные от текущего.
Некоторые ради такой возможности даже отказываются от использования auto_now_add. 0_о
Но так делать не надо. Можно сделать так:
from datetime import datetime
from django.utils import timezone
from unittest import mock
def test_auto_now_add(self):
mocked = datetime(207, 11, 26, 0, 0, 0)
with mock.patch('django.utils.timezone.now', mock.Mock(return_value=mocked)):
MyModel.object.create(
...
created_at=timezone.now()
...
)
В результате получим нужную дату и время в нашем поле
Комментарии