diff options
| author | Hannes Ljungberg <hannes.ljungberg@gmail.com> | 2021-12-04 21:03:38 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-12-06 07:59:11 +0100 |
| commit | 1eaf38fa87384fe26d1abf6e389d6df1600d4d8c (patch) | |
| tree | ca6d2b877127ca1ea1f76d8e36dc51d708996474 /tests/validation/test_unique.py | |
| parent | d3a64bea51676fcf8a0ae593cf7b103939e12c87 (diff) | |
Fixed #33335 -- Made model validation ignore functional unique constraints.
Regression in 3aa545281e0c0f9fac93753e3769df9e0334dbaa.
Thanks Hervé Le Roy for the report.
Diffstat (limited to 'tests/validation/test_unique.py')
| -rw-r--r-- | tests/validation/test_unique.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/validation/test_unique.py b/tests/validation/test_unique.py index 88eb94a54e..8bf4ca2122 100644 --- a/tests/validation/test_unique.py +++ b/tests/validation/test_unique.py @@ -8,7 +8,8 @@ from django.test import TestCase from .models import ( CustomPKModel, FlexibleDatePost, ModelToValidate, Post, UniqueErrorsModel, - UniqueFieldsModel, UniqueForDateModel, UniqueTogetherModel, + UniqueFieldsModel, UniqueForDateModel, UniqueFuncConstraintModel, + UniqueTogetherModel, ) @@ -86,6 +87,13 @@ class GetUniqueCheckTests(unittest.TestCase): ), m._get_unique_checks(exclude='start_date') ) + def test_func_unique_constraint_ignored(self): + m = UniqueFuncConstraintModel() + self.assertEqual( + m._get_unique_checks(), + ([(UniqueFuncConstraintModel, ('id',))], []), + ) + class PerformUniqueChecksTest(TestCase): def test_primary_key_unique_check_not_performed_when_adding_and_pk_not_specified(self): @@ -108,6 +116,10 @@ class PerformUniqueChecksTest(TestCase): mtv = ModelToValidate(number=10, name='Some Name') mtv.full_clean() + def test_func_unique_check_not_performed(self): + with self.assertNumQueries(0): + UniqueFuncConstraintModel(field='some name').full_clean() + def test_unique_for_date(self): Post.objects.create( title="Django 1.0 is released", slug="Django 1.0", |
