added URLField, DecimalField, tests.

This commit is contained in:
blackbrrr
2010-01-14 11:32:28 -06:00
parent 1cdeb8130d
commit 5f84d6f8f8
3 changed files with 114 additions and 16 deletions

View File

@@ -1,5 +1,6 @@
import unittest
import datetime
from decimal import Decimal
from mongoengine import *
from mongoengine.connection import _get_db
@@ -78,6 +79,23 @@ class FieldTest(unittest.TestCase):
person.name = 'Shorter name'
person.validate()
def test_url_validation(self):
"""Ensure that invalid URLs cannot be assigned to URL fields.
"""
class Person(Document):
name = StringField()
personal_blog = URLField()
person = Person()
person.name = "Guido van Rossum"
person.personal_blog = "pep8 or bust!"
self.assertRaises(ValidationError, person.validate)
# swap in a real URL
person.personal_blog = "http://neopythonic.blogspot.com/"
person.validate()
def test_int_validation(self):
"""Ensure that invalid values cannot be assigned to int fields.
@@ -112,6 +130,24 @@ class FieldTest(unittest.TestCase):
self.assertRaises(ValidationError, person.validate)
person.height = 4.0
self.assertRaises(ValidationError, person.validate)
def test_decimal_validation(self):
"""Ensure that invalid values cannot be assigned to decimal fields.
"""
class AlbumReview(Document):
score = DecimalField()
review = AlbumReview()
review.score = "8.7"
review.validate()
review.score = Decimal("10.0")
review.validate()
# implicit conversion from float to string
review.score = 3.14
review.validate()
review.score = "it stinks!"
self.assertRaises(ValidationError, review.validate)
def test_boolean_validation(self):
"""Ensure that invalid values cannot be assigned to boolean fields.