From cb7d3f2a0e16c974f84df8b62d24a774220f7507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Kr=C3=A1l?= Date: Sun, 5 Jul 2009 13:28:41 +0000 Subject: [PATCH] [soc2009/model-validation] Validation test refactoring git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@11190 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/modeltests/validation/__init__.py | 13 +++++++++++++ tests/modeltests/validation/tests.py | 20 ++++---------------- tests/modeltests/validation/validators.py | 14 ++++++++++++++ 3 files changed, 31 insertions(+), 16 deletions(-) create mode 100644 tests/modeltests/validation/validators.py diff --git a/tests/modeltests/validation/__init__.py b/tests/modeltests/validation/__init__.py index e69de29bb2..88e0029078 100644 --- a/tests/modeltests/validation/__init__.py +++ b/tests/modeltests/validation/__init__.py @@ -0,0 +1,13 @@ +import unittest + +from django.core.exceptions import ValidationError + +class ValidationTestCase(unittest.TestCase): + def assertFailsValidation(self, clean, failed_fields): + self.assertRaises(ValidationError, clean) + try: + clean() + except ValidationError, e: + self.assertEquals(sorted(failed_fields), sorted(e.message_dict.keys())) + + diff --git a/tests/modeltests/validation/tests.py b/tests/modeltests/validation/tests.py index c395fb26ab..95952a5a24 100644 --- a/tests/modeltests/validation/tests.py +++ b/tests/modeltests/validation/tests.py @@ -1,18 +1,14 @@ import unittest from django.core.exceptions import ValidationError, NON_FIELD_ERRORS -from django.test import TestCase from django.db import models +from modeltests.validation import ValidationTestCase from models import * -class BaseModelValidationTests(TestCase): - def assertFailsValidation(self, clean, failed_fields): - self.assertRaises(ValidationError, clean) - try: - clean() - except ValidationError, e: - self.assertEquals(sorted(failed_fields), sorted(e.message_dict.keys())) +from validators import TestModelsWithValidators + +class BaseModelValidationTests(ValidationTestCase): def test_missing_required_field_raises_error(self): mtv = ModelToValidate() @@ -43,14 +39,6 @@ class BaseModelValidationTests(TestCase): mtv = ModelToValidate(number=10, name='Some Name', email='valid@email.com') self.assertEqual(None, mtv.clean()) - 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']) - class GetUniqueCheckTests(unittest.TestCase): def test_unique_fields_get_collected(self): m = UniqueFieldsModel() diff --git a/tests/modeltests/validation/validators.py b/tests/modeltests/validation/validators.py new file mode 100644 index 0000000000..2556785779 --- /dev/null +++ b/tests/modeltests/validation/validators.py @@ -0,0 +1,14 @@ +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']) +