def test_transform_output_proto_bin_data(): user_object = UserObject() app = SeldonTransformerGRPC(user_object) binData = b"\0\1" request = prediction_pb2.SeldonMessage(binData=binData) resp = app.TransformOutput(request, None) assert resp.binData == binData
def test_transform_output_proto_bin_data_nparray(): user_object = UserObject(ret_nparray=True) app = SeldonTransformerGRPC(user_object) binData = b"\0\1" request = prediction_pb2.SeldonMessage(binData=binData) resp = app.TransformOutput(request, None) jStr = json_format.MessageToJson(resp) j = json.loads(jStr) print(j) assert j["data"]["tensor"]["values"] == list(user_object.nparray.flatten())
def test_transform_output_proto_lowlevel_ok(): user_object = UserObjectLowLevel() app = SeldonTransformerGRPC(user_object) arr = np.array([1, 2]) datadef = prediction_pb2.DefaultData( tensor=prediction_pb2.Tensor(shape=(2, 1), values=arr)) request = prediction_pb2.SeldonMessage(data=datadef) resp = app.TransformOutput(request, None) jStr = json_format.MessageToJson(resp) j = json.loads(jStr) print(j) assert j["data"]["tensor"]["shape"] == [2, 1] assert j["data"]["tensor"]["values"] == [9, 9]
def test_transform_output_proto_ok(): user_object = UserObject() app = SeldonTransformerGRPC(user_object) arr = np.array([1, 2]) datadef = prediction_pb2.DefaultData( tensor=prediction_pb2.Tensor(shape=(2, 1), values=arr)) request = prediction_pb2.SeldonMessage(data=datadef) resp = app.TransformOutput(request, None) jStr = json_format.MessageToJson(resp) j = json.loads(jStr) print(j) assert j["meta"]["tags"] == {"mytag": 1} # add default type j["meta"]["metrics"][0]["type"] = "COUNTER" assert j["meta"]["metrics"] == user_object.metrics() assert j["data"]["tensor"]["shape"] == [2, 1] assert j["data"]["tensor"]["values"] == [1, 2]
def test_transform_output_proto_gets_meta(): user_object = UserObject(ret_meta=True) app = SeldonTransformerGRPC(user_object) arr = np.array([1, 2]) datadef = prediction_pb2.DefaultData( tensor=prediction_pb2.Tensor(shape=(2, 1), values=arr)) meta = prediction_pb2.Meta() metaJson = {"puid": "abc"} json_format.ParseDict(metaJson, meta) request = prediction_pb2.SeldonMessage(data=datadef, meta=meta) resp = app.TransformOutput(request, None) jStr = json_format.MessageToJson(resp) j = json.loads(jStr) print(j) assert j["meta"]["tags"] == {"inc_meta": {"puid": "abc"}} # add default type j["meta"]["metrics"][0]["type"] = "COUNTER" assert j["meta"]["metrics"] == user_object.metrics() assert j["data"]["tensor"]["shape"] == [2, 1] assert j["data"]["tensor"]["values"] == [1, 2]