summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/modeltests/validation/models.py1
-rw-r--r--tests/modeltests/validation/tests.py19
2 files changed, 19 insertions, 1 deletions
diff --git a/tests/modeltests/validation/models.py b/tests/modeltests/validation/models.py
index 77b1b07cf6..61095fc52c 100644
--- a/tests/modeltests/validation/models.py
+++ b/tests/modeltests/validation/models.py
@@ -8,6 +8,7 @@ class ModelToValidate(models.Model):
name = models.CharField(max_length=100)
created = models.DateTimeField(default=datetime.now)
number = models.IntegerField()
+ parent = models.ForeignKey('self', blank=True, null=True)
def validate(self):
super(ModelToValidate, self).validate()
diff --git a/tests/modeltests/validation/tests.py b/tests/modeltests/validation/tests.py
index f1d558aa8d..4bd7e8abf1 100644
--- a/tests/modeltests/validation/tests.py
+++ b/tests/modeltests/validation/tests.py
@@ -1,4 +1,4 @@
-from django.core.exceptions import ValidationError
+from django.core.exceptions import ValidationError, NON_FIELD_ERRORS
from django.test import TestCase
from models import ModelToValidate
@@ -19,4 +19,21 @@ class BaseModelValidationTests(TestCase):
def test_custom_validate_method_is_called(self):
mtv = ModelToValidate(number=11)
self.assertRaises(ValidationError, mtv.clean)
+ try:
+ mtv.clean()
+ except ValidationError, e:
+ self.assertEquals(sorted([NON_FIELD_ERRORS, 'name']), sorted(e.message_dict.keys()))
+
+ def test_wrong_FK_value_raises_error(self):
+ mtv=ModelToValidate(number=10, name='Some Name', parent_id=3)
+ self.assertRaises(ValidationError, mtv.clean)
+ try:
+ mtv.clean()
+ except ValidationError, e:
+ self.assertEquals(['parent'], e.message_dict.keys())
+
+ def test_correct_FK_value_cleans(self):
+ parent = ModelToValidate.objects.create(number=10, name='Some Name')
+ mtv=ModelToValidate(number=10, name='Some Name', parent_id=parent.pk)
+ self.assertEqual(None, mtv.clean())