passing tests with mock server for nk workouts list
This commit is contained in:
@@ -621,6 +621,8 @@ def mocked_requests(*args, **kwargs):
|
||||
stravaworkoutlist = json.load(open('rowers/tests/testdata/stravaworkoutlist.txt'))
|
||||
sporttracksworkoutlist = json.load(open('rowers/tests/testdata/sporttracksworkouts.txt'))
|
||||
|
||||
nkworkoutlist = json.load(open('rowers/tests/testdata/nkworkouts.txt'))
|
||||
|
||||
rkworkoutlistjson = json.load(open('rowers/tests/testdata/rkworkoutslist.txt','r'))
|
||||
uaworkoutlistjson = json.load(open('rowers/tests/testdata/uaworkoutlist.txt','r'))
|
||||
|
||||
@@ -732,6 +734,7 @@ def mocked_requests(*args, **kwargs):
|
||||
rktester = re.compile('.*?runkeeper\.com')
|
||||
uatester = re.compile('.*?mapmyfitness\.com')
|
||||
tptester = re.compile('.*?trainingpeaks\.com')
|
||||
nktester = re.compile('.*?nkrowlink\.com')
|
||||
garmintester = re.compile('.*?garmin\.com')
|
||||
|
||||
c2importregex = '.*?concept2.com\/api\/users\/me\/results\/\d+'
|
||||
@@ -746,6 +749,9 @@ def mocked_requests(*args, **kwargs):
|
||||
c2workoutlistregex = '.*?concept2\.com\/api\/users\/me\/results\?page=\d'
|
||||
c2workoutlisttester = re.compile(c2workoutlistregex)
|
||||
|
||||
nkworkoutlistregex = '.*?nkrowlink\.com\/api\/v1\/sessions'
|
||||
nkworkoutlisttester = re.compile(nkworkoutlistregex)
|
||||
|
||||
stravaathleteregex = '.*?strava\.com\/api\/v3\/athlete$'
|
||||
stravaathletetester = re.compile(stravaathleteregex)
|
||||
|
||||
@@ -796,6 +802,7 @@ def mocked_requests(*args, **kwargs):
|
||||
garmindownloadregex = '.*?garmin\.com\/mockfile?id=1'
|
||||
garmindownloadtester = re.compile(garmindownloadregex)
|
||||
|
||||
|
||||
if garmintester.match(args[0]):
|
||||
if garmindownloadtester.match(args[0]):
|
||||
return MockStreamResponse('rowers/tests/testdata/3x250m.fit',200)
|
||||
@@ -910,6 +917,20 @@ def mocked_requests(*args, **kwargs):
|
||||
return MockResponse(sporttracksworkoutlist,200)
|
||||
|
||||
|
||||
if nktester.match(args[0]):
|
||||
if nkworkoutlisttester.match(args[0]):
|
||||
return MockResponse(nkworkoutlist,200)
|
||||
elif 'token' in args[0]:
|
||||
json_data = {
|
||||
"token_type": "Bearer",
|
||||
"access_token": "987654321234567898765432123456789",
|
||||
"refresh_token": "1234567898765432112345678987654321",
|
||||
"expires_at": arrow.now().timestamp()+7200
|
||||
}
|
||||
|
||||
return MockResponse(json_data,200)
|
||||
|
||||
|
||||
if stravatester.match(args[0]):
|
||||
if stravaworkoutlisttester.match(args[0]):
|
||||
return MockResponse(stravaworkoutlist,200)
|
||||
|
||||
@@ -360,6 +360,70 @@ class C2ObjectsTokenExpired(DjangoTestCase):
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
#@pytest.mark.django_db
|
||||
@override_settings(TESTING=True)
|
||||
class NKObjects(DjangoTestCase):
|
||||
def setUp(self):
|
||||
self.c = Client()
|
||||
self.u = User.objects.create_user('john',
|
||||
'sander@ds.ds',
|
||||
'koeinsloot')
|
||||
|
||||
self.u.first_name = 'John'
|
||||
self.u.last_name = 'Sander'
|
||||
self.u.save()
|
||||
self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
|
||||
gdproptindate=timezone.now()
|
||||
)
|
||||
|
||||
self.r.nktoken = '12'
|
||||
self.r.nkrefreshtoken = '123'
|
||||
self.r.nktokenexpirydate = datetime.datetime.now()-datetime.timedelta(days=1)
|
||||
|
||||
self.r.save()
|
||||
self.c.login(username='john',password='koeinsloot')
|
||||
self.nu = datetime.datetime.now()
|
||||
|
||||
filename = 'rowers/tests/testdata/testdata.csv'
|
||||
|
||||
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
|
||||
hrut1=self.r.ut1,hrat=self.r.at,
|
||||
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
|
||||
row = rdata(filename,rower=rr)
|
||||
totaldist = row.df['cum_dist'].max()
|
||||
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
|
||||
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
|
||||
|
||||
|
||||
hours = int(totaltime/3600.)
|
||||
minutes = int((totaltime - 3600.*hours)/60.)
|
||||
seconds = int(totaltime - 3600.*hours - 60.*minutes)
|
||||
tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
|
||||
|
||||
duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
|
||||
|
||||
|
||||
workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
|
||||
workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
|
||||
|
||||
self.w = Workout.objects.create(
|
||||
name='testworkout',workouttype='water',
|
||||
user=self.r,date=self.nu.strftime('%Y-%m-%d'),
|
||||
starttime=workoutstarttime,
|
||||
startdatetime=row.rowdatetime,
|
||||
duration=duration,distance=totaldist,
|
||||
csvfilename=filename
|
||||
)
|
||||
|
||||
@patch('rowers.nkstuff.requests.get', side_effect=mocked_requests)
|
||||
@patch('rowers.nkstuff.requests.post', side_effect=mocked_requests)
|
||||
def test_nk_list(self, mock_get, mockpost):
|
||||
result = rowers.nkstuff.rower_nk_token_refresh(self.u)
|
||||
self.assertEqual(result,"987654321234567898765432123456789")
|
||||
response = self.c.get('/rowers/workout/nkimport/')
|
||||
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
|
||||
#@pytest.mark.django_db
|
||||
|
||||
84
rowers/tests/testdata/nkworkoutlist.txt
vendored
Normal file
84
rowers/tests/testdata/nkworkoutlist.txt
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"name": "JustGo-7189M",
|
||||
"type": 0,
|
||||
"speedInput": 0,
|
||||
"startTime": 1614264826,
|
||||
"endTime": 1614269826,
|
||||
"location": "Some Location",
|
||||
"deviceId": 11,
|
||||
"elapsedTime": 1140000,
|
||||
"totalDistanceImp": 2920.69,
|
||||
"totalDistanceGps": 2286.5,
|
||||
"avgPaceImp": 195159.36302723,
|
||||
"avgPaceGps": 250466.812537141,
|
||||
"avgStrokeRate": 19.5,
|
||||
"distStrokeImp": 8.51,
|
||||
"distStrokeGps": 6.77,
|
||||
"avgHeartRate": 158,
|
||||
"totalStrokeCount": 343,
|
||||
"totalCalories": 4959900,
|
||||
"avgCalHour": 4482062.35252774,
|
||||
"avgSpeedGps": 2,
|
||||
"avgSpeedImp": 2.56,
|
||||
"avgPower": 68.6979270660324,
|
||||
"avgCatch": -46.7961491475831,
|
||||
"avgSlip": 16.1616225246003,
|
||||
"avgFinish": 48.1512290049444,
|
||||
"avgWash": 22.9514686031976,
|
||||
"avgForceAvg": 114.502194258813,
|
||||
"avgWork": 210.785493336831,
|
||||
"avgForceMax": 249.481436977143,
|
||||
"avgMaxForceAngle": 4.75378911974861,
|
||||
"startGpsLat": 39.7356346,
|
||||
"startGpsLon": -75.5581928,
|
||||
"intervals": [
|
||||
{
|
||||
"id": 1,
|
||||
"sessionId": 1,
|
||||
"startTime": 1614264826,
|
||||
"intervalNumber": 1,
|
||||
"sessionStrokeStartIndex": 473,
|
||||
"sessionStrokeEndIndex": 674,
|
||||
"sessionStrokeCount": 91,
|
||||
"elapsedTime": 1140000,
|
||||
"totalDistanceImp": 2920.69,
|
||||
"totalDistanceGps": 2286.5,
|
||||
"avgPaceImp": 195159.36302723,
|
||||
"avgPaceGps": 250466.812537141,
|
||||
"avgStrokeRate": 19.5,
|
||||
"distStrokeImp": 8.51,
|
||||
"distStrokeGps": 6.77,
|
||||
"avgHeartRate": 158,
|
||||
"totalStrokeCount": 343,
|
||||
"totalCalories": 4959900,
|
||||
"avgCalHour": 4482062.35252774,
|
||||
"avgSpeedGps": 2,
|
||||
"avgSpeedImp": 2.56,
|
||||
"avgPower": 68.6979270660324,
|
||||
"avgCatch": -46.7961491475831,
|
||||
"avgSlip": 16.1616225246003,
|
||||
"avgFinish": 48.1512290049444,
|
||||
"avgWash": 22.9514686031976,
|
||||
"avgForceAvg": 114.502194258813,
|
||||
"avgWork": 210.785493336831,
|
||||
"avgForceMax": 249.481436977143,
|
||||
"avgMaxForceAngle": 4.75378911974861,
|
||||
"startGpsLat": 39.7356346,
|
||||
"startGpsLon": -75.5581928
|
||||
}
|
||||
],
|
||||
"oarlockSessions": [
|
||||
{
|
||||
"id": 1,
|
||||
"sessionId": 1,
|
||||
"boatName": "Fast Boat",
|
||||
"seatNumber": 3,
|
||||
"portStarboard": 0,
|
||||
"oarLength": 284,
|
||||
"oarInboardLength": 85
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
84
rowers/tests/testdata/nkworkouts.txt
vendored
Normal file
84
rowers/tests/testdata/nkworkouts.txt
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"name": "JustGo-7189M",
|
||||
"type": 0,
|
||||
"speedInput": 0,
|
||||
"startTime": 1614264826,
|
||||
"endTime": 1614269826,
|
||||
"location": "Some Location",
|
||||
"deviceId": 11,
|
||||
"elapsedTime": 1140000,
|
||||
"totalDistanceImp": 2920.69,
|
||||
"totalDistanceGps": 2286.5,
|
||||
"avgPaceImp": 195159.36302723,
|
||||
"avgPaceGps": 250466.812537141,
|
||||
"avgStrokeRate": 19.5,
|
||||
"distStrokeImp": 8.51,
|
||||
"distStrokeGps": 6.77,
|
||||
"avgHeartRate": 158,
|
||||
"totalStrokeCount": 343,
|
||||
"totalCalories": 4959900,
|
||||
"avgCalHour": 4482062.35252774,
|
||||
"avgSpeedGps": 2,
|
||||
"avgSpeedImp": 2.56,
|
||||
"avgPower": 68.6979270660324,
|
||||
"avgCatch": -46.7961491475831,
|
||||
"avgSlip": 16.1616225246003,
|
||||
"avgFinish": 48.1512290049444,
|
||||
"avgWash": 22.9514686031976,
|
||||
"avgForceAvg": 114.502194258813,
|
||||
"avgWork": 210.785493336831,
|
||||
"avgForceMax": 249.481436977143,
|
||||
"avgMaxForceAngle": 4.75378911974861,
|
||||
"startGpsLat": 39.7356346,
|
||||
"startGpsLon": -75.5581928,
|
||||
"intervals": [
|
||||
{
|
||||
"id": 1,
|
||||
"sessionId": 1,
|
||||
"startTime": 1614264826,
|
||||
"intervalNumber": 1,
|
||||
"sessionStrokeStartIndex": 473,
|
||||
"sessionStrokeEndIndex": 674,
|
||||
"sessionStrokeCount": 91,
|
||||
"elapsedTime": 1140000,
|
||||
"totalDistanceImp": 2920.69,
|
||||
"totalDistanceGps": 2286.5,
|
||||
"avgPaceImp": 195159.36302723,
|
||||
"avgPaceGps": 250466.812537141,
|
||||
"avgStrokeRate": 19.5,
|
||||
"distStrokeImp": 8.51,
|
||||
"distStrokeGps": 6.77,
|
||||
"avgHeartRate": 158,
|
||||
"totalStrokeCount": 343,
|
||||
"totalCalories": 4959900,
|
||||
"avgCalHour": 4482062.35252774,
|
||||
"avgSpeedGps": 2,
|
||||
"avgSpeedImp": 2.56,
|
||||
"avgPower": 68.6979270660324,
|
||||
"avgCatch": -46.7961491475831,
|
||||
"avgSlip": 16.1616225246003,
|
||||
"avgFinish": 48.1512290049444,
|
||||
"avgWash": 22.9514686031976,
|
||||
"avgForceAvg": 114.502194258813,
|
||||
"avgWork": 210.785493336831,
|
||||
"avgForceMax": 249.481436977143,
|
||||
"avgMaxForceAngle": 4.75378911974861,
|
||||
"startGpsLat": 39.7356346,
|
||||
"startGpsLon": -75.5581928
|
||||
}
|
||||
],
|
||||
"oarlockSessions": [
|
||||
{
|
||||
"id": 1,
|
||||
"sessionId": 1,
|
||||
"boatName": "Fast Boat",
|
||||
"seatNumber": 3,
|
||||
"portStarboard": 0,
|
||||
"oarLength": 284,
|
||||
"oarInboardLength": 85
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user