def main(): weeks, frequency, slots, sets, filename = arguments() Program = Workout() Program.generate_weeks(weeks=weeks) Program.generate_frequency(frequency=frequency) Program.generate_slots(slots=slots, sets=sets, frequency=frequency) Utils.clear(workbook=Program.wb) Utils.save(workbook=Program.wb, filename=filename)
def get(self): statusCode = 201 workoutId = self.request.get('workoutId') if workoutId != '': workout = Workout.get_by_id(int(workoutId)) if workout: statusCode = 200 self.response.write(json.dumps({'statusCode': statusCode, 'workout': workout.JSONOutput()})) else: self.response.write(json.dumps({'statusCode': statusCode})) else: statusCode = 200 workoutName = self.request.get('workoutNames') workouts = [] for workout in Workout.query(): workouts.append(workout.JSONOutput()) self.response.write(json.dumps({'statusCode': statusCode, 'workouts': workouts}))
def retrieveWorkoutInfo(workoutUrl): workoutBS = BS(URLRequest.urlopen(workoutUrl), "html.parser") try: bsExercises = workoutBS.select_one(".pull-none").select_one( "img[src]")["src"] except: bsExercises = "" try: bsMuscles = workoutBS.select_one(".infobox-map").select_one( "img[src]")["src"] except: bsMuscles = "" try: bsFocus = workoutBS.select_one(".infobox-works").select_one( "img[src]")["src"] except: bsFocus = "" try: bsType = workoutBS.select_one(".infobox-focus").select_one( "img[src]")["src"] except: bsType = "" try: bsDifficulty = workoutBS.select_one(".infobox-difficulty").select_one( "img[src]")["src"] except: bsDifficulty = "" try: bsDescription = workoutBS.select_one(".infotext").contents except: bsDescription = "" try: bsExtraCredit = workoutBS.select_one(".infoec").contents except: bsExtraCredit = "" workoutName = bsExercises[bsExercises.find("ts/") + 3:bsExercises.find(".")] workoutExercises = "https://darebee.com" + bsExercises workoutMuscles = "https://darebee.com" + bsMuscles workoutFocus = bsFocus[bsFocus.find("-") + 1:bsFocus.find(".")] workoutType = bsType[bsType.find("-") + 1:bsType.find(".")] workoutDifficulty = bsDifficulty[bsDifficulty.find("-") + 1:bsDifficulty.find(".")] workoutDescription = cleanTags("".join(str(x) for x in bsDescription)) workoutExtraCredit = cleanTags("".join(str(x) for x in bsExtraCredit)) return Workout(workoutUrl, workoutName, workoutExercises, workoutMuscles, workoutFocus, workoutType, workoutDifficulty, workoutDescription, workoutExtraCredit)
def post(self): statusCode = 202 emailAddress = self.request.get('emailAddress') workoutContents = json.loads(self.request.body) user = User.query(User.emailAddress==emailAddress).get() if user: statusCode = 201 createdBy = emailAddress name = workoutContents["name"] description = workoutContents['description'] tags = workoutContents['tags'] rating = 5 exercises = workoutContents['exercises'] workout = Workout(createdBy=createdBy, name=name, description=description, tags=tags, rating=rating, exercises=json.dumps(exercises)) workout.put() statusCode = 200 self.response.write(json.dumps({'statusCode': statusCode}))
def setUp(self): self.dbInit = DBInterface('WorkoutHistoryUnitTest') self.Workout = Workout('Test', time.strftime('%d%m%Y')) self.Workout.Exercises.append( Set('Bench', 5, 140, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.Workout.Exercises.append( Set('Bench', 5, 165, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.Workout.Exercises.append( Set('Bench', 7, 180, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.sets = list() self.sets.append( Set('Bench', 5, 140, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.sets.append( Set('Bench', 5, 165, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.sets.append( Set('Bench', 7, 180, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1))
class WorkoutTestCase(unittest.TestCase): def setUp(self): self.dbInit = DBInterface('WorkoutHistoryUnitTest') self.Workout = Workout('Test', time.strftime('%d%m%Y')) self.Workout.Exercises.append( Set('Bench', 5, 140, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.Workout.Exercises.append( Set('Bench', 5, 165, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.Workout.Exercises.append( Set('Bench', 7, 180, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.sets = list() self.sets.append( Set('Bench', 5, 140, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.sets.append( Set('Bench', 5, 165, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) self.sets.append( Set('Bench', 7, 180, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) def tearDown(self): self.dbInit.RemoveSetTable() self.sets = None self.dbInit = None print('tear down') def testDB_Init(self): self.assertTrue(os.path.isfile('WorkoutHistoryUnitTest.db')) def test_DB_Queue_Set(self): self.dbInit.QueueSet(self.sets[0]) self.dbInit.QueueSet(self.sets[1]) self.dbInit.QueueSet(self.sets[2]) self.assertTrue(self.dbInit.QueueLevel() == 3) def test_commit_set(self): self.dbInit.QueueSet(self.sets[0]) self.dbInit.CommitQueue() print('The queue is', len(self.dbInit.ReadSetsDb())) self.assertTrue(len(self.dbInit.ReadSetsDb()) == 1) def test_commit_set_read_it_back(self): self.dbInit.QueueSet(self.sets[0]) self.dbInit.CommitQueue() temp = self.dbInit.ReadSetsDb() setFromDb = Set(temp[0][0], temp[0][1], temp[0][2], temp[0][3], temp[0][4], temp[0][5]) print(self.sets[0]) print(setFromDb) self.assertTrue(setFromDb.Date == self.sets[0].Date) def test_remove_set(self): self.dbInit.QueueSet(self.sets[0]) self.dbInit.CommitQueue() self.dbInit.DeleteSet(self.sets[0]) self.assertTrue(len(self.dbInit.ReadSetsDb()) == 0) def test_Calc_Volume_Set(self): self.sets.append( Set('Bench', 7, 185, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) # 7 * 185 = 1295 self.assertTrue(self.sets[-1].calcVolume() == 1295) def test_Est_1RM_Set(self): self.sets.append( Set('Bench', 7, 200, 'Chest, Shoulders, Arms', time.strftime('%d%m%Y'), 1)) est1Rm = self.sets[-1].calcEst1RM() self.assertTrue(est1Rm == 245) def test_Calc_Volume_Workout(self): print('The volume of the workout is', self.Workout.calc_Volume()) self.assertTrue(self.Workout.calc_Volume() == 2785)