1
0
mirror of https://github.com/django/django.git synced 2025-06-05 03:29:12 +00:00

Made UniqueConstraint raise TypeError for type violations.

This commit is contained in:
Simon Charette 2023-07-09 13:47:21 -04:00 committed by Mariusz Felisiak
parent 595a2abb58
commit d7d80040c1
2 changed files with 8 additions and 8 deletions

View File

@ -217,15 +217,15 @@ class UniqueConstraint(BaseConstraint):
"Use django.contrib.postgres.indexes.OpClass() instead." "Use django.contrib.postgres.indexes.OpClass() instead."
) )
if not isinstance(deferrable, (NoneType, Deferrable)): if not isinstance(deferrable, (NoneType, Deferrable)):
raise ValueError( raise TypeError(
"UniqueConstraint.deferrable must be a Deferrable instance." "UniqueConstraint.deferrable must be a Deferrable instance."
) )
if not isinstance(include, (NoneType, list, tuple)): if not isinstance(include, (NoneType, list, tuple)):
raise ValueError("UniqueConstraint.include must be a list or tuple.") raise TypeError("UniqueConstraint.include must be a list or tuple.")
if not isinstance(opclasses, (list, tuple)): if not isinstance(opclasses, (list, tuple)):
raise ValueError("UniqueConstraint.opclasses must be a list or tuple.") raise TypeError("UniqueConstraint.opclasses must be a list or tuple.")
if not isinstance(nulls_distinct, (NoneType, bool)): if not isinstance(nulls_distinct, (NoneType, bool)):
raise ValueError("UniqueConstraint.nulls_distinct must be a bool.") raise TypeError("UniqueConstraint.nulls_distinct must be a bool.")
if opclasses and len(fields) != len(opclasses): if opclasses and len(fields) != len(opclasses):
raise ValueError( raise ValueError(
"UniqueConstraint.fields and UniqueConstraint.opclasses must " "UniqueConstraint.fields and UniqueConstraint.opclasses must "

View File

@ -1046,7 +1046,7 @@ class UniqueConstraintTests(TestCase):
def test_invalid_defer_argument(self): def test_invalid_defer_argument(self):
message = "UniqueConstraint.deferrable must be a Deferrable instance." message = "UniqueConstraint.deferrable must be a Deferrable instance."
with self.assertRaisesMessage(ValueError, message): with self.assertRaisesMessage(TypeError, message):
models.UniqueConstraint( models.UniqueConstraint(
fields=["name"], fields=["name"],
name="name_invalid", name="name_invalid",
@ -1064,7 +1064,7 @@ class UniqueConstraintTests(TestCase):
def test_invalid_include_argument(self): def test_invalid_include_argument(self):
msg = "UniqueConstraint.include must be a list or tuple." msg = "UniqueConstraint.include must be a list or tuple."
with self.assertRaisesMessage(ValueError, msg): with self.assertRaisesMessage(TypeError, msg):
models.UniqueConstraint( models.UniqueConstraint(
name="uniq_include", name="uniq_include",
fields=["field"], fields=["field"],
@ -1073,7 +1073,7 @@ class UniqueConstraintTests(TestCase):
def test_invalid_opclasses_argument(self): def test_invalid_opclasses_argument(self):
msg = "UniqueConstraint.opclasses must be a list or tuple." msg = "UniqueConstraint.opclasses must be a list or tuple."
with self.assertRaisesMessage(ValueError, msg): with self.assertRaisesMessage(TypeError, msg):
models.UniqueConstraint( models.UniqueConstraint(
name="uniq_opclasses", name="uniq_opclasses",
fields=["field"], fields=["field"],
@ -1082,7 +1082,7 @@ class UniqueConstraintTests(TestCase):
def test_invalid_nulls_distinct_argument(self): def test_invalid_nulls_distinct_argument(self):
msg = "UniqueConstraint.nulls_distinct must be a bool." msg = "UniqueConstraint.nulls_distinct must be a bool."
with self.assertRaisesMessage(ValueError, msg): with self.assertRaisesMessage(TypeError, msg):
models.UniqueConstraint( models.UniqueConstraint(
name="uniq_opclasses", fields=["field"], nulls_distinct="NULLS DISTINCT" name="uniq_opclasses", fields=["field"], nulls_distinct="NULLS DISTINCT"
) )