Даты при сериализации и создании через setUp расходятся. Django
Пытаюсь протестировать приложение, но поле updated с датой обновления объекта. И из-за него появляется ошибка. Пытался ставить определенную дату обновления и не срабатывало, пытался ставить None, тоже не срабатывало, писал подобное timezone.now() + timedelta(days=1)
и тоже не срабатывало, все равно поле updated автоматически само заполнялось с минимальными различиями во времени наверное сек или мс. Короче появляется такая ошибка:
self.assertEqual(serializer_data, response.data.get('current_news'))
AssertionError: {'id'[141 chars]7.607389+06:00', 'updated': '2021-11-30T23:48:37.609387+06:00'} != {'id'[141 chars]7.607389+06:00', 'updated': '2021-11-30T23:48:37.614385+06:00'}
Вот setUp и сам тест:
class TestNews(APITestCase):
def setUp(self):
self.user = User.objects.create(username='testadmin', password='testpassword')
self.test_news = News.objects.create(
title='Testnews',
slug='testnews',
article='Intro test text',
excerpt='Test News',
important=True,
lang='Ru',
author=self.user,
cover='test_image.jpg',
banners=True,
created=timezone.now(),
updated=None
)
def test_news_detail(self):
response = self.client.get(reverse('news_detail', kwargs={'slug': self.test_news.slug}))
serializer_data = NewsDetailSerializer(self.test_news).data
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(serializer_data, response.data.get('current_news'))
Если я поле updated не заполняю вообще, то оно все равно автоматически заполняется.
Вот так выглядит поле в модели:
updated = models.DateTimeField(auto_now=True, verbose_name='Обновлено')