Private
Public Access
1
0

passing tests for nk_list

This commit is contained in:
Sander Roosendaal
2021-04-01 11:10:51 +02:00
parent 5c6ed8ef16
commit 047035f62e
6 changed files with 19 additions and 15 deletions

View File

@@ -97,6 +97,7 @@ def nk_open(user):
raise NoTokenError("User has no token")
else:
if (timezone.now()>r.nktokenexpirydate):
print('refreshing token')
thetoken = rower_nk_token_refresh(user)
if thetoken == None:
raise NoTokenError("User has no token")
@@ -115,10 +116,7 @@ def do_refresh_token(refreshtoken):
url = oauth_data['base_url']
response = requests.post(url,data=post_data,auth=HTTPBasicAuth(oauth_data['client_id'],oauth_data['client_secret']))
print(response.request.headers)
print(post_data)
print(response.status_code,response.text)
print(response.status_code)
if response.status_code != 200:
return [0,0,0]
@@ -152,11 +150,11 @@ def make_authorization_url(request):
def get_nk_workout_list(user,fake=False):
r = Rower.objects.get(user=user)
print(r.nktoken,r.nktokenexpirydate)
if (r.nktoken == '') or (r.nktoken is None):
s = "Token doesn't exist. Need to authorize"
return custom_exception_handler(401,s)
elif (r.nktokenexpirydate is None or timezone.now()+timedelta(seconds=3599)>r.nktokenexpirydate):
elif (r.nktokenexpirydate is None or timezone.now()+timedelta(seconds=10)>r.nktokenexpirydate):
s = "Token expired. Needs to refresh."
return custom_exception_handler(401,s)
else:
@@ -179,7 +177,7 @@ def get_nk_workout_list(user,fake=False):
} # start / end time
s = requests.get(url,headers=headers,params=params)
#print(s.status_code,s.json())
return s

View File

@@ -38,6 +38,7 @@
<ul>
<li id="concept2"><a href="/rowers/workout/c2list/">Concept2</a></li>
<li id="nklink"><a href="/rowers/workout/nkimport/">NK LiNK</a></li>
<li id="strava"><a href="/rowers/workout/stravaimport/">Strava</a></li>
<li id="runkeeper"><a href="/rowers/workout/runkeeperimport/">RunKeeper</a></li>
<li id="sporttracks"><a href="/rowers/workout/sporttracksimport/">SportTracks</a></li>

View File

@@ -34,8 +34,8 @@
<tr>
<td>
<a href="/rowers/workout/nkimport/{{ workout|lookup:'id' }}/">Import</a></td>
<td>{{ workout|lookup:'name' }}</td>
<td>{{ workout|lookup:'starttime' }}</td>
<td>{{ workout|lookuplong:'name' }}</td>
<td class="block" style="width:auto">{{ workout|lookuplong:'starttime' }}</td>
<td>{{ workout|lookup:'duration' }} </td>
<td>{{ workout|lookup:'distance' }} m</td>
<td>{{ workout|lookup:'new' }}</td>

View File

@@ -918,6 +918,13 @@ def mocked_requests(*args, **kwargs):
if nktester.match(args[0]):
if 'token' in args[0]:
json_data = {
'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
'expires_in': 604800,
'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
}
return MockResponse(json_data,200)
if nkworkoutlisttester.match(args[0]):
return MockResponse(nkworkoutlist,200)
elif 'token' in args[0]:

View File

@@ -419,7 +419,7 @@ class NKObjects(DjangoTestCase):
@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")
self.assertEqual(result,"TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq")
response = self.c.get('/rowers/workout/nkimport/')
self.assertEqual(response.status_code,200)

View File

@@ -822,7 +822,7 @@ def workout_nkimport_view(request,userid=0):
try:
thetoken = nk_open(request.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
return HttpResponseRedirect("/rowers/me/nkauthorize/")
res = nkstuff.get_nk_workout_list(request.user)
@@ -831,7 +831,7 @@ def workout_nkimport_view(request,userid=0):
r = getrower(request.user)
if (r.stravatoken == '') or (r.stravatoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
return HttpResponseRedirect("/rowers/me/nkauthorize/")
message = "Something went wrong in workout_nkimport_view"
messages.error(request,message)
url = reverse('workouts_view')
@@ -853,7 +853,7 @@ def workout_nkimport_view(request,userid=0):
n = item['name']
nnn = ''
ttot = str(datetime.timedelta(seconds=int(float(item['elapsedTime'])/1000.)))
s = arrow.get(item['startTime'],tzinfo=r.defaulttimezone).format(arrow.FORMAT_W3C)
s = arrow.get(item['startTime'],tzinfo=r.defaulttimezone).format(arrow.FORMAT_RFC850)
#s = arrow.get(item['startTime']).to(r.defaulttimezone).isoformat()
keys = ['id','distance','duration','starttime','name','new']
values = [i,d,ttot,s,n,nnn]
@@ -862,8 +862,6 @@ def workout_nkimport_view(request,userid=0):
workouts = workouts[::-1]
print(workouts)
breadcrumbs = [
{
'url':'/rowers/list-workouts/',