from django.test import TestCase, Client from django.test.client import RequestFactory from .views import checkworkoutuser,c2_open from rowers.models import Workout, User, Rower, WorkoutForm,RowerForm,GraphImage from rowers.forms import DocumentsForm,CNsummaryForm import rowers.plots as plots import rowers.interactiveplots as iplots import datetime from rowingdata import rowingdata as rdata from rowingdata import rower as rrower from rowsandall_app.rows import handle_uploaded_file from django.core.files.uploadedfile import SimpleUploadedFile from time import strftime,strptime,mktime,time,daylight import os from rowers.tasks import handle_makeplot from rowers.c2stuff import C2NoTokenError import json from rowers import urls from rowers.views import error500_view,error404_view,error400_view,error403_view # Create your tests here. class TestErrorPages(TestCase): def test_error_handlers(self): self.assertTrue(urls.handler404.endswith('.error404_view')) self.assertTrue(urls.handler500.endswith('.error500_view')) factory = RequestFactory() request = factory.get('/') response = error404_view(request) self.assertEqual(response.status_code, 404) self.assertIn('404 Page not found', unicode(response)) response = error500_view(request) self.assertEqual(response.status_code, 500) self.assertIn('500 Internal Server Error', unicode(response)) class WorkoutTests(TestCase): def setUp(self): u = User.objects.create_user('john', 'sander@ds.ds', 'koeinsloot') r = Rower.objects.create(user=u) nu = datetime.datetime.now() w = Workout.objects.create(name='testworkout',workouttype='On-water', user=r,date=nu.strftime('%Y-%m-%d'), starttime=nu.strftime('%H:%M:%S'), duration="0:55:00",distance=8000) def test_checkworkoutuser(self): u = User.objects.get(username='john') r = Rower.objects.get(user=u) w = Workout.objects.get(user=r) self.assertEqual(checkworkoutuser(u,w),True) class C2Tests(TestCase): def setUp(self): self.u = User.objects.create_user('john', 'sander@ds.ds', 'koeinsloot') self.r = Rower.objects.create(user=u) self.nu = datetime.datetime.now() self.w = Workout.objects.create(name='testworkout',workouttype='On-water', user=r,date=nu.strftime('%Y-%m-%d'), starttime=nu.strftime('%H:%M:%S'), duration="0:55:00",distance=8000) def c2_notokentest(self): thetoken = c2_open(self.u) # should raise C2NoTokenError self.assertRaises(C2NoTokenError) class DataTest(TestCase): def setUp(self): u = User.objects.create_user('john', 'sander@ds.ds', 'koeinsloot') r = Rower.objects.create(user=u) self.nu = datetime.datetime.now() def test_workoutform(self): form_data = { 'name':'test', 'date':'2016-05-01', 'starttime':'07:53:00', 'duration':'0:55:00.1', 'distance':8000, 'notes':'Aap noot \n mies', 'workouttype':'water', } form = WorkoutForm(data=form_data) self.assertTrue(form.is_valid()) def test_rower_form_withvalidnumbers(self): form_data = { 'max':192, 'rest':48, 'ut2':105, 'ut1':148, 'at':160, 'tr':167, 'an':180, 'weightcategory':'lwt', } form = RowerForm(data=form_data) self.assertTrue(form.is_valid()) def test_rower_form_twoequalvalues(self): form_data = { 'max':192, 'rest':48, 'ut2':105, 'ut1':105, 'at':160, 'an':180, 'tr':167, 'weightcategory':'lwt', } form = RowerForm(data=form_data) self.assertFalse(form.is_valid()) def test_rower_form_abovemaxallowed(self): form_data = { 'max':300, 'rest':48, 'ut2':105, 'ut1':148, 'at':160, 'an':180, 'tr':167, 'weightcategory':'lwt', } form = RowerForm(data=form_data) self.assertFalse(form.is_valid()) def test_rower_form_wrongorder(self): form_data = { 'max':192, 'rest':48, 'ut2':20, 'ut1':148, 'at':160, 'an':180, 'tr':167, 'weightcategory':'lwt', } form = RowerForm(data=form_data) self.assertFalse(form.is_valid()) def test_rower_form_belowminalloed(self): form_data = { 'max':192, 'rest':2, 'ut2':105, 'ut1':148, 'at':160, 'an':180, 'tr':167, 'weightcategory':'lwt', } form = RowerForm(data=form_data) self.assertFalse(form.is_valid()) def test_rower_form_wrongorder2(self): form_data = { 'max':192, 'rest':48, 'ut2':105, 'ut1':170, 'at':160, 'an':180, 'tr':167, 'weightcategory':'lwt', } form = RowerForm(data=form_data) self.assertFalse(form.is_valid()) def test_painsled(self): filename = 'C:\\python\\rowingdata\\testdata\\testdata.csv' f = open(filename,'rb') file_data = {'file': SimpleUploadedFile(f.name, f.read())} form_data = { 'title':'test', 'workouttype':'water', 'notes':'aap noot mies', } form = DocumentsForm(form_data,file_data) self.assertTrue(form.is_valid()) f.close() u = User.objects.get(username='john') r = Rower.objects.get(user=u) rr = rrower(hrmax=r.max,hrut2=r.ut2, hrut1=r.ut1,hrat=r.at, hrtr=r.tr,hran=r.an) 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') w = Workout.objects.create(name='testworkout',workouttype='On-water', user=r,date=self.nu.strftime('%Y-%m-%d'), starttime=workoutstarttime, duration=duration,distance=totaldist, csvfilename=filename) fig1 = plots.mkplot(row,'test') res = iplots.interactive_chart(w.id) res = iplots.interactive_chart(w.id,promember=1) res = iplots.interactive_bar_chart(w.id) res = iplots.interactive_bar_chart(w.id,promember=1) res = iplots.interactive_flex_chart(w.id,promember=0,xparam='time', yparam1='pace',yparam2='hr') res = iplots.interactive_flex_chart(w.id,promember=0,xparam='distance', yparam1='pace',yparam2='hr') res = iplots.interactive_flex_chart(w.id,promember=0,xparam='time', yparam1='pace',yparam2='spm') res = iplots.interactive_flex_chart(w.id,promember=0,xparam='distance', yparam1='pace',yparam2='spm') res = iplots.interactive_flex_chart(w.id,promember=1,xparam='time', yparam1='pace',yparam2='hr') res = iplots.interactive_flex_chart(w.id,promember=1,xparam='distance', yparam1='pace',yparam2='hr') res = iplots.interactive_flex_chart(w.id,promember=1,xparam='time', yparam1='pace',yparam2='spm') res = iplots.interactive_flex_chart(w.id,promember=1,xparam='distance', yparam1='pace',yparam2='spm') class ViewTest(TestCase): def setUp(self): self.c = Client() self.u = User.objects.create_user('john', 'sander@ds.ds', 'koeinsloot') self.r = Rower.objects.create(user=self.u) self.nu = datetime.datetime.now() def test_upload_view_notloggedin(self): response = self.c.post('/rowers/workout/upload/',follow=True) self.assertRedirects(response, expected_url='/login/?next=/rowers/workout/upload/', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) def test_upload_view_sled(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\testdata.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) response = self.c.get('/rowers/workout/1/', form_data, follow=True) self.assertEqual(response.status_code, 200) response = self.c.get('/rowers/workout/1/interactiveplot', form_data, follow=True) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_notloggedin(self): response = self.c.post('/rowers/workout/upload/',follow=True) self.assertRedirects(response, expected_url='/login/?next=/rowers/workout/upload/', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) def test_upload_view_sled_negativetime(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\tim.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) response = self.c.get('/rowers/workout/1/', form_data, follow=True) self.assertEqual(response.status_code, 200) response = self.c.get('/rowers/workout/1/interactiveplot', form_data, follow=True) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_sled_noname(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\testdata.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_TCX_CN(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\crewnerddata.tcx' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'water', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) filename = 'C:\\python\\rowingdata\\testdata\\crewnerddata.CSV' f = open(filename,'rb') file_data = {'file': f} form_data = {} form = CNsummaryForm(form_data,file_data) response = self.c.post('rowers/workout/1/crewnerdsummary', form_data, follow=True) f.close() self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_TCX_SpeedCoach2(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\Speedcoach2example.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'water', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_TCX_SpeedCoach2(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\Speedcoach2example.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'water', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_TCX_SpeedCoach2(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\speedcoach3test3.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'water', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_TCX_NoHR(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\NoHR.tcx' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'water', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_TCX_CN(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\rowinginmotionexample.tcx' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'water', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_RP(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\RP_testdata.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_Mystery(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\mystery.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_RP_interval(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\RP_interval.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_sled_desktop(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\painsled_desktop_example.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_sled_ergdata(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\ergdata_example.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) def test_upload_view_sled_ergstick(self): self.c.login(username='john',password='koeinsloot') filename = 'C:\\python\\rowingdata\\testdata\\ergstick.csv' f = open(filename,'rb') file_data = {'file': f} form_data = { 'title':'test', 'workouttype':'rower', 'notes':'aap noot mies', 'make_plot':False, 'upload_to_c2':False, 'plottype':'timeplot', 'file': f, } form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) self.assertRedirects(response, expected_url='/rowers/workout/1/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) # def test_upload_view_FIT_SpeedCoach2a(self): # self.c.login(username='john',password='koeinsloot') # filename = 'C:\\python\\rowingdata\\testdata\\3x250m.fit' # with open(filename,'rb') as f: # file_data = {'file': f} # form_data = { # 'title':'test', # 'workouttype':'water', # 'notes':'aap noot mies', # 'make_plot':False, # 'upload_to_c2':False, # 'plottype':'timeplot', # 'file': f, # } # form = DocumentsForm(form_data,file_data) # response = self.c.post('/rowers/workout/upload/', # form_data, follow=True, # format='multipart') # f.close() # self.assertRedirects(response, expected_url='/rowers/workout/1/edit', # status_code=302,target_status_code=200) # self.assertEqual(response.status_code, 200) # w = Workout.objects.get(id=1) # f_to_be_deleted = w.csvfilename # os.remove(f_to_be_deleted) class subroutinetests(TestCase): def setUp(self): u = User.objects.create_user('john', 'sander@ds.ds', 'koeinsloot') r = Rower.objects.create(user=u) nu = datetime.datetime.now() filename = 'C:\\python\\rowingdata\\testdata\\testdata.csv' self.w = Workout.objects.create(name='testworkout', workouttype='On-water', user=r,date=nu.strftime('%Y-%m-%d'), starttime=nu.strftime('%H:%M:%S'), duration="0:55:00",distance=8000, csvfilename=filename) def test_seconds(self): seconds = [30.3,75.8,3900.3,104670.2] res = iplots.get_datetimes(seconds) def c2stuff(self): data = c2stuff.createc2workoutdata(self.w) jsond = json.dumps(data) data = c2stuff.createc2workoutdata_as_splits(w) jsond = json.dumps(data) data = c2stuff.createc2workoutdata_as_grouped(w) jsond = json.dumps(data) class PlotTests(TestCase): def setUp(self): u = User.objects.create_user('john', 'sander@ds.ds', 'koeinsloot') r = Rower.objects.create(user=u) self.nu = datetime.datetime.now() filename = 'C:\\python\\rowingdata\\testdata\\testdata.csv' self.wotw = Workout.objects.create(name='testworkout', workouttype='On-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) # timestr = strftime("%Y%m%d-%H%M%S") # imagename = f1+timestr+'.png' # fullpathimagename = 'static/plots/'+imagename self.hrdata = { 'hrmax':r.max, 'hrut2':r.ut2, 'hrut1':r.ut1, 'hrat':r.at, 'hrtr':r.tr, 'hran':r.an, } def test_ote_plots(self): w = self.wote f1 = 'testdata.csv'[:-4] timestr = strftime("%Y%m%d-%H%M%S") imagename = f1+timestr+'.png' fullpathimagename = 'static/plots/'+imagename # make plot - asynchronous task plotnr = 1 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 1 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 2 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 3 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 4 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 5 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 6 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 7 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 8 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) def test_otw_plots(self): w = self.wotw f1 = 'testdata.csv'[:-4] timestr = strftime("%Y%m%d-%H%M%S") imagename = f1+timestr+'.png' fullpathimagename = 'static/plots/'+imagename # make plot - asynchronous task plotnr = 1 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 1 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 2 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 3 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 4 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 5 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 6 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 7 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename) plotnr = 8 if (w.workouttype=='water'): plotnr = plotnr+3 res = handle_makeplot(f1,w.csvfilename, w.name,self.hrdata,plotnr,imagename) i = GraphImage(workout=w,creationdatetime=self.nu, filename=fullpathimagename) os.remove(fullpathimagename)