1
0
mirror of https://github.com/django/django.git synced 2025-03-12 10:22:37 +00:00

[5.2.x] Refs #470 -- Fixed field_defaults test failures due to year-end boundary conditions.

Backport of 352d860b9107adbcde0f1fe5d0fce8e9090a51e4 from main.
This commit is contained in:
Jacob Walls 2025-01-23 10:43:04 -05:00 committed by Natalia
parent 123d00a9a3
commit c85b68398b

View File

@ -15,7 +15,14 @@ from django.db.models.expressions import (
) )
from django.db.models.functions import Collate from django.db.models.functions import Collate
from django.db.models.lookups import GreaterThan from django.db.models.lookups import GreaterThan
from django.test import SimpleTestCase, TestCase, skipIfDBFeature, skipUnlessDBFeature from django.test import (
SimpleTestCase,
TestCase,
override_settings,
skipIfDBFeature,
skipUnlessDBFeature,
)
from django.utils import timezone
from .models import ( from .models import (
Article, Article,
@ -69,12 +76,13 @@ class DefaultTests(TestCase):
self.assertIsNone(obj2.null) self.assertIsNone(obj2.null)
@skipUnlessDBFeature("supports_expression_defaults") @skipUnlessDBFeature("supports_expression_defaults")
@override_settings(USE_TZ=True)
def test_db_default_function(self): def test_db_default_function(self):
m = DBDefaultsFunction.objects.create() m = DBDefaultsFunction.objects.create()
if not connection.features.can_return_columns_from_insert: if not connection.features.can_return_columns_from_insert:
m.refresh_from_db() m.refresh_from_db()
self.assertAlmostEqual(m.number, pi) self.assertAlmostEqual(m.number, pi)
self.assertEqual(m.year, datetime.now().year) self.assertEqual(m.year, timezone.now().year)
self.assertAlmostEqual(m.added, pi + 4.5) self.assertAlmostEqual(m.added, pi + 4.5)
self.assertEqual(m.multiple_subfunctions, 4.5) self.assertEqual(m.multiple_subfunctions, 4.5)
@ -163,12 +171,13 @@ class DefaultTests(TestCase):
self.assertCountEqual(headlines, ["Default headline", "Something else"]) self.assertCountEqual(headlines, ["Default headline", "Something else"])
@skipUnlessDBFeature("supports_expression_defaults") @skipUnlessDBFeature("supports_expression_defaults")
@override_settings(USE_TZ=True)
def test_bulk_create_mixed_db_defaults_function(self): def test_bulk_create_mixed_db_defaults_function(self):
instances = [DBDefaultsFunction(), DBDefaultsFunction(year=2000)] instances = [DBDefaultsFunction(), DBDefaultsFunction(year=2000)]
DBDefaultsFunction.objects.bulk_create(instances) DBDefaultsFunction.objects.bulk_create(instances)
years = DBDefaultsFunction.objects.values_list("year", flat=True) years = DBDefaultsFunction.objects.values_list("year", flat=True)
self.assertCountEqual(years, [2000, datetime.now().year]) self.assertCountEqual(years, [2000, timezone.now().year])
def test_full_clean(self): def test_full_clean(self):
obj = DBArticle() obj = DBArticle()