Skip to content

Commit 8a7d407

Browse files
committed
add test for warnings
1 parent 3816d2f commit 8a7d407

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

tests/model_fields_/test_arrayfield.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ def test_exact_tags(self):
506506

507507
@isolate_apps("model_fields_")
508508
class CheckTests(SimpleTestCase):
509-
def test_field_checks(self):
509+
def test_base_field_errors(self):
510510
class MyModel(models.Model):
511511
field = ArrayField(models.CharField(max_length=-1))
512512

@@ -515,7 +515,25 @@ class MyModel(models.Model):
515515
self.assertEqual(len(errors), 1)
516516
# The inner CharField has a non-positive max_length.
517517
self.assertEqual(errors[0].id, "django_mongodb.array.E001")
518-
self.assertIn("max_length", errors[0].msg)
518+
msg = errors[0].msg
519+
self.assertIn("Base field for array has errors:", msg)
520+
self.assertIn("'max_length' must be a positive integer. (fields.E121)", msg)
521+
522+
def test_base_field_warnings(self):
523+
class WarningField(models.IntegerField):
524+
def check(self):
525+
return [checks.Warning("Test warning", obj=self, id="test.E001")]
526+
527+
class MyModel(models.Model):
528+
field = ArrayField(WarningField(), default=None)
529+
530+
model = MyModel()
531+
errors = model.check()
532+
self.assertEqual(len(errors), 1)
533+
self.assertEqual(errors[0].id, "django_mongodb.array.W004")
534+
msg = errors[0].msg
535+
self.assertIn("Base field for array has warnings:", msg)
536+
self.assertIn("Test warning (test.E001)", msg)
519537

520538
def test_invalid_base_fields(self):
521539
class MyModel(models.Model):

0 commit comments

Comments
 (0)