summaryrefslogtreecommitdiff
path: root/tests/constraints
diff options
context:
space:
mode:
authorStéphane "Twidi" Angel <s.angel@twidi.com>2022-07-07 04:26:49 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-07-08 08:17:42 +0200
commitccbf714ebeff51d1370789e5e487a978d0e2dbfb (patch)
treeb358e51931b1bad5f0890969cb1630f7792d81cd /tests/constraints
parent41019e48bbf082c985e6ba3bad34d118b903bff1 (diff)
downloaddjango-ccbf714ebeff51d1370789e5e487a978d0e2dbfb.tar.gz
Fixed #33829 -- Made BaseConstraint.deconstruct() and equality handle violation_error_message.
Regression in 667105877e6723c6985399803a364848891513cc.
Diffstat (limited to 'tests/constraints')
-rw-r--r--tests/constraints/tests.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/constraints/tests.py b/tests/constraints/tests.py
index d9e377438e..4032b418b4 100644
--- a/tests/constraints/tests.py
+++ b/tests/constraints/tests.py
@@ -65,6 +65,29 @@ class BaseConstraintTests(SimpleTestCase):
)
self.assertEqual(c.get_violation_error_message(), "custom base_name message")
+ def test_custom_violation_error_message_clone(self):
+ constraint = BaseConstraint(
+ "base_name",
+ violation_error_message="custom %(name)s message",
+ ).clone()
+ self.assertEqual(
+ constraint.get_violation_error_message(),
+ "custom base_name message",
+ )
+
+ def test_deconstruction(self):
+ constraint = BaseConstraint(
+ "base_name",
+ violation_error_message="custom %(name)s message",
+ )
+ path, args, kwargs = constraint.deconstruct()
+ self.assertEqual(path, "django.db.models.BaseConstraint")
+ self.assertEqual(args, ())
+ self.assertEqual(
+ kwargs,
+ {"name": "base_name", "violation_error_message": "custom %(name)s message"},
+ )
+
class CheckConstraintTests(TestCase):
def test_eq(self):
@@ -84,6 +107,28 @@ class CheckConstraintTests(TestCase):
models.CheckConstraint(check=check2, name="price"),
)
self.assertNotEqual(models.CheckConstraint(check=check1, name="price"), 1)
+ self.assertNotEqual(
+ models.CheckConstraint(check=check1, name="price"),
+ models.CheckConstraint(
+ check=check1, name="price", violation_error_message="custom error"
+ ),
+ )
+ self.assertNotEqual(
+ models.CheckConstraint(
+ check=check1, name="price", violation_error_message="custom error"
+ ),
+ models.CheckConstraint(
+ check=check1, name="price", violation_error_message="other custom error"
+ ),
+ )
+ self.assertEqual(
+ models.CheckConstraint(
+ check=check1, name="price", violation_error_message="custom error"
+ ),
+ models.CheckConstraint(
+ check=check1, name="price", violation_error_message="custom error"
+ ),
+ )
def test_repr(self):
constraint = models.CheckConstraint(
@@ -216,6 +261,38 @@ class UniqueConstraintTests(TestCase):
self.assertNotEqual(
models.UniqueConstraint(fields=["foo", "bar"], name="unique"), 1
)
+ self.assertNotEqual(
+ models.UniqueConstraint(fields=["foo", "bar"], name="unique"),
+ models.UniqueConstraint(
+ fields=["foo", "bar"],
+ name="unique",
+ violation_error_message="custom error",
+ ),
+ )
+ self.assertNotEqual(
+ models.UniqueConstraint(
+ fields=["foo", "bar"],
+ name="unique",
+ violation_error_message="custom error",
+ ),
+ models.UniqueConstraint(
+ fields=["foo", "bar"],
+ name="unique",
+ violation_error_message="other custom error",
+ ),
+ )
+ self.assertEqual(
+ models.UniqueConstraint(
+ fields=["foo", "bar"],
+ name="unique",
+ violation_error_message="custom error",
+ ),
+ models.UniqueConstraint(
+ fields=["foo", "bar"],
+ name="unique",
+ violation_error_message="custom error",
+ ),
+ )
def test_eq_with_condition(self):
self.assertEqual(