tests for no HR data on import Strava/ST
This commit is contained in:
1
rowers/testdata/sporttrackstestnohr.txt
vendored
Normal file
1
rowers/testdata/sporttrackstestnohr.txt
vendored
Normal file
File diff suppressed because one or more lines are too long
1
rowers/testdata/stravahrtestnodata.txt
vendored
Normal file
1
rowers/testdata/stravahrtestnodata.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
[{"type": "heartrate", "resolution": "high", "original_size": 595, "series_type": "distance"}]
|
||||
@@ -159,6 +159,80 @@ class StravaObjects(DjangoTestCase):
|
||||
res = add_workout_from_strokedata(u,1,workoutsummary,strokedata,
|
||||
source='strava')
|
||||
|
||||
def test_strokedatanohr(self):
|
||||
timejson = json.load(open('rowers/testdata/stravatimetestdata.txt','r'))
|
||||
velojson = json.load(open('rowers/testdata/stravavelotestdata.txt','r'))
|
||||
distancejson = json.load(open('rowers/testdata/stravadistancetestdata.txt','r'))
|
||||
latlongjson = json.load(open('rowers/testdata/stravalatlongtestdata.txt','r'))
|
||||
hrjson = json.load(open('rowers/testdata/stravahrtestnodata.txt','r'))
|
||||
spmjson = json.load(open('rowers/testdata/stravaspmtestdata.txt','r'))
|
||||
workoutsummary = json.load(open('rowers/testdata/stravasummarytestdata.txt','r'))
|
||||
workoutsummary['timezone'] = "Etc/UTC"
|
||||
startdatetime = workoutsummary['start_date']
|
||||
|
||||
|
||||
t = np.array(timejson[0]['data'])
|
||||
d = np.array(distancejson[0]['data'])
|
||||
nr_rows = len(t)
|
||||
|
||||
try:
|
||||
spm = np.array( spmjson[1]['data'])
|
||||
except IndexError:
|
||||
spm = np.zeros(nr_rows)
|
||||
|
||||
try:
|
||||
hr = np.array(hrjson[1]['data'])
|
||||
except IndexError:
|
||||
hr = np.zeros(nr_rows)
|
||||
|
||||
try:
|
||||
velo = np.array(velojson[1]['data'])
|
||||
except IndexError:
|
||||
velo = np.zeros(nr_rows)
|
||||
|
||||
dt = np.diff(t).mean()
|
||||
wsize = round(5./dt)
|
||||
|
||||
from stravastuff import ewmovingaverage
|
||||
velo2 = ewmovingaverage(velo,wsize)
|
||||
coords = np.array(latlongjson[0]['data'])
|
||||
try:
|
||||
lat = coords[:,0]
|
||||
lon = coords[:,1]
|
||||
except IndexError:
|
||||
lat = np.zeros(len(t))
|
||||
lon = np.zeros(len(t))
|
||||
|
||||
|
||||
|
||||
|
||||
strokelength = velo*60./(spm)
|
||||
strokelength[np.isinf(strokelength)] = 0.0
|
||||
|
||||
pace = 500./(1.0*velo2)
|
||||
pace[np.isinf(pace)] = 0.0
|
||||
|
||||
strokedata = pd.DataFrame({'t':10*t,
|
||||
'd':10*d,
|
||||
'p':10*pace,
|
||||
'spm':spm,
|
||||
'hr':hr,
|
||||
'lat':lat,
|
||||
'lon':lon,
|
||||
'strokelength':strokelength,
|
||||
})
|
||||
|
||||
from rowers.views import add_workout_from_strokedata
|
||||
|
||||
u = User.objects.create_user('john',
|
||||
'sander@ds.ds',
|
||||
'koeinsloot')
|
||||
r = Rower.objects.create(user=u)
|
||||
|
||||
res = add_workout_from_strokedata(u,1,workoutsummary,strokedata,
|
||||
source='strava')
|
||||
|
||||
|
||||
|
||||
class STObjects(DjangoTestCase):
|
||||
def test_strokedata(self):
|
||||
@@ -174,6 +248,19 @@ class STObjects(DjangoTestCase):
|
||||
|
||||
res = add_workout_from_stdata(u,1,data)
|
||||
|
||||
def test_strokedatanohr(self):
|
||||
with open('rowers/testdata/sporttrackstestnohr.txt','r') as infile:
|
||||
data = json.load(infile)
|
||||
|
||||
from rowers.views import add_workout_from_stdata
|
||||
|
||||
u = User.objects.create_user('john',
|
||||
'sander@ds.ds',
|
||||
'koeinsloot')
|
||||
r = Rower.objects.create(user=u)
|
||||
|
||||
res = add_workout_from_stdata(u,1,data)
|
||||
|
||||
|
||||
class TestErrorPages(TestCase):
|
||||
def test_error_handlers(self):
|
||||
|
||||
Reference in New Issue
Block a user