From 070c1edcea1c50f3dec279192ab76082370bea42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Barrois?= Date: Tue, 22 May 2012 17:54:31 +0200 Subject: Properly validate values. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Raphaƫl Barrois --- src/semantic_version/django_fields.py | 3 +++ tests/test_django.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/semantic_version/django_fields.py b/src/semantic_version/django_fields.py index 0e1b083..d4d0042 100644 --- a/src/semantic_version/django_fields.py +++ b/src/semantic_version/django_fields.py @@ -26,6 +26,9 @@ class BaseSemVerField(models.CharField): value = self.to_python(self._get_val_from_obj(obj)) return str(value) + def run_validators(self, value): + return super(BaseSemVerField, self).run_validators(str(value)) + class VersionField(BaseSemVerField): default_error_messages = { diff --git a/tests/test_django.py b/tests/test_django.py index 52d419c..3185dc3 100644 --- a/tests/test_django.py +++ b/tests/test_django.py @@ -54,6 +54,8 @@ class DjangoFieldTestCase(unittest.TestCase): self.assertEqual(obj.spec, alt_obj.spec) self.assertEqual(obj.version, alt_obj.version) + obj.full_clean() + def test_invalid_input(self): self.assertRaises(ValueError, models.VersionModel, version='0.1.1', spec='blah') @@ -81,6 +83,8 @@ class DjangoFieldTestCase(unittest.TestCase): self.assertIsNone(obj.optional) self.assertIsNone(obj.optional_spec) + obj.full_clean() + def test_serialization(self): o1 = models.VersionModel(version='0.1.1', spec='==0.1.1,!=0.1.1-alpha') o2 = models.VersionModel(version='0.4.3-rc3+build3', -- cgit v1.2.1