some more tests for Polar stuff
This commit is contained in:
@@ -93,6 +93,10 @@ def get_token(code):
|
|||||||
data=post_data,
|
data=post_data,
|
||||||
headers=headers)
|
headers=headers)
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
dologging('polar.log','Getting token, got:')
|
||||||
|
dologging('polar.log',response.status_code)
|
||||||
|
dologging('polar.log',response.text)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
token_json = response.json()
|
token_json = response.json()
|
||||||
@@ -100,11 +104,17 @@ def get_token(code):
|
|||||||
expires_in = token_json['expires_in']
|
expires_in = token_json['expires_in']
|
||||||
user_id = token_json['x_user_id']
|
user_id = token_json['x_user_id']
|
||||||
dologging('polar.log',response.status_code)
|
dologging('polar.log',response.status_code)
|
||||||
dologging('polar.log',response.text)
|
try:
|
||||||
|
dologging('polar.log',response.text)
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
dologging('polar.log',token_json)
|
dologging('polar.log',token_json)
|
||||||
except (KeyError,JSONDecodeError) as e:
|
except (KeyError,JSONDecodeError) as e:
|
||||||
dologging('polar.log',e)
|
dologging('polar.log',e)
|
||||||
dologging('polar.log',response.text)
|
try:
|
||||||
|
dologging('polar.log',response.text)
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
thetoken = 0
|
thetoken = 0
|
||||||
expires_in = 0
|
expires_in = 0
|
||||||
user_id = 0
|
user_id = 0
|
||||||
@@ -132,11 +142,12 @@ def revoke_access(user):
|
|||||||
'Authorization': 'Bearer {token}'.format(token=user.rower.polartoken)
|
'Authorization': 'Bearer {token}'.format(token=user.rower.polartoken)
|
||||||
}
|
}
|
||||||
|
|
||||||
response = requests.delete('https://www.polaraccesslink.com/v3/users/{user-id}', params={
|
response = requests.delete('https://www.polaraccesslink.com/v3/users/{userid}'.format(
|
||||||
'user-id':user.rower.polaruserid,
|
userid = user.rower.polaruserid
|
||||||
}, headers = headers)
|
), headers = headers)
|
||||||
|
|
||||||
dologging('polar.log',response.text)
|
dologging('polar.log',response.text)
|
||||||
|
dologging('polar.log',response.reason)
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -169,9 +180,12 @@ def get_polar_notifications():
|
|||||||
dologging('polar.log',available_data)
|
dologging('polar.log',available_data)
|
||||||
else:
|
else:
|
||||||
dologging('polar.log',response.status_code)
|
dologging('polar.log',response.status_code)
|
||||||
dologging('polar.log',reponse.text)
|
dologging('polar.log',response.text)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
dologging('polar.log',response.text)
|
try:
|
||||||
|
dologging('polar.log',response.text)
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return available_data
|
return available_data
|
||||||
|
|||||||
@@ -1021,6 +1021,7 @@ def mocked_requests(*args, **kwargs):
|
|||||||
|
|
||||||
|
|
||||||
polartester = re.compile(r'.*?polaraccesslink\.com')
|
polartester = re.compile(r'.*?polaraccesslink\.com')
|
||||||
|
polarremotetester = re.compile(r'.*?polarremote\.com')
|
||||||
c2tester = re.compile(r'.*?log\.concept2\.com')
|
c2tester = re.compile(r'.*?log\.concept2\.com')
|
||||||
stravatester = re.compile(r'.*?strava\.com')
|
stravatester = re.compile(r'.*?strava\.com')
|
||||||
sttester = re.compile(r'.*?sporttracks\.mobi')
|
sttester = re.compile(r'.*?sporttracks\.mobi')
|
||||||
@@ -1041,6 +1042,9 @@ def mocked_requests(*args, **kwargs):
|
|||||||
polartcxregex = r'.*?polaraccesslink\.com\/.*\/(\d+)\/tcx'
|
polartcxregex = r'.*?polaraccesslink\.com\/.*\/(\d+)\/tcx'
|
||||||
polartcxtester = re.compile(polartcxregex)
|
polartcxtester = re.compile(polartcxregex)
|
||||||
|
|
||||||
|
polarnotificationregex = r'.*polaraccesslink\.com\/.*\/notifications'
|
||||||
|
polarnotificationtester = re.compile(polarnotificationregex)
|
||||||
|
|
||||||
c2importregex = r'.*?concept2.com\/api\/users\/me\/results\/\d+'
|
c2importregex = r'.*?concept2.com\/api\/users\/me\/results\/\d+'
|
||||||
c2importtester = re.compile(c2importregex)
|
c2importtester = re.compile(c2importregex)
|
||||||
|
|
||||||
@@ -1134,8 +1138,32 @@ def mocked_requests(*args, **kwargs):
|
|||||||
json_data = stravaathletejson
|
json_data = stravaathletejson
|
||||||
return MockResponse(json_data,200)
|
return MockResponse(json_data,200)
|
||||||
|
|
||||||
|
if polarremotetester.match(args[0]):
|
||||||
|
json_data = {
|
||||||
|
'access_token':'aap',
|
||||||
|
'expires_in':31535999,
|
||||||
|
'x_user_id':1,
|
||||||
|
}
|
||||||
|
return MockResponse(json_data,200)
|
||||||
|
|
||||||
if polartester.match(args[0]):
|
if polartester.match(args[0]):
|
||||||
if polartcxtester.match(args[0]):
|
if polarnotificationtester.match(args[0]):
|
||||||
|
json_data = {
|
||||||
|
"available-user-data": [
|
||||||
|
{
|
||||||
|
"user-id": 475,
|
||||||
|
"data-type": "ACTIVITY_SUMMARY",
|
||||||
|
"url": "https://www.polaraccesslink.com/v3/users/475/activity-transactions"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'user-id': 475,
|
||||||
|
'data-type': 'EXERCISE',
|
||||||
|
'url': 'https://polaraccesslink.com/v3/users/40273947/exercise-transactions'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
return MockResponse(json_data,200)
|
||||||
|
elif polartcxtester.match(args[0]):
|
||||||
filename = 'rowers/tests/testdata/polar_response.tcx'
|
filename = 'rowers/tests/testdata/polar_response.tcx'
|
||||||
return MockContentResponse(filename,200)
|
return MockContentResponse(filename,200)
|
||||||
elif polarexercisetester.match(args[0]):
|
elif polarexercisetester.match(args[0]):
|
||||||
|
|||||||
@@ -774,6 +774,8 @@ class PolarObjects(DjangoTestCase):
|
|||||||
|
|
||||||
self.r.polartoken = '12'
|
self.r.polartoken = '12'
|
||||||
self.r.polarrefreshtoken = '123'
|
self.r.polarrefreshtoken = '123'
|
||||||
|
self.r.polaruserid = 475
|
||||||
|
self.r.rowerplan = 'pro'
|
||||||
self.r.polartokenexpirydate = arrow.get(datetime.datetime.now()+datetime.timedelta(days=100)).datetime
|
self.r.polartokenexpirydate = arrow.get(datetime.datetime.now()+datetime.timedelta(days=100)).datetime
|
||||||
|
|
||||||
|
|
||||||
@@ -821,6 +823,23 @@ class PolarObjects(DjangoTestCase):
|
|||||||
res = polarstuff.get_polar_workouts(self.r.user)
|
res = polarstuff.get_polar_workouts(self.r.user)
|
||||||
self.assertEqual(len(res),2)
|
self.assertEqual(len(res),2)
|
||||||
|
|
||||||
|
@patch('rowers.polarstuff.requests.post', side_effect=mocked_requests)
|
||||||
|
@patch('rowers.polarstuff.requests.get', side_effect=mocked_requests)
|
||||||
|
def test_polar_callback(self, mock_get, mock_post):
|
||||||
|
response = self.c.get('/polarflowcallback?code=abcdef&state=12sdss',follow=True)
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
@patch('rowers.polarstuff.requests.post', side_effect=mocked_requests)
|
||||||
|
@patch('rowers.polarstuff.requests.get', side_effect=mocked_requests)
|
||||||
|
def test_polar_notifications(self, mock_get, mock_post):
|
||||||
|
data = polarstuff.get_polar_notifications()
|
||||||
|
|
||||||
|
self.assertEqual(data[0]['user-id'],475)
|
||||||
|
|
||||||
|
response = polarstuff.get_all_new_workouts(data)
|
||||||
|
self.assertEqual(response,1)
|
||||||
|
|
||||||
#@pytest.mark.django_db
|
#@pytest.mark.django_db
|
||||||
@override_settings(TESTING=True)
|
@override_settings(TESTING=True)
|
||||||
class RP3Objects(DjangoTestCase):
|
class RP3Objects(DjangoTestCase):
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
Reference in New Issue
Block a user