aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_FileBSON.py')
-rw-r--r--tests/test_FileBSON.py40
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: