more emails tests, removing middleware
This commit is contained in:
@@ -19,86 +19,9 @@ def getrower(user):
|
||||
|
||||
return r
|
||||
|
||||
def do_update(user,mode='rower',days=42):
|
||||
r = getrower(user)
|
||||
|
||||
startdate = timezone.now()-datetime.timedelta(days=days)
|
||||
|
||||
# test if not something already done
|
||||
now_date = timezone.now().strftime('%Y-%m-%d')
|
||||
ms = PowerTimeFitnessMetric.objects.filter(
|
||||
user=user,
|
||||
workoutmode=mode).order_by("-date")
|
||||
|
||||
if len(ms) == 0:
|
||||
max_workout_id = 0
|
||||
last_update_date = '1972-01-01'
|
||||
else:
|
||||
max_workout_id = max([m.last_workout for m in ms])
|
||||
last_update_date = ms[0].date.strftime('%Y-%m-%d')
|
||||
|
||||
#last_update_date = max([m.date.strftime('%Y-%m-%d') for m in ms])
|
||||
|
||||
|
||||
|
||||
if mode == 'rower':
|
||||
workouts = Workout.objects.filter(
|
||||
user=r,
|
||||
workouttype__in=['rower','dynamic','slides'],
|
||||
startdatetime__gte=startdate)
|
||||
else:
|
||||
workouts = Workout.objects.filter(
|
||||
user=r,
|
||||
workouttype__in=otwtypes,
|
||||
startdatetime__gte=startdate)
|
||||
|
||||
theids = [int(w.id) for w in workouts]
|
||||
try:
|
||||
max_id = max(theids)
|
||||
except ValueError:
|
||||
max_id = 0
|
||||
|
||||
if last_update_date < now_date and max_workout_id < max_id:
|
||||
job = myqueue(queuelow,
|
||||
handle_updatefitnessmetric,
|
||||
user.id,mode,theids,
|
||||
)
|
||||
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
class PowerTimeFitnessMetricMiddleWare(object):
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
# Code to be executed before the view is called
|
||||
if request.user.is_authenticated:
|
||||
result = do_update(request.user,mode='rower')
|
||||
result = do_update(request.user,mode='water')
|
||||
|
||||
response = self.get_response(request)
|
||||
|
||||
return response
|
||||
|
||||
from django.shortcuts import redirect
|
||||
|
||||
|
||||
allowed_paths = [
|
||||
'/rowers/me/delete',
|
||||
'/',
|
||||
'/logout',
|
||||
'/logout/',
|
||||
'/rowers/me/gdpr-optin/',
|
||||
'/rowers/me/gdpr-optin-confirm/',
|
||||
'/rowers/me/gdpr-optin',
|
||||
'/rowers/me/gdpr-optin-confirm'
|
||||
'/rowers/exportallworkouts/',
|
||||
'/rowers/exportallworkouts',
|
||||
'/rowers/survey/'
|
||||
]
|
||||
|
||||
class SurveyMiddleWare(object):
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
@@ -1940,7 +1940,7 @@ def handle_otwsetpower(self,f1, boattype, boatclass, coastalbrand, weightvalue,
|
||||
rowdata = rdata(csvfile)
|
||||
except IOError:
|
||||
rowdata = rdata(csvfile)
|
||||
|
||||
|
||||
update_strokedata(workoutid, rowdata.df, debug=debug)
|
||||
|
||||
totaltime = rowdata.df['TimeStamp (sec)'].max(
|
||||
@@ -2090,45 +2090,6 @@ def cp_from_workoutids(workoutids,debug=False):
|
||||
return powerfourmin,power2k,powerhour
|
||||
|
||||
|
||||
@app.task
|
||||
def handle_updatefitnessmetric(user_id,mode,workoutids,debug=False,
|
||||
**kwargs):
|
||||
|
||||
powerfourmin = -1
|
||||
power2k = -1
|
||||
powerhour = -1
|
||||
|
||||
mdict = {
|
||||
'user_id': user_id,
|
||||
'PowerFourMin': powerfourmin,
|
||||
'PowerTwoK': power2k,
|
||||
'PowerOneHour': powerhour,
|
||||
'workoutmode': mode,
|
||||
'last_workout': max(workoutids),
|
||||
'date': timezone.now().strftime('%Y-%m-%d'),
|
||||
}
|
||||
|
||||
result = fitnessmetric_to_sql(mdict,debug=debug,doclean=False)
|
||||
|
||||
powerfourmin,power2k,powerhour = cp_from_workoutids(workoutids,debug=debug)
|
||||
|
||||
if powerfourmin > 0 and power2k > 0 and powerhour > 0:
|
||||
|
||||
mdict = {
|
||||
'user_id': user_id,
|
||||
'PowerFourMin': powerfourmin,
|
||||
'PowerTwoK': power2k,
|
||||
'PowerOneHour': powerhour,
|
||||
'workoutmode': mode,
|
||||
'last_workout': max(workoutids),
|
||||
'date': timezone.now().strftime('%Y-%m-%d'),
|
||||
}
|
||||
|
||||
result = fitnessmetric_to_sql(mdict,debug=debug,doclean=True)
|
||||
else:
|
||||
result = 0
|
||||
|
||||
return result
|
||||
|
||||
@app.task
|
||||
def handle_updatecp(rower_id,workoutids,debug=False,table='cpdata',**kwargs):
|
||||
@@ -2516,6 +2477,8 @@ def handle_send_template_email(template,email,fromemail,rowername,
|
||||
['info@rowsandall.com'],subject,
|
||||
template,d,cc=[fromemail],bcc=fullemail,**kwargs)
|
||||
|
||||
return 1
|
||||
|
||||
@app.task
|
||||
def handle_sendemail_message(email,fromemail,rowername,message,teamname,managername,
|
||||
debug=False,**kwargs):
|
||||
|
||||
@@ -227,6 +227,81 @@ class AsyncTaskTests(TestCase):
|
||||
res = tasks.handle_sendemailfile(userfirstname,userlastname,useremail,filename)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_coachrequest(useremail,username,'sdsd','Fred')
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_coachoffer_rejected(useremail,username,username)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_coachoffer_accepted(useremail,username,username)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_coachrequest_rejected(useremail,username,username)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_coachrequest_accepted(useremail,username,username)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_coacheerequest(useremail,username,'aaee',username)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_invite(useremail,username,'ss','team','Fred Hachee')
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemailnewresponse(
|
||||
userfirstname, userlastname,
|
||||
useremail,
|
||||
userfirstname,userlastname,
|
||||
'er staat een paard in de gang',
|
||||
self.wwater.name,
|
||||
self.wwater.id,
|
||||
1
|
||||
)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemailnewcomment(
|
||||
userfirstname, userlastname,
|
||||
useremail,
|
||||
userfirstname,userlastname,
|
||||
'er staat een paard in de gang',
|
||||
self.wwater.name,
|
||||
self.wwater.id,
|
||||
1
|
||||
)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_send_template_email('aa.html',useremail,useremail,userfirstname,'aa','bb')
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_message(useremail,useremail,userfirstname,'aap',
|
||||
'noot',userlastname)
|
||||
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_request(useremail,username,'asas','asas',userfirstname,12)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_request_accept(useremail,username,'asas',userfirstname,12)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_request_reject(useremail,username,'asas',userfirstname,12)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_member_dropped(useremail,username,'asas',userfirstname,12)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_team_removed(useremail,username,'asas',userfirstname,12)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_invite_reject(useremail,username,'asas',userfirstname,12)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
res = tasks.handle_sendemail_invite_accept(useremail,username,'asas',userfirstname,12)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def test_sigdig(self):
|
||||
x = 3.14159
|
||||
@@ -295,7 +370,7 @@ class AsyncTaskTests(TestCase):
|
||||
@patch('rowers.tasks.grpc',side_effect=mocked_grpc)
|
||||
@patch('rowers.tasks.send_template_email',side_effect=mocked_send_template_email)
|
||||
def test_handle_otwsetpower(self,mocked_send_template_email,mocked_grpc):
|
||||
f1 = result = get_random_file(filename='rowers/tests/testdata/sprintervals.csv')['filename']
|
||||
f1 = get_random_file(filename='rowers/tests/testdata/sprintervals.csv')['filename']
|
||||
boattype = '1x'
|
||||
boatclass = 'water'
|
||||
coastalbrand = 'other'
|
||||
@@ -311,3 +386,33 @@ class AsyncTaskTests(TestCase):
|
||||
jobkey='23')
|
||||
|
||||
self.assertEqual(res,1)
|
||||
|
||||
@patch('rowers.dataprepnodjango.create_engine')
|
||||
def test_handle_updateergcp(self,mocked_sqlalchemy):
|
||||
f1 = get_random_file()['filename']
|
||||
res = tasks.handle_updateergcp(1,[f1])
|
||||
self.assertEqual(res,1)
|
||||
|
||||
@patch('rowers.dataprepnodjango.getsmallrowdata_db')
|
||||
def test_cp_from_workoutids(self,mocked_getsmallrowdata_db):
|
||||
ids = [1]
|
||||
powerfourmin,power2k,powerhour = tasks.cp_from_workoutids(ids)
|
||||
self.assertFalse(powerfourmin==0)
|
||||
self.assertFalse(power2k==0)
|
||||
self.assertFalse(powerhour==0)
|
||||
|
||||
@patch('rowers.dataprepnodjango.getsmallrowdata_db')
|
||||
def test_handle_updatecp(self,mocked_getsmallrowdata_db):
|
||||
rower_id = 1
|
||||
workoutids = [1]
|
||||
res = tasks.handle_updatecp(rower_id,workoutids)
|
||||
self.assertEqual(res,1)
|
||||
|
||||
@patch('rowers.dataprepnodjango.getsmallrowdata_db')
|
||||
def test_handle_setcp(self,mocked_getsmallrowdata_db):
|
||||
strokesdf = pd.read_csv('rowers/tests/testdata/uhfull.csv')
|
||||
filename = 'rowers/tests/temp/pq.gz'
|
||||
workoutids = 1
|
||||
res = tasks.handle_setcp(strokesdf,filename,1)
|
||||
self.assertEqual(res,1)
|
||||
os.remove(filename)
|
||||
|
||||
@@ -209,7 +209,6 @@ from rowers.tasks import (
|
||||
handle_sendemailnewresponse, handle_updatedps,
|
||||
handle_updatecp,long_test_task,long_test_task2,
|
||||
handle_zip_file,handle_getagegrouprecords,
|
||||
handle_updatefitnessmetric,
|
||||
handle_update_empower,
|
||||
handle_sendemailics,
|
||||
handle_sendemail_userdeleted,
|
||||
|
||||
Reference in New Issue
Block a user