Merge branch 'master' into deferred_fields
This commit is contained in:
@@ -387,6 +387,25 @@ class DocumentTest(unittest.TestCase):
|
||||
self.assertTrue('content' in Comment._fields)
|
||||
self.assertFalse('id' in Comment._fields)
|
||||
self.assertFalse(hasattr(Comment, '_meta'))
|
||||
|
||||
def test_embedded_document_validation(self):
|
||||
"""Ensure that embedded documents may be validated.
|
||||
"""
|
||||
class Comment(EmbeddedDocument):
|
||||
date = DateTimeField()
|
||||
content = StringField(required=True)
|
||||
|
||||
comment = Comment()
|
||||
self.assertRaises(ValidationError, comment.validate)
|
||||
|
||||
comment.content = 'test'
|
||||
comment.validate()
|
||||
|
||||
comment.date = 4
|
||||
self.assertRaises(ValidationError, comment.validate)
|
||||
|
||||
comment.date = datetime.datetime.now()
|
||||
comment.validate()
|
||||
|
||||
def test_save(self):
|
||||
"""Ensure that a document may be saved in the database.
|
||||
@@ -399,7 +418,7 @@ class DocumentTest(unittest.TestCase):
|
||||
person_obj = collection.find_one({'name': 'Test User'})
|
||||
self.assertEqual(person_obj['name'], 'Test User')
|
||||
self.assertEqual(person_obj['age'], 30)
|
||||
self.assertEqual(str(person_obj['_id']), person.id)
|
||||
self.assertEqual(person_obj['_id'], person.id)
|
||||
|
||||
def test_delete(self):
|
||||
"""Ensure that document may be deleted using the delete method.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user