Skip to content

Commit 3728489

Browse files
Refs django#470 -- Fixed further field_defaults test failures due to year-end boundary conditions.
Follow-up to 352d860. Overriding USE_TZ=True during a test creates drift between the SQL compiled for inserted values versus the deployed database default, as Extract() inquires of the current timezone. To resolve this, leave USE_TZ=False and make UTC explicit when asserting the result.
1 parent 3abf898 commit 3728489

1 file changed

Lines changed: 4 additions & 7 deletions

File tree

tests/field_defaults/tests.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import datetime
1+
from datetime import UTC, datetime
22
from decimal import Decimal
33
from math import pi
44

@@ -15,8 +15,7 @@
1515
)
1616
from django.db.models.functions import Collate
1717
from django.db.models.lookups import GreaterThan
18-
from django.test import SimpleTestCase, TestCase, override_settings, skipUnlessDBFeature
19-
from django.utils import timezone
18+
from django.test import SimpleTestCase, TestCase, skipUnlessDBFeature
2019

2120
from .models import (
2221
Article,
@@ -77,15 +76,14 @@ def test_null_db_default(self):
7776
self.assertIsNone(obj2.null)
7877

7978
@skipUnlessDBFeature("supports_expression_defaults")
80-
@override_settings(USE_TZ=True)
8179
def test_db_default_function(self):
8280
m = DBDefaultsFunction.objects.create()
8381
expected_num_queries = (
8482
0 if connection.features.can_return_columns_from_insert else 4
8583
)
8684
with self.assertNumQueries(expected_num_queries):
8785
self.assertAlmostEqual(m.number, pi)
88-
self.assertEqual(m.year, timezone.now().year)
86+
self.assertEqual(m.year, datetime.now(UTC).year)
8987
self.assertAlmostEqual(m.added, pi + 4.5)
9088
self.assertEqual(m.multiple_subfunctions, 4.5)
9189

@@ -175,13 +173,12 @@ def test_bulk_create_mixed_db_defaults(self):
175173
self.assertCountEqual(headlines, ["Default headline", "Something else"])
176174

177175
@skipUnlessDBFeature("supports_expression_defaults")
178-
@override_settings(USE_TZ=True)
179176
def test_bulk_create_mixed_db_defaults_function(self):
180177
instances = [DBDefaultsFunction(), DBDefaultsFunction(year=2000)]
181178
DBDefaultsFunction.objects.bulk_create(instances)
182179

183180
years = DBDefaultsFunction.objects.values_list("year", flat=True)
184-
self.assertCountEqual(years, [2000, timezone.now().year])
181+
self.assertCountEqual(years, [2000, datetime.now(UTC).year])
185182

186183
@skipUnlessDBFeature("supports_expression_defaults")
187184
def test_full_clean(self):

0 commit comments

Comments
 (0)