def test_add_entry_when_already_exists(): # add route to the database store_location(USER_ID, MESSAGE_ID, {"longitude": 1.0, "latitude": 2.0, "datetime": 0}) store_location(USER_ID, MESSAGE_ID, {"longitude": 3.0, "latitude": 4.0, "datetime": 5}) route = Ruta.select().order_by(Ruta.id.desc()).get() assert len(route.trajectory) == 2 # undo changes Ruta.delete().where(Ruta.message == MESSAGE_ID).execute()
def test_add_entry_correct(): # add route to the database store_location(USER_ID, MESSAGE_ID, {"longitude": 1.0, "latitude": 2.0,"datetime": 0}) route = Ruta.select().order_by(Ruta.id.desc()).get() assert route.trajectory[0].get("longitude") == 1.0 assert route.trajectory[0].get("latitude") == 2.0 assert route.trajectory[0].get("datetime") == 0 assert route.user == USER_ID # undo changes Ruta.delete().where(Ruta.message == MESSAGE_ID).execute()
def test_add_distance_and_time_when_adding_entry(): store_location(USER_ID, MESSAGE_ID, {"longitude": 1.0, "latitude": 2.0, "datetime": 0}) store_location(USER_ID, MESSAGE_ID, {"longitude": 3.0, "latitude": 4.0, "datetime": 5}) store_location(USER_ID, MESSAGE_ID, {"longitude": 7.0, "latitude": 9.0, "datetime": 10}) route = Ruta.select().order_by(Ruta.id.desc()).get() pos1 = (1.0, 2.0) pos2 = (3.0, 4.0) pos3 = (7.0, 9.0) assert isclose(route.distance, haversine(pos1,pos2)+haversine(pos2,pos3), abs_tol=0.1) assert route.time == 10 # undo changes Ruta.delete().where(Ruta.message == MESSAGE_ID).execute()
def get_routes(user_id): """ list all the routes available for an user_id. The result should be a json with basic information """ user_routes = Ruta.select().where(Ruta.user == user_id) routes = [] for route in user_routes: routes.append({ "user": user_id, "message": route.message, "date": route.date, "trajectory": route.trajectory }) return jsonify(routes)