Private
Public Access
1
0

some more tests for Polar stuff

This commit is contained in:
Sander Roosendaal
2022-01-19 20:11:07 +01:00
parent fbbe04b928
commit f9dbdfefca
4 changed files with 69 additions and 8 deletions

View File

@@ -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

View File

@@ -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]):

View File

@@ -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):

Binary file not shown.