def test_deserialize_json_without_version(): deserialized = StateSchema().load({"type": "Running", "message": "test"}) assert type(deserialized) is state.Running assert deserialized.is_running() assert deserialized.message == "test" assert deserialized.context == dict() assert deserialized._result == NoResult
def test_deserialize_json_with_context(): deserialized = StateSchema().load( {"type": "Running", "context": {"boo": ["a", "b", "c"]}} ) assert type(deserialized) is state.Running assert deserialized.is_running() assert deserialized.message is None assert deserialized.context == dict(boo=["a", "b", "c"]) assert deserialized._result == NoResult
def test_serialize_state_with_context_allows_for_diverse_values(): s = state.Running(message="hi") s.context = dict(tags=["foo", "bar"], info=dict(x=42), baz="99") serialized = StateSchema().dump(s) assert isinstance(serialized, dict) assert serialized["type"] == "Running" assert serialized["message"] == "hi" assert serialized["__version__"] == prefect.__version__ assert serialized["context"] == s.context deserialized = StateSchema().load(serialized) assert deserialized.is_running() assert deserialized.context == s.context
assert deserialized.is_scheduled() assert deserialized.context == dict(task_run_count=42) def test_serialize_state_with_context_allows_for_diverse_values(): s = state.Running(message="hi") s.context = dict(tags=["foo", "bar"], info=dict(x=42), baz="99") serialized = StateSchema().dump(s) assert isinstance(serialized, dict) assert serialized["type"] == "Running" assert serialized["message"] == "hi" assert serialized["__version__"] == prefect.__version__ assert serialized["context"] == s.context deserialized = StateSchema().load(serialized) assert deserialized.is_running() assert deserialized.context == s.context def test_serialize_mapped(): s = state.Success(message="1", result=1) f = state.Failed(message="2", result=2) serialized = StateSchema().dump(state.Mapped(message="message", map_states=[s, f])) assert isinstance(serialized, dict) assert serialized["type"] == "Mapped" assert serialized["message"] == "message" assert "_result" not in serialized assert "map_states" not in serialized assert serialized["n_map_states"] == 2 assert serialized["__version__"] == prefect.__version__