Skip to content

Instantly share code, notes, and snippets.

@yamaneko1212
Created November 22, 2011 10:19
Show Gist options
  • Save yamaneko1212/1385360 to your computer and use it in GitHub Desktop.
Save yamaneko1212/1385360 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8
from unittest import TestCase
import unittest
from mongoengine import connect, Document, EmbeddedDocument, StringField, IntField, \
FloatField, BooleanField, DateTimeField, EmbeddedDocumentField, ListField, \
DictField, ObjectIdField, ReferenceField, MapField, DecimalField, \
ComplexDateTimeField, URLField, GenericReferenceField, FileField, BinaryField, \
SortedListField, EmailField, GeoPointField, ImageField, SequenceField, UUIDField, \
GenericEmbeddedDocumentField
import datetime
class Test(TestCase):
def setUp(self):
connect('mongenginetest')
def test_1(self):
"""Ensure that every fields should accept None if required is False.
"""
class Person(EmbeddedDocument):
name = StringField()
class Blog(Document):
name = StringField()
class AllFields(Document):
str_fld = StringField()
int_fld = IntField()
flt_fld = FloatField()
bool_fld = BooleanField()
dt_fld = DateTimeField()
emb_fld = EmbeddedDocumentField(Person)
lst_fld = ListField(Person)
dct_fld = DictField()
oid_fld = ObjectIdField()
ref_fld = ReferenceField(Blog)
map_fld_field = MapField(StringField())
dec_fld = DecimalField()
comp_dt_fld = ComplexDateTimeField()
url_fld = URLField()
gen_ref_fld = GenericReferenceField()
file_fld = FileField()
bin_fld = BinaryField()
sorted_lst_fld = SortedListField(FloatField())
email_fld = EmailField()
geo_fld = GeoPointField()
image_fld = ImageField()
seq_fld = SequenceField()
uuid_fld = UUIDField()
gen_emb_fld = GenericEmbeddedDocumentField()
doc = AllFields()
doc.str_fld = None
doc.int_fld = None
doc.flt_fld = None
doc.bool_fld = None
doc.dt_fld = None
doc.emb_fld = None
doc.lst_fld = None
doc.dct_fld = None
doc.oid_fld = None
doc.ref_fld = None
doc.map_fld_field = None
doc.dec_fld = None
doc.comp_dt_fld = None
doc.url_fld = None
doc.gen_ref_fld = None
doc.file_fld = None
doc.bin_fld = None
doc.sorted_lst_fld = None
doc.email_fld = None
doc.geo_fld = None
doc.image_fld = None
doc.seq_fld = None
doc.uuid_fld = None
doc.gen_emb_fld = None
doc.save()
# Retrive data from db and verify it.
ret = AllFields.objects.all()[0]
self.assertEqual(ret.str_fld, None)
self.assertEqual(ret.int_fld, None)
self.assertEqual(ret.flt_fld, None)
self.assertEqual(ret.bool_fld, None)
self.assertEqual(ret.dt_fld, None)
self.assertEqual(ret.emb_fld, None)
self.assertEqual(ret.lst_fld, [])
self.assertEqual(ret.dct_fld, {})
self.assertEqual(ret.oid_fld, None)
self.assertEqual(ret.ref_fld, None)
self.assertEqual(ret.map_fld_field, {})
self.assertEqual(ret.dec_fld, None)
self.assert_(isinstance(ret.comp_dt_fld, datetime.datetime))
self.assertEqual(ret.url_fld, None)
self.assertEqual(ret.gen_ref_fld, None)
self.assertEqual(ret.file_fld.read(), None)
self.assertEqual(ret.bin_fld, None)
self.assertEqual(ret.sorted_lst_fld, [])
self.assertEqual(ret.email_fld, None)
self.assertEqual(ret.geo_fld, None)
self.assertEqual(ret.image_fld.read(), None)
self.assert_(isinstance(ret.seq_fld, int))
self.assertEqual(ret.uuid_fld, None)
self.assertEqual(ret.gen_emb_fld, None)
AllFields.drop_collection()
return
if __name__ == '__main__':
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment