From 2c428b37ae14b1514cfe1466fd91f01d56799bf4 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Fri, 24 Feb 2023 09:02:45 +0100 Subject: [PATCH] Refs #34338 -- Fixed isolation of constraints tests. Regression in 5b3d3e400ab9334ba429ca360c9818c6dfc3a51b. --- tests/constraints/models.py | 8 +++++++- tests/constraints/tests.py | 13 +++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/tests/constraints/models.py b/tests/constraints/models.py index 3b349d204e9..ab3d4dc1e0c 100644 --- a/tests/constraints/models.py +++ b/tests/constraints/models.py @@ -34,7 +34,13 @@ class UniqueConstraintProduct(models.Model): class Meta: constraints = [ - models.UniqueConstraint(fields=["name", "color"], name="name_color_uniq"), + models.UniqueConstraint( + fields=["name", "color"], + name="name_color_uniq", + # Custom message and error code are ignored. + violation_error_code="custom_code", + violation_error_message="Custom message", + ) ] diff --git a/tests/constraints/tests.py b/tests/constraints/tests.py index ec2b030ac5d..1ed669a6293 100644 --- a/tests/constraints/tests.py +++ b/tests/constraints/tests.py @@ -744,9 +744,6 @@ class UniqueConstraintTests(TestCase): def test_validate(self): constraint = UniqueConstraintProduct._meta.constraints[0] - # Custom message and error code are ignored. - constraint.violation_error_message = "Custom message" - constraint.violation_error_code = "custom_code" msg = "Unique constraint product with this Name and Color already exists." non_unique_product = UniqueConstraintProduct( name=self.p1.name, color=self.p1.color @@ -811,9 +808,13 @@ class UniqueConstraintTests(TestCase): @skipUnlessDBFeature("supports_partial_indexes") def test_validate_conditon_custom_error(self): p1 = UniqueConstraintConditionProduct.objects.create(name="p1") - constraint = UniqueConstraintConditionProduct._meta.constraints[0] - constraint.violation_error_message = "Custom message" - constraint.violation_error_code = "custom_code" + constraint = models.UniqueConstraint( + fields=["name"], + name="name_without_color_uniq", + condition=models.Q(color__isnull=True), + violation_error_code="custom_code", + violation_error_message="Custom message", + ) msg = "Custom message" with self.assertRaisesMessage(ValidationError, msg) as cm: constraint.validate(