Added DefaultParser
This commit is contained in:
@@ -1,16 +1,56 @@
|
||||
import pytest
|
||||
from dataclasses import dataclass
|
||||
|
||||
from sdp.sheerkaDataProvider import Event
|
||||
from sdp.sheerkaSerializer import Serializer
|
||||
from sdp.sheerkaSerializer import Serializer, ObjectSerializer, SerializerContext, BaseSerializer
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
@dataclass()
|
||||
class Obj:
|
||||
key: str = ""
|
||||
prop1: str = ""
|
||||
|
||||
def from_dict(self, json_object):
|
||||
self.prop1 = json_object["prop1"]
|
||||
self.key = json_object["key"]
|
||||
return self
|
||||
|
||||
def to_dict(self):
|
||||
return self.__dict__
|
||||
|
||||
|
||||
def test_i_can_serialize_an_event():
|
||||
event = Event("test", user="user", date=datetime.fromisoformat("2019-10-21T10:20:30.999"))
|
||||
serializer = Serializer()
|
||||
|
||||
stream = serializer.serialize(event)
|
||||
loaded = serializer.deserialize(stream)
|
||||
stream = serializer.serialize(event, None)
|
||||
loaded = serializer.deserialize(stream, None)
|
||||
|
||||
assert event.version == loaded.version
|
||||
assert event.user == loaded.user
|
||||
assert event.date == loaded.date
|
||||
assert event.message == loaded.message
|
||||
|
||||
|
||||
def test_i_can_serialize_an_object():
|
||||
obj = Obj("10", "value")
|
||||
serializer = Serializer()
|
||||
serializer.register(ObjectSerializer("tests.test_sheerkaSerializer.Obj"))
|
||||
context = SerializerContext("kodjo", "6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b")
|
||||
|
||||
stream = serializer.serialize(obj, context)
|
||||
loaded = serializer.deserialize(stream, context)
|
||||
|
||||
assert getattr(loaded, Serializer.HISTORY)[Serializer.USERNAME] == "kodjo"
|
||||
assert getattr(loaded, Serializer.HISTORY)[Serializer.MODIFICATION_DATE] != ""
|
||||
assert getattr(loaded, Serializer.HISTORY)[Serializer.PARENTS] == []
|
||||
assert loaded.key == "10"
|
||||
assert loaded.prop1 == "value"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("obj, expected", [
|
||||
(Obj("10", "value"), "tests.test_sheerkaSerializer.Obj")
|
||||
])
|
||||
def test_get_full_qualified_name(obj, expected):
|
||||
assert expected == BaseSerializer.get_full_qualified_name(obj)
|
||||
|
||||
Reference in New Issue
Block a user