summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDavid Sanders <shang.xiao.sanders@gmail.com>2023-10-30 20:44:44 +1100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-11-02 19:59:39 +0100
commit8dde0504f3771ff2707bdddb702eaf5c06bb77a7 (patch)
treece6d39568ebdedf2963f75d78e1615b742e1e426 /tests
parentb735b90f439a964bda20a3ded19a39c5f0ce9b9a (diff)
[5.0.x] 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. Backport of 797957fb48f63760442d3d4c8985fd94f8602d5e from main
Diffstat (limited to 'tests')
-rw-r--r--tests/field_defaults/models.py4
-rw-r--r--tests/field_defaults/tests.py9
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")),
],
)