コード例 #1
0
	def test_get_polar_data(self):
		user = User('profileUsername', '*****@*****.**')
		user.save()
		profile = Profile(user)
		profile.save()
		polar_user = PolarUserModel(profile.id, profile.username)
		polar_user.save()
		retrieved_polar = profile.get_polar_data()
		assert(retrieved_polar.member_id == 'R4IT_profileUsername')
コード例 #2
0
 def test_profile_id_unique(self, db):
     user1 = PolarUserModel(1, 'userOne')
     user1.save()
     try:
         user2 = PolarUserModel(1, 'userTwo')
         user2.save()  # should fail
     except:
         db.session.rollback()
     num_users = db.session.query(PolarUserModel).count()
     assert (num_users == 1)
コード例 #3
0
def script_import_polar_exercices(script_name):
	script_entry,ret_code = _init_script_execution(script_name)
	if script_entry is None:
		return ret_code
	# Script code goes here
	polar_exercises = PolarWebhookExerciseModel.get_not_processed()
	if polar_exercises is not None:
		# Loop through exercises and download exercise data
		print(str(dt.datetime.utcnow()), "Found {0} Polar exercise(s) ready for import".format(len(polar_exercises)))
		for exercise in polar_exercises:
			polar_user = PolarUserModel.find_by_polar_user_id(exercise.polar_user_id)

			if polar_user is not None:
				exercise_json = get_exercise_data_from_url(polar_user.access_token, exercise.url)
				
				if exercise_json is not None:
					fit_path = None
					
					if exercise_json['route'] == True:
						fit_path = get_exercise_fit_from_url(polar_user.access_token, exercise.url, exercise.entity_id)

					new_workout_id = _create_workout_from_polar_exercise(polar_user.profile_id, exercise_json, fit_path)
					
					if new_workout_id > 0:
						print(str(dt.datetime.utcnow()), "New workout created with id {0} for Polar exercise {1}".format(new_workout_id, exercise.entity_id))             
					else:
						print(str(dt.datetime.utcnow()), "Failed to create workout for Polar exercise {0}".format(exercise.entity_id))

				else:
					print(str(dt.datetime.utcnow()), "Failed to retrieve data for Polar exercise {0}".format(exercise.entity_id))

			else:
				print(str(dt.datetime.utcnow()), "Skipped Polar exercise {0}, user {1} not found".format(exercise.entity_id, exercise.polar_user_id))
			
			# mark as processed if it was imported or not, we won't try again
			try:
				exercise.processed = True
				exercise.save()
			except:
				print(str(dt.datetime.utcnow()), "Failed to set Polar exercise {0} as 'processed'".format(exercise.entity_id))

	else:
		print(str(dt.datetime.utcnow()), "Error searching for Polar exercises for import")
		ret_code = 1
	# End of script code
	return _commit_script_execution(script_entry, ret_code)
コード例 #4
0
 def test_default_values(self, db):
     new_user = PolarUserModel(1, 'user')
     new_user.save()
     assert (new_user.profile_id == 1)
     assert (new_user.polar_user_id == 0)
     assert (new_user.state is None)
     assert (new_user.access_token is None)
     assert (new_user.access_token_expires is None)
     assert (new_user.updated_at is None)
     assert (new_user.auth_url == '')
     assert (new_user.is_registered() == False)
     assert (new_user.has_valid_access_token() == False)
コード例 #5
0
 def test_get_by_state_code_fails_if_duplicate(self, db):
     user1 = PolarUserModel(1, 'user')
     user1.state = "code"
     user1.save(commit=False)
     user2 = PolarUserModel(2, 'another-user')
     user2.state = "code"
     user2.save()
     retrieved_user = PolarUserModel.find_by_state_code('code')
     assert (retrieved_user is None)
コード例 #6
0
 def test_generate_state_code(self, db):
     new_user = PolarUserModel(1, 'user')
     new_user.generate_state_code()
     assert (len(new_user.state) == 15)
コード例 #7
0
 def test_get_by_id(self):
     new_user = PolarUserModel(1, 'user')
     new_user.save()
     retrieved_user = PolarUserModel.get_by_id(new_user.id)
     assert (retrieved_user == new_user)
コード例 #8
0
 def test_get_by_state_code(self, db):
     new_user = PolarUserModel(1, 'user')
     new_user.state = 'code'
     new_user.save()
     retrieved_user = PolarUserModel.find_by_state_code('code')
     assert (retrieved_user == new_user)
コード例 #9
0
 def test_get_by_polar_user_id(self, db):
     new_user = PolarUserModel(1, 'user')
     new_user.polar_user_id = 1234
     new_user.save()
     retrieved_user = PolarUserModel.find_by_polar_user_id(1234)
     assert (retrieved_user == new_user)
コード例 #10
0
 def test_get_by_member_id(self, db):
     new_user = PolarUserModel(1, 'user')
     new_user.save()
     retrieved_user = PolarUserModel.find_by_member_id('R4IT_user')
     assert (retrieved_user == new_user)
コード例 #11
0
 def test_member_id_prefix(self, db):
     new_user = PolarUserModel(1, 'user')
     assert (new_user.member_id == 'R4IT_user')