def test_searchByLevel(self): uc = User(username="******", password="******", email="*****@*****.**") ut = User(username="******", password="******", email="*****@*****.**") db.session.add(uc) db.session.add(ut) db.session.commit() w1 = Workout(user_id=uc.id, name="Work Out 1", level="Easy") db.session.add(w1) db.session.commit() w2 = Workout(user_id=uc.id, parent_user_id=ut.id, name="Work Out 2", is_public=False, level="Medium") db.session.add(w2) db.session.commit() w3 = Workout(user_id=uc.id, name="Work Out 3", level="Hard") db.session.add(w3) db.session.commit() w4 = Workout(user_id=uc.id, parent_user_id=ut.id, name="Work Out 4", is_public=False, level="Medium") db.session.add(w4) db.session.commit() workouts = Workout.searchByLevel("Easy") assert workouts[0].id == 1 workouts = Workout.searchByLevel("Medium") assert workouts[0].id == 2 assert workouts[1].id == 4 workouts = Workout.searchByLevel("Hard") assert workouts[0].id == 3
def submit_workout(): exercises = request.data if(len(exercises) == 0): result = {"Result":"Failure: No JSON Data sent."} return jsonify(result) jsonExercises = json.loads(exercises) name = jsonExercises['name'] description = jsonExercises['description'] level = jsonExercises['level'] isPublic = jsonExercises['isPublic'] if isPublic == 'true': isPublic = True else: isPublic = False isLikeable = jsonExercises['isLikeable'] if isLikeable == 'true': isLikeable = True else: isLikeable = False isCommentable = jsonExercises['isCommentable'] if isCommentable == 'true': isCommentable = True else: isCommentable = False user = g.user if user.is_anonymous(): user = User.find_by_username("Guest") else: user.add_newsfeed("Has added a workout: " + name + "") if user is None: user = User.find_by_username("Guest") if user is None: user = User(username="******", password="******", email=None, firstname=None, lastname=None, location=None, sex=None, date_of_birth=None, avatar=None, about_me=None, last_seen=None) User.save_to_db(user) newWorkout = Workout(user_id=user.id, parent_user_id=user.id, name=name, level=level, is_public=isPublic, is_likeable=isLikeable, is_commentable=isCommentable, description=description) Workout.save_to_db(newWorkout) logging.warning("saving workout") for exercise in jsonExercises['exercises']: order = exercise['order'] type = exercise['type'] unit = exercise['unit'] exerciseTag = ExerciseTag.find_by_name(type) if exerciseTag is None: exerciseTag = ExerciseTag(type, unit) ExerciseTag.save_to_db(exerciseTag) amount = exercise['amount'] additionalInfo = exercise['additionalInfo'] newExercise = Exercise(newWorkout.id, exerciseTag.id, order, amount, additionalInfo) Exercise.save_to_db(newExercise) result = {"Result":"Success"} return jsonify(result)
def test_getMostRecent(self): uc = User(username="******", password="******", email="*****@*****.**") ut = User(username="******", password="******", email="*****@*****.**") db.session.add(uc) db.session.add(ut) db.session.commit() list = Workout.getMostRecent(10) assert len(list) == 0 w1 = Workout(user_id=uc.id, name="Work Out 1", level="Easy") w2 = Workout(user_id=uc.id, name="Work Out 2", level="Easy") db.session.add(w1) db.session.add(w2) db.session.commit() list = Workout.getMostRecent(10) assert len(list) == 2 w3 = Workout(user_id=uc.id, name="Work Out 3", level="Easy") w4 = Workout(user_id=uc.id, name="Work Out 4", level="Easy") w5 = Workout(user_id=uc.id, name="Work Out 5", level="Easy") w6 = Workout(user_id=uc.id, name="Work Out 6", level="Easy") db.session.add(w3) db.session.add(w4) db.session.add(w5) db.session.add(w6) db.session.commit() list = Workout.getMostRecent(10) assert len(list) == 6 w7 = Workout(user_id=uc.id, name="Work Out 7", level="Easy") w8 = Workout(user_id=uc.id, name="Work Out 8", level="Easy") w9 = Workout(user_id=uc.id, name="Work Out 9", level="Easy") w10 = Workout(user_id=uc.id, name="Work Out 10", level="Easy") w11 = Workout(user_id=uc.id, name="Work Out 11", level="Easy") w12 = Workout(user_id=uc.id, name="Work Out 12", level="Easy") db.session.add(w7) db.session.add(w8) db.session.add(w9) db.session.add(w10) db.session.add(w11) db.session.add(w12) db.session.commit() list = Workout.getMostRecent(10) assert len(list) == 10
def test_getSingleWorkoutByName(self): user = User(username="******", password="******", email="*****@*****.**") db.session.add(user) db.session.commit() w1 = Workout(user_id=user.id, name="Work Out 1", level="Easy") w2 = Workout(user_id=user.id, name="Work Out 2", level="Easy") db.session.add(w1) db.session.add(w2) db.session.commit() workoutName1 = Workout.find_single_workout_by_name_("Work Out 1") workoutName2 = Workout.find_single_workout_by_name_("Work Out 2") assert workoutName2.name == w2.name assert workoutName1.name == w1.name
def get_workout_page(): givenWorkoutName = request.args.get('name') workout = Workout.find_single_workout_by_name_(givenWorkoutName) if workout != None: workoutNameFound = Markup(workout.name) return render_template("workouts/workout.html", creatingNewWorkout = False, workoutName = workoutNameFound) else: return render_template("workouts/workout.html", creatingNewWorkout = True)
def check_if_name_is_unique(): workoutName = request.args.get('name', '') workout = Workout.find_single_workout_by_name_(workoutName) if workout is None: result = {"Result":"True"} return jsonify(result) else: result = {"Result":"False"} return jsonify(result)
def test_getNewest(self): user = User(username="******", password="******", email="*****@*****.**") db.session.add(user) db.session.commit() w1 = Workout(user_id=user.id, name="Newest Work Out 1", level="Easy") db.session.add(w1) db.session.commit() w = Workout.getNewest() assert w.name == w1.name
def autocomplete_workouts(): text = request.args.get('name_startsWith') maxRows = request.args.get('maxRows') workouts = Workout.find_by_starts_with(text) result = [] for workout in workouts: result.append(workout.to_hash()) w = {"workouts": result} return jsonify(w)
def get_single_workout(): workoutName = request.args.get('name') if workoutName is None: id = request.args.get('id') workout = Workout.find_single_workout_by_id(id) else: workout = Workout.find_single_workout_by_name_(workoutName) if workout != None: workoutData = workout.to_hash() exercises = Exercise.find_all_by_workOutId(workout.id) exerciseData = [] for exercise in exercises: exerciseData.append(exercise.to_hash()) returnVal = {"Result": "Success", "workoutData": workoutData,"exerciseData": exerciseData} return jsonify(returnVal) else: returnVal = {"Result": "Failure"} return jsonify(returnVal)
def display_splash_contents(): ret = Workout.getNewest() nWorkout = ret.to_hash() ret = User.getNewest() nuPic = ret.get_avatar(200) nUser = ret.to_hash() ret = User.find_by_id(8) mfPic = ret.get_avatar(200) mFollowed = ret.to_hash() w = {"Result":"OK", "nUser":nUser, "nuPic": nuPic,"nWorkout":nWorkout, "mostFollowed":mFollowed, "mfPic":mfPic} return jsonify(w)
def test_getParentWorkouts(self): uc = User(username="******", password="******", email="*****@*****.**") ut = User(username="******", password="******", email="*****@*****.**") db.session.add(uc) db.session.add(ut) db.session.commit() w1 = Workout(user_id=uc.id, name="Work Out 1") db.session.add(w1) db.session.commit() w2 = Workout(user_id=uc.id, parent_user_id=ut.id, name="Work Out 2") db.session.add(w2) db.session.commit() workouts = Workout.getParentWorkouts(ut.id) assert workouts[0].id == 2
def submit_workout_history(): wName = request.form['wName'] date = request.form['date'] desc = request.form['desc'] user = User.find_by_username(request.form['user']) workout = Workout.find_single_workout_by_name_(wName) if(workout == None): return jsonify(result="errorName", content=" The workout name you have entered may not exist. Please double check the spelling of the workout name. Thank you") if(date == ""): return jsonify(result="errorDate", content=" Please enter the date and time of the completed workout") wh = WorkoutHistory(user.id, workout.id, datetime.strptime(date, "%m/%d/%Y %I:%M:%S %p"), desc, True) WorkoutHistory.save_to_db(wh) feed = "comleted "+wName+" on "+date+" - "+desc; user.add_newsfeed(feed); return jsonify(result="success");
def getWorkoutHistory(): results = [] uName = request.args.get('name') current_user = User.find_by_username(uName) if current_user is None: w = {"Result":"BAD"} return jsonify(w) completed = WorkoutHistory.get_completed_workouts(current_user.id) for item in completed: name = Workout.find_by_id(item.workout_id).name results.append(item.toHash(name)) w = {"Result":"OK", "Contents":results, "User":current_user.username} return jsonify(w)
def get_most_recent(): imgURL = [] imgURL.append(url_for('static', filename='imgs/fall1.jpg')); imgURL.append(url_for('static', filename='imgs/boat1.jpg')); imgURL.append(url_for('static', filename='imgs/lake1.jpg')); imgURL.append(url_for('static', filename='imgs/forrest1.jpg')); imgURL.append(url_for('static', filename='imgs/waterfall1.jpg')); imgURL.append(url_for('static', filename='imgs/fall2.jpg')); imgURL.append(url_for('static', filename='imgs/boat2.jpg')); imgURL.append(url_for('static', filename='imgs/lake2.jpg')); imgURL.append(url_for('static', filename='imgs/summer1.jpg')); imgURL.append(url_for('static', filename='imgs/winter1.jpg')); list = Workout.getMostRecent(len(imgURL)) content = [] for x in range(0, len(list)): content.append({'name':list[x].name,'description':list[x].description, "image":imgURL[x],"id":list[x].id}) r = {"Result":"success", "Content":content} return jsonify(r);
def test_getPublicWorkouts(self): uc = User(username="******", password="******", email="*****@*****.**") ut = User(username="******", password="******", email="*****@*****.**") db.session.add(uc) db.session.add(ut) db.session.commit() w1 = Workout(user_id=uc.id, name="Work Out 1") db.session.add(w1) db.session.commit() w2 = Workout(user_id=uc.id, parent_user_id=ut.id, name="Work Out 2", is_public=False) db.session.add(w2) db.session.commit() w3 = Workout(user_id=uc.id, name="Work Out 3") db.session.add(w3) db.session.commit() w4 = Workout(user_id=uc.id, parent_user_id=ut.id, name="Work Out 4", is_public=False) db.session.add(w4) db.session.commit() workouts = Workout.getPublicWorkouts() assert workouts[0].id == 1 assert workouts[1].id == 3
def get_workouts(): """ { "Result":"OK", "Records":[ {"WorkoutId":1,"Name":"Blah"}, {"WorkoutId":2,"Name":"Lazy bones"}, ] } """ result = [] workout_ids = [] workouts = [] if 'workout' in request.form: workouts = Workout.find_by_name(request.form['workout']) if workouts is not None: for workout in workouts: result.append(workout.to_search_query_hash()) elif 'description' in request.form: workouts = Workout.find_by_description(request.form['description']) if workouts is not None: for workout in workouts: result.append(workout.to_search_query_hash()) elif 'tag_auto' in request.form: tags = ExerciseTag.find_all_by_name(request.form['tag_auto']) if tags is not None: for tag in tags: for exercise in tag.exercises: workout_ids.append(exercise.workOutId) #remove dupes workout_ids = set(workout_ids) for id in workout_ids: workouts.append(Workout.find_by_id(id)) for workout in workouts: result.append(workout.to_search_query_hash()) elif 'exercise' in request.form: tag = ExerciseTag.find_by_name(request.form['exercise']) if tag is not None: for exercise in tag.exercises: workout_ids.append(exercise.workOutId) #remove dupes workout_ids = set(workout_ids) for id in workout_ids: workouts.append(Workout.find_by_id(id)) for workout in workouts: result.append(workout.to_search_query_hash()) elif 'author' in request.form: authors = User.find_all_by_username(request.form['author']) if authors is not None: for author in authors: works = Workout.find_by_userid(author.id) if works is not None: for work in works: workouts.append(work) for workout in workouts: result.append(workout.to_search_query_hash()) w = {"Result":"OK", "Records": result} return jsonify(w)
def edit_workout(): exercises = request.data if(len(exercises) == 0): result = {"Result":"Failure"} return jsonify(result) jsonExercises = json.loads(exercises) if jsonExercises == None: result = {"Result":"Failure"} return jsonify(result) else: if len(jsonExercises) == 0: result = {"Result":"Failure"} return jsonify(result) else: name = jsonExercises['name'] description = jsonExercises['description'] level = jsonExercises['level'] isPublic = jsonExercises['isPublic'] if isPublic == 'true': isPublic = True else: isPublic = False isLikeable = jsonExercises['isLikeable'] if isLikeable == 'true': isLikeable = True else: isLikeable = False isCommentable = jsonExercises['isCommentable'] if isCommentable == 'true': isCommentable = True else: isCommentable = False currentWorkout = Workout.find_single_workout_by_name_(name) currentWorkout.level = level currentWorkout.is_public = isPublic currentWorkout.is_likeable = isLikeable currentWorkout.is_commentable = isCommentable currentWorkout.description = description Workout.update_workout_info(currentWorkout) for exercise in jsonExercises['exercises']: order = exercise['order'] type = exercise['type'] unit = exercise['unit'] exerciseTag = ExerciseTag.find_by_name(type) if exerciseTag is None: exerciseTag = ExerciseTag(type, unit) ExerciseTag.save_to_db(exerciseTag) amount = exercise['amount'] additionalInfo = exercise['additionalInfo'] currentExercise = Exercise.find_by_workOutId_and_order(currentWorkout.id, order) if currentExercise is None: newExercise = Exercise(currentWorkout.id, exerciseTag.id, order, amount, additionalInfo) Exercise.save_to_db(newExercise) else: currentExercise.eTagId = exerciseTag.id currentExercise.amount = amount currentExercise.additionalInfo = additionalInfo Exercise.update_exercise_info(currentExercise) result = {"Result":"Success"} return jsonify(result)