Private
Public Access
1
0

more emails tests, removing middleware

This commit is contained in:
Sander Roosendaal
2021-01-16 13:51:24 +01:00
parent 05a747b3c2
commit 54f8f34acc
4 changed files with 109 additions and 119 deletions

View File

@@ -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

View File

@@ -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):

View File

@@ -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)

View File

@@ -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,