def __init__( self, name: str, default: JSONSerializableParameterValue = no_default, required: bool = True, tags: Iterable[str] = None, ) -> None: super().__init__(name=name, default=default, required=required, tags=tags) self.result = PrefectResult(serializer=DateTimeSerializer())
def __init__( self, name: str, required: bool = True, tags: Iterable[str] = None, ) -> None: default = no_default if required else None super().__init__(name=name, default=default, required=required, tags=tags) self.result = PrefectResult(serializer=DateTimeSerializer())
def test_serializer_not_configurable(self): # By default creates own JSONSerializer result = PrefectResult() assert isinstance(result.serializer, JSONSerializer) # Can specify one manually as well serializer = JSONSerializer() result = PrefectResult(serializer=serializer) assert result.serializer is serializer # Can set if it's a JSONSerializer or DateTimeSerializer serializer2 = JSONSerializer() result.serializer = serializer2 assert result.serializer is serializer2 serializer3 = DateTimeSerializer() result.serializer = serializer3 assert result.serializer is serializer3 # Type errors for other serializer types with pytest.raises(TypeError): result.serializer = PickleSerializer() with pytest.raises(TypeError): result = PrefectResult(serializer=PickleSerializer())
def test_deserialize_returns_objects(self): value = pendulum.now() serialized = DateTimeSerializer().serialize(value) deserialized = DateTimeSerializer().deserialize(serialized) assert deserialized == value
def test_serialize_returns_bytes(self): value = pendulum.now() serialized = DateTimeSerializer().serialize(value) assert isinstance(serialized, bytes)