Пример #1
0
def test_model_feedback_ok():
    user_object = UserObject()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    rv = client.get('/send-feedback?json={"request":{"data":{"ndarray":[]}},"reward":1.0}')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 200
Пример #2
0
def test_model_bad_metrics():
    user_object = UserObject(metrics_ok=False)
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    rv = client.get('/predict?json={"data":{"ndarray":[]}}')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 400
Пример #3
0
        def rest_prediction_server():
            app = seldon_microservice.get_rest_microservice(
                user_object, debug=DEBUG)

            if args.tracing:
                from flask_opentracing import FlaskTracer
                tracing = FlaskTracer(tracer,True, app)

            app.run(host='0.0.0.0', port=port)
Пример #4
0
def test_model_lowlevel_ok():
    user_object = UserObjectLowLevel()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    rv = client.get('/predict?json={"data":{"ndarray":[1,2]}}')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 200
    assert j["data"]["ndarray"] == [9, 9]
Пример #5
0
def test_model_no_json():
    user_object = UserObject()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    uo = UserObject()
    rv = client.get('/predict?')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 400
Пример #6
0
def test_model_ok():
    user_object = UserObject()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    rv = client.get('/predict?json={"data":{"ndarray":[]}}')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 200
    assert j["meta"]["tags"] == {"mytag": 1}
    assert j["meta"]["metrics"] == user_object.metrics()
Пример #7
0
def test_model_bin_data_nparray():
    user_object = UserObject(ret_nparray=True)
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    rv = client.get('/predict?json={"binData":"123"}')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 200
    assert j["data"]["ndarray"] == [1, 2, 3]
    assert j["meta"]["tags"] == {"mytag": 1}
    assert j["meta"]["metrics"] == user_object.metrics()
Пример #8
0
def test_model_bin_data():
    user_object = UserObject()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    bdata = b"123"
    bdata_base64 = base64.b64encode(bdata).decode('utf-8')
    rv = client.get('/predict?json={"binData":"' + bdata_base64 + '"}')
    j = json.loads(rv.data)
    sm = prediction_pb2.SeldonMessage()
    # Check we can parse response
    assert sm == json_format.Parse(rv.data, sm, ignore_unknown_fields=False)
    print(j)
    assert rv.status_code == 200
    assert j["binData"] == bdata_base64
    assert j["meta"]["tags"] == {"mytag": 1}
    assert j["meta"]["metrics"] == user_object.metrics()
Пример #9
0
def test_model_tftensor_ok():
    user_object = UserObject()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    arr = np.array([1, 2])
    datadef = prediction_pb2.DefaultData(
        tftensor=tf.make_tensor_proto(arr)
    )
    request = prediction_pb2.SeldonMessage(data=datadef)
    jStr = json_format.MessageToJson(request)
    rv = client.get('/predict?json=' + jStr)
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 200
    assert j["meta"]["tags"] == {"mytag": 1}
    assert j["meta"]["metrics"] == user_object.metrics()
    assert 'tftensor' in j['data']
    tfp = TensorProto()
    json_format.ParseDict(j['data'].get("tftensor"),
                          tfp, ignore_unknown_fields=False)
    arr2 = tf.make_ndarray(tfp)
    assert np.array_equal(arr, arr2)
Пример #10
0
 def rest_prediction_server():
     app = seldon_microservice.get_rest_microservice(user_object,
                                                     debug=DEBUG)
     app.run(host='0.0.0.0', port=port)