summaryrefslogtreecommitdiff
path: root/tests/constraints
diff options
context:
space:
mode:
authorXavier Fernandez <xavier.fernandez@beta.gouv.fr>2023-02-22 21:04:05 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-02-23 05:35:58 +0100
commit51c9bb7cd16081133af4f0ab6d06572660309730 (patch)
tree32d561be83447b8d372d0b9d4d9d29eebf2810da /tests/constraints
parentdcd974698301a38081c141ccba6dcafa5ed2c80e (diff)
downloaddjango-51c9bb7cd16081133af4f0ab6d06572660309730.tar.gz
Refs #33829 -- Added violation_error_message to constraints' __repr__().
Diffstat (limited to 'tests/constraints')
-rw-r--r--tests/constraints/tests.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/constraints/tests.py b/tests/constraints/tests.py
index e486a35b7a..b45dc6499a 100644
--- a/tests/constraints/tests.py
+++ b/tests/constraints/tests.py
@@ -160,6 +160,18 @@ class CheckConstraintTests(TestCase):
"name='price_gt_discounted_price'>",
)
+ def test_repr_with_violation_error_message(self):
+ constraint = models.CheckConstraint(
+ check=models.Q(price__lt=1),
+ name="price_lt_one",
+ violation_error_message="More than 1",
+ )
+ self.assertEqual(
+ repr(constraint),
+ "<CheckConstraint: check=(AND: ('price__lt', 1)) name='price_lt_one' "
+ "violation_error_message='More than 1'>",
+ )
+
def test_invalid_check_types(self):
msg = "CheckConstraint.check must be a Q instance or boolean expression."
with self.assertRaisesMessage(TypeError, msg):
@@ -486,6 +498,20 @@ class UniqueConstraintTests(TestCase):
"name='book_func_uq'>",
)
+ def test_repr_with_violation_error_message(self):
+ constraint = models.UniqueConstraint(
+ models.F("baz__lower"),
+ name="unique_lower_baz",
+ violation_error_message="BAZ",
+ )
+ self.assertEqual(
+ repr(constraint),
+ (
+ "<UniqueConstraint: expressions=(F(baz__lower),) "
+ "name='unique_lower_baz' violation_error_message='BAZ'>"
+ ),
+ )
+
def test_deconstruction(self):
fields = ["foo", "bar"]
name = "unique_fields"