def test_router_bad_metrics():
    user_object = UserObject(metrics_ok=False)
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    rv = client.get('/route?json={"data":{"ndarray":[]}}')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 400
def test_router_feedback_lowlevel_ok():
    user_object = UserObjectLowLevel()
    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
def test_router_no_json():
    user_object = UserObject()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    uo = UserObject()
    rv = client.get('/route?')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 400
def test_router_lowlevel_ok():
    user_object = UserObjectLowLevel()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    rv = client.get('/route?json={"data":{"ndarray":[2]}}')
    j = json.loads(rv.data)
    print(j)
    assert rv.status_code == 200
    assert j["data"]["ndarray"] == [[1]]
def test_router_ok():
    user_object = UserObject()
    app = get_rest_microservice(user_object, debug=True)
    client = app.test_client()
    rv = client.get('/route?json={"data":{"ndarray":[2]}}')
    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 j["data"]["ndarray"] == [[22]]