summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBen Cail <bcail@crossway.org>2024-03-05 16:36:11 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2024-03-08 06:46:40 +0100
commit5f07460a67825bfc3f0129feec94a24bbf6d2a5f (patch)
tree5fa2fae9350f27039e1d3886f3197b580f06b9f2 /tests
parentf931cbec21cce3e2e68239c77614e6aa5026b882 (diff)
[5.0.x] Fixed #35223 -- Made Model.full_clean() ignore fields with db_default when validating empty values.
Thanks Brian Ibbotson for the report. Regression in 7414704e88d73dafbcfbb85f9bc54cb6111439d3. Backport of 1570ef02f34037d32218d463342592debccf915c from main.
Diffstat (limited to 'tests')
-rw-r--r--tests/field_defaults/tests.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/field_defaults/tests.py b/tests/field_defaults/tests.py
index c05d966bdb..6a5c75c36a 100644
--- a/tests/field_defaults/tests.py
+++ b/tests/field_defaults/tests.py
@@ -2,6 +2,7 @@ from datetime import datetime
from decimal import Decimal
from math import pi
+from django.core.exceptions import ValidationError
from django.db import connection
from django.db.models import Case, F, FloatField, Value, When
from django.db.models.expressions import (
@@ -169,6 +170,23 @@ class DefaultTests(TestCase):
years = DBDefaultsFunction.objects.values_list("year", flat=True)
self.assertCountEqual(years, [2000, datetime.now().year])
+ def test_full_clean(self):
+ obj = DBArticle()
+ obj.full_clean()
+ obj.save()
+ obj.refresh_from_db()
+ self.assertEqual(obj.headline, "Default headline")
+
+ obj = DBArticle(headline="Other title")
+ obj.full_clean()
+ obj.save()
+ obj.refresh_from_db()
+ self.assertEqual(obj.headline, "Other title")
+
+ obj = DBArticle(headline="")
+ with self.assertRaises(ValidationError):
+ obj.full_clean()
+
class AllowedDefaultTests(SimpleTestCase):
def test_allowed(self):