summaryrefslogtreecommitdiff
path: root/tests/validation/test_constraints.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/validation/test_constraints.py')
-rw-r--r--tests/validation/test_constraints.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/validation/test_constraints.py b/tests/validation/test_constraints.py
index 0b1ee6518e..eea2d0c533 100644
--- a/tests/validation/test_constraints.py
+++ b/tests/validation/test_constraints.py
@@ -6,6 +6,7 @@ from .models import (
ChildUniqueConstraintProduct,
Product,
UniqueConstraintConditionProduct,
+ UniqueConstraintNullsDistinctProduct,
UniqueConstraintProduct,
)
@@ -93,3 +94,25 @@ class PerformConstraintChecksTest(TestCase):
UniqueConstraintConditionProduct.objects.create(name="product")
product = UniqueConstraintConditionProduct(name="product")
product.full_clean(validate_constraints=False)
+
+ @skipUnlessDBFeature("supports_nulls_distinct_unique_constraints")
+ def test_full_clean_with_nulls_distinct_unique_constraints(self):
+ UniqueConstraintNullsDistinctProduct.objects.create(name=None)
+ product = UniqueConstraintNullsDistinctProduct(name=None)
+ with self.assertRaises(ValidationError) as cm:
+ product.full_clean()
+ self.assertEqual(
+ cm.exception.message_dict,
+ {
+ "name": [
+ "Unique constraint nulls distinct product with this Name "
+ "already exists."
+ ]
+ },
+ )
+
+ @skipUnlessDBFeature("supports_nulls_distinct_unique_constraints")
+ def test_full_clean_with_nulls_distinct_unique_constraints_disabled(self):
+ UniqueConstraintNullsDistinctProduct.objects.create(name=None)
+ product = UniqueConstraintNullsDistinctProduct(name=None)
+ product.full_clean(validate_constraints=False)