diff --git a/rowers/nkimportutils.py b/rowers/nkimportutils.py index b2d495f4..9d682a54 100644 --- a/rowers/nkimportutils.py +++ b/rowers/nkimportutils.py @@ -111,6 +111,7 @@ def add_workout_from_data(userid, nkid, data, strokedata, source='nk', splitdata } dologging('nklog.log',json.dumps(uploadoptions)) + dologging('metrics.log','NK ID {nkid}'.format(nkid=nkid)) session = requests.session() newHeaders = {'Content-type': 'application/json', 'Accept': 'text/plain'} diff --git a/rowers/tasks.py b/rowers/tasks.py index 31b5841b..f4d58eb4 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3367,6 +3367,8 @@ def handle_nk_async_workout(alldata, userid, nktoken, nkid, delaysec, defaulttim data = alldata[int(nkid)] except KeyError: return 0 + + params = { 'sessionIds': nkid, } @@ -3390,8 +3392,6 @@ def handle_nk_async_workout(alldata, userid, nktoken, nkid, delaysec, defaulttim jsonData = response.json() strokeData = jsonData[str(nkid)] - #dologging('nklog.log', json.dumps(data)) - #dologging('nklog.log', json.dumps(strokeData)) seatNumber = 1 try: diff --git a/rowers/tests/test_imports.py b/rowers/tests/test_imports.py index ea2aafc2..7f6f5cfa 100644 --- a/rowers/tests/test_imports.py +++ b/rowers/tests/test_imports.py @@ -379,7 +379,7 @@ class C2Objects(DjangoTestCase): @patch('rowers.integrations.c2.requests.get', side_effect=mocked_requests) @patch('rowers.dataprep.create_engine') - def test_c2_import(self, mock_get, mocked_sqlalchemy): + def test_c2_import(self, mock_get, mocked_sqlalchemys): response = self.c.get('/rowers/workout/c2import/12/',follow=True) @@ -765,6 +765,8 @@ class NKObjects(DjangoTestCase): self.assertEqual(response.status_code, 200) + + @patch('rowers.integrations.nk.requests.get', side_effect=mocked_requests) @patch('rowers.integrations.nk.requests.post', side_effect=mocked_requests) @patch('rowers.nkimportutils.requests.session', side_effect=mocked_session) @@ -787,8 +789,70 @@ class NKObjects(DjangoTestCase): self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) - #self.assertEqual(w.inboard,0.89) - #self.assertEqual(w.oarlength,2.87) + + startdate = nu.date() + enddate = (nu+datetime.timedelta(days=3)).date() + form_data = { + 'startdate': startdate, + 'enddate': enddate, + 'workoutid':['469'] + } + + expected_url = reverse('workouts_view') + response = self.c.post('/rowers/workout/nkimport/',form_data) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + @patch('rowers.integrations.nk.requests.get', side_effect=mocked_requests) + @patch('rowers.integrations.nk.requests.post', side_effect=mocked_requests) + @patch('rowers.nkimportutils.requests.session', side_effect=mocked_session) + @patch('rowers.dataprep.getsmallrowdata_db', side_effect=mocked_getsmallrowdata_db) + def test_nk_import_task(self, mock_get, mock_post, + mocked_session, + mocked_getsmallrowdata_db): + alldata = { + 469: {'elapsedTime': 3901900, + 'totalDistanceImp': 0, + 'totalDistanceGps': 12155.47, + 'avgPaceImp': 0, + 'avgPaceGps': 160771.704180064, + 'avgStrokeRate': 20.5, + 'distStrokeImp': 0, + 'distStrokeGps': 9.8, + 'avgHeartRate': 137, + 'totalStrokeCount': 1237, + 'totalCalories': 0, + 'avgCalHour': 0, + 'avgSpeedGps': 3.11, + 'avgSpeedImp': 0, + 'avgPower': 149.822294022617, + 'avgCatch': -55.4211356466877, + 'avgSlip': 7.16365131578947, + 'avgFinish': 45.2515772870662, + 'avgWash': 14.2442434210526, + 'avgForceAvg': 236.360883280757, + 'avgWork': 441.713731825525, + 'avgForceMax': 464.872082018927, + 'avgMaxForceAngle': -15.198738170347, + 'startGpsLat': 52.2253125, + 'startGpsLon': 6.8455583, + 'id': 469, + 'name': 'JustGo-12155M', + 'type': 0, + 'speedInput': 0, + 'startTime': 1617102784995, + 'endTime': 1617106686914, + 'location': 'N/A', + 'deviceId': 514, + 'intervals': [{'elapsedTime': 3901900, 'totalDistanceImp': 0, 'totalDistanceGps': 12155.4697, 'avgPaceImp': 0, 'avgPaceGps': 160771.704180064, 'avgStrokeRate': 20.5, 'distStrokeImp': 0, 'distStrokeGps': 9.8, 'avgHeartRate': 137, 'totalStrokeCount': 1237, 'totalCalories': 0, 'avgCalHour': 0, 'avgSpeedGps': 3.11, 'avgSpeedImp': 0, 'avgPower': 149.822294022617, 'avgCatch': -55.4211356466877, 'avgSlip': 7.16365131578947, 'avgFinish': 45.2515772870662, 'avgWash': 14.2442434210526, 'avgForceAvg': 236.360883280757, 'avgWork': 441.713731825525, 'avgForceMax': 464.872082018927, 'avgMaxForceAngle': -15.198738170347, 'startGpsLat': 52.2253125, 'startGpsLon': 6.8455583, 'id': 622, 'sessionId': 469, 'startTime': 1617102784995, 'intervalNumber': 1, 'sessionStrokeStartIndex': 12545, 'sessionStrokeEndIndex': 15425, 'sessionStrokeCount': 1613}], 'oarlockSessions': [{'id': 69, 'sessionId': 469, 'boatName': 'DOLF1', 'seatNumber': 1, 'portStarboard': 1, 'oarLength': 287, 'oarInboardLength': 89}]} + } + + res = tasks.handle_nk_async_workout(alldata,self.r.user.id,self.r.nktoken,469, + 0,'UTC',debug=True) + + self.assertEqual(res,1) + @patch('rowers.integrations.nk.requests.get', side_effect=mocked_requests) @patch('rowers.integrations.nk.requests.post', side_effect=mocked_requests) diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index fde66471..71e1bc0f 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ