summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2024-10-08 20:25:48 -0400
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2024-11-11 16:05:05 +0100
commitc4614b53d355561d426b0fed903e96c3c198e10d (patch)
treeec3c00054bed1d4ce977e713213d9ae9b19301ea /tests/invalid_models_tests
parent63dbe30d3363715deaf280214d75b03f6d65a571 (diff)
Fixed #35815 -- Made system check accept db_default literals when DatabaseFeatures.supports_expression_defaults = False.
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r--tests/invalid_models_tests/test_ordinary_fields.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/invalid_models_tests/test_ordinary_fields.py b/tests/invalid_models_tests/test_ordinary_fields.py
index e30d411138..1fcf3f708d 100644
--- a/tests/invalid_models_tests/test_ordinary_fields.py
+++ b/tests/invalid_models_tests/test_ordinary_fields.py
@@ -1207,6 +1207,23 @@ class InvalidDBDefaultTests(TestCase):
expected_error = Error(msg=msg, obj=field, id="fields.E012")
self.assertEqual(errors, [expected_error])
+ def test_literals_not_treated_as_expressions(self):
+ """
+ DatabaseFeatures.supports_expression_defaults = False shouldn't
+ prevent non-expression literals (integer, float, boolean, etc.) from
+ being used as database defaults.
+ """
+
+ class Model(models.Model):
+ field = models.FloatField(db_default=1.0)
+
+ field = Model._meta.get_field("field")
+ with unittest.mock.patch.object(
+ connection.features, "supports_expression_defaults", False
+ ):
+ errors = field.check(databases=self.databases)
+ self.assertEqual(errors, [])
+
@isolate_apps("invalid_models_tests")
class GeneratedFieldTests(TestCase):