some more tests for Polar stuff
This commit is contained in:
@@ -93,6 +93,10 @@ def get_token(code):
|
||||
data=post_data,
|
||||
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:
|
||||
token_json = response.json()
|
||||
@@ -100,11 +104,17 @@ def get_token(code):
|
||||
expires_in = token_json['expires_in']
|
||||
user_id = token_json['x_user_id']
|
||||
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)
|
||||
except (KeyError,JSONDecodeError) as e:
|
||||
dologging('polar.log',e)
|
||||
dologging('polar.log',response.text)
|
||||
try:
|
||||
dologging('polar.log',response.text)
|
||||
except AttributeError:
|
||||
pass
|
||||
thetoken = 0
|
||||
expires_in = 0
|
||||
user_id = 0
|
||||
@@ -132,11 +142,12 @@ def revoke_access(user):
|
||||
'Authorization': 'Bearer {token}'.format(token=user.rower.polartoken)
|
||||
}
|
||||
|
||||
response = requests.delete('https://www.polaraccesslink.com/v3/users/{user-id}', params={
|
||||
'user-id':user.rower.polaruserid,
|
||||
}, headers = headers)
|
||||
response = requests.delete('https://www.polaraccesslink.com/v3/users/{userid}'.format(
|
||||
userid = user.rower.polaruserid
|
||||
), headers = headers)
|
||||
|
||||
dologging('polar.log',response.text)
|
||||
dologging('polar.log',response.reason)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -169,9 +180,12 @@ def get_polar_notifications():
|
||||
dologging('polar.log',available_data)
|
||||
else:
|
||||
dologging('polar.log',response.status_code)
|
||||
dologging('polar.log',reponse.text)
|
||||
dologging('polar.log',response.text)
|
||||
except AttributeError:
|
||||
dologging('polar.log',response.text)
|
||||
try:
|
||||
dologging('polar.log',response.text)
|
||||
except AttributeError:
|
||||
pass
|
||||
pass
|
||||
|
||||
return available_data
|
||||
|
||||
@@ -1021,6 +1021,7 @@ def mocked_requests(*args, **kwargs):
|
||||
|
||||
|
||||
polartester = re.compile(r'.*?polaraccesslink\.com')
|
||||
polarremotetester = re.compile(r'.*?polarremote\.com')
|
||||
c2tester = re.compile(r'.*?log\.concept2\.com')
|
||||
stravatester = re.compile(r'.*?strava\.com')
|
||||
sttester = re.compile(r'.*?sporttracks\.mobi')
|
||||
@@ -1041,6 +1042,9 @@ def mocked_requests(*args, **kwargs):
|
||||
polartcxregex = r'.*?polaraccesslink\.com\/.*\/(\d+)\/tcx'
|
||||
polartcxtester = re.compile(polartcxregex)
|
||||
|
||||
polarnotificationregex = r'.*polaraccesslink\.com\/.*\/notifications'
|
||||
polarnotificationtester = re.compile(polarnotificationregex)
|
||||
|
||||
c2importregex = r'.*?concept2.com\/api\/users\/me\/results\/\d+'
|
||||
c2importtester = re.compile(c2importregex)
|
||||
|
||||
@@ -1134,8 +1138,32 @@ def mocked_requests(*args, **kwargs):
|
||||
json_data = stravaathletejson
|
||||
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 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'
|
||||
return MockContentResponse(filename,200)
|
||||
elif polarexercisetester.match(args[0]):
|
||||
|
||||
@@ -774,6 +774,8 @@ class PolarObjects(DjangoTestCase):
|
||||
|
||||
self.r.polartoken = '12'
|
||||
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
|
||||
|
||||
|
||||
@@ -821,6 +823,23 @@ class PolarObjects(DjangoTestCase):
|
||||
res = polarstuff.get_polar_workouts(self.r.user)
|
||||
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
|
||||
@override_settings(TESTING=True)
|
||||
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