Esempio n. 1
0
 def test_all_goals_no_exceptions(self):
     # with open("output.json", "w+") as f:
     total = 0
     bad = 0
     for fitness_level in xrange(1, 6):
         for experience in xrange(1, 6):
             for goal_id in Goal.IDS:
                 _, user = User.get_or_create_by_username("workoutdude%s_%s_%s" % (fitness_level, experience, goal_id))
                 # user = User.get_or_create_by_username("workoutdude%s" % goal_id)
                 user.update_goal_id(goal_id)
                 user.update_fitness_level(fitness_level)
                 user.update_experience(experience)
                 # for week_count in xrange(10):
                 if True:
                     user.move_to_next_week()
                     workout_collection = generate_new_workouts(user)
                     for workout in workout_collection.get_existing_workouts_for_user(user):
                         total += 1
                         empty_cardio = workout.cardio_session is None
                         empty_exercises = len(workout._get_workout_component_to_exercises()) == 0
                         if empty_cardio and empty_exercises:
                             # problem here: the database is populated with a
                             # framework, but exercises empty I guess
                             print "EMPTY DATA"
                             bad += 1
                             # raise ValueError("there's empty data")
         # import json
         # f.write(json.dumps(workout_collection.to_json(), indent=4))
     print "%s/%s" % (bad, total)
Esempio n. 2
0
def _update_user(request, user=None, access_token=None):
    field_to_function = {
        'goal_id': _update_goal,
        'age': _update_age,
        'gender': _update_gender,
        'equipment_ids': _update_equipment_ids,
        'enabled_days': _update_available_days,
        'minutes_per_day': _update_minutes_per_day,
        'fitness_level': _update_fitness_level,
        'experience': _update_experience
    }

    post_data = request.POST or json.loads(request.body)
    for field, function in field_to_function.items():

        if function is None:
            continue

        if field in post_data:
            function(user, post_data[field])
    if WorkoutCollection.workouts_exist_for_user(user):
        generate_new_workouts(user, move_to_next_week=False)

    return render_to_json({"access_token": access_token}, status=200)
Esempio n. 3
0
def workout(request, user=None):
    '''
    return a week's worth of data for the user
    '''
    if not user:
        return render_to_json({}, status=400)
    utc_offset = int(request.GET.get('utc_offset', 0))
    timezone = get_timezone_from_utc_offset_minutes(utc_offset)
    try:
        workout_collection = WorkoutCollection.for_user(user, timezone)
    except NeedsNewWorkoutsException:
        try:
            workout_collection = generate_new_workouts(user)
        except NoGoalSetException:
            return render_to_json({
                "redirect": "!goal/return"
            }, status=ResponseCodes.REDIRECT_REQUIRED)
    return render_to_json(workout_collection.to_json())
Esempio n. 4
0
 def test_generate_workouts(self):
     _, user = User.get_or_create_by_username("workoutdude")
     user.update_goal_id(1)
     user.move_to_next_week()
     workout_collection = generate_new_workouts(user)