diff --git a/rowers/tasks.py b/rowers/tasks.py index 38df2741..c6dbc1d5 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -2806,7 +2806,7 @@ def handle_update_wps(rid,types,ids,mode,debug=False,**kwargs): return 0 try: wps_median = int(df.loc[mask,'driveenergy'].median()) - except ValueError: + except ValueError: # pragma: no cover return 0 if mode == 'water': @@ -3029,7 +3029,7 @@ def df_from_summary(data): weightclass = data['weight_class'] try: title = data['name'] - except KeyError: + except KeyError: # pragma: no cover title = "" try: t = data['comments'].split('\n', 1)[0] @@ -3049,7 +3049,10 @@ def df_from_summary(data): times = [0] distances = [0] spms = [splits[0]['stroke_rate']] - hrs = [splits[0]['heart_rate']['average']] + try: + hrs = [splits[0]['heart_rate']['average']] + except KeyError: # pragma: no cover + hrs = [0] for split in splits: time += split['time']/10. @@ -3057,7 +3060,10 @@ def df_from_summary(data): times.append(time) distances.append(elapsed_distance) spms.append(split['stroke_rate']) - hrs.append(split['heart_rate']['average']) + try: + hrs.append(split['heart_rate']['average']) + except KeyError: # pragma: no cover + hrs.append(0) df = pd.DataFrame({ 'TimeStamp (sec)': times, @@ -3090,7 +3096,7 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone try: has_strokedata = data['stroke_data'] - except KeyError: + except KeyError: # pragma: no cover has_strokedata = True @@ -3146,7 +3152,7 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone dologging('debuglog.log',s.text) has_strokedata = False - if not has_strokedata: + if not has_strokedata: # pragma: no cover df = df_from_summary(data) else: dologging('debuglog.log',json.dumps(s.json())) diff --git a/rowers/tests/test_imports.py b/rowers/tests/test_imports.py index 6c5b7f90..d81d07e7 100644 --- a/rowers/tests/test_imports.py +++ b/rowers/tests/test_imports.py @@ -21,6 +21,7 @@ import json import rowers.utils as utils + from django.db import transaction import rowers.garmin_stuff as gs @@ -342,6 +343,9 @@ class C2Objects(DjangoTestCase): self.assertEqual(str(timezone),'America/Los_Angeles') + df = tasks.df_from_summary(data) + self.assertEqual(len(df),8) + got = arrow.get(startdatetime).isoformat() want = arrow.get('2021-05-23 09:11:37.100000-07:00').isoformat()