diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 28fac76e..d8d0c035 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -6584,7 +6584,7 @@ def get_zones_report(rower,startdate,enddate,trainingzones='hr'): df = dataprep.getsmallrowdata_db(columns,ids=ids) try: df['deltat'] = df['time'].diff().clip(lower=0) - except KeyError: + except KeyError: # pragma: no cover pass df = dataprep.clean_df_stats(df,workstrokesonly=False, @@ -6611,7 +6611,7 @@ def get_zones_report(rower,startdate,enddate,trainingzones='hr'): if totaldays<=30: dates.append(dd) dates_sorting.append(dd2) - elif totaldays<=121: + elif totaldays<=121: # pragma: no cover dates.append(dd4) dates_sorting.append(dd4) else: # pragma: no cover @@ -6632,7 +6632,7 @@ def get_zones_report(rower,startdate,enddate,trainingzones='hr'): if totaldays<=30: dates.append(dd) dates_sorting.append(dd2) - elif totaldays<=121: + elif totaldays<=121: # pragma: no cover dates.append(dd4) dates_sorting.append(dd4) else: # pragma: no cover @@ -6653,7 +6653,7 @@ def get_zones_report(rower,startdate,enddate,trainingzones='hr'): if totaldays<=30: dates.append(dd) dates_sorting.append(dd2) - elif totaldays<=121: + elif totaldays<=121: # pragma: no cover dates.append(dd4) dates_sorting.append(dd4) else: # pragma: no cover @@ -6674,7 +6674,7 @@ def get_zones_report(rower,startdate,enddate,trainingzones='hr'): if totaldays<=30: dates.append(dd) dates_sorting.append(dd2) - elif totaldays<=121: + elif totaldays<=121: # pragma: no cover dates.append(dd4) dates_sorting.append(dd4) else: # pragma: no cover @@ -6695,7 +6695,7 @@ def get_zones_report(rower,startdate,enddate,trainingzones='hr'): if totaldays<=30: dates.append(dd) dates_sorting.append(dd2) - elif totaldays<=121: + elif totaldays<=121: # pragma: no cover dates.append(dd4) dates_sorting.append(dd4) else: # pragma: no cover @@ -6716,7 +6716,7 @@ def get_zones_report(rower,startdate,enddate,trainingzones='hr'): if totaldays<=30: dates.append(dd) dates_sorting.append(dd2) - elif totaldays<=121: + elif totaldays<=121: # pragma: no cover dates.append(dd4) dates_sorting.append(dd4) else: # pragma: no cover @@ -6745,7 +6745,7 @@ def get_zones_report(rower,startdate,enddate,trainingzones='hr'): if totaldays <= 30: dates.append(d.strftime('%m/%d')) dates_sorting.append(d.strftime('%Y/%m/%d')) - elif totaldays<=121: + elif totaldays<=121: # pragma: no cover dd4 = arrow.get(d).isocalendar()[1] dates.append(dd4) dates_sorting.append(dd4) diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 60e82e56..e57d9d2d 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -359,6 +359,8 @@ def get_todays_micro(plan,thedate=date.today()): enddate__gte = thedate ) + + if thismacro: thismeso = TrainingMesoCycle.objects.filter( plan=thismacro[0], @@ -366,6 +368,8 @@ def get_todays_micro(plan,thedate=date.today()): enddate__gte = thedate ) + + if thismeso: thismicro = TrainingMicroCycle.objects.filter( plan=thismeso[0], diff --git a/rowers/tests/test_analysis.py b/rowers/tests/test_analysis.py index 2d880509..f12a469b 100644 --- a/rowers/tests/test_analysis.py +++ b/rowers/tests/test_analysis.py @@ -1107,6 +1107,44 @@ class MarkerPerformanceTest(TestCase): self.assertRedirects(response, expected_url=expected_url, status_code=302,target_status_code=200) + @patch('rowers.dataprep.getsmallrowdata_db', side_effect=mocked_getsmallrowdata_uh) + def test_trainingzones_view(self,mocked_getsmallrowdata_db): + login = self.c.login(username=self.u.username,password=self.password) + self.assertTrue(login) + + startdate = (self.user_workouts[0].startdatetime-datetime.timedelta(days=3)).date() + enddate = (self.user_workouts[0].startdatetime+datetime.timedelta(days=3)).date() + zones = 'hr' + + url = reverse('trainingzones_view') + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + url = reverse('trainingzones_view_data') + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + url += '?startdate={startdate}&enddate={enddate}&zones={zones}'.format( + startdate = startdate.strftime("%Y-%m-%d"), + enddate = enddate.strftime("%Y-%m-%d"), + zones=zones, + ) + + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + zones = 'power' + url = reverse('trainingzones_view_data') + url += '?startdate={startdate}&enddate={enddate}&zones={zones}'.format( + startdate = startdate.strftime("%Y-%m-%d"), + enddate = enddate.strftime("%Y-%m-%d"), + zones=zones, + ) + + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + @patch('rowers.dataprep.create_engine') @patch('rowers.dataprep.getsmallrowdata_db') def test_performancemanager_view(self, mocked_sqlalchemy, diff --git a/rowers/tests/test_aworkouts.py b/rowers/tests/test_aworkouts.py index 95c46902..f145156f 100644 --- a/rowers/tests/test_aworkouts.py +++ b/rowers/tests/test_aworkouts.py @@ -820,6 +820,13 @@ class WorkoutViewTest(TestCase): response = self.c.get(url) self.assertEqual(response.status_code,200) + form_data = { + 'ruptures':'ruptures', + } + + response = self.c.post(url,form_data) + self.assertEqual(response.status_code,200) + form_data = { 'intervalstring':'4x2min/1min', } diff --git a/rowers/tests/test_unit_tests.py b/rowers/tests/test_unit_tests.py index 9fd5c5a1..0bf42abb 100644 --- a/rowers/tests/test_unit_tests.py +++ b/rowers/tests/test_unit_tests.py @@ -232,6 +232,7 @@ class PlannedSessionTests(TestCase): elif not sundays: sundays = [cycle.enddate] + for i in range(len(sundays)): if i==0: monday = cycle.startdate @@ -239,6 +240,7 @@ class PlannedSessionTests(TestCase): monday = sundays[i]-datetime.timedelta(days=6) if monday < cycle.startdate: monday = cycle.startdate + nextsunday = sundays[i] diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py index df3b23a4..6fea37d8 100644 --- a/rowers/views/analysisviews.py +++ b/rowers/views/analysisviews.py @@ -1067,7 +1067,7 @@ def trainingzones_view(request,userid=0,mode='rower', form = TrainingZonesForm() zones = 'hr' - if request.method == 'POST': + if request.method == 'POST': # pragma: no cover form = TrainingZonesForm(request.POST) if form.is_valid(): startdate = form.cleaned_data['startdate'] @@ -1116,10 +1116,11 @@ def trainingzones_view_data(request,userid=0): if request.GET.get('startdate'): startdate = datetime.datetime.strptime(request.GET.get('startdate'),"%Y-%m-%d") + startdate = arrow.get(startdate).datetime if request.GET.get('enddate'): enddate = datetime.datetime.strptime(request.GET.get('enddate'),"%Y-%m-%d") - + enddate = arrow.get(enddate).datetime data = get_zones_report(r,startdate,enddate,trainingzones=zones) diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 4fb21bef..34b50c72 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -4915,7 +4915,7 @@ def workout_upload_api(request): w.timezone = timezone w.save() - + if make_plot: # pragma: no cover @@ -6171,7 +6171,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" try: rowdata.updateinterval_string(s) - except: + except: # pragma: no cover messages.error(request,"Nope, you were not lucky") intervalstats = rowdata.allstats()