def test_dict_serializer_no_default(): serializer = DictSerializer() field = fields.Integer() result = str( serializer.serialize('foo', 'bar', 'result["foo"] = {0}', field)) expected = ('if "foo" in obj:\n' ' result["foo"] = obj["foo"]') assert expected == result
def test_generate_unmarshall_method_bodies_required(): class OneFieldSchema(Schema): foo = fields.Integer(required=True) context = JitContext(is_serializing=False, use_inliners=False) result = str( generate_transform_method_body(OneFieldSchema(), DictSerializer(context), context)) expected = '''\ def DictSerializer(obj): res = {} __res_get = res.get res["foo"] = _field_foo__deserialize(obj["foo"], "foo", obj) if "foo" not in res: raise ValueError() if __res_get("foo", res) is None: raise ValueError() return res''' assert expected == result
def test_generate_unmarshall_method_bodies_with_load_from(): class OneFieldSchema(Schema): foo = fields.Integer(data_key='bar', allow_none=True) context = JitContext(is_serializing=False, use_inliners=False) result = str( generate_transform_method_body(OneFieldSchema(), DictSerializer(context), context)) expected = '''\ def DictSerializer(obj): res = {} __res_get = res.get if "foo" in obj: res["foo"] = _field_foo__deserialize(obj["foo"], "bar", obj) if "foo" not in res: if "bar" in obj: res["foo"] = _field_foo__deserialize(obj["bar"], "bar", obj) return res''' assert expected == result
def test_dict_serializer_with_callable_default(): serializer = DictSerializer() field = fields.Integer(default=int) result = str( serializer.serialize('foo', 'bar', 'result["foo"] = {0}', field)) assert 'result["foo"] = obj.get("foo", bar__default())' == result