mirror of
https://github.com/django/django.git
synced 2025-10-26 15:16:09 +00:00
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@11271 bcc190cf-cafb-0310-a4f2-bffc1f526a37
37 lines
1.6 KiB
Python
37 lines
1.6 KiB
Python
from unittest import TestCase
|
|
|
|
from modeltests.validation import ValidationTestCase
|
|
from models import *
|
|
|
|
class TestModelsWithValidators(ValidationTestCase):
|
|
def test_custom_validator_passes_for_correct_value(self):
|
|
mtv = ModelToValidate(number=10, name='Some Name', f_with_custom_validator=42)
|
|
self.assertEqual(None, mtv.clean())
|
|
|
|
def test_custom_validator_raises_error_for_incorrect_value(self):
|
|
mtv = ModelToValidate(number=10, name='Some Name', f_with_custom_validator=12)
|
|
self.assertFailsValidation(mtv.clean, ['f_with_custom_validator'])
|
|
self.assertFieldFailsValidationWithMessage(
|
|
mtv.clean,
|
|
'f_with_custom_validator',
|
|
[u'This is not the answer to life, universe and everything!']
|
|
)
|
|
|
|
def test_custom_complex_validator_raises_error_for_incorrect_value(self):
|
|
mtv = ModelToValidate(number=42, name='Some Name', f_with_custom_validator=42)
|
|
self.assertFailsValidation(mtv.clean, ['f_with_custom_validator'])
|
|
self.assertFieldFailsValidationWithMessage(
|
|
mtv.clean,
|
|
'f_with_custom_validator',
|
|
[u"Must not equal to 'number''s value"]
|
|
)
|
|
|
|
|
|
def test_complex_validator_isnt_run_if_field_doesnt_clean(self):
|
|
mtv = ModelToValidate(number=32, name='Some Name', f_with_custom_validator=32)
|
|
self.assertFieldFailsValidationWithMessage(
|
|
mtv.clean,
|
|
'f_with_custom_validator',
|
|
[u'This is not the answer to life, universe and everything!']
|
|
)
|