diff options
Diffstat (limited to 'tests/test_FileBSON.py')
-rw-r--r-- | tests/test_FileBSON.py | 40 |
1 files changed, 13 insertions, 27 deletions
diff --git a/tests/test_FileBSON.py b/tests/test_FileBSON.py index ff2a7b3..1bf1b7d 100644 --- a/tests/test_FileBSON.py +++ b/tests/test_FileBSON.py @@ -14,7 +14,10 @@ import os import unittest +from g_sorcery.g_collections import serializable_elist + from tests.base import BaseTest +from tests.serializable import NonSerializableClass, SerializableClass, DeserializableClass BSON_INSTALLED = False @@ -24,33 +27,6 @@ try: except ImportError as e: pass -class NonSerializableClass(object): - pass - - -class SerializableClass(object): - - __slots__ = ("field1", "field2") - - def __init__(self, field1, field2): - self.field1 = field1 - self.field2 = field2 - - def __eq__(self, other): - return self.field1 == other.field1 \ - and self.field2 == other.field2 - - def serialize(self): - return {"field1": self.field1, "field2": self.field2} - - -class DeserializableClass(SerializableClass): - - @classmethod - def deserialize(cls, value): - return DeserializableClass(value["field1"], value["field2"]) - - if BSON_INSTALLED: class TestFileJSON(BaseTest): @@ -82,11 +58,21 @@ if BSON_INSTALLED: content_r = fj.read() self.assertEqual(content, content_r) + def test_deserializable_collection(self): + fj = FileBSON(self.directory, self.name, []) + content1 = DeserializableClass("1", "2") + content2 = DeserializableClass("3", "4") + content = serializable_elist([content1, content2]) + fj.write(content) + content_r = fj.read() + self.assertEqual(content, content_r) + def suite(): suite = unittest.TestSuite() suite.addTest(TestFileJSON('test_write_read')) suite.addTest(TestFileJSON('test_serializable')) suite.addTest(TestFileJSON('test_deserializable')) + suite.addTest(TestFileJSON('test_deserializable_collection')) return suite else: |