change ObjectId __getstate__ and __setstate__ to just use __id also added unit test for pickling/unpickling ObjectId
This commit is contained in:
parent
c9c54575ff
commit
f202c535d5
@ -191,12 +191,12 @@ class ObjectId(object):
|
||||
"""return value of object for pickling.
|
||||
needed explicitly because __slots__() defined.
|
||||
"""
|
||||
return self.__str__()
|
||||
return self.__id
|
||||
|
||||
def __setstate__(self, oid):
|
||||
def __setstate__(self, value):
|
||||
"""explicit state set from pickling
|
||||
"""
|
||||
self.__validate(oid)
|
||||
self.__id = value
|
||||
|
||||
def __str__(self):
|
||||
return self.__id.encode("hex")
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
"""Tests for the objectid module."""
|
||||
|
||||
import datetime
|
||||
import pickle
|
||||
import warnings
|
||||
import unittest
|
||||
import sys
|
||||
@ -124,5 +125,9 @@ class TestObjectId(unittest.TestCase):
|
||||
oid = ObjectId.from_datetime(aware)
|
||||
self.assertEqual(as_utc, oid.generation_time)
|
||||
|
||||
def test_pickling(self):
|
||||
orig = ObjectId()
|
||||
self.assertEqual(orig, pickle.loads(pickle.dumps(orig)))
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user