1
0
mirror of https://github.com/django/django.git synced 2025-10-26 15:16:09 +00:00
Files
django/tests/modeltests/validation/validators.py

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!']
)