From c85b68398b89bde944de87f528c7d2d1d9fb5dcb Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Thu, 23 Jan 2025 10:43:04 -0500 Subject: [PATCH] [5.2.x] Refs #470 -- Fixed field_defaults test failures due to year-end boundary conditions. Backport of 352d860b9107adbcde0f1fe5d0fce8e9090a51e4 from main. --- tests/field_defaults/tests.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/field_defaults/tests.py b/tests/field_defaults/tests.py index 6a5c75c36a..57d5ce6320 100644 --- a/tests/field_defaults/tests.py +++ b/tests/field_defaults/tests.py @@ -15,7 +15,14 @@ from django.db.models.expressions import ( ) from django.db.models.functions import Collate 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 ( Article, @@ -69,12 +76,13 @@ class DefaultTests(TestCase): self.assertIsNone(obj2.null) @skipUnlessDBFeature("supports_expression_defaults") + @override_settings(USE_TZ=True) def test_db_default_function(self): m = DBDefaultsFunction.objects.create() if not connection.features.can_return_columns_from_insert: m.refresh_from_db() 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.assertEqual(m.multiple_subfunctions, 4.5) @@ -163,12 +171,13 @@ class DefaultTests(TestCase): self.assertCountEqual(headlines, ["Default headline", "Something else"]) @skipUnlessDBFeature("supports_expression_defaults") + @override_settings(USE_TZ=True) def test_bulk_create_mixed_db_defaults_function(self): instances = [DBDefaultsFunction(), DBDefaultsFunction(year=2000)] DBDefaultsFunction.objects.bulk_create(instances) 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): obj = DBArticle()