Skip to content

serializing Optional SerializableField does not invoke serialize() #96

Closed
@alex-vayu

Description

@alex-vayu
from typing import Optional

from typedpy import SerializableField, ImmutableStructure, String, Deserializer, Serializer


class TestSerializable(SerializableField):
    def serialize(self, value):
        return value.rstrip()

    def deserialize(self, value):
        return value + "  "


class Container1(ImmutableStructure):
    field1: String
    field2: Optional[TestSerializable]


class Container2(ImmutableStructure):
    field1: String
    field2: TestSerializable


f = {"field1": "val1", "field2": "val2"}

f2d = Deserializer(Container2).deserialize(f)
f2s = Serializer(f2d).serialize()
assert f2s == f


f1d = Deserializer(Container1).deserialize(f)
f1s = Serializer(f1d).serialize()
assert f1s == f
Traceback (most recent call last):
  File "/Users/alex.benenson/Library/Application Support/JetBrains/PyCharm2021.2/scratches/scratch.py", line 33, in <module>
    assert f1s == f
AssertionError

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions