From 33bc4a7870f878ac72fd89e6effea742e6598c5b Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Tue, 7 Jan 2020 13:44:51 +0100
Subject: [PATCH 01/10] updated alert approvals
---
rowers/alerts.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/rowers/alerts.py b/rowers/alerts.py
index 886c34f6..de333677 100644
--- a/rowers/alerts.py
+++ b/rowers/alerts.py
@@ -196,3 +196,11 @@ def alert_get_stats(alert,nperiod=0):
}
# run alert report
+
+# check alert permission
+def checkalertowner(alert,user):
+ if alert.manager == user:
+ return True
+ if alert.rower.user == user:
+ return True
+ return False
From 92cc9d5811194f950f31ce1ef3660a39dacbf51e Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Tue, 7 Jan 2020 14:20:22 +0100
Subject: [PATCH 02/10] forgot to save
---
rowers/views/analysisviews.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py
index a7ea6a70..5f19f8c1 100644
--- a/rowers/views/analysisviews.py
+++ b/rowers/views/analysisviews.py
@@ -4453,7 +4453,7 @@ def alert_report_view(request,id=0,userid=0,nperiod=0):
raise Http404("This alert doesn't exist")
- if alert.manager != request.user:
+ if not checkalertowner(alert,request.user):
raise PermissionDenied('You are not allowed to edit this Alert')
stats = alert_get_stats(alert,nperiod=nperiod)
From 07e9a5abf1d646e26498f276a0153457536b74f2 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Tue, 7 Jan 2020 14:57:05 +0100
Subject: [PATCH 03/10] added impeller to Workout model and saving of this in
dataprep
need more work and testing
---
rowers/dataprep.py | 28 ++++++++++++++++++++--------
rowers/models.py | 1 +
2 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/rowers/dataprep.py b/rowers/dataprep.py
index 33f961be..747135e5 100644
--- a/rowers/dataprep.py
+++ b/rowers/dataprep.py
@@ -1081,7 +1081,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
makeprivate=False,
oarlength=2.89, inboard=0.88,
forceunit='lbs',
- consistencychecks=False):
+ consistencychecks=False,
+ impeller=False):
message = None
powerperc = 100 * np.array([r.pw_ut2,
@@ -1289,7 +1290,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
startdatetime=workoutstartdatetime,
inboard=inboard, oarlength=oarlength,
timezone=timezone_str,
- privacy=privacy)
+ privacy=privacy,
+ impeller=impeller)
try:
w.save()
except ValidationError:
@@ -1421,24 +1423,32 @@ def handle_nonpainsled(f2, fileformat, summary=''):
oarlength = 2.89
inboard = 0.88
hasrecognized = False
+ impeller = False
row,hasrecognized,summary,fileformat = parsenonpainsled(fileformat,f2,summary)
# Handle c2log
if (fileformat == 'c2log' or fileformat == 'rowprolog'):
- return (0,'',0,0,'')
+ return (0,'',0,0,'',impeller)
if not hasrecognized:
- return (0,'',0,0,'')
+ return (0,'',0,0,'',impeller)
f_to_be_deleted = f2
# should delete file
f2 = f2[:-4] + 'o.csv'
try:
row2 = rrdata(df = row.df)
+ if fileformat == 'speedcoach2':
+ # impeller consistency
+ impellerdata, consistent, ratio = row.impellerconsistent(threshold=0.3)
+ if impellerdata and consistent:
+ impeller = True
+ if impellerdata and not consistent:
+ row2.use_gps()
row2.write_csv(f2, gzip=True)
except:
- return (0,'',0,0,'')
+ return (0,'',0,0,'',impeller)
# os.remove(f2)
try:
@@ -1449,7 +1459,7 @@ def handle_nonpainsled(f2, fileformat, summary=''):
except:
pass
- return (f2, summary, oarlength, inboard, fileformat)
+ return (f2, summary, oarlength, inboard, fileformat, impeller)
# Create new workout from file and store it in the database
# This routine should be used everywhere in views.py and mailprocessing.py
@@ -1476,6 +1486,7 @@ def new_workout_from_file(r, f2,
inboard = 0.88
if len(fileformat) == 3 and fileformat[0] == 'zip':
f_to_be_deleted = f2
+ impeller = False
workoutsbox = Mailbox.objects.filter(name='workouts')[0]
msg = Message(mailbox=workoutsbox,
from_header=r.user.email,
@@ -1543,7 +1554,7 @@ def new_workout_from_file(r, f2,
# handle non-Painsled by converting it to painsled compatible CSV
if (fileformat != 'csv'):
- f2, summary, oarlength, inboard, fileformat = handle_nonpainsled(
+ f2, summary, oarlength, inboard, fileformat, impeller = handle_nonpainsled(
f2,
fileformat,
summary=summary
@@ -1571,7 +1582,8 @@ def new_workout_from_file(r, f2,
summary=summary,
inboard=inboard, oarlength=oarlength,
title=title,
- forceunit='N'
+ forceunit='N',
+ impeller=impeller,
)
return (id, message, f2)
diff --git a/rowers/models.py b/rowers/models.py
index 47b6d629..fd830b37 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -2734,6 +2734,7 @@ class Workout(models.Model):
choices=privacychoices)
rankingpiece = models.BooleanField(default=False,verbose_name='Ranking Piece')
duplicate = models.BooleanField(default=False,verbose_name='Duplicate Workout')
+ impeller = models.BooleanField(default=False,verbose_name='Impeller')
def save(self, *args, **kwargs):
user = self.user
From d88a0f7aea6a0b5f7705cbf0167ff9e52f29a50e Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Tue, 7 Jan 2020 18:14:27 +0100
Subject: [PATCH 04/10] added menu items
---
rowers/dataprep.py | 22 ++++++++++------------
rowers/templates/menu_workout.html | 12 ++++++++++++
templates/newbase.html | 1 +
3 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/rowers/dataprep.py b/rowers/dataprep.py
index 747135e5..b0d015b9 100644
--- a/rowers/dataprep.py
+++ b/rowers/dataprep.py
@@ -1437,18 +1437,16 @@ def handle_nonpainsled(f2, fileformat, summary=''):
f_to_be_deleted = f2
# should delete file
f2 = f2[:-4] + 'o.csv'
- try:
- row2 = rrdata(df = row.df)
- if fileformat == 'speedcoach2':
- # impeller consistency
- impellerdata, consistent, ratio = row.impellerconsistent(threshold=0.3)
- if impellerdata and consistent:
- impeller = True
- if impellerdata and not consistent:
- row2.use_gps()
- row2.write_csv(f2, gzip=True)
- except:
- return (0,'',0,0,'',impeller)
+ row2 = rrdata(df = row.df)
+ if 'speedcoach2' in fileformat:
+ # impeller consistency
+ impellerdata, consistent, ratio = row.impellerconsistent(threshold=0.3)
+ if impellerdata and consistent:
+ impeller = True
+ if impellerdata and not consistent:
+ row2.use_gpsdata()
+ row2.write_csv(f2, gzip=True)
+
# os.remove(f2)
try:
diff --git a/rowers/templates/menu_workout.html b/rowers/templates/menu_workout.html
index f6edffd0..f8d4ee7c 100644
--- a/rowers/templates/menu_workout.html
+++ b/rowers/templates/menu_workout.html
@@ -287,6 +287,18 @@
OTW Power
+ {% if 'speedcoach2' in workout.workoutsource %}
+
+
+ Use GPS data
+
+
+
+
+ Use Impeller data
+
+
+ {% endif %}
{% endif %}
diff --git a/templates/newbase.html b/templates/newbase.html
index 885e3f90..41486614 100644
--- a/templates/newbase.html
+++ b/templates/newbase.html
@@ -43,6 +43,7 @@
+
From dfbae0b2db200950cdfff7cacb57c38bb915a20e Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Tue, 7 Jan 2020 18:21:00 +0100
Subject: [PATCH 05/10] added bullet
---
rowers/templates/menu_workout.html | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/rowers/templates/menu_workout.html b/rowers/templates/menu_workout.html
index f8d4ee7c..40cc7f00 100644
--- a/rowers/templates/menu_workout.html
+++ b/rowers/templates/menu_workout.html
@@ -290,19 +290,22 @@
{% if 'speedcoach2' in workout.workoutsource %}
- Use GPS data
+
+ {% if workout.impeller %}• {% else %} {% endif %}Use GPS data
- Use Impeller data
+
+ {% if workout.impeller %} {% else %}• {% endif %}Use Impeller data
{% endif %}
{% endif %}
- In-Stroke Metrics
+
+ In-Stroke Metrics
From 498a06ef1df83ff1e6fbec52fe2e8eeb3472c9da Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Tue, 7 Jan 2020 22:14:57 +0100
Subject: [PATCH 06/10] gps/impeller switching implemented
---
rowers/templates/menu_workout.html | 4 +-
rowers/urls.py | 4 ++
rowers/views/workoutviews.py | 60 ++++++++++++++++++++++++------
3 files changed, 54 insertions(+), 14 deletions(-)
diff --git a/rowers/templates/menu_workout.html b/rowers/templates/menu_workout.html
index 40cc7f00..5c06f2a4 100644
--- a/rowers/templates/menu_workout.html
+++ b/rowers/templates/menu_workout.html
@@ -291,13 +291,13 @@
- {% if workout.impeller %}• {% else %} {% endif %}Use GPS data
+ {% if workout.impeller %} {% else %}• {% endif %}Use GPS data
- {% if workout.impeller %} {% else %}• {% endif %}Use Impeller data
+ {% if workout.impeller %}• {% else %} {% endif %}Use Impeller data
{% endif %}
diff --git a/rowers/urls.py b/rowers/urls.py
index 5696c0d4..97a45af6 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -283,6 +283,10 @@ urlpatterns = [
re_path(r'^graph/(?P\d+)/delete/$',views.GraphDelete.as_view(),name='graph_delete'),
re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/get-thumbnails/$',views.get_thumbnails,
name='get_thumbnails'),
+ re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/otwuseimpeller/$',views.otw_use_impeller,
+ name='otw_use_impeller'),
+ re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/otwusegps/$',views.otw_use_gps,
+ name='otw_use_gps'),
re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/toggle-ranking/$',views.workout_toggle_ranking,
name='workout_toggle_ranking'),
re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/get-testscript/$',views.get_testscript,
diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py
index 592cbc14..f72537f9 100644
--- a/rowers/views/workoutviews.py
+++ b/rowers/views/workoutviews.py
@@ -456,18 +456,54 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
'teams':get_my_teams(request.user),
})
-# Test asynchronous tasking and messaging
-#@login_required()
-#def workout_test_task_view(request,id=0):
-# row = Workout.objects.get(id=id)
-# res = myqueue(queuehigh,addcomment2,request.user.id,row.id)#
-#
-#
-# url = reverse('workout_edit_view',
-# kwargs = {
-# 'id':int(id),
-# })
-# return HttpResponseRedirect(url)
+# Switch from GPS to Impeller (only for SpeedCoach 2, if impeller data)
+@login_required
+def otw_use_impeller(request,id=0):
+ w = get_workout(id)
+
+ if (checkworkoutuser(request.user,w)==False):
+ raise PermissionDenied("Access denied")
+
+ row = rdata(w.csvfilename)
+ success = row.use_impellerdata()
+ if success:
+ row.write_csv(w.csvfilename)
+ dataprep.update_strokedata(w.id,row.df)
+ w.impeller = True
+ w.save()
+ messages.info(request,'The distance and speed data are now based on Impeller data')
+ else:
+ messages.error(request,'No impeller data found')
+
+ url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)})
+
+ return HttpResponseRedirect(url)
+
+
+# Switch from Impeller to GPS (only for SpeedCoach 2, if impeller data)
+@login_required
+def otw_use_gps(request,id=0):
+ w = get_workout(id)
+
+ if (checkworkoutuser(request.user,w)==False):
+ raise PermissionDenied("Access denied")
+
+ row = rdata(w.csvfilename)
+ success = row.use_gpsdata()
+ if success:
+ row.write_csv(w.csvfilename)
+ dataprep.update_strokedata(w.id,row.df)
+ w.impeller = False
+ w.save()
+ messages.info(request,'The distance and speed data are now based on GPS data')
+ else:
+ messages.error(request,'No GPS data found')
+
+ url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)})
+
+ return HttpResponseRedirect(url)
+
+
# Show Stroke power histogram for a workout
@login_required()
From f11a4f0579cd631b8371c664e6af34a76adaad8f Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Tue, 7 Jan 2020 22:44:16 +0100
Subject: [PATCH 07/10] bug fixes
---
rowers/dataprep.py | 1 +
rowers/mailprocessing.py | 15 ++++++++-------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/rowers/dataprep.py b/rowers/dataprep.py
index b0d015b9..3912e8c1 100644
--- a/rowers/dataprep.py
+++ b/rowers/dataprep.py
@@ -1472,6 +1472,7 @@ def new_workout_from_file(r, f2,
makeprivate=False,
notes=''):
message = None
+ impeller = False
try:
fileformat = get_file_type(f2)
except (IOError,UnicodeDecodeError):
diff --git a/rowers/mailprocessing.py b/rowers/mailprocessing.py
index 9d3d824d..37017602 100644
--- a/rowers/mailprocessing.py
+++ b/rowers/mailprocessing.py
@@ -49,7 +49,7 @@ def send_confirm(user, name, link, options):
fullemail = user.email
subject = 'New Workout Added: '+name
-
+
res = send_template_email('Rowsandall ',
[fullemail],
subject,'confirmemail.html',
@@ -86,6 +86,7 @@ def rdata(file, rower=rrower()):
def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
""" This one is used in processemail """
workouttype = 'rower'
+ impeller = False
try:
datafilename = datafile.name
@@ -108,7 +109,7 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
if testing:
print('Fileformat = ',fileformat)
-
+
f,e = os.path.splitext(datafilename)
if fileformat == 'unknown' and 'txt' not in e:
fcopy = "media/"+datafilename
@@ -134,12 +135,12 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
summary = ''
-
+
# handle non-Painsled
if fileformat == 'att':
return 0
if fileformat != 'csv':
- filename_mediadir, summary, oarlength, inboard,fileformat = dataprep.handle_nonpainsled(
+ filename_mediadir, summary, oarlength, inboard,fileformat,impeller = dataprep.handle_nonpainsled(
'media/' + datafilename, fileformat, summary)
if not filename_mediadir:
return 0
@@ -148,7 +149,7 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
inboard = 0.88
oarlength = 2.89
- row = rdata(filename_mediadir)
+ row = rdata(filename_mediadir)
if row == 0:
return 0
@@ -168,7 +169,7 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
row.write_csv(datafilename, gzip=True)
dosummary = (fileformat != 'fit' and 'speedcoach2' not in fileformat)
dosummary = dosummary or summary == ''
-
+
if name == '':
name = 'Workout from Background Queue'
@@ -181,7 +182,7 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
oarlength=oarlength,
title=name,
workoutsource=fileformat,
- notes=''
+ notes='',impeller=impeller,
)
From c03f3600b41ace319e4bbbfd49e5eeb2d257eb04 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Wed, 8 Jan 2020 09:34:37 +0100
Subject: [PATCH 08/10] basic users can now see alerts created by their coaches
---
rowers/views/analysisviews.py | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py
index 5f19f8c1..4cf62a9e 100644
--- a/rowers/views/analysisviews.py
+++ b/rowers/views/analysisviews.py
@@ -4322,9 +4322,10 @@ def agegrouprecordview(request,sex='male',weightcategory='hwt',
})
# alert overview view
-@user_passes_test(ispromember, login_url="/rowers/paidplans",
- message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality",
- redirect_field_name=None)
+#@user_passes_test(ispromember, login_url="/rowers/paidplans",
+# message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality",
+# redirect_field_name=None)
+@login_required
def alerts_view(request,userid=0):
r = getrequestrower(request,userid=userid)
@@ -4436,9 +4437,7 @@ def alert_create_view(request,userid=0):
})
# alert report view
-@user_passes_test(ispromember, login_url="/rowers/paidplans",
- message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality",
- redirect_field_name=None)
+@login_required()
def alert_report_view(request,id=0,userid=0,nperiod=0):
r = getrequestrower(request,userid=userid)
if userid == 0:
@@ -4505,7 +4504,7 @@ def alert_edit_view(request,id=0,userid=0):
raise Http404("This alert doesn't exist")
- if alert.manager != request.user:
+ if not alert.manager != request.user:
raise PermissionDenied('You are not allowed to edit this Alert')
FilterFormSet = formset_factory(ConditionEditForm, formset=BaseConditionFormSet,extra=0)
@@ -4603,6 +4602,7 @@ def alert_edit_view(request,id=0,userid=0):
})
# alert delete view
+
class AlertDelete(DeleteView):
login_requird = True
model = Alert
@@ -4650,6 +4650,9 @@ class AlertDelete(DeleteView):
def get_object(self, *args, **kwargs):
obj = super(AlertDelete, self).get_object(*args, **kwargs)
+ if obj.manager != self.request.user:
+ raise PermissionDenied("You are not allowed to delete this Alert")
+
# some checks
return obj
From cfc61e862141de482a89c27e9606b9d6c72fdae2 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Wed, 8 Jan 2020 22:27:49 +0100
Subject: [PATCH 09/10] redirect to survey
---
rowers/forms.py | 6 +++++
rowers/middleware.py | 36 ++++++++++++++++++++------
rowers/models.py | 2 ++
rowers/templates/survey.html | 47 ++++++++++++++++++++++++++++++++++
rowers/templates/survey2.html | 48 +++++++++++++++++++++++++++++++++++
rowers/urls.py | 1 +
rowers/views/statements.py | 2 +-
rowers/views/userviews.py | 25 ++++++++++++++++++
rowsandall_app/settings.py | 1 +
templates/newbase.html | 5 ++++
10 files changed, 164 insertions(+), 9 deletions(-)
create mode 100644 rowers/templates/survey.html
create mode 100644 rowers/templates/survey2.html
diff --git a/rowers/forms.py b/rowers/forms.py
index bbd919b8..20882308 100644
--- a/rowers/forms.py
+++ b/rowers/forms.py
@@ -31,6 +31,12 @@ formaxlabels = axlabels.copy()
formaxlabels.pop('None')
parchoices = list(sorted(formaxlabels.items(), key = lambda x:x[1]))
+class SurveyForm(forms.Form):
+ surveydone = forms.ChoiceField(
+ required=True,
+ choices=(('YES','YES'),('NO','NO')),
+ label='Will you take a 2 minute survey to help improve rowsandall?',
+ widget = forms.RadioSelect)
class FlexibleDecimalField(forms.DecimalField):
diff --git a/rowers/middleware.py b/rowers/middleware.py
index 7b9abb86..03a7cb2c 100644
--- a/rowers/middleware.py
+++ b/rowers/middleware.py
@@ -22,10 +22,10 @@ def getrower(user):
def do_update(user,mode='rower',days=42):
r = getrower(user)
-
+
startdate = timezone.now()-datetime.timedelta(days=days)
- # test if not something already done
+ # test if not something already done
now_date = timezone.now().strftime('%Y-%m-%d')
ms = PowerTimeFitnessMetric.objects.filter(
user=user,
@@ -37,11 +37,11 @@ def do_update(user,mode='rower',days=42):
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,
@@ -59,7 +59,7 @@ def do_update(user,mode='rower',days=42):
except ValueError:
max_id = 0
-
+
if last_update_date < now_date and max_workout_id < max_id:
job = myqueue(queuelow,
handle_updatefitnessmetric,
@@ -73,7 +73,7 @@ def do_update(user,mode='rower',days=42):
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:
@@ -83,7 +83,7 @@ class PowerTimeFitnessMetricMiddleWare(object):
response = self.get_response(request)
return response
-
+
from django.shortcuts import redirect
@@ -98,8 +98,28 @@ allowed_paths = [
'/rowers/me/gdpr-optin-confirm'
'/rowers/exportallworkouts/',
'/rowers/exportallworkouts',
+ '/rowers/survey/'
]
+class SurveyMiddleWare(object):
+ def __init__(self, get_response):
+ self.get_response = get_response
+
+ def __call__(self, request):
+ if request.user.is_authenticated and request.path not in allowed_paths:
+ r = getrower(request.user)
+ nexturl = request.path
+ if 'survey' in nexturl:
+ nexturl = '/rowers/list-workouts'
+ if not r.surveydone:
+ return redirect(
+ '/rowers/survey/?next=%s' % nexturl
+ )
+
+ response = self.get_response(request)
+
+ return response
+
class GDPRMiddleWare(object):
def __init__(self, get_response):
self.get_response = get_response
@@ -137,7 +157,7 @@ class RowerPlanMiddleWare(object):
r.paidplan = basicplans[0]
r.save()
# remove from Free Coach groups
-
+
# send email
job = myqueue(queue,
handle_sendemail_expired,
diff --git a/rowers/models.py b/rowers/models.py
index fd830b37..6d9b7ac9 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -730,6 +730,8 @@ class Rower(models.Model):
# Privacy Data
gdproptin = models.BooleanField(default=False)
gdproptindate = models.DateTimeField(blank=True,null=True)
+ surveydone = models.BooleanField(default=False)
+ surveydonedate = models.DateTimeField(blank=True,null=True)
# Heart Rate Zone data
diff --git a/rowers/templates/survey.html b/rowers/templates/survey.html
new file mode 100644
index 00000000..1e5fc0fb
--- /dev/null
+++ b/rowers/templates/survey.html
@@ -0,0 +1,47 @@
+{% extends "newbase.html" %}
+{% load staticfiles %}
+{% load rowerfilters %}
+
+{% block title %}File loading{% endblock %}
+
+{% block meta %}
+
+
+
+{% endblock %}
+
+{% block main %}
+
+{% endblock %}
+
+{% block sidebar %}
+{% include 'menu_profile.html' %}
+{% endblock %}
diff --git a/rowers/templates/survey2.html b/rowers/templates/survey2.html
new file mode 100644
index 00000000..a59c8179
--- /dev/null
+++ b/rowers/templates/survey2.html
@@ -0,0 +1,48 @@
+{% extends "newbase.html" %}
+{% load staticfiles %}
+{% load rowerfilters %}
+
+{% block title %}Rowsandall {% endblock %}
+
+
+{% block meta %}
+
+
+{% endblock %}
+
+
+{% block main %}
+
+
+
+{% endblock %}
+
+
+
+
+
+{% block sidebar %}
+{% include 'menu_profile.html' %}
+{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index 97a45af6..7146d4da 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -449,6 +449,7 @@ urlpatterns = [
re_path(r'^user-multiflex-data/$',views.multiflex_data,name='multiflex_data'),
re_path(r'^me/deactivate/$',views.deactivate_user,name='deactivate_user'),
re_path(r'^me/delete/$',views.remove_user,name='remove_user'),
+ re_path(r'^survey/$',views.survey,name='survey'),
re_path(r'^me/gdpr-optin-confirm/?/$',views.user_gdpr_confirm,name='user_gdpr_confirm'),
re_path(r'^me/gdpr-optin-confirm/$',views.user_gdpr_confirm,name='user_gdpr_confirm'),
re_path(r'^me/gdpr-optin/?/$',views.user_gdpr_optin,name='user_gdpr_optin'),
diff --git a/rowers/views/statements.py b/rowers/views/statements.py
index 9f09bccc..aab50741 100644
--- a/rowers/views/statements.py
+++ b/rowers/views/statements.py
@@ -60,7 +60,7 @@ from rowers.forms import (
MetricsForm,DisqualificationForm,disqualificationreasons,
disqualifiers,SearchForm,BillingForm,PlanSelectForm,
VideoAnalysisCreateForm,WorkoutSingleSelectForm,
- VideoAnalysisMetricsForm,
+ VideoAnalysisMetricsForm,SurveyForm,
)
from django.urls import reverse, reverse_lazy
diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py
index 710fd771..205104fe 100644
--- a/rowers/views/userviews.py
+++ b/rowers/views/userviews.py
@@ -5,6 +5,31 @@ from __future__ import unicode_literals
from rowers.views.statements import *
+@login_required()
+def survey(request):
+
+ r = getrower(request.user)
+
+ surveyform = SurveyForm()
+
+ if request.method == 'POST':
+ form = SurveyForm(request.POST)
+ r.surveydone = True
+ r.surveydonedate = timezone.now()
+ r.save()
+
+ nexturl = request.GET.get('next')
+ return HttpResponseRedirect(nexturl)
+
+ context = {
+ 'teams':get_my_teams(request.user),
+ 'rower':r,
+ 'form':surveyform,
+ }
+
+
+ return render(request,'survey.html',context)
+
@login_required()
def start_trial_view(request):
r = getrower(request.user)
diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py
index 283aa476..8814688e 100644
--- a/rowsandall_app/settings.py
+++ b/rowsandall_app/settings.py
@@ -98,6 +98,7 @@ MIDDLEWARE = [
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'tz_detect.middleware.TimezoneMiddleware',
'rowers.middleware.GDPRMiddleWare',
+ 'rowers.middleware.SurveyMiddleWare',
'rowers.middleware.PowerTimeFitnessMetricMiddleWare',
'rowers.middleware.RowerPlanMiddleWare',
]
diff --git a/templates/newbase.html b/templates/newbase.html
index 41486614..5fab2852 100644
--- a/templates/newbase.html
+++ b/templates/newbase.html
@@ -327,6 +327,11 @@
{% endif %}
{% block ad %}
+
From 09a490c064a109d76832e325f91e19dc74191022 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Wed, 8 Jan 2020 22:43:41 +0100
Subject: [PATCH 10/10] committing survey
---
rowers/tests/test_aavirtualevents.py | 107 ++++++------
rowers/tests/test_analysis.py | 115 +++++++------
rowers/tests/test_aworkouts.py | 51 +++---
rowers/tests/test_basicrower.py | 5 +-
rowers/tests/test_courses.py | 5 +-
rowers/tests/test_cpchart.py | 36 ++--
rowers/tests/test_emails.py | 71 ++++----
rowers/tests/test_empower.py | 10 +-
rowers/tests/test_flexchart.py | 20 +--
rowers/tests/test_imports.py | 120 ++++++-------
rowers/tests/test_interactivecharts.py | 32 ++--
rowers/tests/test_misc.py | 15 +-
rowers/tests/test_newusers.py | 15 +-
rowers/tests/test_payments.py | 67 ++++----
rowers/tests/test_permissions.py | 222 ++++++++++++-------------
rowers/tests/test_plans.py | 14 +-
rowers/tests/test_rowerplans.py | 11 +-
rowers/tests/test_settings.py | 4 +-
rowers/tests/test_simplefunctions.py | 2 +-
rowers/tests/test_staticcharts.py | 62 +++----
rowers/tests/test_team.py | 48 +++---
rowers/tests/test_units.py | 4 +-
rowers/tests/test_uploads.py | 83 +++++----
rowers/tests/test_user.py | 48 +++---
rowsandall_app/settings.py | 2 +-
25 files changed, 572 insertions(+), 597 deletions(-)
diff --git a/rowers/tests/test_aavirtualevents.py b/rowers/tests/test_aavirtualevents.py
index a5be7e82..13609595 100644
--- a/rowers/tests/test_aavirtualevents.py
+++ b/rowers/tests/test_aavirtualevents.py
@@ -20,7 +20,7 @@ class VirtualEventViewTest(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='coach')
self.c = Client()
@@ -36,7 +36,7 @@ class VirtualEventViewTest(TestCase):
self.rpiet = Rower.objects.create(user=self.upiet,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.piet_workouts = WorkoutFactory.create_batch(5, user=self.rpiet)
@@ -49,7 +49,7 @@ class VirtualEventViewTest(TestCase):
self.rklaas = Rower.objects.create(user=self.uklaas,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.klaas_workouts = WorkoutFactory.create_batch(5, user=self.rklaas)
@@ -62,7 +62,7 @@ class VirtualEventViewTest(TestCase):
self.rhenk = Rower.objects.create(user=self.uhenk,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.henk_workouts = WorkoutFactory.create_batch(5, user=self.rhenk)
@@ -83,7 +83,7 @@ class VirtualEventViewTest(TestCase):
self.lastweek = lastweek
self.intwoweeks = intwoweeks
-
+
# erg races
self.openergrace = VirtualRace.objects.create(
name = faker.word(),
@@ -104,7 +104,7 @@ class VirtualEventViewTest(TestCase):
country = 'Indoor',
manager = self.u
)
-
+
self.submitergrace = VirtualRace.objects.create(
name = faker.word(),
startdate = yesterday.date(),
@@ -143,7 +143,7 @@ class VirtualEventViewTest(TestCase):
)
result = plannedsessions.add_rower_race(self.rpiet,self.submitergrace)
-
+
# register Henk for submitergrace
self.henkrecord = IndoorVirtualRaceResult.objects.create(
userid = self.rhenk.id,
@@ -161,7 +161,7 @@ class VirtualEventViewTest(TestCase):
)
result = plannedsessions.add_rower_race(self.rhenk,self.submitergrace)
-
+
# course
coursefile = 'rowers/tests/testdata/course_22.kml'
@@ -176,8 +176,8 @@ class VirtualEventViewTest(TestCase):
course = courses.createcourse(self.r,cname,polygons,notes=cnotes)
self.course = course
-
-
+
+
# otw races
self.openotwrace = VirtualRace.objects.create(
name = faker.word(),
@@ -247,11 +247,11 @@ class VirtualEventViewTest(TestCase):
distance=result['totaldist'],
workouttype = 'water',
)
-
+
# OTW not matching course
result = get_random_file(filename='rowers/tests/testdata/onwater2.csv')
-
+
self.wwater = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -262,11 +262,11 @@ class VirtualEventViewTest(TestCase):
)
-
+
# OTE 1k
result = get_random_file(filename='rowers/tests/testdata/duzend_ote.csv')
-
+
self.wduzend_r = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=nu.time(),
@@ -279,7 +279,7 @@ class VirtualEventViewTest(TestCase):
# Piet
result = get_random_file(filename='rowers/tests/testdata/duzend_ote.csv')
-
+
self.wduzend_rpiet = WorkoutFactory(user=self.rpiet,
csvfilename=result['filename'],
starttime=nu.time(),
@@ -292,7 +292,7 @@ class VirtualEventViewTest(TestCase):
# Klaas
result = get_random_file(filename='rowers/tests/testdata/duzend_ote.csv')
-
+
self.wduzend_rklaas = WorkoutFactory(user=self.rklaas,
csvfilename=result['filename'],
starttime=nu.time(),
@@ -305,7 +305,7 @@ class VirtualEventViewTest(TestCase):
# Henk
result = get_random_file(filename='rowers/tests/testdata/duzend_ote.csv')
-
+
self.wduzend_rhenk = WorkoutFactory(user=self.rhenk,
csvfilename=result['filename'],
starttime=nu.time(),
@@ -317,7 +317,7 @@ class VirtualEventViewTest(TestCase):
-
+
# OTE different
result = get_random_file()
self.wother_rpiet = WorkoutFactory(user=self.rpiet,
@@ -334,8 +334,8 @@ class VirtualEventViewTest(TestCase):
os.remove('rowers/tests/testdata/temp/course.kml')
except (FileNotFoundError, OSError, IOError):
pass
-
-
+
+
#Scenarios
@@ -344,7 +344,7 @@ class VirtualEventViewTest(TestCase):
def test_races_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = reverse('virtualevents_view')
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -360,7 +360,7 @@ class VirtualEventViewTest(TestCase):
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
-
+
form_data = {
'country':'All',
'regattatype':'ongoing'
@@ -370,7 +370,7 @@ class VirtualEventViewTest(TestCase):
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
-
+
form_data = {
'country':'All',
'regattatype':'previous'
@@ -380,13 +380,13 @@ class VirtualEventViewTest(TestCase):
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
-
-
+
+
# set up new OTE race
def test_new_indoorrace(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = reverse('indoorvirtualevent_create_view')
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -421,15 +421,15 @@ class VirtualEventViewTest(TestCase):
self.assertRedirects(response,
expected_url = reverse('virtualevents_view'),
status_code=302,target_status_code=200)
-
-
-
+
+
+
# set up new OTE race
def test_edit_indoorrace(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = reverse('indoorvirtualevent_edit_view',
kwargs={'id':self.openergrace.id})
response = self.c.get(url)
@@ -466,17 +466,17 @@ class VirtualEventViewTest(TestCase):
expected_url = reverse('virtualevent_view',
kwargs={'id':self.openergrace.id}),
status_code=302,target_status_code=200)
-
-
-
+
+
+
# set up new otw race
# set up new OTE race
def test_new_race(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = reverse('virtualevent_create_view')
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -513,7 +513,7 @@ class VirtualEventViewTest(TestCase):
def test_edit_race(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = reverse('virtualevent_edit_view',kwargs={'id':self.openotwrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -547,12 +547,12 @@ class VirtualEventViewTest(TestCase):
expected_url = reverse('virtualevent_view',
kwargs={'id':self.openotwrace.id}),
status_code=302,target_status_code=200)
-
+
# view
def test_race_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = reverse('virtualevent_view',kwargs={'id':self.openotwrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -565,21 +565,21 @@ class VirtualEventViewTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
url = reverse('virtualevent_view',kwargs={'id':self.submitergrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
# register # withdraw
def test_register_race_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = reverse('indoorvirtualevent_register_view',
kwargs={'id':self.openergrace.id})
-
+
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -607,7 +607,7 @@ class VirtualEventViewTest(TestCase):
login = self.c.login(username=self.upiet.username, password=self.passwordpiet)
self.assertTrue(login)
-
+
url = reverse('indoorvirtualevent_register_view',kwargs={'id':self.openergrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -653,10 +653,10 @@ class VirtualEventViewTest(TestCase):
def test_register_otwrace_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = reverse('virtualevent_register_view',
kwargs={'id':self.openotwrace.id})
-
+
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -705,7 +705,7 @@ class VirtualEventViewTest(TestCase):
response = self.c.post(url,form_data,follow=True)
expected_url = reverse('virtualevent_view',kwargs={'id':self.openotwrace.id})
-
+
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
@@ -716,13 +716,13 @@ class VirtualEventViewTest(TestCase):
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
-
+
# submit result (OTE)
def test_ote_submit(self):
login = self.c.login(username=self.upiet.username, password=self.passwordpiet)
self.assertTrue(login)
-
+
url = reverse('virtualevent_submit_result_view',
kwargs={'id':self.submitergrace.id,
'workoutid':self.wduzend_rpiet.id})
@@ -741,7 +741,7 @@ class VirtualEventViewTest(TestCase):
therecord = IndoorVirtualRaceResult.objects.get(userid=self.rpiet.id,
race=self.submitergrace,
id=self.pietrecord.id)
-
+
self.assertTrue(therecord.coursecompleted)
@@ -755,7 +755,7 @@ class VirtualEventViewTest(TestCase):
def test_ote_submitfalse(self):
login = self.c.login(username=self.upiet.username, password=self.passwordpiet)
self.assertTrue(login)
-
+
url = reverse('virtualevent_submit_result_view',
kwargs={'id':self.submitergrace.id,
'workoutid':self.wother_rpiet.id})
@@ -774,7 +774,7 @@ class VirtualEventViewTest(TestCase):
therecord = IndoorVirtualRaceResult.objects.get(userid=self.rpiet.id,
race=self.submitergrace,
id=self.pietrecord.id)
-
+
self.assertTrue(not therecord.coursecompleted)
@@ -782,7 +782,7 @@ class VirtualEventViewTest(TestCase):
def test_otw_submit(self):
login = self.c.login(username=self.upiet.username, password=self.passwordpiet)
self.assertTrue(login)
-
+
url = reverse('virtualevent_submit_result_view',
kwargs={'id':self.submitotwrace.id,
'workoutid':self.wuh_otw.id})
@@ -819,7 +819,7 @@ class VirtualEventViewTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
def test_otw_courses_edit(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
@@ -850,5 +850,4 @@ class VirtualEventViewTest(TestCase):
# standalone
# calculate course adherence
- # other background jobs
-
+ # other background jobs
diff --git a/rowers/tests/test_analysis.py b/rowers/tests/test_analysis.py
index a4a0de04..50b0ab36 100644
--- a/rowers/tests/test_analysis.py
+++ b/rowers/tests/test_analysis.py
@@ -9,15 +9,15 @@ from .statements import *
nu = datetime.datetime.now()
from rowers.views import *
-
+
class WorkoutCompareTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -42,7 +42,7 @@ class WorkoutCompareTest(TestCase):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/team-compare-select/workout/'+encoded1+'/team/0/user/1/'
response = self.c.get(url)
@@ -74,14 +74,14 @@ class WorkoutCompareTest(TestCase):
self.assertEqual(response.status_code,200)
-
+
class BoxPlotTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -107,7 +107,7 @@ class BoxPlotTest(TestCase):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/user-boxplot-select/'
response = self.c.get(url)
@@ -169,17 +169,17 @@ class BoxPlotTest(TestCase):
response = self.c.get('/rowers/user-boxplot-data/')
-
+
self.assertEqual(response.status_code,200)
-
+
class ListWorkoutTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -223,14 +223,14 @@ class ListWorkoutTest(TestCase):
response = self.c.post(url, form_data)
self.assertEqual(response.status_code,200)
-
+
class PlannedSessionTests(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -281,7 +281,7 @@ class ForcecurveTest(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -314,10 +314,10 @@ class ForcecurveTest(TestCase):
class CumStatsTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -347,14 +347,14 @@ class CumStatsTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
class CumFlexTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -393,7 +393,7 @@ class CumFlexTest(TestCase):
u'4+',
u'8+',
u'8x+']
-
+
form_data = {
'startdate':startdate,
'enddate':enddate,
@@ -409,7 +409,7 @@ class CumFlexTest(TestCase):
self.factory.user = self.u
form = FlexAxesForm(self.factory,form_data)
-
+
url = '/rowers/flexall/'
@@ -447,19 +447,19 @@ class CumFlexTest(TestCase):
session['options'] = options
session.save()
response = self.c.get('/')
-
+
url = '/rowers/flexalldata/'
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
-
+
class MultiFlexTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -498,7 +498,7 @@ class MultiFlexTest(TestCase):
u'4+',
u'8+',
u'8x+']
-
+
form_data = {
'startdate':startdate,
'enddate':enddate,
@@ -550,18 +550,18 @@ class MultiFlexTest(TestCase):
session['options'] = options
session.save()
response = self.c.get('/')
-
+
url = '/rowers/user-multiflex-data/'
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
-
+
class HistoTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -603,7 +603,7 @@ class HistoTest(TestCase):
u'4+',
u'8+',
u'8x+']
-
+
form_data = {
'startdate':startdate,
'enddate':enddate,
@@ -614,11 +614,11 @@ class HistoTest(TestCase):
url = '/rowers/histo/'
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
response = self.c.post(url, form_data)
self.assertEqual(response.status_code,200)
-
+
options = {
'includereststrokes':False,
'rankingonly':False,
@@ -647,10 +647,10 @@ class HistoTest(TestCase):
class WorkoutCompareTestNew(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -675,7 +675,7 @@ class WorkoutCompareTestNew(TestCase):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/user-analysis-select/compare/'
response = self.c.get(url)
@@ -724,7 +724,7 @@ class WorkoutCompareTestNew(TestCase):
result = form.is_valid()
if not result:
print(form.errors)
-
+
self.assertTrue(form.is_valid())
self.assertTrue(optionsform.is_valid())
self.assertTrue(dateform.is_valid())
@@ -736,10 +736,10 @@ class WorkoutCompareTestNew(TestCase):
class WorkoutBoxPlotTestNew(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -764,7 +764,7 @@ class WorkoutBoxPlotTestNew(TestCase):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/user-analysis-select/boxplot/'
response = self.c.get(url)
@@ -812,7 +812,7 @@ class WorkoutBoxPlotTestNew(TestCase):
result = form.is_valid()
if not result:
print(form.errors)
-
+
self.assertTrue(form.is_valid())
self.assertTrue(optionsform.is_valid())
self.assertTrue(dateform.is_valid())
@@ -824,10 +824,10 @@ class WorkoutBoxPlotTestNew(TestCase):
class WorkoutHistoTestNew(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -852,7 +852,7 @@ class WorkoutHistoTestNew(TestCase):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/user-analysis-select/histo/'
response = self.c.get(url)
@@ -900,7 +900,7 @@ class WorkoutHistoTestNew(TestCase):
result = form.is_valid()
if not result:
print(form.errors)
-
+
self.assertTrue(form.is_valid())
self.assertTrue(optionsform.is_valid())
self.assertTrue(dateform.is_valid())
@@ -912,10 +912,10 @@ class WorkoutHistoTestNew(TestCase):
class WorkoutFlexallTestNew(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -940,7 +940,7 @@ class WorkoutFlexallTestNew(TestCase):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/user-analysis-select/flexall/'
response = self.c.get(url)
@@ -988,7 +988,7 @@ class WorkoutFlexallTestNew(TestCase):
result = form.is_valid()
if not result:
print(form.errors)
-
+
self.assertTrue(form.is_valid())
self.assertTrue(optionsform.is_valid())
self.assertTrue(dateform.is_valid())
@@ -1000,10 +1000,10 @@ class WorkoutFlexallTestNew(TestCase):
class WorkoutStatsTestNew(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -1028,7 +1028,7 @@ class WorkoutStatsTestNew(TestCase):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/user-analysis-select/stats/'
response = self.c.get(url)
@@ -1082,8 +1082,8 @@ class WorkoutStatsTestNew(TestCase):
script, div = statsdata(workouts,options)
script, div = comparisondata(workouts,options)
-
-
+
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db', side_effect=mocked_getsmallrowdata_db)
def test_workouts_stats_submit(self, mocked_sqlalchemy,
@@ -1126,7 +1126,7 @@ class WorkoutStatsTestNew(TestCase):
result = form.is_valid()
if not result:
print(form.errors)
-
+
self.assertTrue(form.is_valid())
self.assertTrue(optionsform.is_valid())
self.assertTrue(dateform.is_valid())
@@ -1134,4 +1134,3 @@ class WorkoutStatsTestNew(TestCase):
response = self.c.post('/rowers/user-analysis-select/',form_data)
self.assertEqual(response.status_code,200)
-
diff --git a/rowers/tests/test_aworkouts.py b/rowers/tests/test_aworkouts.py
index 1b23d1b6..d82bc9ac 100644
--- a/rowers/tests/test_aworkouts.py
+++ b/rowers/tests/test_aworkouts.py
@@ -33,10 +33,10 @@ def create_image(storage, filename, size=(100, 100), image_mode='RGB', image_for
class WorkoutViewTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -48,7 +48,7 @@ class WorkoutViewTest(TestCase):
self.u.save()
result = get_random_file(filename='rowers/tests/testdata/onwater2.csv')
-
+
self.wwater = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -75,7 +75,7 @@ class WorkoutViewTest(TestCase):
)
result = get_random_file(filename='rowers/tests/testdata/erg1.csv')
-
+
self.werg1 = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -86,7 +86,7 @@ class WorkoutViewTest(TestCase):
)
result = get_random_file(filename='rowers/tests/testdata/erg2.csv')
-
+
self.werg2 = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -97,7 +97,7 @@ class WorkoutViewTest(TestCase):
)
result = get_random_file(filename='rowers/tests/testdata/erg2.csv')
-
+
self.werg2copy = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -107,9 +107,9 @@ class WorkoutViewTest(TestCase):
workouttype = 'rower',
)
-
+
result = get_random_file(filename='rowers/tests/testdata/erg3.csv')
-
+
self.werg3 = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -141,7 +141,7 @@ class WorkoutViewTest(TestCase):
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_joins(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
@@ -154,7 +154,7 @@ class WorkoutViewTest(TestCase):
d1 = self.werg1.date-datetime.timedelta(days=2)
d2 = self.werg2.date+datetime.timedelta(days=2)
-
+
date_form_data = {
'startdate': d1.strftime('%Y-%m%d'),
'enddate': d2.strftime('%Y-%m%d')
@@ -162,7 +162,7 @@ class WorkoutViewTest(TestCase):
response = self.c.post(url,date_form_data)
self.assertEqual(response.status_code,200)
-
+
url = reverse('workouts_join_view')
response = self.c.get(url,follow=True)
@@ -197,7 +197,7 @@ class WorkoutViewTest(TestCase):
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
@patch('rowers.middleware.myqueue')
@@ -224,8 +224,8 @@ class WorkoutViewTest(TestCase):
'plottype':'line',
'teamid': '',
}
-
-
+
+
response = self.c.post(url,form_data,follow=True)
self.assertEqual(response.status_code,200)
@@ -269,7 +269,7 @@ class WorkoutViewTest(TestCase):
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_smoothen(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
@@ -287,7 +287,7 @@ class WorkoutViewTest(TestCase):
'id':encoder.encode_hex(self.wwater.id)
}
)
-
+
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
@@ -302,12 +302,12 @@ class WorkoutViewTest(TestCase):
'id':encoder.encode_hex(self.wwater.id)
}
)
-
+
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_windform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
@@ -363,7 +363,7 @@ class WorkoutViewTest(TestCase):
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_setpowerform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
@@ -409,7 +409,7 @@ class WorkoutViewTest(TestCase):
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_commentview(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
@@ -435,7 +435,7 @@ class WorkoutViewTest(TestCase):
url = reverse('workout_unsubscribe_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_mapview(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
@@ -471,7 +471,7 @@ class WorkoutViewTest(TestCase):
#if not form.is_valid():
# print form.errors
#self.assertTrue(form.is_valid())
-
+
response = self.c.post(url,form_data,format='multipart',follow=True)
expected_url = reverse(self.r.defaultlandingpage,
@@ -480,7 +480,7 @@ class WorkoutViewTest(TestCase):
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
@patch('rowers.dataprep.getrowdata_db',side_effect=mocked_getrowdata_db)
@@ -536,7 +536,7 @@ class WorkoutViewTest(TestCase):
response = self.c.post(url,form_data,follow=True)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_editsummaryview(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
@@ -590,7 +590,7 @@ class WorkoutViewTest(TestCase):
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db')
def test_workout_delete(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
@@ -611,4 +611,3 @@ class WorkoutViewTest(TestCase):
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
-
diff --git a/rowers/tests/test_basicrower.py b/rowers/tests/test_basicrower.py
index bd889be3..268ab876 100644
--- a/rowers/tests/test_basicrower.py
+++ b/rowers/tests/test_basicrower.py
@@ -15,10 +15,10 @@ from rowers.views import get_workout
class SimpleViewTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='basic')
@@ -59,4 +59,3 @@ class SimpleViewTest(TestCase):
self.assertRedirects(response,
expected_url='/rowers/list-workouts/',
status_code=302,target_status_code=200)
-
diff --git a/rowers/tests/test_courses.py b/rowers/tests/test_courses.py
index a6a976ad..723dbc74 100644
--- a/rowers/tests/test_courses.py
+++ b/rowers/tests/test_courses.py
@@ -11,7 +11,7 @@ class CoursesTest(TestCase):
self.u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
)
@@ -73,9 +73,8 @@ class CoursesTest(TestCase):
response = self.c.get('/rowers/courses/1/downloadkml/')
self.assertEqual(response.status_code,200)
-
+
self.assertEquals(
response.get('Content-Disposition'),
'attachment; filename="course_1.kml"'
)
-
diff --git a/rowers/tests/test_cpchart.py b/rowers/tests/test_cpchart.py
index 5429b1cb..4ab3a2bb 100644
--- a/rowers/tests/test_cpchart.py
+++ b/rowers/tests/test_cpchart.py
@@ -13,15 +13,15 @@ from rowers.utils import calculate_age
import rowers.dataprep as dataprep
-
+
@override_settings(TESTING=True)
class OTWCPChartTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,sex='male',
+ gdproptin=True,surveydone=True,sex='male',
weightcategory='hwt',
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -45,8 +45,8 @@ class OTWCPChartTest(TestCase):
totaldist = row.df['cum_dist'].max()
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
-
+
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -54,7 +54,7 @@ class OTWCPChartTest(TestCase):
duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
duration = datetime.time(hour=hours,minute=minutes,second=seconds)
-
+
workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
@@ -104,16 +104,16 @@ class OTWCPChartTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
-
-
+
+
@override_settings(TESTING=True)
class CPChartTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,sex='male',
+ gdproptin=True,surveydone=True,sex='male',
weightcategory='hwt',
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -146,7 +146,7 @@ class CPChartTest(TestCase):
perfsdf = pd.read_csv('rowers/tests/testdata/calcageperformance.csv')
r = self.u.rower
-
+
for i in perfsdf.index:
perf = CalcAgePerformance(
age = age,
@@ -156,14 +156,14 @@ class CPChartTest(TestCase):
weightcategory = r.weightcategory
)
perf.save()
-
+
def tearDown(self):
for workout in self.user_workouts:
try:
os.remove(workout.csvfilename)
except (IOError, FileNotFoundError,OSError):
pass
-
+
def test_analytics_page(self):
login = self.c.login(username=self.u.username,password=self.password)
self.assertTrue(login)
@@ -228,7 +228,7 @@ class CPChartTest(TestCase):
r = self.u.rower
age = calculate_age(r.birthdate)
-
+
wcdurations = []
wcpower = []
durations = [1,4,30,60]
@@ -244,7 +244,7 @@ class CPChartTest(TestCase):
)
jsondf = df.to_json()
-
+
result = handle_getagegrouprecords(
jsondf,distances,durations,age,r.sex,r.weightcategory)
@@ -258,8 +258,8 @@ class CPChartTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
-
+
+
@patch('rowers.dataprep.fetchcperg', side_effect = mocked_fetchcperg)
@patch('rowers.dataprep.create_engine')
def test_rankingpieces(self, mocked_fetchcperg, mocked_sqlalchemy):
@@ -322,5 +322,3 @@ class CPChartTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
-
-
diff --git a/rowers/tests/test_emails.py b/rowers/tests/test_emails.py
index 27bf2795..b65bcd9c 100644
--- a/rowers/tests/test_emails.py
+++ b/rowers/tests/test_emails.py
@@ -12,23 +12,23 @@ class EmailUpload(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
-
+
nu = datetime.datetime.now()
workoutsbox = Mailbox.objects.create(name='workouts1')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
-
+
m = Message(mailbox=workoutsbox,
from_header = u.email,
subject = "run",
@@ -73,23 +73,23 @@ class ZipEmailUpload(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
-
+
nu = datetime.datetime.now()
workoutsbox = Mailbox.objects.create(name='workouts1')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
-
+
m = Message(mailbox=workoutsbox,
from_header = u.email,
subject = "Sprint",
@@ -127,7 +127,7 @@ workout water
w = ws[4]
self.assertEqual(w.name,'Sprint (5)')
-
+
@override_settings(TESTING=True)
class EmailUniCodeUpload(TestCase):
def setUp(self):
@@ -135,23 +135,23 @@ class EmailUniCodeUpload(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
-
+
nu = datetime.datetime.now()
workoutsbox = Mailbox.objects.create(name='workouts2')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
-
+
m = Message(mailbox=workoutsbox,
from_header = u.email,
subject = "Třeboň",
@@ -196,23 +196,23 @@ class EmailBikeErgUpload(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
-
+
nu = datetime.datetime.now()
workoutsbox = Mailbox.objects.create(name='workouts2')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
-
+
m = Message(mailbox=workoutsbox,
from_header = u.email,
subject = "bikeerg",
@@ -257,23 +257,23 @@ class EmailBikeUpload(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
-
+
nu = datetime.datetime.now()
workoutsbox = Mailbox.objects.create(name='workouts3')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
-
+
m = Message(mailbox=workoutsbox,
from_header = u.email,
subject = "bike",
@@ -311,9 +311,9 @@ workout bike
w = ws[0]
self.assertEqual(w.workouttype,'Bike')
-
-
-#@pytest.mark.django_db
+
+
+#@pytest.mark.django_db
@override_settings(TESTING=True)
class EmailTests(TestCase):
def setUp(self):
@@ -321,24 +321,24 @@ class EmailTests(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
-
+
nu = datetime.datetime.now()
workoutsbox = Mailbox.objects.create(name='workouts4')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
-
+
for filename in os.listdir(u'rowers/tests/testdata/emails'):
m = Message(mailbox=workoutsbox,
from_header = u.email,
@@ -384,7 +384,7 @@ race 1
os.remove(path)
except (IOError,FileNotFoundError,OSError):
pass
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.polarstuff.get_polar_notifications')
@patch('rowers.c2stuff.requests.get', side_effect=mocked_requests)
@@ -396,7 +396,7 @@ race 1
self.assertIn('Successfully processed email attachments',out.getvalue())
-
+
@override_settings(TESTING=True)
class EmailAdminUpload(TestCase):
def setUp(self):
@@ -404,7 +404,7 @@ class EmailAdminUpload(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
birthdate = faker.profile()['birthdate']
)
@@ -412,10 +412,10 @@ class EmailAdminUpload(TestCase):
self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
-
+
self.race = RaceFactory(manager = self.theadmin)
nu = datetime.datetime.now()
@@ -423,7 +423,7 @@ class EmailAdminUpload(TestCase):
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
-
+
m = Message(mailbox=workoutsbox,
from_header = self.theadmin.email,
subject = "johnsworkout",
@@ -460,7 +460,7 @@ race 1
if not len(ws):
for w in Workout.objects.all():
print(w)
-
+
self.assertEqual(len(ws),1)
w = ws[0]
@@ -473,4 +473,3 @@ race 1
result = results[0]
self.assertTrue(result.coursecompleted)
-
diff --git a/rowers/tests/test_empower.py b/rowers/tests/test_empower.py
index 4681113a..9073dd0c 100644
--- a/rowers/tests/test_empower.py
+++ b/rowers/tests/test_empower.py
@@ -14,10 +14,10 @@ class EmpowerTest(TestCase):
'sander@ds.ds',
'koeinsloot',
)
- r = Rower.objects.create(user=u,rowerplan='coach',gdproptin=True,
+ r = Rower.objects.create(user=u,rowerplan='coach',gdproptin=True,surveydone=True,
gdproptindate=timezone.now())
self.c = Client()
-
+
self.nu = datetime.datetime.now()
filename = 'rowers/tests/testdata/testdata.csv'
otwfilename = 'rowers/tests/testdata/empower.csv'
@@ -27,20 +27,20 @@ class EmpowerTest(TestCase):
starttime=self.nu.strftime('%H:%M:%S'),
duration="0:55:00",distance=8000,
csvfilename=filename)
-
+
self.wote = Workout.objects.create(name='testworkout',
workouttype='Indoor Rower',
user=r,date=self.nu.strftime('%Y-%m-%d'),
starttime=self.nu.strftime('%H:%M:%S'),
duration="0:55:00",distance=8000,
csvfilename=otwfilename)
-
+
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
r.pw_tr,r.pw_an])/r.ftp
-
+
self.hrdata = {
'hrmax':r.max,
'hrut2':r.ut2,
diff --git a/rowers/tests/test_flexchart.py b/rowers/tests/test_flexchart.py
index 96ed9e52..27869afa 100644
--- a/rowers/tests/test_flexchart.py
+++ b/rowers/tests/test_flexchart.py
@@ -9,10 +9,10 @@ from .statements import *
class WorkoutViewTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
showfavoritechartnotes=True)
@@ -25,7 +25,7 @@ class WorkoutViewTest(TestCase):
self.u.save()
result = get_random_file(filename='rowers/tests/testdata/onwater2.csv')
-
+
self.wwater = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -47,7 +47,7 @@ class WorkoutViewTest(TestCase):
)
result = get_random_file(filename='rowers/tests/testdata/erg1.csv')
-
+
self.werg1 = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -58,7 +58,7 @@ class WorkoutViewTest(TestCase):
)
result = get_random_file(filename='rowers/tests/testdata/erg2.csv')
-
+
self.werg2 = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -69,7 +69,7 @@ class WorkoutViewTest(TestCase):
)
result = get_random_file(filename='rowers/tests/testdata/erg3.csv')
-
+
self.werg3 = WorkoutFactory(user=self.r,
csvfilename=result['filename'],
starttime=result['starttime'],
@@ -98,7 +98,7 @@ class WorkoutViewTest(TestCase):
notes=faker.word(),
user=self.r
)
-
+
def tearDown(self):
pass
@@ -113,7 +113,7 @@ class WorkoutViewTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
# change chart
form_data = {
'xaxis':'time',
@@ -161,7 +161,7 @@ class WorkoutViewTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
# change chart
form_data = {
'xaxis':'time',
@@ -190,4 +190,4 @@ class WorkoutViewTest(TestCase):
}
response = self.c.post(url,form_data)
- self.assertEqual(response.status_code,200)
+ self.assertEqual(response.status_code,200)
diff --git a/rowers/tests/test_imports.py b/rowers/tests/test_imports.py
index 1612cef5..03710671 100644
--- a/rowers/tests/test_imports.py
+++ b/rowers/tests/test_imports.py
@@ -10,7 +10,7 @@ nu = datetime.datetime.now()
import rowers
-@pytest.mark.django_db
+@pytest.mark.django_db
@override_settings(TESTING=True)
class C2Objects(DjangoTestCase):
def setUp(self):
@@ -22,7 +22,7 @@ class C2Objects(DjangoTestCase):
self.u.first_name = 'John'
self.u.last_name = 'Sander'
self.u.save()
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
@@ -33,9 +33,9 @@ class C2Objects(DjangoTestCase):
self.c.login(username='john',password='koeinsloot')
self.nu = datetime.datetime.now()
-
+
filename = 'rowers/tests/testdata/testdata.csv'
-
+
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
hrut1=self.r.ut1,hrat=self.r.at,
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
@@ -44,7 +44,7 @@ class C2Objects(DjangoTestCase):
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -65,15 +65,15 @@ class C2Objects(DjangoTestCase):
csvfilename=filename
)
-
+
@patch('rowers.c2stuff.Session', side_effect=mocked_requests)
def test_c2_callback(self, mock_Session):
response = self.c.get('/call_back?code=dsdoij232s',follow=True)
-
+
self.assertEqual(response.status_code, 200)
-
+
@patch('rowers.c2stuff.Session', side_effect=mocked_requests)
def test_c2_token_refresh(self, mock_Session):
response = self.c.get('/rowers/me/c2refresh/',follow=True)
@@ -99,7 +99,7 @@ class C2Objects(DjangoTestCase):
response = self.c.get('/rowers/workout/c2list',follow=True)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.c2stuff.requests.get', side_effect=mocked_requests)
@patch('rowers.dataprep.create_engine')
def test_c2_import(self, mock_get, mocked_sqlalchemy):
@@ -112,7 +112,7 @@ class C2Objects(DjangoTestCase):
self.assertEqual(response.status_code, 200)
-
+
@patch('rowers.dataprep.create_engine')
def test_strokedata(self, mocked_sqlalchemy):
with open('rowers/tests/testdata/c2stroketestdata.txt','r') as infile:
@@ -157,7 +157,7 @@ class C2ObjectsTokenExpired(DjangoTestCase):
self.u.first_name = 'John'
self.u.last_name = 'Sander'
self.u.save()
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
@@ -168,9 +168,9 @@ class C2ObjectsTokenExpired(DjangoTestCase):
self.c.login(username='john',password='koeinsloot')
self.nu = datetime.datetime.now()
-
+
filename = 'rowers/tests/testdata/testdata.csv'
-
+
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
hrut1=self.r.ut1,hrat=self.r.at,
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
@@ -179,7 +179,7 @@ class C2ObjectsTokenExpired(DjangoTestCase):
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -200,7 +200,7 @@ class C2ObjectsTokenExpired(DjangoTestCase):
csvfilename=filename
)
-
+
@patch('rowers.c2stuff.requests.post', side_effect=mocked_requests)
@patch('rowers.c2stuff.requests.get', side_effect=mocked_requests)
@@ -209,7 +209,7 @@ class C2ObjectsTokenExpired(DjangoTestCase):
response = self.c.get('/rowers/workout/c2list',follow=True)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.c2stuff.requests.get', side_effect=mocked_requests)
@patch('rowers.dataprep.create_engine')
def test_c2_import(self, mock_get, mocked_sqlalchemy):
@@ -222,9 +222,9 @@ class C2ObjectsTokenExpired(DjangoTestCase):
self.assertEqual(response.status_code, 200)
-
-
-#@pytest.mark.django_db
+
+
+#@pytest.mark.django_db
@override_settings(TESTING=True)
class StravaObjects(DjangoTestCase):
def setUp(self):
@@ -236,7 +236,7 @@ class StravaObjects(DjangoTestCase):
self.u.first_name = 'John'
self.u.last_name = 'Sander'
self.u.save()
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
@@ -247,9 +247,9 @@ class StravaObjects(DjangoTestCase):
self.r.save()
self.c.login(username='john',password='koeinsloot')
self.nu = datetime.datetime.now()
-
+
filename = 'rowers/tests/testdata/testdata.csv'
-
+
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
hrut1=self.r.ut1,hrat=self.r.at,
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
@@ -258,7 +258,7 @@ class StravaObjects(DjangoTestCase):
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -329,10 +329,10 @@ class StravaObjects(DjangoTestCase):
self.assertEqual(result,"987654321234567898765432123456789")
-
-#@pytest.mark.django_db
+
+#@pytest.mark.django_db
@override_settings(TESTING=True)
-class STObjects(DjangoTestCase):
+class STObjects(DjangoTestCase):
def setUp(self):
self.c = Client()
self.u = User.objects.create_user('john',
@@ -342,7 +342,7 @@ class STObjects(DjangoTestCase):
self.u.first_name = 'John'
self.u.last_name = 'Sander'
self.u.save()
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
@@ -355,9 +355,9 @@ class STObjects(DjangoTestCase):
self.c.login(username='john',password='koeinsloot')
self.nu = datetime.datetime.now()
-
+
filename = 'rowers/tests/testdata/testdata.csv'
-
+
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
hrut1=self.r.ut1,hrat=self.r.at,
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
@@ -366,7 +366,7 @@ class STObjects(DjangoTestCase):
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -391,10 +391,10 @@ class STObjects(DjangoTestCase):
def test_sporttracks_callback(self, mock_post):
response = self.c.get('/sporttracks_callback?code=dsdoij232s',follow=True)
-
+
self.assertEqual(response.status_code, 200)
-
+
@patch('rowers.sporttracksstuff.requests.post', side_effect=mocked_requests)
def test_sporttracks_token_refresh(self, mock_post):
response = self.c.get('/rowers/me/sporttracksrefresh/',follow=True)
@@ -419,7 +419,7 @@ class STObjects(DjangoTestCase):
response = self.c.get('/rowers/workout/sporttracksimport',follow=True)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.imports.requests.get', side_effect=mocked_requests)
def test_sporttracks_import(self, mock_get):
@@ -478,9 +478,9 @@ class STObjects(DjangoTestCase):
res = add_workout_from_data(self.u,1,data,data)
-#@pytest.mark.django_db
+#@pytest.mark.django_db
@override_settings(TESTING=True)
-class RunKeeperObjects(DjangoTestCase):
+class RunKeeperObjects(DjangoTestCase):
def setUp(self):
self.c = Client()
self.u = User.objects.create_user('john',
@@ -490,7 +490,7 @@ class RunKeeperObjects(DjangoTestCase):
self.u.first_name = 'John'
self.u.last_name = 'Sander'
self.u.save()
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
@@ -502,9 +502,9 @@ class RunKeeperObjects(DjangoTestCase):
self.c.login(username='john',password='koeinsloot')
self.nu = datetime.datetime.now()
-
+
filename = 'rowers/tests/testdata/testdata.csv'
-
+
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
hrut1=self.r.ut1,hrat=self.r.at,
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
@@ -513,7 +513,7 @@ class RunKeeperObjects(DjangoTestCase):
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -557,7 +557,7 @@ class RunKeeperObjects(DjangoTestCase):
response = self.c.get('/rowers/workout/runkeeperimport',follow=True)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.imports.requests.get', side_effect=mocked_requests)
def test_runkeeper_import(self, mock_get):
@@ -570,10 +570,10 @@ class RunKeeperObjects(DjangoTestCase):
self.assertEqual(response.status_code, 200)
-
-@pytest.mark.django_db
+
+@pytest.mark.django_db
@override_settings(TESTING=True)
-class UAObjects(DjangoTestCase):
+class UAObjects(DjangoTestCase):
def setUp(self):
self.c = Client()
self.u = User.objects.create_user('john',
@@ -583,7 +583,7 @@ class UAObjects(DjangoTestCase):
self.u.first_name = 'John'
self.u.last_name = 'Sander'
self.u.save()
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
@@ -596,9 +596,9 @@ class UAObjects(DjangoTestCase):
self.c.login(username='john',password='koeinsloot')
self.nu = datetime.datetime.now()
-
+
filename = 'rowers/tests/testdata/testdata.csv'
-
+
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
hrut1=self.r.ut1,hrat=self.r.at,
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
@@ -607,7 +607,7 @@ class UAObjects(DjangoTestCase):
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -632,10 +632,10 @@ class UAObjects(DjangoTestCase):
def test_underarmour_callback(self, mock_post):
response = self.c.get('/underarmour_callback?code=dsdoij232s',follow=True)
-
+
self.assertEqual(response.status_code, 200)
-
+
@patch('rowers.underarmourstuff.requests.post', side_effect=mocked_requests)
def test_underarmour_token_refresh(self, mock_post):
response = self.c.get('/rowers/me/underarmourrefresh/',follow=True)
@@ -660,7 +660,7 @@ class UAObjects(DjangoTestCase):
response = self.c.get('/rowers/workout/underarmourimport',follow=True)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.imports.requests.get', side_effect=mocked_requests)
@patch('rowers.dataprep.create_engine')
def test_underarmour_import(self, mock_get, mocked_sqlalchemy):
@@ -674,9 +674,9 @@ class UAObjects(DjangoTestCase):
self.assertEqual(response.status_code, 200)
-#@pytest.mark.django_db
+#@pytest.mark.django_db
@override_settings(TESTING=True)
-class TPObjects(DjangoTestCase):
+class TPObjects(DjangoTestCase):
def setUp(self):
self.c = Client()
self.u = User.objects.create_user('john',
@@ -686,7 +686,7 @@ class TPObjects(DjangoTestCase):
self.u.first_name = 'John'
self.u.last_name = 'Sander'
self.u.save()
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
@@ -699,9 +699,9 @@ class TPObjects(DjangoTestCase):
self.c.login(username='john',password='koeinsloot')
self.nu = datetime.datetime.now()
-
+
filename = 'rowers/tests/testdata/testdata.csv'
-
+
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
hrut1=self.r.ut1,hrat=self.r.at,
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
@@ -710,7 +710,7 @@ class TPObjects(DjangoTestCase):
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -735,10 +735,10 @@ class TPObjects(DjangoTestCase):
def test_tp_callback(self, mock_post):
response = self.c.get('/tp_callback?code=dsdoij232s',follow=True)
-
+
self.assertEqual(response.status_code, 200)
-
+
@patch('rowers.tpstuff.requests.post', side_effect=mocked_requests)
def test_tp_token_refresh(self, mock_post):
response = self.c.get('/rowers/me/tprefresh/',follow=True)
@@ -761,7 +761,7 @@ class TPObjects(DjangoTestCase):
self.assertEqual(response.status_code, 302)
-#@pytest.mark.django_db
+#@pytest.mark.django_db
@override_settings(TESTING=True)
class AutoExportTests(TestCase):
def setUp(self):
@@ -769,7 +769,7 @@ class AutoExportTests(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
diff --git a/rowers/tests/test_interactivecharts.py b/rowers/tests/test_interactivecharts.py
index 4d7fb2cd..7572d68e 100644
--- a/rowers/tests/test_interactivecharts.py
+++ b/rowers/tests/test_interactivecharts.py
@@ -14,7 +14,7 @@ class InteractiveChartTest(TestCase):
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.nu = datetime.datetime.now()
@@ -26,7 +26,7 @@ class InteractiveChartTest(TestCase):
starttime=self.nu.strftime('%H:%M:%S'),
duration="0:55:00",distance=8000,
csvfilename=self.filename)
-
+
self.wote = Workout.objects.create(name='testworkout',
workouttype='Indoor Rower',
user=r,date=self.nu.strftime('%Y-%m-%d'),
@@ -40,7 +40,7 @@ class InteractiveChartTest(TestCase):
def test_painsled(self, mocked_sqlalchemy, mocked_read_df_sql):
u = User.objects.get(username='john')
r = Rower.objects.get(user=u)
-
+
rr = rrower(hrmax=r.max,hrut2=r.ut2,
hrut1=r.ut1,hrat=r.at,
hrtr=r.tr,hran=r.an,ftp=r.ftp)
@@ -59,7 +59,7 @@ class InteractiveChartTest(TestCase):
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_interactive_chart2(self, mocked_sqlalchemy,mocked_read_df_sql,
- mocked_getsmallrowdata_db):
+ mocked_getsmallrowdata_db):
res = iplots.interactive_chart(self.wote.id,promember=1)
@patch('rowers.dataprep.create_engine')
@@ -69,7 +69,7 @@ class InteractiveChartTest(TestCase):
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
- def test_interactive_chart4(self, mocked_sqlalchemy,mocked_read_df_sql):
+ def test_interactive_chart4(self, mocked_sqlalchemy,mocked_read_df_sql):
res = iplots.interactive_bar_chart(self.wote.id,promember=1)
@patch('rowers.dataprep.create_engine')
@@ -90,7 +90,7 @@ class InteractiveChartTest(TestCase):
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_interactive_chart7(self, mocked_sqlalchemy,mocked_read_df_sql,
- mocked_getsmallrowdata_db):
+ mocked_getsmallrowdata_db):
res = iplots.interactive_flex_chart2(self.wote.id,promember=0,
xparam='time',
yparam1='pace',yparam2='spm')
@@ -98,8 +98,8 @@ class InteractiveChartTest(TestCase):
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
- def test_interactive_chart8(self, mocked_sqlalchemy,mocked_read_df_sql,
- mocked_getsmallrowdata_db):
+ def test_interactive_chart8(self, mocked_sqlalchemy,mocked_read_df_sql,
+ mocked_getsmallrowdata_db):
res = iplots.interactive_flex_chart2(self.wote.id,
promember=0,xparam='distance',
yparam1='pace',yparam2='spm')
@@ -108,23 +108,23 @@ class InteractiveChartTest(TestCase):
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_interactive_chart9(self, mocked_sqlalchemy,mocked_read_df_sql,
- mocked_getsmallrowdata_db):
+ mocked_getsmallrowdata_db):
res = iplots.interactive_flex_chart2(self.wote.id,
promember=1,xparam='time',
yparam1='pace',yparam2='hr')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
- def test_interactive_chart10(self, mocked_sqlalchemy,mocked_read_df_sql,
- mocked_getsmallrowdata_db):
+ def test_interactive_chart10(self, mocked_sqlalchemy,mocked_read_df_sql,
+ mocked_getsmallrowdata_db):
res = iplots.interactive_flex_chart2(self.wote.id,
promember=1,xparam='distance',
yparam1='pace',yparam2='hr')
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
- def test_interactive_chart11(self, mocked_sqlalchemy,mocked_read_df_sql,
- mocked_getsmallrowdata_db):
+ def test_interactive_chart11(self, mocked_sqlalchemy,mocked_read_df_sql,
+ mocked_getsmallrowdata_db):
res = iplots.interactive_flex_chart2(self.wote.id,
promember=1,xparam='time',
yparam1='pace',yparam2='spm')
@@ -132,10 +132,8 @@ class InteractiveChartTest(TestCase):
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.read_df_sql')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
- def test_interactive_chart12(self, mocked_sqlalchemy,mocked_read_df_sql,
- mocked_getsmallrowdata_db):
+ def test_interactive_chart12(self, mocked_sqlalchemy,mocked_read_df_sql,
+ mocked_getsmallrowdata_db):
res = iplots.interactive_flex_chart2(self.wote.id,promember=1,
xparam='distance',
yparam1='pace',yparam2='spm')
-
-
diff --git a/rowers/tests/test_misc.py b/rowers/tests/test_misc.py
index f572f495..cf97672c 100644
--- a/rowers/tests/test_misc.py
+++ b/rowers/tests/test_misc.py
@@ -9,15 +9,15 @@ from .statements import *
nu = datetime.datetime.now()
-
-#@pytest.mark.django_db
+
+#@pytest.mark.django_db
class WorkoutTests(TestCase):
def setUp(self):
redis_connection.publish('tasks','KILL')
self.u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
nu = datetime.datetime.now()
@@ -30,14 +30,14 @@ class WorkoutTests(TestCase):
def test_checkworkoutuser(self):
self.assertEqual(checkworkoutuser(self.u,self.w),True)
-#@pytest.mark.django_db
+#@pytest.mark.django_db
class C2Tests(TestCase):
def setUp(self):
redis_connection.publish('tasks','KILL')
self.u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.nu = datetime.datetime.now()
@@ -54,7 +54,7 @@ class C2Tests(TestCase):
-#@pytest.mark.django_db
+#@pytest.mark.django_db
class subroutinetests(TestCase):
def setUp(self):
redis_connection.publish('tasks','KILL')
@@ -77,6 +77,3 @@ class subroutinetests(TestCase):
jsond = json.dumps(data)
data = c2stuff.createc2workoutdata_as_splits(w)
jsond = json.dumps(data)
-
-
-
diff --git a/rowers/tests/test_newusers.py b/rowers/tests/test_newusers.py
index 2d5960e3..29f93712 100644
--- a/rowers/tests/test_newusers.py
+++ b/rowers/tests/test_newusers.py
@@ -8,7 +8,7 @@ from .statements import *
nu = datetime.datetime.now()
-#@pytest.mark.django_db
+#@pytest.mark.django_db
@override_settings(TESTING=True)
class NewUserRegistrationTest(TestCase):
def setUp(self):
@@ -20,7 +20,7 @@ class NewUserRegistrationTest(TestCase):
os.remove('rowsandall_workouts_2018-01-01_2019-01-01.csv')
except:
pass
-
+
@patch('rowers.dataprep.workout_summary_to_df',side_effect=mock_workout_summaries)
def test_newuser(self,mock_workout_summaries):
form_data = {
@@ -40,11 +40,11 @@ class NewUserRegistrationTest(TestCase):
form = RegistrationFormUniqueEmail(form_data)
self.assertTrue(form.is_valid())
-
+
response = self.c.post('/rowers/register/', form_data, follow=True)
-
+
self.assertRedirects(response,
- expected_url='/rowers/me/gdpr-optin/?next=/rowers/list-workouts/',
+ expected_url='/rowers/survey/?next=/rowers/list-workouts/',
status_code=302,target_status_code=200)
@@ -73,7 +73,7 @@ class NewUserRegistrationTest(TestCase):
response = self.c.post(url,form_data)
self.assertTrue(response.status_code,200)
-
+
url = '/rowers/me/delete/'
form_data = {
@@ -84,6 +84,3 @@ class NewUserRegistrationTest(TestCase):
self.assertRedirects(response,
expected_url='/login/',
status_code=302,target_status_code=200)
-
-
-
diff --git a/rowers/tests/test_payments.py b/rowers/tests/test_payments.py
index cc23d5e0..b2795935 100644
--- a/rowers/tests/test_payments.py
+++ b/rowers/tests/test_payments.py
@@ -15,7 +15,7 @@ class PaymentTest(TestCase):
def setUp(self):
# settings.DEBUG = True
-
+
p1 = PaidPlan(
shortname='free',
name='Basic',
@@ -64,7 +64,7 @@ class PaymentTest(TestCase):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -79,7 +79,7 @@ class PaymentTest(TestCase):
u.save()
login = self.c.login(username=u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/billing/'
response = self.c.get(url)
@@ -93,7 +93,7 @@ class PaymentTest(TestCase):
for code, name in list(countries):
if name.lower() == country.lower():
countrycode = code
-
+
form_data = {
'street_address':faker.street_address(),
'city':faker.city(),
@@ -112,7 +112,7 @@ class PaymentTest(TestCase):
self.assertEqual(response.status_code,200)
expected_url = '/rowers/checkout/'+str(plan.id)+'/'
-
+
self.assertRedirects(response,
expected_url = expected_url,
status_code=302,target_status_code=200)
@@ -122,7 +122,7 @@ class PaymentTest(TestCase):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -139,10 +139,10 @@ class PaymentTest(TestCase):
r.save()
u.set_password(self.password)
u.save()
-
+
login = self.c.login(username=u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/upgrade/'
response = self.c.get(url)
@@ -156,7 +156,7 @@ class PaymentTest(TestCase):
for code, name in list(countries):
if name.lower() == country.lower():
countrycode = code
-
+
form_data = {
'street_address':faker.street_address(),
'city':faker.city(),
@@ -175,7 +175,7 @@ class PaymentTest(TestCase):
self.assertEqual(response.status_code,200)
expected_url = '/rowers/upgradecheckout/'+str(plan.id)+'/'
-
+
self.assertRedirects(response,
expected_url = expected_url,
status_code=302,target_status_code=200)
@@ -185,7 +185,7 @@ class PaymentTest(TestCase):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -208,10 +208,10 @@ class PaymentTest(TestCase):
r.save()
u.set_password(self.password)
u.save()
-
+
login = self.c.login(username=u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/downgrade/'
response = self.c.get(url)
@@ -222,7 +222,7 @@ class PaymentTest(TestCase):
for code, name in list(countries):
if name.lower() == country.lower():
countrycode = code
-
+
form_data = {
'street_address':faker.street_address(),
'city':faker.city(),
@@ -241,7 +241,7 @@ class PaymentTest(TestCase):
self.assertEqual(response.status_code,200)
expected_url = '/rowers/downgradecheckout/'+str(plans[0].id)+'/'
-
+
self.assertRedirects(response,
expected_url = expected_url,
status_code=302,target_status_code=200)
@@ -251,7 +251,7 @@ class PaymentTest(TestCase):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -274,22 +274,22 @@ class PaymentTest(TestCase):
r.paidplan = plan
r.save()
-
+
login = self.c.login(username=u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/me/cancelsubscriptions/'
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
@patch('rowers.views.braintreestuff.gateway',side_effect=MockBraintreeGateway)
def test_planstobasic_view(self,mocked_gateway):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -312,10 +312,10 @@ class PaymentTest(TestCase):
r.paidplan = plan
r.save()
-
+
login = self.c.login(username=u.username, password=self.password)
self.assertTrue(login)
-
+
url = '/rowers/me/cancelsubscription/34/'
response = self.c.get(url,follow=True)
@@ -329,7 +329,7 @@ class PaymentTest(TestCase):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -344,13 +344,13 @@ class PaymentTest(TestCase):
r.save()
result = mocktest(r)
self.assertEqual(result,'121')
-
+
@patch('rowers.views.braintreestuff.create_subscription', side_effect=mock_create_subscription)
def test_checkouts_view(self,mock_subscription):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -396,7 +396,7 @@ class PaymentTest(TestCase):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -435,13 +435,13 @@ class PaymentTest(TestCase):
self.assertRedirects(response,
expected_url = '/rowers/paymentcompleted/?amount=20.00',
status_code=302,target_status_code=200)
-
+
@patch('rowers.views.braintreestuff.update_subscription', side_effect=mock_update_subscription)
def test_downgrade_checkouts_view(self,mock_subscription):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -480,13 +480,13 @@ class PaymentTest(TestCase):
self.assertRedirects(response,
expected_url = '/rowers/downgradecompleted/',
status_code=302,target_status_code=200)
-
+
@patch('rowers.views.braintreestuff.create_subscription', side_effect=mock_create_subscription)
def test_checkouts_view(self,mock_subscription):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -536,7 +536,7 @@ class PaymentTest(TestCase):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -575,13 +575,13 @@ class PaymentTest(TestCase):
self.assertRedirects(response,
expected_url = '/rowers/paymentcompleted/?amount=20.00',
status_code=302,target_status_code=200)
-
+
@patch('rowers.views.braintreestuff.update_subscription', side_effect=mock_update_subscription)
def test_downgrade_checkouts_view(self,mock_subscription):
u = UserFactory()
r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
paymentprocessor='braintree',
@@ -620,4 +620,3 @@ class PaymentTest(TestCase):
self.assertRedirects(response,
expected_url = '/rowers/downgradecompleted/',
status_code=302,target_status_code=200)
-
diff --git a/rowers/tests/test_permissions.py b/rowers/tests/test_permissions.py
index a82002a7..2213a7b8 100644
--- a/rowers/tests/test_permissions.py
+++ b/rowers/tests/test_permissions.py
@@ -23,7 +23,7 @@ class PermissionsFreeCoach(TestCase):
self.ufreecoach = UserFactory(username='coachuser')
self.rfreecoach = Rower.objects.create(user=self.ufreecoach,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='freecoach',clubsize=100)
self.coachinggroup = CoachingGroup.objects.create()
@@ -33,11 +33,11 @@ class PermissionsFreeCoach(TestCase):
self.password = faker.word()
self.ufreecoach.set_password(self.password)
self.ufreecoach.save()
-
+
self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan)
@@ -45,11 +45,11 @@ class PermissionsFreeCoach(TestCase):
self.password = faker.word()
self.uplan.set_password(self.password)
self.uplan.save()
-
+
self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
@@ -61,7 +61,7 @@ class PermissionsFreeCoach(TestCase):
self.uplan2 = UserFactory(username='planuser2')
self.rplan2 = Rower.objects.create(user=self.uplan2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2)
@@ -69,11 +69,11 @@ class PermissionsFreeCoach(TestCase):
self.password = faker.word()
self.uplan2.set_password(self.password)
self.uplan2.save()
-
+
self.upro2 = UserFactory(username='prouser2')
self.rpro2 = Rower.objects.create(user=self.upro2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2)
@@ -85,7 +85,7 @@ class PermissionsFreeCoach(TestCase):
self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
@@ -93,9 +93,9 @@ class PermissionsFreeCoach(TestCase):
self.ubasicpassword = faker.word()
self.ubasic.set_password(self.ubasicpassword)
self.ubasic.save()
-
-
-
+
+
+
## TeamFreeCoach
self.teamfreecoach = Team.objects.create(
@@ -120,8 +120,8 @@ class PermissionsFreeCoach(TestCase):
)
self.assertEqual(team2.manager,self.ufreecoach)
-
-
+
+
team3 = Team.objects.create(
name = 'ThirdTeam',
notes = faker.text(),
@@ -129,9 +129,9 @@ class PermissionsFreeCoach(TestCase):
)
self.assertEqual(team3.manager,self.ufreecoach)
-
-
-
+
+
+
## Free coach can create more than one group
def test_plan_groupmanager(self):
team1 = Team.objects.create(
@@ -147,11 +147,11 @@ class PermissionsFreeCoach(TestCase):
notes = faker.text(),
manager = self.ufreecoach,
)
-
- self.assertEqual(team2.manager,self.ufreecoach)
-
-
+ self.assertEqual(team2.manager,self.ufreecoach)
+
+
+
## Free Coach can create planned sessions and team planned sessions
## Self Coach and higher can create planned sessions and team planned sessions
def test_plan_create_session(self):
@@ -161,7 +161,7 @@ class PermissionsFreeCoach(TestCase):
comment=faker.text()
)
self.assertEqual(ps.manager,self.ufreecoach)
-
+
def test_coach_create_session(self):
ps = PlannedSession.objects.create(
manager=self.ufreecoach,
@@ -169,8 +169,8 @@ class PermissionsFreeCoach(TestCase):
comment=faker.text()
)
self.assertEqual(ps.manager,self.ufreecoach)
-
-
+
+
## Basic cannot join groups led by Free Coach
def test_add_basic_pro_or_plan(self):
with transaction.atomic():
@@ -191,7 +191,7 @@ class PermissionsFreeCoach(TestCase):
distance=result['totaldist'],
workouttype = 'rower',
)
-
+
@override_settings(TESTING=True)
class PermissionsBasicsTests(TestCase):
def setUp(self):
@@ -201,7 +201,7 @@ class PermissionsBasicsTests(TestCase):
self.ucoach = UserFactory(username='coachuser')
self.rcoach = Rower.objects.create(user=self.ucoach,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='coach',clubsize=10)
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
@@ -212,11 +212,11 @@ class PermissionsBasicsTests(TestCase):
self.password = faker.word()
self.ucoach.set_password(self.password)
self.ucoach.save()
-
+
self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan)
@@ -224,11 +224,11 @@ class PermissionsBasicsTests(TestCase):
self.password = faker.word()
self.uplan.set_password(self.password)
self.uplan.save()
-
+
self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
@@ -240,7 +240,7 @@ class PermissionsBasicsTests(TestCase):
self.uplan2 = UserFactory(username='planuser2')
self.rplan2 = Rower.objects.create(user=self.uplan2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2)
@@ -248,11 +248,11 @@ class PermissionsBasicsTests(TestCase):
self.password = faker.word()
self.uplan2.set_password(self.password)
self.uplan2.save()
-
+
self.upro2 = UserFactory(username='prouser2')
self.rpro2 = Rower.objects.create(user=self.upro2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2)
@@ -264,7 +264,7 @@ class PermissionsBasicsTests(TestCase):
self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
@@ -272,9 +272,9 @@ class PermissionsBasicsTests(TestCase):
self.ubasicpassword = faker.word()
self.ubasic.set_password(self.ubasicpassword)
self.ubasic.save()
-
-
-
+
+
+
## TeamPro, TeamCoach, TeamSelfCoach
self.teampro = Team.objects.create(
@@ -293,9 +293,9 @@ class PermissionsBasicsTests(TestCase):
manager=self.ucoach)
# Requirements
-
+
## Low level
-
+
## Coach can have any number of groups
def test_coach_groupmanager(self):
team1 = Team.objects.create(
@@ -313,8 +313,8 @@ class PermissionsBasicsTests(TestCase):
)
self.assertEqual(team2.manager,self.ucoach)
-
-
+
+
team3 = Team.objects.create(
name = 'ThirdTeam',
notes = faker.text(),
@@ -322,15 +322,15 @@ class PermissionsBasicsTests(TestCase):
)
self.assertEqual(team3.manager,self.ucoach)
-
-
-
+
+
+
## Basic athletes can be member of Coach led group
def test_add_coach(self):
self.rbasic.team.add(self.teamcoach)
self.assertIn(self.teamcoach,self.rbasic.team.all())
-
-
+
+
## Self coach can create one group
## Self coach cannot create more than one group
def test_plan_groupmanager(self):
@@ -348,9 +348,9 @@ class PermissionsBasicsTests(TestCase):
notes = faker.text(),
manager = self.uplan,
)
-
-
-
+
+
+
## Pro users (and higher) can join group led by other Pro (or higher) user
def test_add_proplan_pro_or_plan(self):
self.rpro.team.add(self.teamplan)
@@ -371,9 +371,9 @@ class PermissionsBasicsTests(TestCase):
self.rcoach.team.add(self.teampro)
self.assertIn(self.teampro,self.rcoach.team.all())
-
-
-
+
+
+
## Coach can create planned sessions and team planned sessions
## Self Coach and higher can create planned sessions and team planned sessions
def test_plan_create_session(self):
@@ -383,7 +383,7 @@ class PermissionsBasicsTests(TestCase):
comment=faker.text()
)
self.assertEqual(ps.manager,self.uplan)
-
+
def test_coach_create_session(self):
ps = PlannedSession.objects.create(
manager=self.ucoach,
@@ -391,7 +391,7 @@ class PermissionsBasicsTests(TestCase):
comment=faker.text()
)
self.assertEqual(ps.manager,self.ucoach)
-
+
## Pro can have one group
## Pro cannot create more than one group
def test_pro_groupmanager(self):
@@ -409,8 +409,8 @@ class PermissionsBasicsTests(TestCase):
notes = faker.text(),
manager = self.upro,
)
-
-
+
+
## Pro or Basic cannot create planned sessions or team planned sessions
def test_pro_create_plannedsession(self):
with self.assertRaises(ValidationError):
@@ -419,7 +419,7 @@ class PermissionsBasicsTests(TestCase):
name = faker.word(),
comment = faker.text()
)
-
+
def test_basic_create_plannedsession(self):
with self.assertRaises(ValidationError):
ps = PlannedSession.objects.create(
@@ -427,7 +427,7 @@ class PermissionsBasicsTests(TestCase):
name = faker.word(),
comment = faker.text()
)
-
+
## Basic cannot join groups led by Pro or Self Coach
def test_add_basic_pro_or_plan(self):
with transaction.atomic():
@@ -437,7 +437,7 @@ class PermissionsBasicsTests(TestCase):
with transaction.atomic():
with self.assertRaises(ValidationError):
self.rbasic.team.add(self.teampro)
-
+
## Basic cannot manage a group
def test_basic_groupmanager(self):
@@ -461,7 +461,7 @@ class PermissionsViewTests(TestCase):
self.ucoach = UserFactory(username='coachuser')
self.rcoach = Rower.objects.create(user=self.ucoach,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='coach',clubsize=10)
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
@@ -472,11 +472,11 @@ class PermissionsViewTests(TestCase):
self.ucoachpassword = faker.word()
self.ucoach.set_password(self.ucoachpassword)
self.ucoach.save()
-
+
self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan)
@@ -484,11 +484,11 @@ class PermissionsViewTests(TestCase):
self.uplanpassword = faker.word()
self.uplan.set_password(self.uplanpassword)
self.uplan.save()
-
+
self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
@@ -500,7 +500,7 @@ class PermissionsViewTests(TestCase):
self.uplan2 = UserFactory(username='planuser2')
self.rplan2 = Rower.objects.create(user=self.uplan2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2)
@@ -508,11 +508,11 @@ class PermissionsViewTests(TestCase):
self.uplan2password = faker.word()
self.uplan2.set_password(self.uplan2password)
self.uplan2.save()
-
+
self.upro2 = UserFactory(username='prouser2')
self.rpro2 = Rower.objects.create(user=self.upro2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2)
@@ -524,7 +524,7 @@ class PermissionsViewTests(TestCase):
self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
@@ -532,9 +532,9 @@ class PermissionsViewTests(TestCase):
self.ubasicpassword = faker.word()
self.ubasic.set_password(self.ubasicpassword)
self.ubasic.save()
-
-
-
+
+
+
## TeamPro, TeamCoach, TeamSelfCoach
self.teampro = Team.objects.create(
@@ -557,7 +557,7 @@ class PermissionsViewTests(TestCase):
def test_coach_groups_create(self):
login = self.c.login(username=self.ucoach.username, password=self.ucoachpassword)
self.assertTrue(login)
-
+
url = reverse('team_create_view')
response = self.c.get(url)
@@ -574,7 +574,7 @@ class PermissionsViewTests(TestCase):
form = TeamForm(form_data)
if not form.is_valid():
print(form.errors)
-
+
self.assertTrue(form.is_valid())
expected_url = reverse('rower_teams_view')
@@ -596,7 +596,7 @@ class PermissionsViewTests(TestCase):
form = TeamForm(form_data)
if not form.is_valid():
print(form.errors)
-
+
self.assertTrue(form.is_valid())
expected_url = reverse('rower_teams_view')
@@ -605,7 +605,7 @@ class PermissionsViewTests(TestCase):
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
-
+
## Basic athletes can be member of Coach led group
## Coach can create planned sessions and team planned sessions
@@ -682,7 +682,7 @@ class PermissionsViewTests(TestCase):
'theuser':self.ubasic.id,
}
)
-
+
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -700,7 +700,7 @@ class PermissionsViewTests(TestCase):
'theuser':self.ubasic.id,
}
)
-
+
response = self.c.get(url)
self.assertEqual(response.status_code,403)
@@ -747,11 +747,11 @@ class PermissionsViewTests(TestCase):
self.assertRedirects(response,
expected_url = url,
status_code=302,target_status_code=200)
-
+
aantal2 = len(Workout.objects.filter(user=self.rbasic))
self.assertEqual(aantal2,aantal+1)
-
+
## Coach can upload on behalf of athlete - if team allows
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
@@ -791,11 +791,11 @@ class PermissionsViewTests(TestCase):
self.assertRedirects(response,
expected_url = url,
status_code=302,target_status_code=200)
-
+
aantal2 = len(Workout.objects.filter(user=self.rbasic))
self.assertEqual(aantal2,aantal)
-
+
## Coach can edit athlete's workout
def test_coach_edit_athlete_workout(self):
self.rbasic.team.add(self.teamcoach)
@@ -809,13 +809,13 @@ class PermissionsViewTests(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,403)
-
+
## Self coach can create one group
## Self coach cannot create more than one group
def test_plan_groups_create(self):
login = self.c.login(username=self.uplan.username, password=self.uplanpassword)
self.assertTrue(login)
-
+
url = reverse('team_create_view')
response = self.c.get(url)
@@ -832,7 +832,7 @@ class PermissionsViewTests(TestCase):
form = TeamForm(form_data)
if not form.is_valid():
print(form.errors)
-
+
self.assertTrue(form.is_valid())
expected_url = reverse('rower_teams_view')
@@ -854,7 +854,7 @@ class PermissionsViewTests(TestCase):
form = TeamForm(form_data)
if not form.is_valid():
print(form.errors)
-
+
self.assertTrue(form.is_valid())
expected_url = reverse('paidplans')
@@ -927,7 +927,7 @@ class PermissionsViewTests(TestCase):
'theuser':self.ubasic.id,
}
)
-
+
response = self.c.get(url)
self.assertEqual(response.status_code,403)
@@ -952,7 +952,7 @@ class PermissionsViewTests(TestCase):
def test_pro_groups_create(self):
login = self.c.login(username=self.upro.username, password=self.upropassword)
self.assertTrue(login)
-
+
url = reverse('team_create_view')
response = self.c.get(url)
@@ -969,7 +969,7 @@ class PermissionsViewTests(TestCase):
form = TeamForm(form_data)
if not form.is_valid():
print(form.errors)
-
+
self.assertTrue(form.is_valid())
expected_url = reverse('rower_teams_view')
@@ -991,7 +991,7 @@ class PermissionsViewTests(TestCase):
form = TeamForm(form_data)
if not form.is_valid():
print(form.errors)
-
+
self.assertTrue(form.is_valid())
expected_url = reverse('paidplans')
@@ -1049,7 +1049,7 @@ class PermissionsViewTests(TestCase):
'theuser':self.ubasic.id,
}
)
-
+
response = self.c.get(url)
self.assertEqual(response.status_code,403)
@@ -1095,7 +1095,7 @@ class PermissionsViewTests(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
## Self Coach users can see team members' workout, but not edit
def test_plan_edit_athlete_workout(self):
@@ -1117,7 +1117,7 @@ class PermissionsViewTests(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
## Basic users can see team members' workout, but not edit
def test_basic_edit_athlete_workout(self):
@@ -1148,7 +1148,7 @@ class PermissionsViewTests(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
# workflow
url = reverse('workout_workflow_view',
kwargs={'id':encoder.encode_hex(self.uplan2_workouts[0].id)}
@@ -1165,7 +1165,7 @@ class PermissionsViewTests(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
+
## Pro users (and higher) can join group led by other Pro (or higher) user
def test_team_member_request_pro_pro(self):
login = self.c.login(username=self.upro.username,password=self.upropassword)
@@ -1215,7 +1215,7 @@ class PermissionsCoachingTests(TestCase):
self.ucoach = UserFactory(username='coachuser')
self.rcoach = Rower.objects.create(user=self.ucoach,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='coach',clubsize=10)
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
@@ -1226,11 +1226,11 @@ class PermissionsCoachingTests(TestCase):
self.ucoachpassword = faker.word()
self.ucoach.set_password(self.ucoachpassword)
self.ucoach.save()
-
+
self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan)
@@ -1238,11 +1238,11 @@ class PermissionsCoachingTests(TestCase):
self.password = faker.word()
self.uplan.set_password(self.password)
self.uplan.save()
-
+
self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
@@ -1254,7 +1254,7 @@ class PermissionsCoachingTests(TestCase):
self.uplan2 = UserFactory(username='planuser2')
self.rplan2 = Rower.objects.create(user=self.uplan2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2)
@@ -1262,11 +1262,11 @@ class PermissionsCoachingTests(TestCase):
self.password = faker.word()
self.uplan2.set_password(self.password)
self.uplan2.save()
-
+
self.upro2 = UserFactory(username='prouser2')
self.rpro2 = Rower.objects.create(user=self.upro2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2)
@@ -1278,7 +1278,7 @@ class PermissionsCoachingTests(TestCase):
self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
@@ -1286,9 +1286,9 @@ class PermissionsCoachingTests(TestCase):
self.ubasicpassword = faker.word()
self.ubasic.set_password(self.ubasicpassword)
self.ubasic.save()
-
-
-
+
+
+
## TeamPro, TeamCoach, TeamSelfCoach
self.teampro = Team.objects.create(
@@ -1360,7 +1360,7 @@ class PermissionsCoachingTests(TestCase):
coachingrequests = CoachOffer.objects.filter(user=self.ubasic)
self.assertEqual(len(coachingrequests),0)
-
+
def test_athlete_request_coach_reject(self):
login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword)
self.assertTrue(login)
@@ -1421,7 +1421,7 @@ class PermissionsCoachingTests(TestCase):
coachingrequests = CoachOffer.objects.filter(user=self.ubasic)
self.assertEqual(len(coachingrequests),0)
-
+
def test_athlete_request_coach_accept_coach_drop(self):
login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword)
self.assertTrue(login)
@@ -1512,7 +1512,7 @@ class PermissionsCoachingTests(TestCase):
coaches = teams.rower_get_coaches(self.rbasic)
self.assertEqual(len(coaches),0)
-
+
def test_coach_offer_athlete_accept_coach_drop(self):
login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword)
self.assertTrue(login)
@@ -1558,7 +1558,7 @@ class PermissionsCoachingTests(TestCase):
coaches = teams.rower_get_coaches(self.rbasic)
self.assertEqual(len(coaches),0)
-
+
def test_athlete_request_coach_accept_athlete_drop(self):
login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword)
@@ -1611,7 +1611,7 @@ class PermissionsCoachingTests(TestCase):
coaches = teams.rower_get_coaches(self.rbasic)
self.assertEqual(len(coaches),0)
-
+
# coach related
## coach disappears from list when downgrading
diff --git a/rowers/tests/test_plans.py b/rowers/tests/test_plans.py
index d69a3dc9..613478da 100644
--- a/rowers/tests/test_plans.py
+++ b/rowers/tests/test_plans.py
@@ -17,7 +17,7 @@ class TrainingPlanTest(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -175,7 +175,7 @@ class SessionLinkTest(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -348,7 +348,7 @@ class SessionCompleteTest(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -603,7 +603,7 @@ class ChallengeCompleteTest(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -827,7 +827,7 @@ class MandatoryTestCompleteTest(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -1040,7 +1040,7 @@ class PlannedSessionsView(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
self.r.save()
@@ -1049,7 +1049,7 @@ class PlannedSessionsView(TestCase):
self.u2 = UserFactory(username='testbasicuser')
self.r2 = Rower.objects.create(user=self.u2,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='basic')
diff --git a/rowers/tests/test_rowerplans.py b/rowers/tests/test_rowerplans.py
index 6aeea434..d87f1a56 100644
--- a/rowers/tests/test_rowerplans.py
+++ b/rowers/tests/test_rowerplans.py
@@ -11,10 +11,10 @@ from rowers.views import hasplannedsessions,iscoachmember,ispromember
class TrialsTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='basic')
@@ -46,7 +46,7 @@ class TrialsTest(TestCase):
self.r.plantrialexpires = (nu+datetime.timedelta(days=10)).date()
self.r.save()
-
+
self.assertEqual(hasplannedsessions(self.u),True)
self.assertEqual(iscoachmember(self.u),False)
self.assertEqual(ispromember(self.u),True)
@@ -60,10 +60,7 @@ class TrialsTest(TestCase):
self.r.plantrialexpires = (nu+datetime.timedelta(days=10)).date()
self.r.save()
-
+
self.assertEqual(hasplannedsessions(self.u),True)
self.assertEqual(iscoachmember(self.u),False)
self.assertEqual(ispromember(self.u),True)
-
-
-
diff --git a/rowers/tests/test_settings.py b/rowers/tests/test_settings.py
index 3dbe555b..b9a44653 100644
--- a/rowers/tests/test_settings.py
+++ b/rowers/tests/test_settings.py
@@ -7,14 +7,14 @@ from __future__ import unicode_literals
from .statements import *
-#@pytest.mark.django_db
+#@pytest.mark.django_db
class DataTest(TestCase):
def setUp(self):
redis_connection.publish('tasks','KILL')
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
self.nu = datetime.datetime.now()
diff --git a/rowers/tests/test_simplefunctions.py b/rowers/tests/test_simplefunctions.py
index fcc8743d..904fb01f 100644
--- a/rowers/tests/test_simplefunctions.py
+++ b/rowers/tests/test_simplefunctions.py
@@ -36,7 +36,7 @@ class SimpleViewTest(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
diff --git a/rowers/tests/test_staticcharts.py b/rowers/tests/test_staticcharts.py
index db0b4235..cd7bc7ed 100644
--- a/rowers/tests/test_staticcharts.py
+++ b/rowers/tests/test_staticcharts.py
@@ -9,7 +9,7 @@ nu = datetime.datetime.now()
-#@pytest.mark.django_db
+#@pytest.mark.django_db
@override_settings(TESTING=True)
class PlotTests(TestCase):
def setUp(self):
@@ -18,7 +18,7 @@ class PlotTests(TestCase):
'sander@ds.ds',
'koeinsloot')
r = Rower.objects.create(user=u,
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='basic')
self.nu = datetime.datetime.now()
@@ -29,14 +29,14 @@ class PlotTests(TestCase):
starttime=self.nu.strftime('%H:%M:%S'),
duration="0:55:00",distance=8000,
csvfilename=filename)
-
+
self.wote = Workout.objects.create(name='testworkout',
workouttype='Indoor Rower',
user=r,date=self.nu.strftime('%Y-%m-%d'),
starttime=self.nu.strftime('%H:%M:%S'),
duration="0:55:00",distance=8000,
csvfilename=filename)
-
+
# timestr = strftime("%Y%m%d-%H%M%S")
# imagename = f1+timestr+'.png'
# fullpathimagename = 'static/plots/'+imagename
@@ -45,7 +45,7 @@ class PlotTests(TestCase):
r.pw_at,
r.pw_tr,r.pw_an])/r.ftp
-
+
self.hrdata = {
'hrmax':r.max,
'hrut2':r.ut2,
@@ -64,7 +64,7 @@ class PlotTests(TestCase):
@patch('rowers.tasks.FigureCanvas')
def test_ote_plots(self, mocked_rowingdata, mocked_canvas):
w = self.wote
- f1 = 'testdata.csv'[:-4]
+ f1 = 'testdata.csv'[:-4]
timestr = strftime("%Y%m%d-%H%M%S")
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
@@ -72,7 +72,7 @@ class PlotTests(TestCase):
plotnr = 1
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -85,7 +85,7 @@ class PlotTests(TestCase):
plotnr = 1
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -98,7 +98,7 @@ class PlotTests(TestCase):
plotnr = 2
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -111,7 +111,7 @@ class PlotTests(TestCase):
plotnr = 3
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -124,7 +124,7 @@ class PlotTests(TestCase):
plotnr = 4
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -137,7 +137,7 @@ class PlotTests(TestCase):
plotnr = 5
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -150,7 +150,7 @@ class PlotTests(TestCase):
plotnr = 6
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -163,7 +163,7 @@ class PlotTests(TestCase):
plotnr = 7
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -176,7 +176,7 @@ class PlotTests(TestCase):
plotnr = 8
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -189,7 +189,7 @@ class PlotTests(TestCase):
plotnr = 13
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -203,7 +203,7 @@ class PlotTests(TestCase):
@patch('rowers.tasks.FigureCanvas')
def test_chartrequests(self, mocked_rowingdata, mocked_canvas):
opid = encoder.encode_hex(self.wotw.id)
-
+
url = reverse('workout_add_chart_view',
kwargs={'id':opid,
'plotnr':13
@@ -212,7 +212,7 @@ class PlotTests(TestCase):
workout_edit_url = reverse('workout_edit_view',
kwargs={'id':opid})
-
+
login = self.c.login(username='john', password='koeinsloot')
self.assertTrue(login)
@@ -246,12 +246,12 @@ class PlotTests(TestCase):
self.assertEqual(len(i),0)
-
+
@patch('rowers.tasks.rdata')
@patch('rowers.tasks.FigureCanvas')
def test_otw_plots(self, mocked_rowingdata, mocked_canvas):
w = self.wotw
- f1 = 'testdata.csv'[:-4]
+ f1 = 'testdata.csv'[:-4]
timestr = strftime("%Y%m%d-%H%M%S")
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
@@ -259,7 +259,7 @@ class PlotTests(TestCase):
plotnr = 1
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -272,7 +272,7 @@ class PlotTests(TestCase):
plotnr = 1
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -285,7 +285,7 @@ class PlotTests(TestCase):
plotnr = 2
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -298,7 +298,7 @@ class PlotTests(TestCase):
plotnr = 3
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -311,7 +311,7 @@ class PlotTests(TestCase):
plotnr = 4
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -324,7 +324,7 @@ class PlotTests(TestCase):
plotnr = 5
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -337,7 +337,7 @@ class PlotTests(TestCase):
plotnr = 6
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -350,7 +350,7 @@ class PlotTests(TestCase):
plotnr = 7
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -363,7 +363,7 @@ class PlotTests(TestCase):
plotnr = 8
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -376,7 +376,7 @@ class PlotTests(TestCase):
plotnr = 9
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
@@ -389,7 +389,7 @@ class PlotTests(TestCase):
plotnr = 13
if (w.workouttype=='water'):
plotnr = plotnr+3
-
+
res = handle_makeplot(f1,w.csvfilename,
w.name,self.hrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=self.nu,
diff --git a/rowers/tests/test_team.py b/rowers/tests/test_team.py
index 99119a2c..05d16b5a 100644
--- a/rowers/tests/test_team.py
+++ b/rowers/tests/test_team.py
@@ -38,10 +38,10 @@ class TeamTest(TestCase):
for i in range(6):
u = UserFactory(username=usernames[i])
self.users.append(u)
-
+
r = Rower.objects.create(
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
user=u,
@@ -53,7 +53,7 @@ class TeamTest(TestCase):
u.set_password(password)
u.save()
self.user_passwords.append(password)
-
+
workouts = WorkoutFactory.create_batch(5, user=r)
for w in workouts:
@@ -64,7 +64,7 @@ class TeamTest(TestCase):
self.u = self.users[0]
self.password = self.user_passwords[0]
-
+
self.t = TeamFactory(manager=self.u)
# need to set up some requests for testing (they are not good below)
@@ -105,7 +105,7 @@ class TeamTest(TestCase):
self.assertRedirects(response,
expected_url='/rowers/me/teams/'.format(t=self.t.id),
status_code=302,target_status_code=200)
-
+
def test_teamview(self):
login = self.c.login(username=self.u.username, password = self.password)
self.assertTrue(login)
@@ -113,9 +113,9 @@ class TeamTest(TestCase):
url = '/rowers/team/{t}/'.format(t=self.t.id)
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
-
+
def test_teamview_member(self):
-
+
id,comment = add_member(self.t.id,self.users[1].rower)
self.assertEqual(id,self.t.id)
@@ -132,7 +132,7 @@ class TeamTest(TestCase):
login = self.c.login(username=self.users[2].username, password = self.user_passwords[2])
self.assertTrue(login)
-
+
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
@@ -147,11 +147,11 @@ class TeamTest(TestCase):
print(u)
print(response.status_code)
self.assertIn(response.status_code,[200,302])
-
+
login = self.c.login(username=self.users[1].username,
password = self.user_passwords[1])
self.assertTrue(login)
-
+
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
@@ -166,14 +166,14 @@ class TeamTest(TestCase):
print(u)
print(response.status_code)
self.assertIn(response.status_code,[200,302])
-
+
def test_teamsview_manager(self):
url = '/rowers/me/teams/'
login = self.c.login(username=self.u,password=self.password)
self.assertTrue(login)
-
+
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
@@ -190,14 +190,14 @@ class TeamTest(TestCase):
self.assertIn(response.status_code,[200,302])
def test_teamview_member_request(self):
-
+
login = self.c.login(username=self.users[3].username, password = self.user_passwords[3])
self.assertTrue(login)
url = '/rowers/team/{t}/requestmembership/{u}/'.format(
t=self.t.id,
u=self.users[3].id)
-
+
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code, 200)
@@ -226,8 +226,8 @@ class TeamTest(TestCase):
self.assertRedirects(response,
expected_url='/rowers/me/teams/',
status_code=302,target_status_code=200)
-
-
+
+
def test_team_invite_view(self):
login = self.c.login(username=self.u.username, password = self.password)
self.assertTrue(login)
@@ -238,11 +238,11 @@ class TeamTest(TestCase):
'email': self.users[1].email,
'user': u''
}
-
+
response = self.c.post(url, form_data)
self.assertEqual(response.status_code, 200)
-
-@override_settings(TESTING=True)
+
+@override_settings(TESTING=True)
class TeamTestLowLevel(TestCase):
def setUp(self):
redis_connection.publish('tasks','KILL')
@@ -261,10 +261,10 @@ class TeamTestLowLevel(TestCase):
for i in range(6):
u = UserFactory(username=usernames[i])
self.users.append(u)
-
+
r = Rower.objects.create(
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
user=u,
@@ -276,7 +276,7 @@ class TeamTestLowLevel(TestCase):
u.set_password(password)
u.save()
self.user_passwords.append(password)
-
+
workouts = WorkoutFactory.create_batch(5, user=r)
for w in workouts:
@@ -287,7 +287,7 @@ class TeamTestLowLevel(TestCase):
self.u = self.users[0]
self.password = self.user_passwords[0]
-
+
self.t = TeamFactory(manager=self.u)
@@ -353,5 +353,3 @@ class TeamTestLowLevel(TestCase):
# cannot create invite for team you don't manage
id, comment = create_invite(self.t, self.users[3],self.users[4])
self.assertEqual(id,0)
-
-
diff --git a/rowers/tests/test_units.py b/rowers/tests/test_units.py
index 7546603a..95f76243 100644
--- a/rowers/tests/test_units.py
+++ b/rowers/tests/test_units.py
@@ -26,7 +26,7 @@ class ForceUnits(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
@@ -164,7 +164,7 @@ class TestForceUnit(TestCase):
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
+ gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach')
diff --git a/rowers/tests/test_uploads.py b/rowers/tests/test_uploads.py
index aa2ea98c..22f9a4e5 100644
--- a/rowers/tests/test_uploads.py
+++ b/rowers/tests/test_uploads.py
@@ -9,7 +9,7 @@ nu = datetime.datetime.now()
from rowers.views import add_defaultfavorites
-#@pytest.mark.django_db
+#@pytest.mark.django_db
@override_settings(TESTING=True)
class ViewTest(TestCase):
def setUp(self):
@@ -18,13 +18,13 @@ class ViewTest(TestCase):
self.u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
)
add_defaultfavorites(self.r)
-
+
self.nu = datetime.datetime.now()
def test_upload_view_notloggedin(self):
@@ -35,13 +35,13 @@ class ViewTest(TestCase):
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_db)
def test_upload_view_sled(self, mocked_sqlalchemy,mocked_getsmallrowdata_db):
login = self.c.login(username='john',password='koeinsloot')
self.assertTrue(login)
-
+
filename = 'rowers/tests/testdata/testdata.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -70,7 +70,7 @@ class ViewTest(TestCase):
response = self.c.get('/rowers/workout/'+encoded1+'/edit/', form_data, follow=True)
self.assertEqual(response.status_code, 200)
-
+
response = self.c.get('/rowers/workout/'+encoded1+'/histo/', form_data, follow=True)
self.assertEqual(response.status_code, 200)
@@ -108,7 +108,7 @@ class ViewTest(TestCase):
self.assertTrue(form.is_valid())
response = self.c.post('/rowers/workout/'+encoded1+'/edit/', form_data, follow=True)
self.assertEqual(response.status_code, 200)
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
@@ -128,11 +128,11 @@ class ViewTest(TestCase):
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
@patch('rowers.dataprep.create_engine')
def test_upload_view_sled_negativetime(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/tim.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -157,7 +157,7 @@ class ViewTest(TestCase):
response = self.c.post('/rowers/workout/upload/', form_data, follow=True)
-
+
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
@@ -165,9 +165,9 @@ class ViewTest(TestCase):
response = self.c.get('/rowers/workout/'+encoded1+'/', form_data, follow=True)
self.assertEqual(response.status_code, 200)
-
+
f.close()
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:
@@ -175,12 +175,12 @@ class ViewTest(TestCase):
except (FileNotFoundError,OSError):
pass
-
-
+
+
@patch('rowers.dataprep.create_engine')
def test_upload_view_sled_noname(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/testdata.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -216,7 +216,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_logcard(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/logcard.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -245,12 +245,12 @@ class ViewTest(TestCase):
-
+
@patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.TCXParser')
def test_upload_view_TCX_CN(self, mocked_sqlalchemy, mocked_tcx_parser):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/crewnerddata.tcx'
f = open(filename,'rb')
file_data = {'file': f}
@@ -300,7 +300,7 @@ class ViewTest(TestCase):
def test_upload_view_TCX_SpeedCoach2a(self, mocked_sqlalchemy,
mocked_tcx_parser):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/Speedcoach2example.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -337,7 +337,7 @@ class ViewTest(TestCase):
def test_upload_view_TCX_SpeedCoach2b(self, mocked_sqlalchemy,
mocked_tcx_parser):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/Speedcoach2example.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -371,12 +371,12 @@ class ViewTest(TestCase):
- @patch('rowers.dataprep.create_engine')
+ @patch('rowers.dataprep.create_engine')
@patch('rowers.dataprep.TCXParser')
def test_upload_view_TCX_SpeedCoach2c(self, mocked_sqlalchemy,
mocked_tcx_parser):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/speedcoach3test3.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -412,7 +412,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_SpeedCoach2v127(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/SpeedCoach2Linkv1.27.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -449,7 +449,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_SpeedCoach2v127intervals(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/SpeedCoach2Link_interval.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -488,7 +488,7 @@ class ViewTest(TestCase):
def test_upload_view_TCX_NoHR(self, mocked_sqlalchemy,
mocked_tcx_parser):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/NoHR.tcx'
f = open(filename,'rb')
file_data = {'file': f}
@@ -526,7 +526,7 @@ class ViewTest(TestCase):
def test_upload_view_TCX_CN(self, mocked_sqlalchemy,
mocked_tcx_parser):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/rowinginmotionexample.tcx'
f = open(filename,'rb')
file_data = {'file': f}
@@ -559,7 +559,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_RP(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/RP_testdata.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -580,7 +580,7 @@ class ViewTest(TestCase):
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:
@@ -592,7 +592,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_Mystery(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/mystery.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -613,7 +613,7 @@ class ViewTest(TestCase):
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:
@@ -625,7 +625,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_RP_interval(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/RP_interval.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -646,7 +646,7 @@ class ViewTest(TestCase):
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:
@@ -655,11 +655,11 @@ class ViewTest(TestCase):
pass
-
+
@patch('rowers.dataprep.create_engine')
def test_upload_view_sled_desktop(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/painsled_desktop_example.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -680,7 +680,7 @@ class ViewTest(TestCase):
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:
@@ -691,7 +691,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_sled_ergdata(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/ergdata_example.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -712,7 +712,7 @@ class ViewTest(TestCase):
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:
@@ -723,7 +723,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_sled_boatcoach(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/boatcoach.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -744,7 +744,7 @@ class ViewTest(TestCase):
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:
@@ -755,7 +755,7 @@ class ViewTest(TestCase):
@patch('rowers.dataprep.create_engine')
def test_upload_view_sled_ergstick(self, mocked_sqlalchemy):
self.c.login(username='john',password='koeinsloot')
-
+
filename = 'rowers/tests/testdata/ergstick.csv'
f = open(filename,'rb')
file_data = {'file': f}
@@ -776,11 +776,10 @@ class ViewTest(TestCase):
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200)
-
+
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:
os.remove(f_to_be_deleted+'.gz')
except (FileNotFoundError,OSError):
pass
-
diff --git a/rowers/tests/test_user.py b/rowers/tests/test_user.py
index 65dd006c..f5271bfb 100644
--- a/rowers/tests/test_user.py
+++ b/rowers/tests/test_user.py
@@ -18,13 +18,13 @@ class UserMiddleWareTest(TestCase):
'sander@ds.ds',
'koeinsloot')
self.r = Rower.objects.create(user=u)
-
+
self.c = Client()
self.c.login(username='john',password='koeinsloot')
self.nu = datetime.datetime.now()
filename = 'rowers/tests/testdata/testdata.csv'
-
+
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
hrut1=self.r.ut1,hrat=self.r.at,
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
@@ -33,7 +33,7 @@ class UserMiddleWareTest(TestCase):
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
-
+
hours = int(totaltime/3600.)
minutes = int((totaltime - 3600.*hours)/60.)
seconds = int(totaltime - 3600.*hours - 60.*minutes)
@@ -53,13 +53,13 @@ class UserMiddleWareTest(TestCase):
duration=duration,distance=totaldist,
csvfilename=filename
)
-
-
+
+
def test_middleware(self):
response = self.c.get('/rowers/list-workouts',follow=True)
self.assertEqual(response.status_code,200)
-
-
+
+
class UserTestsNoRower(TestCase):
def setUp(self):
u = User.objects.create_user('john',
@@ -69,19 +69,19 @@ class UserTestsNoRower(TestCase):
self.c = Client()
self.c.login(username='john',password='koeinsloot')
-
+
def test_user(self):
response = self.c.get('/rowers/list-workouts',follow=True)
self.assertEqual(response.status_code,200)
-
+
class UserPreferencesTest(TestCase):
def setUp(self):
self.u = UserFactory()
-
+
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
- gdproptin=True,
- gdproptindate=timezone.now(),
+ gdproptin=True,surveydone=Trueoptin=True,
+ gdproptin=True,surveydone=Trueoptindate=timezone.now(),
rowerplan='coach')
self.c = Client()
@@ -123,14 +123,14 @@ class UserPreferencesTest(TestCase):
userform = UserForm(form_data,instance=self.u)
self.assertTrue(form.is_valid())
self.assertTrue(userform.is_valid())
-
+
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
response = self.c.get(url)
self.assertEqual(response.status_code,200)
-
-
+
+
def test_exportsettings(self):
login = self.c.login(username=self.u.username,password=self.password)
self.assertTrue(login)
@@ -149,15 +149,15 @@ class UserPreferencesTest(TestCase):
'sporttracks_auto_export':False,
'strava_auto_export':False,
'strava_auto_import':False,
- 'trainingpeaks_auto_export':False,
+ 'trainingpeaks_auto_export':False,
}
form = RowerExportForm(form_data)
self.assertTrue(form.is_valid())
-
+
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
-
+
def test_zones_workflowsettings(self):
login = self.c.login(username=self.u.username,password=self.password)
@@ -174,7 +174,7 @@ class UserPreferencesTest(TestCase):
u'middlepanel-7-panel':u'None',
u'middlepanel-8-panel':u'None',
u'middlepanel-INITIAL_FORMS':'8',
- u'middlepanel-MAX_NUM_FORMS':u'1000',
+ u'middlepanel-MAX_NUM_FORMS':u'1000',
u'middlepanel-MIN_NUM_FORMS':u'0',
u'middlepanel-TOTAL_FORMS':u'8',
}
@@ -182,7 +182,7 @@ class UserPreferencesTest(TestCase):
MiddlePanelFormSet = formset_factory(WorkFlowMiddlePanelElement,extra=1)
middlepanel_formset = MiddlePanelFormSet(post_data,prefix='middlepanel')
self.assertTrue(middlepanel_formset.is_valid())
-
+
url = '/rowers/me/workflowconfig2/'
response = self.c.get(url)
@@ -190,7 +190,7 @@ class UserPreferencesTest(TestCase):
response = self.c.post(url,post_data)
self.assertEqual(response.status_code,200)
-
+
def test_zones_preferences(self):
login = self.c.login(username=self.u.username,password=self.password)
self.assertTrue(login)
@@ -209,7 +209,7 @@ class UserPreferencesTest(TestCase):
self.assertTrue(form.is_valid())
url = '/rowers/me/preferences/'
-
+
response = self.c.get(url)
self.assertEqual(response.status_code,200)
@@ -228,7 +228,7 @@ class UserPreferencesTest(TestCase):
response = self.c.post(url,form_data,follow=True)
self.assertEqual(response.status_code,200)
-
+
form_data = {
'pw_ut2':150,
'pw_ut1':160,
@@ -245,5 +245,3 @@ class UserPreferencesTest(TestCase):
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
-
-
diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py
index 8814688e..c1120f33 100644
--- a/rowsandall_app/settings.py
+++ b/rowsandall_app/settings.py
@@ -97,8 +97,8 @@ MIDDLEWARE = [
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'tz_detect.middleware.TimezoneMiddleware',
- 'rowers.middleware.GDPRMiddleWare',
'rowers.middleware.SurveyMiddleWare',
+ 'rowers.middleware.GDPRMiddleWare',
'rowers.middleware.PowerTimeFitnessMetricMiddleWare',
'rowers.middleware.RowerPlanMiddleWare',
]