def test_parameters(): f = Flow(name="test") x = Parameter("x") y = Parameter("y", default=5) f.add_task(x) f.add_task(y) serialized = FlowSchema().dump(f) assert "parameters" in serialized assert [ isinstance(ParameterSchema().load(p), Parameter) for p in serialized["parameters"] ]
def test_serialize_parameter(): p = Parameter(name="p") ps = ParameterSchema().dump(p) assert ps["default"] == None assert ps["required"] is True
def test_deserialize_parameter(): p = Parameter(name="p") p2 = ParameterSchema().load(ParameterSchema().dump(p)) assert isinstance(p2, Parameter)
def test_deserialize_parameter_requires_name(): with pytest.raises(marshmallow.ValidationError): ParameterSchema().load({})