def test_filter_by_exercise_name(self): """ Tests that the function filter_by_exercise_name returns a list of dictionaries containing all workouts for a specific exercise """ name = get_exercise_by_slug(self.slug) workout_dates = set([exercise.exercise_date for exercise in Workout.objects.filter(exercise_name=name)]) exercise_list = [] for date in workout_dates: workout = {} # {'date': ''} workout['date'] = date for exercise in Workout.objects.filter(exercise_name=name).\ filter(exercise_date=date): workout['name'] = exercise.exercise_name workout['sets'] = exercise.sets workout['reps'] = exercise.reps workout['weight'] = exercise.weight exercise_list.append(workout.copy()) created_list = filter_by_exercise_name(self.slug) self.assertEqual(exercise_list, created_list)
def test_get_exercise_by_slug(self): """ Tests that the function get_exercise_by_slug returns the exercise object matching the slug passed as argument """ exercise_object = self.exercise2 exercise = get_exercise_by_slug(self.slug) self.assertEqual(exercise_object, exercise)
def progress_by_exercise(request, exercise_slug): """ Displays progress history all dates, sets, reps and weight for a given exercise """ exercise_name = get_exercise_by_slug(exercise_slug) exercise_list = filter_by_exercise_name(exercise_slug) return render(request, 'gym_app/progress.html', {'exercise_name': exercise_name, 'workouts': exercise_list})