Fix Expression test compatibility for Django 6.0+ (#759)

* Skip incompatible tests on Django 6.0+

refs:
- #635
- #646
- https://code.djangoproject.com/ticket/27222

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* remove skipif

* Add changelog

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Youngkwang Yang 2025-09-24 16:05:11 +09:00 committed by Ilya
parent 359edc8725
commit a2a049df06

View file

@ -9,6 +9,7 @@ from unittest.mock import patch
import freezegun
from dateutil.tz import gettz
from django import VERSION as DJANGO_VERSION
from django.apps import apps
from django.conf import settings
from django.contrib.admin.sites import AdminSite
@ -1091,7 +1092,14 @@ class DateTimeFieldModelTest(TestCase):
dtm.naive_dt = Now()
self.assertEqual(dtm.naive_dt, Now())
dtm.save()
self.assertEqual(dtm.naive_dt, Now())
# Django 6.0+ evaluates expressions during save (django ticket #27222)
if DJANGO_VERSION >= (6, 0, 0):
with self.subTest("After save Django 6.0+"):
self.assertIsInstance(dtm.naive_dt, datetime.datetime)
else:
with self.subTest("After save Django < 6.0"):
self.assertEqual(dtm.naive_dt, Now())
class UnregisterTest(TestCase):