diff options
| author | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-01-06 18:32:34 -0500 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-03-17 10:28:26 -0400 |
| commit | 37284896f08e120505c8c01918b9d6bba03c2204 (patch) | |
| tree | a35f4b8f57e354e75048fe6f07e6adbabf88b89c /tests/field_defaults | |
| parent | 3abf89887993140d28676f26420ee0d46a617f51 (diff) | |
Refs #470 -- Fixed further field_defaults test failures due to year-end boundary conditions.
Follow-up to 352d860b9107adbcde0f1fe5d0fce8e9090a51e4.
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.
Diffstat (limited to 'tests/field_defaults')
| -rw-r--r-- | tests/field_defaults/tests.py | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/tests/field_defaults/tests.py b/tests/field_defaults/tests.py index 7f85d946f6..c4b978d169 100644 --- a/tests/field_defaults/tests.py +++ b/tests/field_defaults/tests.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import UTC, datetime from decimal import Decimal from math import pi @@ -15,8 +15,7 @@ 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, override_settings, skipUnlessDBFeature -from django.utils import timezone +from django.test import SimpleTestCase, TestCase, skipUnlessDBFeature from .models import ( Article, @@ -77,7 +76,6 @@ 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() expected_num_queries = ( @@ -85,7 +83,7 @@ class DefaultTests(TestCase): ) with self.assertNumQueries(expected_num_queries): self.assertAlmostEqual(m.number, pi) - self.assertEqual(m.year, timezone.now().year) + self.assertEqual(m.year, datetime.now(UTC).year) self.assertAlmostEqual(m.added, pi + 4.5) self.assertEqual(m.multiple_subfunctions, 4.5) @@ -175,13 +173,12 @@ 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, timezone.now().year]) + self.assertCountEqual(years, [2000, datetime.now(UTC).year]) @skipUnlessDBFeature("supports_expression_defaults") def test_full_clean(self): |
