parent
efba9ef52a
commit
da8a057ede
@ -1,11 +1,23 @@
|
|||||||
import unittest
|
import unittest
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import pymongo
|
import pymongo
|
||||||
|
import pickle
|
||||||
|
|
||||||
from mongoengine import *
|
from mongoengine import *
|
||||||
|
from mongoengine.base import BaseField
|
||||||
from mongoengine.connection import _get_db
|
from mongoengine.connection import _get_db
|
||||||
|
|
||||||
|
|
||||||
|
class PickleEmbedded(EmbeddedDocument):
|
||||||
|
date = DateTimeField(default=datetime.now)
|
||||||
|
|
||||||
|
class PickleTest(Document):
|
||||||
|
number = IntField()
|
||||||
|
string = StringField()
|
||||||
|
embedded = EmbeddedDocumentField(PickleEmbedded)
|
||||||
|
lists = ListField(StringField())
|
||||||
|
|
||||||
|
|
||||||
class DocumentTest(unittest.TestCase):
|
class DocumentTest(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
@ -869,6 +881,23 @@ class DocumentTest(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertTrue(u1 in all_user_set )
|
self.assertTrue(u1 in all_user_set )
|
||||||
|
|
||||||
|
def test_picklable(self):
|
||||||
|
|
||||||
|
pickle_doc = PickleTest(number=1, string="OH HAI", lists=['1', '2'])
|
||||||
|
pickle_doc.embedded = PickleEmbedded()
|
||||||
|
pickle_doc.save()
|
||||||
|
|
||||||
|
pickled_doc = pickle.dumps(pickle_doc)
|
||||||
|
resurrected = pickle.loads(pickled_doc)
|
||||||
|
|
||||||
|
self.assertEquals(resurrected, pickle_doc)
|
||||||
|
|
||||||
|
resurrected.string = "Working"
|
||||||
|
resurrected.save()
|
||||||
|
|
||||||
|
pickle_doc.reload()
|
||||||
|
self.assertEquals(resurrected, pickle_doc)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user