c2, strava done, almost done st
This commit is contained in:
221
rowers/tests.py
221
rowers/tests.py
@@ -60,7 +60,28 @@ def mocked_requests(*args, **kwargs):
|
||||
c2strokedata = json.load(infile)
|
||||
|
||||
c2workoutlist = json.load(open('rowers/testdata/c2workoutlist.txt'))
|
||||
|
||||
c2uploadjson = {
|
||||
"data": {
|
||||
"id": 339,
|
||||
"user_id": 1,
|
||||
"date": "2015-08-05 13:15:41",
|
||||
"timezone": "Europe/London",
|
||||
"date_utc": "2015-08-05 12:15:41",
|
||||
"distance": 5649,
|
||||
"type": "rower",
|
||||
"time": 8649,
|
||||
"time_formatted": "14:24.9",
|
||||
"workout_type": "JustRow",
|
||||
"source": "ErgData",
|
||||
"weight_class": "H",
|
||||
"verified": True,
|
||||
"ranked": False
|
||||
}
|
||||
}
|
||||
|
||||
stravaworkoutlist = json.load(open('rowers/testdata/stravaworkoutlist.txt'))
|
||||
sporttracksworkoutlist = json.load(open('rowers/testdata/sporttracksworkouts.txt'))
|
||||
stravasummaryjson = json.load(open('rowers/testdata/stravaworkoutsummary.txt','r'))
|
||||
|
||||
stravatimejson = json.load(open('rowers/testdata/stravatimetestdata.txt','r'))
|
||||
@@ -107,10 +128,14 @@ def mocked_requests(*args, **kwargs):
|
||||
|
||||
c2tester = re.compile('.*?log\.concept2\.com')
|
||||
stravatester = re.compile('.*?strava\.com')
|
||||
sttester = re.compile('.*?sporttracks\.mobi')
|
||||
|
||||
c2importregex = '.*?concept2.com\/api\/users\/me\/results\/\d+'
|
||||
c2importtester = re.compile(c2importregex)
|
||||
|
||||
c2uploadregex = '.*?concept2.com\/api\/users\/\d+\/results$'
|
||||
c2uploadtester = re.compile(c2uploadregex)
|
||||
|
||||
c2strokesregex = '.*?concept2.com\/api\/users\/me\/results\/\d+\/strokes'
|
||||
c2strokestester = re.compile(c2strokesregex)
|
||||
|
||||
@@ -125,6 +150,31 @@ def mocked_requests(*args, **kwargs):
|
||||
|
||||
stravasummaryregex = '.*?strava\.com\/api\/v3\/activities\/\d+$'
|
||||
stravasummarytester = re.compile(stravasummaryregex)
|
||||
|
||||
stuploadregex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivities.json$'
|
||||
stuploadtester = re.compile(stuploadregex)
|
||||
|
||||
stworkoutlistregex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivities$'
|
||||
stworkoutlisttester = re.compile(stworkoutlistregex)
|
||||
|
||||
if sttester.match(args[0]):
|
||||
if 'oauth2/token' in args[0]:
|
||||
json_data = {
|
||||
'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
|
||||
'expires_in': 604800,
|
||||
'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
|
||||
}
|
||||
return MockResponse(json_data,200)
|
||||
if stuploadtester.match(args[0]):
|
||||
json_data = {
|
||||
"uris": [
|
||||
"https://api.sporttracks.mobi/api/v2/fitnessActivity/123456"
|
||||
]
|
||||
}
|
||||
return MockResponse(json_data, 200)
|
||||
if stworkoutlisttester.match(args[0]):
|
||||
return MockResponse(sporttracksworkoutlist,200)
|
||||
|
||||
|
||||
if stravatester.match(args[0]):
|
||||
if stravaworkoutlisttester.match(args[0]):
|
||||
@@ -137,11 +187,13 @@ def mocked_requests(*args, **kwargs):
|
||||
return MockResponse(stravasummaryjson,200)
|
||||
|
||||
if c2tester.match(args[0]):
|
||||
if c2uploadtester.match(args[0]):
|
||||
return MockResponse(c2uploadjson,201)
|
||||
if c2strokestester.match(args[0]):
|
||||
return MockResponse(c2strokedata,200)
|
||||
elif c2importtester.match(args[0]):
|
||||
return MockResponse(c2workoutdata,200)
|
||||
elif c2workoutlisttester(args[0]):
|
||||
elif c2workoutlisttester.match(args[0]):
|
||||
return MockResponse(c2workoutlist,200)
|
||||
elif 'access_token' in args[0]:
|
||||
json_data = {
|
||||
@@ -185,10 +237,45 @@ class C2Objects(DjangoTestCase):
|
||||
)
|
||||
|
||||
self.r.c2token = '12'
|
||||
self.r.c2refreshtoken = 'ab'
|
||||
self.r.tokenexpirydate = datetime.datetime.now()+datetime.timedelta(days=1)
|
||||
self.r.save()
|
||||
self.c.login(username='john',password='koeinsloot')
|
||||
|
||||
self.nu = datetime.datetime.now()
|
||||
|
||||
filename = 'rowers/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.ix[0,' ElapsedTime (sec)']
|
||||
|
||||
|
||||
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='On-water',
|
||||
user=self.r,date=self.nu.strftime('%Y-%m-%d'),
|
||||
starttime=workoutstarttime,
|
||||
startdatetime=row.rowdatetime,
|
||||
duration=duration,distance=totaldist,
|
||||
csvfilename=filename
|
||||
)
|
||||
|
||||
|
||||
@patch('rowers.c2stuff.requests.Session', side_effect=mocked_requests)
|
||||
def test_c2_callback(self, mock_post):
|
||||
response = self.c.get('/call_back?code=dsdoij232s',follow=True)
|
||||
@@ -203,7 +290,18 @@ class C2Objects(DjangoTestCase):
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
|
||||
@patch('rowers.c2stuff.requests.post', side_effect=mocked_requests)
|
||||
@patch('rowers.c2stuff.requests.get', side_effect=mocked_requests)
|
||||
def test_c2_upload(self, mock_get, mock_post):
|
||||
response = self.c.get('/rowers/workout/1/c2uploadw/')
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url = '/rowers/workout/1/export',
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
self.assertEqual(response.url, '/rowers/workout/1/export')
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
@patch('rowers.c2stuff.requests.post', side_effect=mocked_requests)
|
||||
def test_c2_list(self, mock_get):
|
||||
@@ -217,7 +315,7 @@ class C2Objects(DjangoTestCase):
|
||||
response = self.c.get('/rowers/workout/c2import/12/',follow=True)
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url='/rowers/workout/1/edit',
|
||||
expected_url='/rowers/workout/2/edit',
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
@@ -294,21 +392,111 @@ class StravaObjects(DjangoTestCase):
|
||||
|
||||
|
||||
class STObjects(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,
|
||||
gdproptindate=timezone.now()
|
||||
)
|
||||
|
||||
|
||||
self.r.sporttrackstoken = '12'
|
||||
self.r.sporttracksrefreshtoken = '12'
|
||||
self.r.sporttrackstokenexpirydate = datetime.datetime.now()+datetime.timedelta(days=1)
|
||||
self.r.save()
|
||||
|
||||
self.c.login(username='john',password='koeinsloot')
|
||||
|
||||
self.nu = datetime.datetime.now()
|
||||
|
||||
filename = 'rowers/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.ix[0,' ElapsedTime (sec)']
|
||||
|
||||
|
||||
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='On-water',
|
||||
user=self.r,date=self.nu.strftime('%Y-%m-%d'),
|
||||
starttime=workoutstarttime,
|
||||
startdatetime=row.rowdatetime,
|
||||
duration=duration,distance=totaldist,
|
||||
csvfilename=filename
|
||||
)
|
||||
|
||||
@patch('rowers.sporttracksstuff.requests.post', side_effect=mocked_requests)
|
||||
def test_sporttracks_callback(self, mock_post):
|
||||
response = self.c.get('/sporttracks_callback?code=dsdoij232s',follow=True)
|
||||
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
@patch('rowers.sporttracksstuff.requests.post', side_effect=mocked_requests)
|
||||
def test_sporttracks_token_refresh(self, mock_post):
|
||||
response = self.c.get('/rowers/me/sporttracksrefresh/',follow=True)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
@patch('rowers.sporttracksstuff.requests.post', side_effect=mocked_requests)
|
||||
@patch('rowers.sporttracksstuff.requests.get', side_effect=mocked_requests)
|
||||
def test_sporttracks_upload(self, mock_get, mock_post):
|
||||
response = self.c.get('/rowers/workout/1/sporttracksuploadw/')
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url = '/rowers/workout/1/export',
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
self.assertEqual(response.url, '/rowers/workout/1/export')
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
@patch('rowers.sporttracksstuff.requests.get', side_effect=mocked_requests)
|
||||
def test_sporttracks_list(self, mock_get):
|
||||
response = self.c.get('/rowers/workout/sporttracksimport',follow=True)
|
||||
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@patch('rowers.imports.requests.get', side_effect=mocked_requests)
|
||||
def test_sporttracks_import(self, mock_get):
|
||||
|
||||
response = self.c.get('/rowers/workout/sporttracksimport/12/',follow=True)
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url='/rowers/workout/2/edit',
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_strokedata(self):
|
||||
with open('rowers/testdata/sporttrackstestdata.txt','r') as infile:
|
||||
data = json.load(infile)
|
||||
|
||||
from rowers.sporttracksstuff import add_workout_from_data
|
||||
|
||||
u = User.objects.create_user('john',
|
||||
'sander@ds.ds',
|
||||
'koeinsloot')
|
||||
r = Rower.objects.create(user=u,gdproptin=True,
|
||||
gdproptindate=timezone.now()
|
||||
)
|
||||
|
||||
|
||||
res = add_workout_from_data(u,1,data,data)
|
||||
res = add_workout_from_data(self.u,1,data,data)
|
||||
|
||||
def test_strokedatanohr(self):
|
||||
with open('rowers/testdata/sporttrackstestnohr.txt','r') as infile:
|
||||
@@ -316,16 +504,9 @@ class STObjects(DjangoTestCase):
|
||||
|
||||
from rowers.sporttracksstuff import add_workout_from_data
|
||||
|
||||
u = User.objects.create_user('john',
|
||||
'sander@ds.ds',
|
||||
'koeinsloot')
|
||||
|
||||
r = Rower.objects.create(user=u,gdproptin=True,
|
||||
gdproptindate=timezone.now()
|
||||
)
|
||||
|
||||
|
||||
res = add_workout_from_data(u,1,data,data)
|
||||
res = add_workout_from_data(self.u,1,data,data)
|
||||
|
||||
|
||||
class TestErrorPages(TestCase):
|
||||
|
||||
Reference in New Issue
Block a user