Skip to content

Commit 97488f6

Browse files
committed
Use assertRaisesMessage() in some tests
1 parent 1c82dbd commit 97488f6

File tree

4 files changed

+21
-45
lines changed

4 files changed

+21
-45
lines changed

tests/forms_tests_/test_array.py

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,15 @@ def test_valid(self):
2121

2222
def test_to_python_fail(self):
2323
field = SimpleArrayField(forms.IntegerField())
24-
with self.assertRaises(exceptions.ValidationError) as cm:
24+
msg = "Item 1 in the array did not validate: Enter a whole number."
25+
with self.assertRaisesMessage(exceptions.ValidationError, msg):
2526
field.clean("a,b,9")
26-
self.assertEqual(
27-
cm.exception.messages[0],
28-
"Item 1 in the array did not validate: Enter a whole number.",
29-
)
3027

3128
def test_validate_fail(self):
3229
field = SimpleArrayField(forms.CharField(required=True))
33-
with self.assertRaises(exceptions.ValidationError) as cm:
30+
msg = "Item 3 in the array did not validate: This field is required."
31+
with self.assertRaisesMessage(exceptions.ValidationError, msg):
3432
field.clean("a,b,")
35-
self.assertEqual(
36-
cm.exception.messages[0],
37-
"Item 3 in the array did not validate: This field is required.",
38-
)
3933

4034
def test_validate_fail_base_field_error_params(self):
4135
field = SimpleArrayField(forms.CharField(max_length=2))
@@ -68,12 +62,9 @@ def test_validate_fail_base_field_error_params(self):
6862

6963
def test_validators_fail(self):
7064
field = SimpleArrayField(forms.RegexField("[a-e]{2}"))
71-
with self.assertRaises(exceptions.ValidationError) as cm:
65+
msg = "Item 1 in the array did not validate: Enter a valid value."
66+
with self.assertRaisesMessage(exceptions.ValidationError, msg):
7267
field.clean("a,bc,de")
73-
self.assertEqual(
74-
cm.exception.messages[0],
75-
"Item 1 in the array did not validate: Enter a valid value.",
76-
)
7768

7869
def test_delimiter(self):
7970
field = SimpleArrayField(forms.CharField(), delimiter="|")
@@ -92,21 +83,15 @@ def test_prepare_value(self):
9283

9384
def test_max_length(self):
9485
field = SimpleArrayField(forms.CharField(), max_length=2)
95-
with self.assertRaises(exceptions.ValidationError) as cm:
86+
msg = "List contains 3 items, it should contain no more than 2."
87+
with self.assertRaisesMessage(exceptions.ValidationError, msg):
9688
field.clean("a,b,c")
97-
self.assertEqual(
98-
cm.exception.messages[0],
99-
"List contains 3 items, it should contain no more than 2.",
100-
)
10189

10290
def test_min_length(self):
10391
field = SimpleArrayField(forms.CharField(), min_length=4)
104-
with self.assertRaises(exceptions.ValidationError) as cm:
92+
msg = "List contains 3 items, it should contain no fewer than 4."
93+
with self.assertRaisesMessage(exceptions.ValidationError, msg):
10594
field.clean("a,b,c")
106-
self.assertEqual(
107-
cm.exception.messages[0],
108-
"List contains 3 items, it should contain no fewer than 4.",
109-
)
11095

11196
def test_min_length_singular(self):
11297
field = SimpleArrayField(forms.IntegerField(), min_length=2)
@@ -117,9 +102,9 @@ def test_min_length_singular(self):
117102

118103
def test_required(self):
119104
field = SimpleArrayField(forms.CharField(), required=True)
120-
with self.assertRaises(exceptions.ValidationError) as cm:
105+
msg = "This field is required."
106+
with self.assertRaisesMessage(exceptions.ValidationError, msg):
121107
field.clean("")
122-
self.assertEqual(cm.exception.messages[0], "This field is required.")
123108

124109
def test_model_field_formfield(self):
125110
model_field = ArrayField(models.CharField(max_length=27))

tests/forms_tests_/test_objectidfield.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@ def test_clean_empty_string(self):
2323

2424
def test_clean_invalid(self):
2525
field = ObjectIdField()
26-
with self.assertRaises(ValidationError) as cm:
26+
with self.assertRaisesMessage(ValidationError, "Enter a valid Object Id."):
2727
field.clean("invalid")
28-
self.assertEqual(cm.exception.messages[0], "Enter a valid Object Id.")
2928

3029
def test_prepare_value(self):
3130
field = ObjectIdField()

tests/model_fields_/test_arrayfield.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -788,13 +788,10 @@ def test_loading(self):
788788
class ValidationTests(SimpleTestCase):
789789
def test_unbounded(self):
790790
field = ArrayField(models.IntegerField())
791-
with self.assertRaises(exceptions.ValidationError) as cm:
791+
msg = "Item 2 in the array did not validate: This field cannot be null."
792+
with self.assertRaisesMessage(exceptions.ValidationError, msg) as cm:
792793
field.clean([1, None], None)
793794
self.assertEqual(cm.exception.code, "item_invalid")
794-
self.assertEqual(
795-
cm.exception.message % cm.exception.params,
796-
"Item 2 in the array did not validate: This field cannot be null.",
797-
)
798795

799796
def test_blank_true(self):
800797
field = ArrayField(models.IntegerField(blank=True, null=True))
@@ -804,12 +801,9 @@ def test_blank_true(self):
804801
def test_with_max_size(self):
805802
field = ArrayField(models.IntegerField(), max_size=3)
806803
field.clean([1, 2, 3], None)
807-
with self.assertRaises(exceptions.ValidationError) as cm:
804+
msg = "List contains 4 items, it should contain no more than 3."
805+
with self.assertRaisesMessage(exceptions.ValidationError, msg):
808806
field.clean([1, 2, 3, 4], None)
809-
self.assertEqual(
810-
cm.exception.messages[0],
811-
"List contains 4 items, it should contain no more than 3.",
812-
)
813807

814808
def test_with_max_size_singular(self):
815809
field = ArrayField(models.IntegerField(), max_size=1)
@@ -821,10 +815,10 @@ def test_with_max_size_singular(self):
821815
def test_nested_array_mismatch(self):
822816
field = ArrayField(ArrayField(models.IntegerField()))
823817
field.clean([[1, 2], [3, 4]], None)
824-
with self.assertRaises(exceptions.ValidationError) as cm:
818+
msg = "Nested arrays must have the same length."
819+
with self.assertRaisesMessage(exceptions.ValidationError, msg) as cm:
825820
field.clean([[1, 2], [3, 4, 5]], None)
826821
self.assertEqual(cm.exception.code, "nested_array_mismatch")
827-
self.assertEqual(cm.exception.messages[0], "Nested arrays must have the same length.")
828822

829823
def test_with_base_field_error_params(self):
830824
field = ArrayField(models.CharField(max_length=2))

tests/model_fields_/test_objectidfield.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,10 @@ def test_loading(self):
117117
class ValidationTests(TestCase):
118118
def test_invalid_objectid(self):
119119
field = ObjectIdField()
120-
with self.assertRaises(ValidationError) as cm:
120+
msg = "“550e8400” is not a valid Object Id."
121+
with self.assertRaisesMessage(ValidationError, msg) as cm:
121122
field.clean("550e8400", None)
122123
self.assertEqual(cm.exception.code, "invalid")
123-
self.assertEqual(
124-
cm.exception.message % cm.exception.params, "“550e8400” is not a valid Object Id."
125-
)
126124

127125
def test_objectid_instance_ok(self):
128126
value = ObjectId()

0 commit comments

Comments
 (0)