diff --git a/rowers/integrations/nk.py b/rowers/integrations/nk.py index 25d14bc6..466370b3 100644 --- a/rowers/integrations/nk.py +++ b/rowers/integrations/nk.py @@ -158,7 +158,10 @@ class NKIntegration(SyncIntegration): # need to unify workout list def get_workout_list(self, *args, **kwargs) -> list: - _ = self.open() + try: + _ = self.open() + except NoTokenError: + return [] r = self.rower before = kwargs.get('before',0) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index cf7151b4..11423ffa 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -2747,8 +2747,11 @@ def leaflet_chart_compare(course, workoutids, labeldict={}, startenddict={}): df.fillna(method='bfill', axis=0, inplace=True) df.fillna(method='ffill', axis=0, inplace=True) - lat = df['lat'] - lon = df['lon'] + try: + lat = df['lat'] + lon = df['lon'] + except KeyError: + return [0, "invalid coordinate data"] if lat.empty or lon.empty: # pragma: no cover return [0, "invalid coordinate data"] diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index 593a4e9c..6d12ff71 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -83,40 +83,39 @@ class Command(BaseCommand): dologging('processemail.log', ''.join('!! ' + line for line in lines)) # Concept2 - try: - rowers = Rower.objects.filter(c2_auto_import=True) - for r in rowers: # pragma: no cover + rowers = Rower.objects.filter(c2_auto_import=True) + for r in rowers: # pragma: no cover + try: if user_is_not_basic(r.user) or user_is_coachee(r.user): c2integration = C2Integration(r.user) _ = c2integration.get_workouts() + except: # pragma: no cover + exc_type, exc_value, exc_traceback = sys.exc_info() + lines = traceback.format_exception(exc_type, exc_value, exc_traceback) + dologging('processemail.log', ''.join('!! ' + line for line in lines)) - except: # pragma: no cover - exc_type, exc_value, exc_traceback = sys.exc_info() - lines = traceback.format_exception(exc_type, exc_value, exc_traceback) - dologging('processemail.log', ''.join('!! ' + line for line in lines)) - - try: - rowers = Rower.objects.filter(rp3_auto_import=True) - for r in rowers: # pragma: no cover + rowers = Rower.objects.filter(rp3_auto_import=True) + for r in rowers: # pragma: no cover + try: if user_is_not_basic(r.user) or user_is_coachee(r.user): rp3_integration = RP3Integration(r.user) _ = rp3_integration.get_workouts() - except: # pragma: no cover - exc_type, exc_value, exc_traceback = sys.exc_info() - lines = traceback.format_exception(exc_type, exc_value, exc_traceback) - dologging('processemail.log', ''.join('!! ' + line for line in lines)) + except: # pragma: no cover + exc_type, exc_value, exc_traceback = sys.exc_info() + lines = traceback.format_exception(exc_type, exc_value, exc_traceback) + dologging('processemail.log', ''.join('!! ' + line for line in lines)) - try: - rowers = Rower.objects.filter(nk_auto_import=True) - for r in rowers: # pragma: no cover - dologging("nklog.log","NK Auto import set for rower {id}".format(id=r.user.id)) + rowers = Rower.objects.filter(nk_auto_import=True) + for r in rowers: # pragma: no cover + try: if user_is_not_basic(r.user) or user_is_coachee(r.user): + dologging("nklog.log","NK Auto import set for rower {id}".format(id=r.user.id)) nk_integration = NKIntegration(r.user) _ = nk_integration.get_workouts() - except: # pragma: no cover - exc_type, exc_value, exc_traceback = sys.exc_info() - lines = traceback.format_exception(exc_type, exc_value, exc_traceback) - dologging('processemail.log', ''.join('!! ' + line for line in lines)) + except: # pragma: no cover + exc_type, exc_value, exc_traceback = sys.exc_info() + lines = traceback.format_exception(exc_type, exc_value, exc_traceback) + dologging('processemail.log', ''.join('!! ' + line for line in lines)) self.stdout.write(self.style.SUCCESS( 'Successfully processed email attachments')) diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 5c3d69e9..187f0fe0 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ