Skip to content

Instantly share code, notes, and snippets.

@yamaneko1212
Created November 22, 2011 21:05
Show Gist options
  • Save yamaneko1212/1386956 to your computer and use it in GitHub Desktop.
Save yamaneko1212/1386956 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8
from unittest import TestCase
import unittest
from mongoengine import connect, Document, StringField, IntField, FloatField, \
ComplexDateTimeField
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 AllFields(Document):
str_fld = StringField()
int_fld = IntField()
flt_fld = FloatField()
comp_dt_fld = ComplexDateTimeField()
doc = AllFields()
doc.str_fld = u'spam ham egg'
doc.int_fld = 42
doc.flt_fld = 4.2
doc.com_dt_fld = datetime.datetime.utcnow()
doc.save()
res = AllFields.objects(id=doc.id).update(
set__str_fld=None,
set__int_fld=None,
set__flt_fld=None,
set__comp_dt_fld=None,
)
self.assertEqual(res, 1)
# 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)
# Return current time if retrived value is None.
self.assert_(isinstance(ret.comp_dt_fld, datetime.datetime))
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