Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
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})