diff options
| author | David Sanders <shang.xiao.sanders@gmail.com> | 2023-10-30 20:44:44 +1100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-11-02 17:57:39 +0100 |
| commit | 797957fb48f63760442d3d4c8985fd94f8602d5e (patch) | |
| tree | bf143b042ab8f6158a7736904146df6ee63f7661 /tests/field_defaults | |
| parent | 1944f490f91e44e1378d53420b64a78163aea815 (diff) | |
Fixed #34936 -- Fixed migration crash for DecimalField with db_default on SQLite.
CAST() must be wrapped in parentheses to be recognized as an expression on SQLite.
Regression in 7414704e88d73dafbcfbb85f9bc54cb6111439d3.
Diffstat (limited to 'tests/field_defaults')
| -rw-r--r-- | tests/field_defaults/models.py | 4 | ||||
| -rw-r--r-- | tests/field_defaults/tests.py | 9 |
2 files changed, 10 insertions, 3 deletions
diff --git a/tests/field_defaults/models.py b/tests/field_defaults/models.py index 5f9c38a5a4..17191deefb 100644 --- a/tests/field_defaults/models.py +++ b/tests/field_defaults/models.py @@ -10,6 +10,7 @@ field. """ from datetime import datetime +from decimal import Decimal from django.db import models from django.db.models.functions import Coalesce, ExtractYear, Now, Pi @@ -33,6 +34,9 @@ class DBArticle(models.Model): headline = models.CharField(max_length=100, db_default="Default headline") pub_date = models.DateTimeField(db_default=Now()) + cost = models.DecimalField( + max_digits=3, decimal_places=2, db_default=Decimal("3.33") + ) class Meta: required_db_features = {"supports_expression_defaults"} diff --git a/tests/field_defaults/tests.py b/tests/field_defaults/tests.py index 76d01f7a5a..c05d966bdb 100644 --- a/tests/field_defaults/tests.py +++ b/tests/field_defaults/tests.py @@ -1,4 +1,5 @@ from datetime import datetime +from decimal import Decimal from math import pi from django.db import connection @@ -44,6 +45,7 @@ class DefaultTests(TestCase): self.assertIsInstance(a.id, int) self.assertEqual(a.headline, "Default headline") self.assertIsInstance(a.pub_date, datetime) + self.assertEqual(a.cost, Decimal("3.33")) @skipIfDBFeature("can_return_columns_from_insert") @skipUnlessDBFeature("supports_expression_defaults") @@ -54,6 +56,7 @@ class DefaultTests(TestCase): self.assertIsInstance(a.id, int) self.assertEqual(a.headline, "Default headline") self.assertIsInstance(a.pub_date, datetime) + self.assertEqual(a.cost, Decimal("3.33")) def test_null_db_default(self): obj1 = DBDefaults.objects.create() @@ -141,12 +144,12 @@ class DefaultTests(TestCase): articles = [DBArticle(pub_date=pub_date), DBArticle(pub_date=pub_date)] DBArticle.objects.bulk_create(articles) - headlines = DBArticle.objects.values_list("headline", "pub_date") + headlines = DBArticle.objects.values_list("headline", "pub_date", "cost") self.assertSequenceEqual( headlines, [ - ("Default headline", pub_date), - ("Default headline", pub_date), + ("Default headline", pub_date, Decimal("3.33")), + ("Default headline", pub_date, Decimal("3.33")), ], ) |
