diff options
| author | Ben Cail <bcail@crossway.org> | 2024-03-05 16:36:11 -0500 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2024-03-08 06:46:40 +0100 |
| commit | 5f07460a67825bfc3f0129feec94a24bbf6d2a5f (patch) | |
| tree | 5fa2fae9350f27039e1d3886f3197b580f06b9f2 /tests | |
| parent | f931cbec21cce3e2e68239c77614e6aa5026b882 (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.py | 18 |
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): |
