Files
Sheerka-Old/tests/sdp/test_sheerkaSerializer.py
T

58 lines
1.8 KiB
Python

import pytest
from dataclasses import dataclass
from sdp.sheerkaDataProvider import Event
from sdp.sheerkaSerializer import Serializer, JsonSerializer, SerializerContext
from datetime import datetime
import core.utils
@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, 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(JsonSerializer("tests.sdp.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.sdp.test_sheerkaSerializer.Obj")
])
def test_get_full_qualified_name(obj, expected):
assert expected == core.utils.get_full_qualified_name(obj)