Private
Public Access
1
0

adding tests related to planviews

This commit is contained in:
Sander Roosendaal
2021-04-19 14:10:19 +02:00
parent ed5af7d8b7
commit c494fdca2c
5 changed files with 278 additions and 103 deletions

View File

@@ -25,9 +25,9 @@ def plannedsession_comment_view(request,id=0,userid=0):
comment = cd['comment']
comment = bleach.clean(comment)
try:
if isinstance(comment,unicode):
if isinstance(comment,unicode): # pragma: no cover
comment = comment.encode('utf8')
elif isinstance(comment, str):
elif isinstance(comment, str): # pragma: no cover
comment = comment.decode('utf8')
except:
pass
@@ -45,13 +45,13 @@ def plannedsession_comment_view(request,id=0,userid=0):
comment = comment,
url = url,
)
if request.user != manager:
if request.user != manager: # pragma: no cover
a_messages.info(r.user,message.encode('ascii','ignore'))
sessiontype = 'training session'
if ps.sessiontype == 'race':
if ps.sessiontype == 'race': # pragma: no cover
sessiontype = 'online virtual race'
elif ps.sessiontype == 'indoorrace':
elif ps.sessiontype == 'indoorrace': # pragma: no cover
sessiontype = 'indoor online virtual race'
res = myqueue(queuehigh,
@@ -67,14 +67,14 @@ def plannedsession_comment_view(request,id=0,userid=0):
)
commenters = {oc.user for oc in comments if oc.notification}
if ps.sessiontype=='race':
if ps.sessiontype=='race': # pragma: no cover
registrations = VirtualRaceResult.objects.filter(
race__id=ps.id,
emailnotifications=True)
ids = [rg.userid for rg in registrations]
rwrs = Rower.objects.filter(id__in= ids)
rowers = {u.user for u in rwrs}
elif ps.sessiontype=='indoorrace':
elif ps.sessiontype=='indoorrace': # pragma: no cover
registrations = IndoorVirtualRaceResult.objects.filter(
race__id=ps.id,
emailnotifications=True)
@@ -87,9 +87,9 @@ def plannedsession_comment_view(request,id=0,userid=0):
for u in commenters:
try:
a_messages.info(u,message)
except ValueError:
except ValueError: # pragma: no cover
pass
if u != request.user and u != r.user:
if u != request.user and u != r.user: # pragma: no cover
ocr = Rower.objects.get(user=u)
res = myqueue(queue,
handle_sendemailnewresponse,
@@ -106,7 +106,7 @@ def plannedsession_comment_view(request,id=0,userid=0):
sessiontype = sessiontype,
commentlink = url
)
if ps.sessiontype in ['race','indoorrace']:
if ps.sessiontype in ['race','indoorrace']: # pragma: no cover
followers = VirtualRaceFollower.objects.filter(race__id=ps.id)
for follower in followers:
othername = ''
@@ -133,7 +133,7 @@ def plannedsession_comment_view(request,id=0,userid=0):
rower = getrower(request.user)
if ps.sessiontype in ['race','indoorrace']:
if ps.sessiontype in ['race','indoorrace']: # pragma: no cover
breadcrumbs = [
{
'url':reverse('virtualevents_view'),
@@ -209,12 +209,14 @@ def plannedsession_message_view(request,id=0,userid=0):
message,
)
url = reverse('plannedsession_view',kwargs={'id':ps.id})
if ps.sessiontype in ['race','indoorrace']: # pragma: no cover
url = reverse('virtualevent_view',kwargs={'id':ps.id})
url = reverse('virtualevent_view',kwargs={'id':ps.id})
return HttpResponseRedirect(url)
if ps.sessiontype in ['race','indoorrace']:
if ps.sessiontype in ['race','indoorrace']: # pragma: no cover
breadcrumbs = [
{
'url':reverse('virtualevents_view'),
@@ -274,7 +276,7 @@ def plannedsession_multiclone_view(
startdate,enddate = get_dates_timeperiod(request)
teamid = get_team(request)
if request.method == 'POST' and 'daterange' in request.POST:
if request.method == 'POST' and 'daterange' in request.POST: # pragma: no cover
dateform = DateRangeForm(request.POST)
if dateform.is_valid():
startdate = dateform.cleaned_data['startdate']
@@ -337,7 +339,7 @@ def plannedsession_multiclone_view(
"startdate","preferreddate","enddate").exclude(
sessiontype='race')
if teamid:
if teamid: # pragma: no cover
sps = sps.filter(team__in=[teamid])
try:
team = Team.objects.get(id=teamid)
@@ -349,7 +351,7 @@ def plannedsession_multiclone_view(
team = None
query = request.GET.get('q')
if query:
if query: # pragma: no cover
query_list = query.split()
sps = sps.filter(
reduce(operator.and_,
@@ -390,7 +392,7 @@ def plannedsession_multiclone_view(
if Team.objects.filter(manager=request.user).count()>=1:
teamform = RowerTeamForm(request.user)
if teamid:
if teamid: # pragma: no cover
teamform = RowerTeamForm(request.user,initial={'team':teamid})
else:
teamform = None
@@ -422,7 +424,7 @@ def template_share_view(request,id=0,userid=0):
if ps.can_be_shared:
ps.is_public = True
ps.save()
else:
else: # pragma: no cover
messages.error(request,'This planned session comes from a third party and cannot be shared')
return HttpResponseRedirect(reverse(template_library_view))
@@ -471,7 +473,7 @@ def template_library_view(request,userid=0):
alltags = uniqify(alltags)
tag = request.GET.get('tag')
if tag:
if tag: # pragma: no cover
tags = [tag]
templates = templates.filter(tags__name__in=tags).distinct()
@@ -539,11 +541,11 @@ def plannedsession_create_view(request,
})
if '_continue' in request.POST:
if '_continue' in request.POST: # pragma: no cover
url = reverse('plannedsession_edit_view',kwargs={
'id':ps.id,
})
elif '_addanother' in request.POST:
elif '_addanother' in request.POST: # pragma: no cover
url = reverse('plannedsession_create_view',kwargs={'userid':userid})
url = url+'?when='+timeperiod
@@ -551,7 +553,7 @@ def plannedsession_create_view(request,
return HttpResponseRedirect(url)
else:
if 'fstartdate' in request.session:
if 'fstartdate' in request.session: # pragma: no cover
try:
fstartdate = arrow.get(request.session['fstartdate']).date()
except KeyError:
@@ -586,7 +588,7 @@ def plannedsession_create_view(request,
preferreddate = startdate.date()
except AttributeError:
preferreddate = startdate
if preferreddate < timezone.now().date():
if preferreddate < timezone.now().date(): # pragma: no cover
preferreddate = timezone.now().date()
try:
@@ -594,7 +596,7 @@ def plannedsession_create_view(request,
except AttributeError:
pass
if preferreddate > enddate:
if preferreddate > enddate: # pragma: no cover
preferreddate = enddate
forminitial = {
@@ -626,7 +628,7 @@ def plannedsession_create_view(request,
sessiontemplates = sessiontemplates.order_by("name")
alltags = []
for t in sessiontemplates:
for t in sessiontemplates: # pragma: no cover
tags = t.tags.all()
for tag in tags:
alltags.append(tag)
@@ -634,7 +636,7 @@ def plannedsession_create_view(request,
alltags = uniqify(alltags)
tag = request.GET.get('tag')
if tag:
if tag: # pragma: no cover
tags = [tag]
sessiontemplates = sessiontemplates.filter(tags__name__in=tags).distinct()
@@ -709,11 +711,11 @@ def plannedsession_createtemplate_view(request,
url = reverse('template_library_view')
if '_continue' in request.POST:
if '_continue' in request.POST: # pragma: no cover
url = reverse('plannedsession_templateedit_view',kwargs={
'id':ps.id,
})
elif '_addanother' in request.POST:
elif '_addanother' in request.POST: # pragma: no cover
url = reverse('plannedsession_createtemplate_view')
return HttpResponseRedirect(url)
@@ -733,7 +735,7 @@ def plannedsession_createtemplate_view(request,
sessiontemplates = sessiontemplates.order_by("name")
alltags = []
for t in sessiontemplates:
for t in sessiontemplates: # pragma: no cover
tags = t.tags.all()
for tag in tags:
alltags.append(tag)
@@ -806,7 +808,7 @@ def plannedsession_multicreate_view(request,
).order_by("startdate","preferreddate","enddate").exclude(
sessiontype='race')
if teamid:
if teamid: # pragma: no cover
qset = qset.filter(team__in=[teamid])
try:
team = Team.objects.get(id=teamid)
@@ -844,10 +846,10 @@ def plannedsession_multicreate_view(request,
for ps in instances:
ps.save()
add_rower_session(r,ps)
if team:
if team: # pragma: no cover
add_team_session(team,ps)
messages.info(request,"Saved changes for Planned Session "+str(ps))
for obj in ps_formset.deleted_objects:
for obj in ps_formset.deleted_objects: # pragma: no cover
messages.info(request,"Deleted Planned Session "+str(obj))
obj.delete()
@@ -862,7 +864,7 @@ def plannedsession_multicreate_view(request,
enddatestring = enddate.strftime('%Y-%m-%d')
url += '?when='+startdatestring+'/'+enddatestring
if team:
if team: # pragma: no cover
url += '&team={teamid}'.format(teamid=team.id)
return HttpResponseRedirect(url)
@@ -888,7 +890,7 @@ def plannedsession_multicreate_view(request,
if Team.objects.filter(manager=request.user).count()>=1:
teamform = RowerTeamForm(request.user)
if teamid:
if teamid: # pragma: no cover
teamform = RowerTeamForm(request.user,initial={'team':teamid})
else:
teamform = None
@@ -975,11 +977,11 @@ def plannedsession_teamcreate_view(request,
'userid':userid,
})
if '_continue' in request.POST:
if '_continue' in request.POST: # pragma: no cover
url = reverse('plannedsession_edit_view',kwargs={
'id':ps.id,
})
elif '_addanother' in request.POST:
elif '_addanother' in request.POST: # pragma: no cover
url = reverse('plannedsession_teamcreate_view',kwargs={'userid':userid})
url = url+'?when='+timeperiod
@@ -995,7 +997,7 @@ def plannedsession_teamcreate_view(request,
#next = request.GET.get('next', url)
#return HttpResponseRedirect(next)
else:
else: # pragma: no cover
timeperiod = startdate.strftime('%Y-%m-%d')+'/'+enddate.strftime('%Y-%m-%d')
breadcrumbs = [
{
@@ -1035,7 +1037,7 @@ def plannedsession_teamcreate_view(request,
'preferreddate':startdate,
}
if 'teams' in request.session:
if 'teams' in request.session: # pragma: no cover
teams = request.session['teams']
theteams = Team.objects.filter(id__in=teams)
initialteam = {
@@ -1113,7 +1115,7 @@ def plannedsession_teamedit_view(request,
startdate__lte = startdate,
rowers = r,
enddate__gte = enddate)[0]
except IndexError:
except IndexError: # pragma: no cover
trainingplan = None
sps = []
@@ -1138,11 +1140,10 @@ def plannedsession_teamedit_view(request,
)
sessionrowerform = PlannedSessionTeamMemberForm(ps,request.POST)
if sessioncreateform.is_valid():
cd = sessioncreateform.cleaned_data
if cd['sessionunit'] == 'min':
if cd['sessionunit'] == 'min': # pragma: no cover
cd['sessionmode'] = 'time'
elif cd['sessionunit'] in ['km','m']:
cd['sessionmode'] = 'distance'
@@ -1152,7 +1153,7 @@ def plannedsession_teamedit_view(request,
if res:
messages.info(request,message)
else:
else: # pragma: no cover
messages.error(request,message)
@@ -1166,14 +1167,15 @@ def plannedsession_teamedit_view(request,
rs = Rower.objects.filter(team__in=[team])
for r in rs:
add_rower_session(r,ps)
else:
else: # pragma: no cover
remove_team_session(team,ps)
else:
else: # pragma: no cover
selectedteams = []
for team in teams:
remove_team_session(team,ps)
if sessionrowerform.is_valid():
cd = sessionrowerform.cleaned_data
selectedrowers = cd['members']
@@ -1279,7 +1281,7 @@ def plannedsessions_coach_view(request,
trainingplan = None
if teamid != 0:
if teamid != 0:# pragma: no cover
try:
theteam = Team.objects.get(id=teamid)
except Team.DoesNotExist:
@@ -1297,7 +1299,7 @@ def plannedsessions_coach_view(request,
if therower.rowerplan != 'freecoach':
rowers = [therower]
else:
else:# pragma: no cover
rowers = []
for ps in sps:
@@ -1356,7 +1358,7 @@ def plannedsessions_coach_view(request,
})
ttemplate = 'plannedsessionscoach.html'
if len(rowers) > 5 and len(rowers) > len(sps):
if len(rowers) > 5 and len(rowers) > len(sps): # pragma: no cover
ttemplate = 'plannedsessionscoach2.html'
@@ -1386,16 +1388,16 @@ def plannedsessions_view(request,
try:
r = getrequestplanrower(request,userid=userid)
except PermissionDenied:
except PermissionDenied: # pragma: no cover
r = request.user.rower
if startdatestring:
if startdatestring: # pragma: no cover
try:
startdate = iso8601.parse_date(startdatestring)
except ParseError:
pass
if enddatestring:
if enddatestring: # pragma: no cover
try:
enddate = iso8601.parse_date(enddatestring)
except ParseError:
@@ -1454,7 +1456,7 @@ def plannedsessions_view(request,
tss = hrtss
totals['distance'] += w.distance
totals['time'] += timefield_to_seconds_duration(w.duration)
if w.plannedsession:
if w.plannedsession: # pragma: no cover
if w.plannedsession.sessionmode == 'distance':
totals['actualdistance'] += w.distance
elif w.plannedsession.sessionmode == 'time':
@@ -1464,7 +1466,7 @@ def plannedsessions_view(request,
elif w.plannedsession.sessionmode == 'TRIMP':
totals['actualtrimp'] += thetrimp
if not sps and request.user.rower.rowerplan == 'basic':
if not sps and request.user.rower.rowerplan == 'basic': # pragma: no cover
messages.error(request,
"You must purchase Coach or Self-coach plans or be part of a team to get planned sessions")
@@ -1479,9 +1481,9 @@ def plannedsessions_view(request,
totals['planneddistance'] += ps.sessionvalue
elif ps.sessionmode == 'time':
totals['plannedtime'] += ps.sessionvalue
elif ps.sessionmode == 'rScore':
elif ps.sessionmode == 'rScore': # pragma: no cover
totals['plannedrscore'] += ps.sessionvalue
elif ps.sessionmode == 'TRIMP':
elif ps.sessionmode == 'TRIMP': # pragma: no cover
totals['plannedtrimp'] += ps.sessionvalue
totals['time'] = int(totals['time']/60.)
@@ -1572,7 +1574,7 @@ def plannedsessions_manage_view(request,userid=0,
initialsession=0):
is_ajax = False
if request.is_ajax():
if request.is_ajax(): # pragma: no cover
is_ajax = True
r = getrequestrower(request,userid=userid)
@@ -1614,7 +1616,7 @@ def plannedsessions_manage_view(request,userid=0,
linkedworkouts = []
for w in ws:
if w.plannedsession is not None:
if w.plannedsession is not None: # pragma: no cover
linkedworkouts.append(w.id)
plannedsessionstuple = []
@@ -1672,7 +1674,7 @@ def plannedsessions_manage_view(request,userid=0,
w_form = WorkoutSessionSelectForm(workoutdata=workoutdata)
if is_ajax:
if is_ajax: # pragma: no cover
ajax_workouts = []
for id,name in workoutdata['choices']:
ininitial = id in initialworkouts
@@ -1746,7 +1748,7 @@ def plannedsession_clone_view(request,id=0,userid=0):
startdate__lte = startdate,
rowers = r,
enddate__gte = enddate)[0]
except IndexError:
except IndexError: # pragma: no cover
trainingplan = None
ps = get_object_or_404(PlannedSession,pk=id)
@@ -1773,7 +1775,7 @@ def plannedsession_clone_view(request,id=0,userid=0):
if rowers:
for rower in rowers:
add_rower_session(rower,ps)
else:
else: # pragma: no cover
add_rower_session(r,ps)
for team in teams:
add_team_session(team,ps)
@@ -2010,7 +2012,7 @@ def plannedsession_edit_view(request,id=0,userid=0):
startdate__lte = startdate,
rowers = r,
enddate__gte = enddate)[0]
except IndexError:
except IndexError: # pragma: no cover
trainingplan = None
ps = get_object_or_404(PlannedSession,pk=id)
@@ -2147,13 +2149,13 @@ def plannedsession_view(request,id=0,userid=0):
r = getrequestplanrower(request,userid=userid)
ps = get_object_or_404(PlannedSession,pk=id)
if ps.steps is not None:
if ps.steps is not None: # pragma: no cover
jsons = ps.steps
else:
jsons = {}
try:
try: # pragma: no cover
r = VirtualRace.objects.get(id=ps.id)
url = reverse('virtualevent_view',
kwargs={'id':ps.id}
@@ -2162,7 +2164,7 @@ def plannedsession_view(request,id=0,userid=0):
except VirtualRace.DoesNotExist:
pass
if ps.course:
if ps.course: # pragma: no cover
coursescript,coursediv = course_map(ps.course)
else:
coursescript = ''
@@ -2208,7 +2210,7 @@ def plannedsession_view(request,id=0,userid=0):
'sessionresult':0,
'workoutid':w.id,
}
if ps.sessiontype == 'coursetest':
if ps.sessiontype == 'coursetest': # pragma: no cover
vs = CourseTestResult.objects.filter(plannedsession=ps,
workoutid=w.id)
@@ -2257,7 +2259,7 @@ def plannedsession_view(request,id=0,userid=0):
if ps.sessiontype == 'coursetest':
ranking = sorted(ranking, key=lambda k: k['time'])
if ps.sessiontype == 'fastest_distance':
if ps.sessiontype == 'fastest_distance': # pragma: no cover
vs = CourseTestResult.objects.filter(plannedsession=ps)
if vs:
@@ -2293,7 +2295,7 @@ def plannedsession_view(request,id=0,userid=0):
pass
ranking = sorted(ranking, key=lambda k: k['time'])
if ps.sessiontype == 'fastest_time':
if ps.sessiontype == 'fastest_time': # pragma: no cover
vs = CourseTestResult.objects.filter(plannedsession=ps)
if vs:
@@ -2363,7 +2365,7 @@ def plannedsession_view(request,id=0,userid=0):
comments = PlannedSessionComment.objects.filter(plannedsession=ps).order_by("created")
steps = ''
if ps.steps:
if ps.steps: # pragma: no cover
d = ps.steps
steps = ps_dict_get_description_html(d,short=False)
@@ -2407,7 +2409,7 @@ class PlannedSessionDelete(DeleteView):
def get_context_data(self, **kwargs):
context = super(PlannedSessionDelete,self).get_context_data(**kwargs)
if 'userid' in kwargs:
if 'userid' in kwargs: # pragma: no cover
userid = kwargs['userid']
else:
userid = 0
@@ -2455,7 +2457,7 @@ class PlannedSessionDelete(DeleteView):
def get_success_url(self):
ws = Workout.objects.filter(plannedsession=self.object)
for w in ws:
for w in ws: # pragma: no cover
w.plannedsession = None
w.save()
@@ -2468,7 +2470,7 @@ class PlannedSessionDelete(DeleteView):
def get_object(self, *args, **kwargs):
obj = super(PlannedSessionDelete, self).get_object(*args, **kwargs)
if not can_delete_session(self.request.user,obj):
if not can_delete_session(self.request.user,obj): # pragma: no cover
raise PermissionDenied('You are not allowed to delete this planned session')
return obj