some tests passing
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from rowers.models import Workout, PowerTimeFitnessMetric, Rower
|
from rowers.models import Workout, PowerTimeFitnessMetric, Rower
|
||||||
import datetime
|
import datetime
|
||||||
from utils import myqueue
|
from rowers.utils import myqueue
|
||||||
import django_rq
|
import django_rq
|
||||||
queue = django_rq.get_queue('default')
|
queue = django_rq.get_queue('default')
|
||||||
from rowers.tasks import handle_updatefitnessmetric,handle_sendemail_expired
|
from rowers.tasks import handle_updatefitnessmetric,handle_sendemail_expired
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ from __future__ import print_function
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
""" Background tasks done by Celery (develop) or QR (production) """
|
""" Background tasks done by Celery (develop) or QR (production) """
|
||||||
from __future__ import absolute_import
|
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import gc
|
import gc
|
||||||
|
|||||||
@@ -36,10 +36,10 @@ def strfdelta(tdelta):
|
|||||||
minutes,seconds = divmod(tdelta.seconds,60)
|
minutes,seconds = divmod(tdelta.seconds,60)
|
||||||
tenths = int(tdelta.microseconds/1e5)
|
tenths = int(tdelta.microseconds/1e5)
|
||||||
res = "{minutes:0>1}:{seconds:0>2}.{tenths:0>1}".format(
|
res = "{minutes:0>1}:{seconds:0>2}.{tenths:0>1}".format(
|
||||||
minutes=minutes,
|
minutes=minutes,
|
||||||
seconds=seconds,
|
seconds=seconds,
|
||||||
tenths=tenths,
|
tenths=tenths,
|
||||||
)
|
)
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@@ -48,11 +48,11 @@ def strfdeltah(tdelta):
|
|||||||
minutes,seconds = divmod(rest,60)
|
minutes,seconds = divmod(rest,60)
|
||||||
tenths = int(tdelta.microseconds/1e5)
|
tenths = int(tdelta.microseconds/1e5)
|
||||||
res = "{hours:0>2}:{minutes:0>2}:{seconds:0>2}.{tenths:0>1}".format(
|
res = "{hours:0>2}:{minutes:0>2}:{seconds:0>2}.{tenths:0>1}".format(
|
||||||
hours=hours,
|
hours=hours,
|
||||||
minutes=minutes,
|
minutes=minutes,
|
||||||
seconds=seconds,
|
seconds=seconds,
|
||||||
tenths=tenths,
|
tenths=tenths,
|
||||||
)
|
)
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@@ -60,10 +60,10 @@ def secondstotimestring(tdelta):
|
|||||||
hours, rest = divmod(tdelta,3600)
|
hours, rest = divmod(tdelta,3600)
|
||||||
minutes,seconds = divmod(rest,60)
|
minutes,seconds = divmod(rest,60)
|
||||||
res = "{hours:0>2}:{minutes:0>2}:{seconds:0>2}".format(
|
res = "{hours:0>2}:{minutes:0>2}:{seconds:0>2}".format(
|
||||||
hours=hours,
|
hours=hours,
|
||||||
minutes=minutes,
|
minutes=minutes,
|
||||||
seconds=seconds,
|
seconds=seconds,
|
||||||
)
|
)
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@@ -107,9 +107,9 @@ def spacetohtml(t):
|
|||||||
@register.filter
|
@register.filter
|
||||||
def durationprint(d,dstring):
|
def durationprint(d,dstring):
|
||||||
if (d == None):
|
if (d == None):
|
||||||
return d
|
return d
|
||||||
else:
|
else:
|
||||||
return d.strftime(dstring)[:-5]
|
return d.strftime(dstring)[:-5]
|
||||||
|
|
||||||
def getstartenddate(timeperiod):
|
def getstartenddate(timeperiod):
|
||||||
s,e = timeperiod.split('/')
|
s,e = timeperiod.split('/')
|
||||||
@@ -165,16 +165,16 @@ def previousperiodstart(timeperiod):
|
|||||||
@register.filter
|
@register.filter
|
||||||
def paceprint(d):
|
def paceprint(d):
|
||||||
if (d == None):
|
if (d == None):
|
||||||
return d
|
return d
|
||||||
else:
|
else:
|
||||||
return strfdelta(d)
|
return strfdelta(d)
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
def deltatimeprint(d):
|
def deltatimeprint(d):
|
||||||
if (d == None):
|
if (d == None):
|
||||||
return d
|
return d
|
||||||
else:
|
else:
|
||||||
return strfdeltah(d)
|
return strfdeltah(d)
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
def c2userid(user):
|
def c2userid(user):
|
||||||
@@ -221,7 +221,7 @@ def lookup(dict, key):
|
|||||||
s = dict.get(key)
|
s = dict.get(key)
|
||||||
|
|
||||||
if isinstance(s,basestring) and len(s) > 22:
|
if isinstance(s,basestring) and len(s) > 22:
|
||||||
s = s[:22]
|
s = s[:22]
|
||||||
return s
|
return s
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
|
|||||||
@@ -18,47 +18,47 @@ tested = [
|
|||||||
class URLTests(TestCase):
|
class URLTests(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
redis_connection.publish('tasks','KILL')
|
redis_connection.publish('tasks','KILL')
|
||||||
u = User.objects.create_user('john',
|
u = User.objects.create_user('john',
|
||||||
'sander@ds.ds',
|
'sander@ds.ds',
|
||||||
'koeinsloot',
|
'koeinsloot',
|
||||||
)
|
)
|
||||||
r = Rower.objects.create(user=u,rowerplan='coach',gdproptin=True,
|
r = Rower.objects.create(user=u,rowerplan='coach',gdproptin=True,
|
||||||
gdproptindate=timezone.now())
|
gdproptindate=timezone.now())
|
||||||
self.c = Client()
|
self.c = Client()
|
||||||
|
|
||||||
|
self.nu = datetime.datetime.now()
|
||||||
|
filename = 'rowers/tests/testdata/testdata.csv'
|
||||||
|
self.wotw = Workout.objects.create(name='testworkout',
|
||||||
|
workouttype='water',
|
||||||
|
user=r,date=self.nu.strftime('%Y-%m-%d'),
|
||||||
|
starttime=self.nu.strftime('%H:%M:%S'),
|
||||||
|
duration="0:55:00",distance=8000,
|
||||||
|
csvfilename=filename)
|
||||||
|
|
||||||
|
self.wote = Workout.objects.create(name='testworkout',
|
||||||
|
workouttype='Indoor Rower',
|
||||||
|
user=r,date=self.nu.strftime('%Y-%m-%d'),
|
||||||
|
starttime=self.nu.strftime('%H:%M:%S'),
|
||||||
|
duration="0:55:00",distance=8000,
|
||||||
|
csvfilename=filename)
|
||||||
|
|
||||||
self.nu = datetime.datetime.now()
|
|
||||||
filename = 'rowers/tests/testdata/testdata.csv'
|
|
||||||
self.wotw = Workout.objects.create(name='testworkout',
|
|
||||||
workouttype='water',
|
|
||||||
user=r,date=self.nu.strftime('%Y-%m-%d'),
|
|
||||||
starttime=self.nu.strftime('%H:%M:%S'),
|
|
||||||
duration="0:55:00",distance=8000,
|
|
||||||
csvfilename=filename)
|
|
||||||
|
|
||||||
self.wote = Workout.objects.create(name='testworkout',
|
|
||||||
workouttype='Indoor Rower',
|
|
||||||
user=r,date=self.nu.strftime('%Y-%m-%d'),
|
|
||||||
starttime=self.nu.strftime('%H:%M:%S'),
|
|
||||||
duration="0:55:00",distance=8000,
|
|
||||||
csvfilename=filename)
|
|
||||||
|
|
||||||
powerperc = 100*np.array([r.pw_ut2,
|
powerperc = 100*np.array([r.pw_ut2,
|
||||||
r.pw_ut1,
|
r.pw_ut1,
|
||||||
r.pw_at,
|
r.pw_at,
|
||||||
r.pw_tr,r.pw_an])/r.ftp
|
r.pw_tr,r.pw_an])/r.ftp
|
||||||
|
|
||||||
|
|
||||||
self.hrdata = {
|
self.hrdata = {
|
||||||
'hrmax':r.max,
|
'hrmax':r.max,
|
||||||
'hrut2':r.ut2,
|
'hrut2':r.ut2,
|
||||||
'hrut1':r.ut1,
|
'hrut1':r.ut1,
|
||||||
'hrat':r.at,
|
'hrat':r.at,
|
||||||
'hrtr':r.tr,
|
'hrtr':r.tr,
|
||||||
'hran':r.an,
|
'hran':r.an,
|
||||||
'ftp':r.ftp,
|
'ftp':r.ftp,
|
||||||
'powerperc':serialize_list(powerperc),
|
'powerperc':serialize_list(powerperc),
|
||||||
'powerzones':serialize_list(r.powerzones),
|
'powerzones':serialize_list(r.powerzones),
|
||||||
}
|
}
|
||||||
|
|
||||||
urlstotest = [
|
urlstotest = [
|
||||||
'/rowers/400/',
|
'/rowers/400/',
|
||||||
@@ -103,7 +103,7 @@ class URLTests(TestCase):
|
|||||||
'/rowers/help/',
|
'/rowers/help/',
|
||||||
'/rowers/histo/',
|
'/rowers/histo/',
|
||||||
'/rowers/histo/user/1/',
|
'/rowers/histo/user/1/',
|
||||||
# '/rowers/histo/user/1/2016-01-01/2016-12-31/',
|
# '/rowers/histo/user/1/2016-01-01/2016-12-31/',
|
||||||
'/rowers/histodata/',
|
'/rowers/histodata/',
|
||||||
# '/rowers/job-kill/1/',
|
# '/rowers/job-kill/1/',
|
||||||
# '/rowers/jobs-status/',
|
# '/rowers/jobs-status/',
|
||||||
@@ -264,7 +264,7 @@ class URLTests(TestCase):
|
|||||||
mock_post):
|
mock_post):
|
||||||
|
|
||||||
if url not in tested:
|
if url not in tested:
|
||||||
login = self.c.login(username='john',password='koeinsloot')
|
login = self.c.login(username='john',password='koeinsloot')
|
||||||
self.assertTrue(login)
|
self.assertTrue(login)
|
||||||
response = self.c.get(url,follow=True)
|
response = self.c.get(url,follow=True)
|
||||||
if response.status_code != expected:
|
if response.status_code != expected:
|
||||||
|
|||||||
@@ -14,44 +14,44 @@ from rowers.models import User,Rower, Workout
|
|||||||
|
|
||||||
class UserMiddleWareTest(TestCase):
|
class UserMiddleWareTest(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
u = User.objects.create_user('john',
|
u = User.objects.create_user('john',
|
||||||
'sander@ds.ds',
|
'sander@ds.ds',
|
||||||
'koeinsloot')
|
'koeinsloot')
|
||||||
self.r = Rower.objects.create(user=u)
|
self.r = Rower.objects.create(user=u)
|
||||||
|
|
||||||
self.c = Client()
|
self.c = Client()
|
||||||
self.c.login(username='john',password='koeinsloot')
|
self.c.login(username='john',password='koeinsloot')
|
||||||
self.nu = datetime.datetime.now()
|
self.nu = datetime.datetime.now()
|
||||||
|
|
||||||
filename = 'rowers/tests/testdata/testdata.csv'
|
filename = 'rowers/tests/testdata/testdata.csv'
|
||||||
|
|
||||||
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
|
rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
|
||||||
hrut1=self.r.ut1,hrat=self.r.at,
|
hrut1=self.r.ut1,hrat=self.r.at,
|
||||||
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
|
hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
|
||||||
row = rdata(filename,rower=rr)
|
row = rdata(filename,rower=rr)
|
||||||
totaldist = row.df['cum_dist'].max()
|
totaldist = row.df['cum_dist'].max()
|
||||||
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
|
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
|
||||||
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
|
totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0]
|
||||||
|
|
||||||
|
|
||||||
hours = int(totaltime/3600.)
|
hours = int(totaltime/3600.)
|
||||||
minutes = int((totaltime - 3600.*hours)/60.)
|
minutes = int((totaltime - 3600.*hours)/60.)
|
||||||
seconds = int(totaltime - 3600.*hours - 60.*minutes)
|
seconds = int(totaltime - 3600.*hours - 60.*minutes)
|
||||||
tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
|
tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
|
||||||
|
|
||||||
duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
|
duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
|
||||||
|
|
||||||
|
|
||||||
workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
|
workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
|
||||||
workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
|
workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
|
||||||
|
|
||||||
self.w = Workout.objects.create(
|
self.w = Workout.objects.create(
|
||||||
name='testworkout',workouttype='water',
|
name='testworkout',workouttype='water',
|
||||||
user=self.r,date=self.nu.strftime('%Y-%m-%d'),
|
user=self.r,date=self.nu.strftime('%Y-%m-%d'),
|
||||||
starttime=workoutstarttime,
|
starttime=workoutstarttime,
|
||||||
startdatetime=row.rowdatetime,
|
startdatetime=row.rowdatetime,
|
||||||
duration=duration,distance=totaldist,
|
duration=duration,distance=totaldist,
|
||||||
csvfilename=filename
|
csvfilename=filename
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -62,9 +62,9 @@ class UserMiddleWareTest(TestCase):
|
|||||||
|
|
||||||
class UserTestsNoRower(TestCase):
|
class UserTestsNoRower(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
u = User.objects.create_user('john',
|
u = User.objects.create_user('john',
|
||||||
'sander@ds.ds',
|
'sander@ds.ds',
|
||||||
'koeinsloot')
|
'koeinsloot')
|
||||||
|
|
||||||
self.c = Client()
|
self.c = Client()
|
||||||
self.c.login(username='john',password='koeinsloot')
|
self.c.login(username='john',password='koeinsloot')
|
||||||
|
|||||||
@@ -819,15 +819,26 @@ def get_blog_posts(request):
|
|||||||
image_url = ''
|
image_url = ''
|
||||||
|
|
||||||
|
|
||||||
title = postdata['title']['rendered'].encode(
|
try:
|
||||||
'ascii','xmlcharrefreplace')
|
title = postdata['title']['rendered'].encode(
|
||||||
|
'ascii','xmlcharrefreplace')
|
||||||
|
|
||||||
excerpt = postdata['excerpt']['rendered'].encode(
|
excerpt = postdata['excerpt']['rendered'].encode(
|
||||||
'ascii','xmlcharrefreplace')
|
'ascii','xmlcharrefreplace')
|
||||||
|
|
||||||
ptester = re.compile('\<p\>(\w.*)\<\/p\>')
|
ptester = re.compile('\<p\>(\w.*)\<\/p\>')
|
||||||
excerpt_first = ptester.match(excerpt).group(1)
|
excerpt_first = ptester.match(excerpt).group(1)
|
||||||
|
except TypeError:
|
||||||
|
title = postdata['title']['rendered'].encode(
|
||||||
|
'ascii','xmlcharrefreplace').decode('utf-8')
|
||||||
|
|
||||||
|
excerpt = postdata['excerpt']['rendered'].encode(
|
||||||
|
'ascii','xmlcharrefreplace').decode('utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
ptester = re.compile('\<p\>(\w.*)\<\/p\>')
|
||||||
|
excerpt_first = ptester.match(excerpt).group(1)
|
||||||
|
|
||||||
thedict = {
|
thedict = {
|
||||||
'title': title,
|
'title': title,
|
||||||
'author': '',
|
'author': '',
|
||||||
|
|||||||
Reference in New Issue
Block a user