From abceefa42c745780ba0d8649400a9c281089dab4 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 3 Jan 2019 18:11:19 +0100 Subject: [PATCH] non succeeeded in ajax test --- rowers/tests/donottest_ajax.py | 82 + rowers/tests/test_admin.py,cover | 47 - rowers/tests/test_imports.py | 12 +- rowers/tests/test_user.py,cover | 94 - rowers/tests/tests.py | 5 + rowers/tests/tests.py,cover | 2831 ------------------------------ rowers/views.py | 7 +- 7 files changed, 101 insertions(+), 2977 deletions(-) create mode 100644 rowers/tests/donottest_ajax.py delete mode 100644 rowers/tests/test_admin.py,cover delete mode 100644 rowers/tests/test_user.py,cover delete mode 100644 rowers/tests/tests.py,cover diff --git a/rowers/tests/donottest_ajax.py b/rowers/tests/donottest_ajax.py new file mode 100644 index 00000000..92d223de --- /dev/null +++ b/rowers/tests/donottest_ajax.py @@ -0,0 +1,82 @@ +#from __future__ import print_function +import pytest + +pytestmark = pytest.mark.django_db + +from bs4 import BeautifulSoup +import re +from nose_parameterized import parameterized +from django.test import TestCase, Client,override_settings +from django.core.management import call_command +from django.utils.six import StringIO +from django.test.client import RequestFactory +from rowers.views import checkworkoutuser,c2_open +from rowers.models import Workout, User, Rower, WorkoutForm,RowerForm,GraphImage +from rowers.forms import DocumentsForm,CNsummaryForm,RegistrationFormUniqueEmail +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 django.utils import timezone +from rowers.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.utils import serialize_list,deserialize_list +from rowers.utils import NoTokenError +from shutil import copyfile +from nose.tools import assert_true +from mock import Mock, patch +from minimocktest import MockTestCase +import pandas as pd +import rowers.c2stuff as c2stuff + +import json +import numpy as np + +from rowers import urls +from rowers.views import error500_view,error404_view,error400_view,error403_view + +from rowers.dataprep import delete_strokedata + +from redis import StrictRedis +redis_connection = StrictRedis() + +class AjaxTests(TestCase): + def setUp(self): + redis_connection.publish('tasks','KILL') + u = User.objects.create_user('john', + 'sander@ds.ds', + 'koeinsloot') + r = Rower.objects.create(user=u,gdproptin=True, + gdproptindate=timezone.now() + ) + self.nu = datetime.datetime.now() + + self.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=self.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=self.filename) + + + self.c = Client() + + def test_toggle_ranking(self): + response = self.c.get( + '/rowers/workout/1/toggle-ranking/', + **{'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'}) + + jsondata = json.loads(response.json()) + self.assertIn('result',jsondata) diff --git a/rowers/tests/test_admin.py,cover b/rowers/tests/test_admin.py,cover deleted file mode 100644 index 083f75f0..00000000 --- a/rowers/tests/test_admin.py,cover +++ /dev/null @@ -1,47 +0,0 @@ - #from __future__ import print_function -> import pytest - -> pytestmark = pytest.mark.django_db - -> from bs4 import BeautifulSoup -> import re -> from nose_parameterized import parameterized -> from django.test import TestCase, Client,override_settings -> from django.core.management import call_command -> from django.utils.six import StringIO -> from django.test.client import RequestFactory -> import datetime - -> import json -> import numpy as np - - -> from redis import StrictRedis -> redis_connection = StrictRedis() - -> from rowers.models import User,Rower - -> @pytest.mark.django_db -> class AdminTests(TestCase): -> def setUp(self): -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -> r = Rower.objects.create(user=u) -> my_admin = User.objects.create_superuser('myuser', -> 'myemail@test.com', -> 'apensstaart') - -> self.c = Client() -> self.c.login(username='myuser',password='apensstaart') - -> def test_admin(self): -> response = self.c.get('/admin',follow=True) -> self.assertEqual(response.status_code,200) - - -> response = self.c.get('/admin/auth/user/',follow=True) -> self.assertEqual(response.status_code,200) - -> response = self.c.get('/admin/auth/user/77/change/',follow=True) -> self.assertEqual(response.status_code,200) diff --git a/rowers/tests/test_imports.py b/rowers/tests/test_imports.py index 1e84168c..ee537e2e 100644 --- a/rowers/tests/test_imports.py +++ b/rowers/tests/test_imports.py @@ -152,7 +152,8 @@ class C2Objects(DjangoTestCase): self.assertEqual(response.status_code, 200) - def test_strokedata(self): + @patch('rowers.dataprep.create_engine') + def test_strokedata(self, mocked_sqlalchemy): with open('rowers/tests/testdata/c2stroketestdata.txt','r') as infile: res = json.load(infile) @@ -167,7 +168,8 @@ class C2Objects(DjangoTestCase): res = add_workout_from_strokedata(self.u,1,data,strokedata,source='c2') - def test_strokedatanohr(self): + @patch('rowers.dataprep.create_engine') + def test_strokedatanohr(self, mocked_sqlalchemy): with open('rowers/tests/testdata/c2strokedatanohr.txt','r') as infile: res = json.load(infile) @@ -399,7 +401,8 @@ class STObjects(DjangoTestCase): self.assertEqual(response.status_code, 200) - def test_strokedata(self): + @patch('rowers.dataprep.create_engine') + def test_strokedata(self, mocked_sqlalchemy): with open('rowers/tests/testdata/sporttrackstestdata.txt','r') as infile: data = json.load(infile) @@ -407,7 +410,8 @@ class STObjects(DjangoTestCase): res = add_workout_from_data(self.u,1,data,data) - def test_strokedatanohr(self): + @patch('rowers.dataprep.create_engine') + def test_strokedatanohr(self, mocked_sqlalchemy): with open('rowers/tests/testdata/sporttrackstestnohr.txt','r') as infile: data = json.load(infile) diff --git a/rowers/tests/test_user.py,cover b/rowers/tests/test_user.py,cover deleted file mode 100644 index 5ece6fa8..00000000 --- a/rowers/tests/test_user.py,cover +++ /dev/null @@ -1,94 +0,0 @@ - #from __future__ import print_function -> import pytest - -> pytestmark = pytest.mark.django_db - -> from bs4 import BeautifulSoup -> import re -> from nose_parameterized import parameterized -> from django.test import TestCase, Client,override_settings -> from django.core.management import call_command -> from django.utils.six import StringIO -> from django.test.client import RequestFactory -> import datetime -! from django.utils import timezone - -> import json -! import numpy as np - - -> from redis import StrictRedis -! redis_connection = StrictRedis() - -! from rowers.models import User,Rower, Workout - -> class UserMiddleWareTest(TestCase): -> def setUp(self): -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -! r = Rower.objects.create(user=u) - -> self.c = Client() -! self.c.login(username='john',password='koeinsloot') -> nu = datetime.datetime.now() - -> response = dataprep.new_workout_from_file(r,'/media/testdata.csv.gz', -> title='sample') - -! newworkoutid = response[0] -! self.w = Workout.objects.get(id=newworkoutid) - - -! def test_middleware(self): -! response = self.c.get('/rowers/list-workouts',follow=True) -! self.assertEqual(response.status_code,200) - -! class UserExpireTest(TestCase): -! def setUp(self): -! redis_connection.publish('tasks','KILL') -! self.u = User.objects.create_user('john', -! 'sander@ds.ds', -! 'koeinsloot') - -! yesterday_dt = timezone.now()-datetime.timedelta(days=1) -! yesterday = yesterday_dt.date() - -! r = Rower.objects.create(user=self.u,planexpires = yesterday,rowerplan='pro', -! paymenttype='single') - -! self.c = Client() -! self.c.login(username='john',password='koeinsloot') -! nu = datetime.datetime.now() - -! response = dataprep.new_workout_from_file(r,'/media/testdata.csv.gz', -! title='sample') - -! newworkoutid = response[0] -! self.w = Workout.objects.get(id=newworkoutid) - - -! def test_expire(self): -! response = self.c.get('/rowers/list-workouts',follow=True) -! self.assertEqual(response.status_code,200) -! self.assertEqual(self.u.rower.rowerplan,'basic') - -! class UserTestsNoRower(TestCase): -! def setUp(self): -! u = User.objects.create_user('john', -! 'sander@ds.ds', -! 'koeinsloot') - -! self.c = Client() -! self.c.login(username='john',password='koeinsloot') -! nu = datetime.datetime.now() -! self.w = Workout.objects.create(name='testworkout', -! workouttype='water', -! user=self.r,date=nu.strftime('%Y-%m-%d'), -! starttime=nu.strftime('%H:%M:%S'), -! duration="0:55:00",distance=8000) - -! def test_user(self): -! response = self.c.get('/rowers/list-workouts',follow=True) -! self.assertEqual(response.status_code,200) - diff --git a/rowers/tests/tests.py b/rowers/tests/tests.py index 1511c6ab..9a298642 100644 --- a/rowers/tests/tests.py +++ b/rowers/tests/tests.py @@ -444,6 +444,11 @@ class ViewTest(TestCase): response = self.c.get('/rowers/workout/1/histo', form_data, follow=True) self.assertEqual(response.status_code, 200) + response = self.c.get('/rowers/workout/1/workflow', + follow=True) + + self.assertEqual(response.status_code, 200) + form_data = { 'name':'aap', 'date':'2016-11-05', diff --git a/rowers/tests/tests.py,cover b/rowers/tests/tests.py,cover deleted file mode 100644 index 3c9785cd..00000000 --- a/rowers/tests/tests.py,cover +++ /dev/null @@ -1,2831 +0,0 @@ - #from __future__ import print_function -> import pytest - -> pytestmark = pytest.mark.django_db - -> from bs4 import BeautifulSoup -> import re -> from nose_parameterized import parameterized -> from django.test import TestCase, Client,override_settings -> from django.core.management import call_command -> from django.utils.six import StringIO -> from django.test.client import RequestFactory -> from rowers.views import checkworkoutuser,c2_open -> from rowers.models import Workout, User, Rower, WorkoutForm,RowerForm,GraphImage -> from rowers.forms import DocumentsForm,CNsummaryForm,RegistrationFormUniqueEmail -> 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 django.utils import timezone -> from rowers.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.utils import serialize_list,deserialize_list -> from rowers.utils import NoTokenError -> from shutil import copyfile -> from nose.tools import assert_true -> from mock import Mock, patch -> from minimocktest import MockTestCase -> import pandas as pd -> import rowers.c2stuff as c2stuff - -> import json -> import numpy as np - -> from rowers import urls -> from rowers.views import error500_view,error404_view,error400_view,error403_view - -> from rowers.dataprep import delete_strokedata - -> from redis import StrictRedis -> redis_connection = StrictRedis() - - #@pytest.mark.django_db -> class DjangoTestCase(TestCase, MockTestCase): -> def _pre_setup(self): -> MockTestCase.setUp(self) -> TestCase._pre_setup(self) -> self.client = Client() - -> def _post_teardown(self): -> TestCase._post_teardown(self) -> MockTestCase.tearDown(self) -> delete_strokedata(1) - - # to be done add polar mocks (for email processing) -> def mocked_requests(*args, **kwargs): -> with open('rowers/tests/testdata/c2jsonworkoutdata.txt','r') as infile: -> c2workoutdata = json.load(infile) - -> with open('rowers/tests/testdata/c2jsonstrokedata.txt','r') as infile: -> c2strokedata = json.load(infile) - -> polar_json = { -> 'available-user-data': [] -> } - -> c2workoutlist = json.load(open('rowers/tests/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/tests/testdata/stravaworkoutlist.txt')) -> sporttracksworkoutlist = json.load(open('rowers/tests/testdata/sporttracksworkouts.txt')) - -> rkworkoutlistjson = json.load(open('rowers/tests/testdata/rkworkoutslist.txt','r')) -> uaworkoutlistjson = json.load(open('rowers/tests/testdata/uaworkoutlist.txt','r')) - -> stravasummaryjson = json.load(open('rowers/tests/testdata/stravaworkoutsummary.txt','r')) - -> stravatimejson = json.load(open('rowers/tests/testdata/stravatimetestdata.txt','r')) -> stravavelojson = json.load(open('rowers/tests/testdata/stravavelotestdata.txt','r')) - -> stravapowerjson = json.load(open('rowers/tests/testdata/stravapowertestdata.txt','r')) - -> stravadistancejson = json.load(open('rowers/tests/testdata/stravadistancetestdata.txt','r')) -> stravalatlongjson = json.load(open('rowers/tests/testdata/stravalatlongtestdata.txt','r')) -> stravahrjson = json.load(open('rowers/tests/testdata/stravahrtestdata.txt','r')) -> stravaspmjson = json.load(open('rowers/tests/testdata/stravaspmtestdata.txt','r')) - -> uapostworkoutjson = json.load(open('rowers/tests/testdata/uapostworkoutresponse.txt','r')) - -> tpuploadresponse = json.load(open('rowers/tests/testdata/tpuploadresponse.txt','r')) - -> stravastreamjson = { -> 'time':stravatimejson, -> 'velocity_smooth':stravavelojson, -> 'distance':stravadistancejson, -> 'latlng':stravalatlongjson, -> 'heartrate':stravahrjson, -> 'cadence':stravaspmjson, -> 'power':stravapowerjson, -> } - -> ststrokesjson = json.load(open('rowers/tests/testdata/sporttracksstrokedata.txt','r')) - -> rkstrokesjson = json.load(open('rowers/tests/testdata/rkstrokes.txt','r')) - -> uastrokesjson = json.load(open('rowers/tests/testdata/uastrokes.txt','r')) -> uauserjson = json.load(open('rowers/tests/testdata/uauser.txt','r')) - -> class MockResponse: -> def __init__(self, json_data, status_code): -> self.json_data = json_data -> self.status_code = status_code - -> def json(self): -> return self.json_data - - -> class MockHeaderResponse: -> def __init__(self, header_data, status_code): -> self.headers = header_data -> self.status_code = status_code - -> class MockSession: -> def send(self,prepped): - # prepped.url - # prepped.body (post data) - # prepped.headers - # prepped.method - -> json_data = { -> 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq', -> 'expires_in': 604800, -> 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR' -> } - -> return MockResponse(json_data,200) - -> if not args: -> return MockSession() - -> polartester = re.compile('.*?polaraccesslink\.com') -> c2tester = re.compile('.*?log\.concept2\.com') -> stravatester = re.compile('.*?strava\.com') -> sttester = re.compile('.*?sporttracks\.mobi') -> rktester = re.compile('.*?runkeeper\.com') -> uatester = re.compile('.*?mapmyfitness\.com') -> tptester = re.compile('.*?trainingpeaks\.com') - -> 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) - -> c2workoutlistregex = '.*?concept2\.com\/api\/users\/me\/results\?page=\d' -> c2workoutlisttester = re.compile(c2workoutlistregex) - -> stravaworkoutlistregex = '.*?strava\.com\/api\/v3\/athlete\/activities' -> stravaworkoutlisttester = re.compile(stravaworkoutlistregex) - -> stravastreamregex = '.*?strava\.com\/api\/v3\/activities\/\d+\/streams\/(\w.*?)\?' -> stravastreamtester = re.compile(stravastreamregex) - -> 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) - -> ststrokesregex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivities/\d+$' -> ststrokestester = re.compile(ststrokesregex) - -> rkuploadregex = '.*?api\.runkeeper\.com\/fitnessActivities$' -> rkuploadtester = re.compile(rkuploadregex) -> rkuserregex = '.*?api\.runkeeper\.com\/user$' -> rkusertester = re.compile(rkuserregex) -> rkstrokesregex = '.*?api\.runkeeper\.com\/fitnessActivities/\d+$' -> rkstrokestester = re.compile(rkstrokesregex) - -> uaapiregex = '.*?api\.ua\.com' -> uaapitester = re.compile(uaapiregex) - -> uauploadregex = '.*?api\.ua\.com\/v7.1\/workout\/$' -> uauploadtester = re.compile(uauploadregex) - -> uastrokesregex = '.*?api\.ua\.com\/v7.1\/workout\/\d+' -> uastrokestester = re.compile(uastrokesregex) - -> ualistregex = '.*?api\.ua\.com\/v7.1\/workout\/\?user' -> ualisttester = re.compile(ualistregex) - -> uauserregex = '.*?api\.ua\.com\/v7.1\/user\/self\/' -> uausertester = re.compile(uauserregex) - -> tpuploadregex = '.*?trainingpeaks\.com\/v1\/file' -> tpuploadtester = re.compile(tpuploadregex) - -> if polartester.match(args[0]): -> json_data = polar_json -> return MockResponse(json_data,200) - -> if tptester.match(args[0]): -> if 'token' in args[0]: -> json_data = { -> 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq', -> 'expires_in': 604800, -> 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR' -> } -> return MockResponse(json_data,200) -> elif tpuploadtester.match(args[0]): -> return MockResponse(tpuploadresponse,200) - -> if uaapitester.match(args[0]): -> if 'access_token' in args[0]: -> json_data = { -> 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq', -> 'expires_in': 604800, -> 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR' -> } -> return MockResponse(json_data,200) -> elif uauploadtester.match(args[0]): -> if 'data' in kwargs: -> return MockResponse(uapostworkoutjson,200) -> elif uastrokestester.match(args[0]): -> return MockResponse(uastrokesjson,200) -> elif ualisttester.match(args[0]): -> return MockResponse(uaworkoutlistjson,200) -> elif uausertester.match(args[0]): -> return MockResponse(uauserjson,200) - - -> if uatester.match(args[0]): -! if 'access_token' in args[0]: -! json_data = { -! 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq', -! 'expires_in': 604800, -! 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR' -! } -! return MockResponse(json_data,200) - - -> if rktester.match(args[0]): -> if 'token' in args[0]: -> json_data = { -> 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq', -> 'expires_in': 604800, -> 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR' -> } -> return MockResponse(json_data,200) -> elif rkuploadtester.match(args[0]): -> if 'data' in kwargs: - # post -> header_data = { -> 'Location': '/fitnessActivities/12' -> } -> return MockHeaderResponse(header_data,200) -> else: -> json_data = rkworkoutlistjson -> return MockResponse(json_data,200) -> elif rkusertester.match(args[0]): -> json_data = { -> "userID": 1234567890, -> "profile": "/profile", -> "settings": "/settings", -> "fitness_activities": "/fitnessActivities", -> "strength_training_activities": "/strengthTrainingActivities", -> "background_activities": "/backgroundActivities", -> "sleep": "/sleep", -> "nutrition": "/nutrition", -> "weight": "/weight", -> "general_measurements": "/generalMeasurements", -> "diabetes": "/diabetes", -> "records": "/records", -> "team": "/team" -> } -> return MockResponse(json_data, 200) -> elif rkstrokestester.match(args[0]): -> return MockResponse(rkstrokesjson,200) - -> 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 ststrokestester.match(args[0]): -> return MockResponse(ststrokesjson,200) -> if stuploadtester.match(args[0]): -> json_data = { -> "uris": [ -> "https://api.sporttracks.mobi/api/v2/fitnessActivities/123456.json" -> ] -> } -> return MockResponse(json_data, 200) -> if stworkoutlisttester.match(args[0]): -> return MockResponse(sporttracksworkoutlist,200) - - -> if stravatester.match(args[0]): -> if stravaworkoutlisttester.match(args[0]): -! return MockResponse(stravaworkoutlist,200) -> if stravastreamtester.match(args[0]): -> metric = stravastreamtester.match(args[0]).group(1) -> json_data = stravastreamjson[metric] -> return MockResponse(json_data,200) -> elif stravasummarytester.match(args[0]): -> return MockResponse(stravasummaryjson,200) -> elif 'token' in args[0]: -> json_data = { -> "token_type": "Bearer", -> "access_token": "987654321234567898765432123456789", -> "refresh_token": "1234567898765432112345678987654321", -> "expires_at": 1531385304 -> } -> return MockResponse(json_data,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.match(args[0]): -> return MockResponse(c2workoutlist,200) -> elif 'access_token' in args[0]: -! json_data = { -! 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq', -! 'expires_in': 604800, -! 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR' -! } -! return MockResponse(json_data,200) -> elif 'users/me' in args[0]: -> json_data = { -> 'data': { -> 'username': 'john', -> 'id': 1234, -> } -> } -> return MockResponse(json_data,200) -! elif 'results' in args[0]: -! json_data = { -! 'data': { -! 'id': 1223, -! } -! } -! else: -! return MockResponse(c2workoutdata,200) - -! return MockResponse(None,404) - - #@pytest.mark.django_db -> class C2Objects(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.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/tests/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='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_Session): -> response = self.c.get('/call_back?code=dsdoij232s',follow=True) - - -> self.assertEqual(response.status_code, 200) - - -> @patch('rowers.c2stuff.Session', side_effect=mocked_requests) -> def test_c2_token_refresh(self, mock_post): -> response = self.c.get('/rowers/me/c2refresh/',follow=True) - -> 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/edit', -> status_code=302,target_status_code=200) - -> self.assertEqual(response.url, '/rowers/workout/1/edit') -> self.assertEqual(response.status_code, 302) - -> @patch('rowers.c2stuff.requests.post', side_effect=mocked_requests) -> @patch('rowers.c2stuff.requests.get', side_effect=mocked_requests) -> def test_c2_list(self, mock_get, mock_post): -> response = self.c.get('/rowers/workout/c2list',follow=True) - -> self.assertEqual(response.status_code,200) - -> @patch('rowers.c2stuff.requests.get', side_effect=mocked_requests) -> def test_c2_import(self, mock_get): - -> response = self.c.get('/rowers/workout/c2import/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/tests/testdata/c2stroketestdata.txt','r') as infile: -> res = json.load(infile) - -> strokedata = pd.DataFrame.from_dict(res['data']) - -> with open('rowers/tests/testdata/c2testdata.txt','r') as infile: -> res = json.load(infile) - -> data = res['data'] - -> from rowers.views import add_workout_from_strokedata - -> res = add_workout_from_strokedata(self.u,1,data,strokedata,source='c2') - -> def test_strokedatanohr(self): -> with open('rowers/tests/testdata/c2strokedatanohr.txt','r') as infile: -> res = json.load(infile) - -> strokedata = pd.DataFrame.from_dict(res['data']) - -> with open('rowers/tests/testdata/c2testdata.txt','r') as infile: -> res = json.load(infile) - -> data = res['data'] - -> from rowers.views import add_workout_from_strokedata - - -> res = add_workout_from_strokedata(self.u,1,data,strokedata,source='c2') - -! class C2ObjectsTokenExpired(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.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/tests/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='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.post', side_effect=mocked_requests) -> @patch('rowers.c2stuff.requests.get', side_effect=mocked_requests) -> def test_c2_list(self, mock_get, mock_post): -> response = self.c.get('/rowers/workout/c2list',follow=True) - -! self.assertEqual(response.status_code,200) - -! @patch('rowers.c2stuff.requests.get', side_effect=mocked_requests) -! def test_c2_import(self, mock_get): - -> response = self.c.get('/rowers/workout/c2import/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) - - - - #@pytest.mark.django_db -> class StravaObjects(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.stravatoken = '12' - -> self.r.save() -> self.c.login(username='john',password='koeinsloot') - -! @patch('rowers.stravastuff.requests.post', side_effect=mocked_requests) -! def test_strava_list(self, mock_get): -! response = self.c.get('/rowers/workout/stravaimport/',follow=True) - -! self.assertEqual(response.status_code,200) - -> @patch('rowers.utils.requests.get', side_effect=mocked_requests) -> def test_strava_import(self, mock_get): - -> response = self.c.get('/rowers/workout/stravaimport/12',follow=True) - -> self.assertRedirects(response, -> expected_url='/rowers/workout/1/edit', -> status_code=301,target_status_code=200) - -! self.assertEqual(response.status_code, 200) - - - - #@pytest.mark.django_db -! 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/tests/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='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/edit', -> status_code=302,target_status_code=200) - -> self.assertEqual(response.url, '/rowers/workout/1/edit') -> 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/tests/testdata/sporttrackstestdata.txt','r') as infile: -! data = json.load(infile) - -! from rowers.sporttracksstuff import add_workout_from_data - -> res = add_workout_from_data(self.u,1,data,data) - -> def test_strokedatanohr(self): -! with open('rowers/tests/testdata/sporttrackstestnohr.txt','r') as infile: -> data = json.load(infile) - -> from rowers.sporttracksstuff import add_workout_from_data - - - -! res = add_workout_from_data(self.u,1,data,data) - - #@pytest.mark.django_db -> class RunKeeperObjects(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.runkeepertoken = '12' - -! self.r.save() - -> self.c.login(username='john',password='koeinsloot') - -> self.nu = datetime.datetime.now() - -> filename = 'rowers/tests/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='water', -> user=self.r,date=self.nu.strftime('%Y-%m-%d'), -> starttime=workoutstarttime, -> startdatetime=row.rowdatetime, -> duration=duration,distance=totaldist, -> csvfilename=filename -> ) - -> @patch('rowers.runkeeperstuff.requests.post', side_effect=mocked_requests) -> def test_runkeeper_callback(self, mock_post): -> response = self.c.get('/runkeeper_callback?code=dsdoij232s',follow=True) - -> self.assertEqual(response.status_code, 200) - -! @patch('rowers.runkeeperstuff.requests.post', side_effect=mocked_requests) -> @patch('rowers.runkeeperstuff.requests.get', side_effect=mocked_requests) -> def test_runkeeper_upload(self, mock_get, mock_post): -! response = self.c.get('/rowers/workout/1/runkeeperuploadw/') - -> self.assertRedirects(response, -> expected_url = '/rowers/workout/1/edit', -> status_code=302,target_status_code=200) - -> self.assertEqual(response.url, '/rowers/workout/1/edit') -> self.assertEqual(response.status_code, 302) - -! @patch('rowers.runkeeperstuff.requests.get', side_effect=mocked_requests) -! def test_runkeeper_list(self, mock_get): -! response = self.c.get('/rowers/workout/runkeeperimport',follow=True) - -! self.assertEqual(response.status_code,200) - -> @patch('rowers.imports.requests.get', side_effect=mocked_requests) -> def test_runkeeper_import(self, mock_get): - -> response = self.c.get('/rowers/workout/runkeeperimport/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) - - - - #@pytest.mark.django_db -! class UAObjects(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.underarmourtoken = '12' -! self.r.underarmourrefreshtoken = '12' -> self.r.underarmourtokenexpirydate = datetime.datetime.now()+datetime.timedelta(days=1) -! self.r.save() - -> self.c.login(username='john',password='koeinsloot') - -! self.nu = datetime.datetime.now() - -! filename = 'rowers/tests/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='water', -> user=self.r,date=self.nu.strftime('%Y-%m-%d'), -> starttime=workoutstarttime, -> startdatetime=row.rowdatetime, -> duration=duration,distance=totaldist, -> csvfilename=filename -> ) - -> @patch('rowers.imports.requests.post', side_effect=mocked_requests) -> def test_underarmour_callback(self, mock_post): -> response = self.c.get('/underarmour_callback?code=dsdoij232s',follow=True) - - -! self.assertEqual(response.status_code, 200) - - -> @patch('rowers.underarmourstuff.requests.post', side_effect=mocked_requests) -> def test_underarmour_token_refresh(self, mock_post): -> response = self.c.get('/rowers/me/underarmourrefresh/',follow=True) - -> self.assertEqual(response.status_code, 200) - - -> @patch('rowers.underarmourstuff.requests.post', side_effect=mocked_requests) -> @patch('rowers.underarmourstuff.requests.get', side_effect=mocked_requests) -> def test_underarmour_upload(self, mock_get, mock_post): -> response = self.c.get('/rowers/workout/1/underarmouruploadw/') - -> self.assertRedirects(response, -> expected_url = '/rowers/workout/1/edit', -> status_code=302,target_status_code=200) - -> self.assertEqual(response.url, '/rowers/workout/1/edit') -! self.assertEqual(response.status_code, 302) - -> @patch('rowers.underarmourstuff.requests.get', side_effect=mocked_requests) -> def test_underarmour_list(self, mock_get): -> response = self.c.get('/rowers/workout/underarmourimport',follow=True) - -! self.assertEqual(response.status_code,200) - -! @patch('rowers.imports.requests.get', side_effect=mocked_requests) -! def test_underarmour_import(self, mock_get): - -! response = self.c.get('/rowers/workout/underarmourimport/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) - - - #@pytest.mark.django_db -! class TPObjects(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.tptoken = '12' -> self.r.tprefreshtoken = '12' -> self.r.tptokenexpirydate = datetime.datetime.now()+datetime.timedelta(days=1) -> self.r.save() - -> self.c.login(username='john',password='koeinsloot') - -> self.nu = datetime.datetime.now() - -> filename = 'rowers/tests/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='water', -> user=self.r,date=self.nu.strftime('%Y-%m-%d'), -> starttime=workoutstarttime, -> startdatetime=row.rowdatetime, -> duration=duration,distance=totaldist, -> csvfilename=filename -> ) - -> @patch('rowers.imports.requests.post', side_effect=mocked_requests) -> def test_tp_callback(self, mock_post): -> response = self.c.get('/tp_callback?code=dsdoij232s',follow=True) - - -> self.assertEqual(response.status_code, 200) - - -> @patch('rowers.tpstuff.requests.post', side_effect=mocked_requests) -> def test_tp_token_refresh(self, mock_post): -> response = self.c.get('/rowers/me/tprefresh/',follow=True) - -> self.assertEqual(response.status_code, 200) - - -> @patch('rowers.tpstuff.requests.post', side_effect=mocked_requests) -> @patch('rowers.tpstuff.requests.get', side_effect=mocked_requests) -> def test_tp_upload(self, mock_get, mock_post): -> response = self.c.get('/rowers/workout/1/tpuploadw/') - -> self.assertRedirects(response, -> expected_url = '/rowers/workout/1/edit', -> status_code=302,target_status_code=200) - -> self.assertEqual(response.url, '/rowers/workout/1/edit') -> self.assertEqual(response.status_code, 302) - - - - - #@pytest.mark.django_db -> 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)) - - #@pytest.mark.django_db -> class NewUserRegistrationTest(TestCase): -> def setUp(self): -> self.c = Client() -! redis_connection.publish('tasks','KILL') - -! def test_newuser(self): -> form_data = { -> 'first_name':'Jan', -> 'last_name':'Roeiert', -> 'email':'jan@loop.nl', -> 'username':'janderoeiert', -> 'password1':'aapindewei2', -> 'password2':'aapindewei2', -> 'tos':True, -> 'weightcategory':'hwt', -> 'adaptiveclass': 'None', -> 'sex':'male', -> 'next':'/rowers/list-workouts', -> 'birthdate':datetime.datetime(year=1970,month=4,day=2) -> } - -> form = RegistrationFormUniqueEmail(form_data) -> self.assertTrue(form.is_valid()) - -! response = self.c.post('/rowers/register', form_data, follow=True) - -> self.assertRedirects(response, -> expected_url='/rowers/me/gdpr-optin/?next=/rowers/list-workouts/', -> status_code=302,target_status_code=200) - -> from django_mailbox.models import Mailbox,MessageAttachment,Message - - #@pytest.mark.django_db -> class AutoExportTests(TestCase): -! def setUp(self): -! redis_connection.publish('tasks','KILL') -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -> r = Rower.objects.create(user=u,gdproptin=True, -> gdproptindate=timezone.now() -> ) - -> r.c2_auto_export = True -> r.sporttracks_auto_export = True -> r.mapmyfitness_auto_export = True -> r.trainingpeaks_auto_export = True - -! r.save() - -! nu = datetime.datetime.now() -! workoutsbox = Mailbox.objects.create(name='workouts') -> workoutsbox.save() -! failbox = Mailbox.objects.create(name='Failed') -> failbox.save() - -> filename = 'testdata.csv' - -> m = Message(mailbox=workoutsbox, -> from_header = u.email, -> subject = filename, -> body=""" -> --- -> workouttype: water -> boattype: 2x -> ... -> """) -> m.save() -! a2 = 'media/mailbox_attachments/'+filename -! copyfile('rowers/tests/testdata/'+filename,a2) -> a = MessageAttachment(message=m,document=a2[6:]) -> a.save() - -> def tearDown(self): -> for filename in os.listdir('media/mailbox_attachments'): -! path = os.path.join('media/mailbox_attachments/',filename) -> if not os.path.isdir(path): -> try: -> os.remove(path) -> except WindowsError: -! pass - -! @patch('rowers.tpstuff.requests.post', side_effect=mocked_requests) -! @patch('rowers.tpstuff.requests.get', side_effect=mocked_requests) -! def test_emailprocessing(self, mock_post, mock_get): -> out = StringIO() -> call_command('processemail', stdout=out, testing=True) -> self.assertIn('Successfully processed email attachments',out.getvalue()) - - #@pytest.mark.django_db -> class UploadTests(TestCase): -! def setUp(self): -> redis_connection.publish('tasks','KILL') -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -> r = Rower.objects.create(user=u,gdproptin=True, -> gdproptindate=timezone.now() -> ) - -> nu = datetime.datetime.now() -> workoutsbox = Mailbox.objects.create(name='workouts') -> workoutsbox.save() -! failbox = Mailbox.objects.create(name='Failed') -! failbox.save() -> m = Message(mailbox=workoutsbox, -> from_header = u.email, -> subject = "3x(5min/2min)/r2 \r2", -> body = """ -> workout run -> """) -! m.save() -! a2 = 'media/mailbox_attachments/colin2.csv' -! copyfile('rowers/tests/testdata/emails/colin.csv',a2) -> a = MessageAttachment(message=m,document=a2[6:]) -! a.save() - -> def tearDown(self): -> for filename in os.listdir('media/mailbox_attachments'): -! path = os.path.join('media/mailbox_attachments/',filename) -! if not os.path.isdir(path): -! try: -> os.remove(path) -> except (IOError,WindowsError): -> pass - -> @patch('requests.get', side_effect=mocked_requests) -> def test_email_workouttype(self, mock_get): -> out = StringIO() -> call_command('processemail', stdout=out, testing=True) -! w = Workout.objects.get(id=1) -> self.assertEqual(w.workouttype,'Run') - - #@pytest.mark.django_db -> class EmailTests(TestCase): -> def setUp(self): -> redis_connection.publish('tasks','KILL') -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -> r = Rower.objects.create(user=u,gdproptin=True, -> gdproptindate=timezone.now() -> ) - -! nu = datetime.datetime.now() -! workoutsbox = Mailbox.objects.create(name='workouts') -! workoutsbox.save() -! failbox = Mailbox.objects.create(name='Failed') -! failbox.save() - -! for filename in os.listdir(u'rowers/tests/testdata/emails'): -> m = Message(mailbox=workoutsbox, -> from_header = u.email, -> subject = filename, -> body=""" -> --- -> workouttype: water -> boattype: 4x -> ... -> """) -! m.save() -! a2 = 'media/mailbox_attachments/'+filename -! copyfile(u'rowers/tests/testdata/emails/'+filename,a2) -> a = MessageAttachment(message=m,document=a2[6:]) -> a.save() - -> m = Message(mailbox=workoutsbox, -> from_header = u.email, -> subject = "3x(5min/2min)/r2 \r2", -> body = """ -> workout water -> """) -> m.save() -! a2 = 'media/mailbox_attachments/colin2.csv' -! copyfile('rowers/tests/testdata/emails/colin.csv',a2) -> a = MessageAttachment(message=m,document=a2[6:]) -> a.save() - - -> def tearDown(self): -> for filename in os.listdir('media/mailbox_attachments'): -> path = os.path.join('media/mailbox_attachments/',filename) -> if not os.path.isdir(path): -> try: -> os.remove(path) -> except (IOError,WindowsError): -> pass - -> @patch('requests.get', side_effect=mocked_requests) -> def test_emailprocessing(self, mock_get): -> out = StringIO() -> call_command('processemail', stdout=out,testing=True) -! self.assertIn('Successfully processed email attachments',out.getvalue()) - - - #@pytest.mark.django_db -> class WorkoutTests(TestCase): -> def setUp(self): -> redis_connection.publish('tasks','KILL') -> self.u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -> self.r = Rower.objects.create(user=self.u,gdproptin=True, -> gdproptindate=timezone.now() -> ) -> nu = datetime.datetime.now() -> self.w = Workout.objects.create(name='testworkout', -> workouttype='water', -> user=self.r,date=nu.strftime('%Y-%m-%d'), -> starttime=nu.strftime('%H:%M:%S'), -> duration="0:55:00",distance=8000) - -> def test_checkworkoutuser(self): -> self.assertEqual(checkworkoutuser(self.u,self.w),True) - - #@pytest.mark.django_db -> class C2Tests(TestCase): -> def setUp(self): -! redis_connection.publish('tasks','KILL') -> self.u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -> self.r = Rower.objects.create(user=self.u,gdproptin=True, -> gdproptindate=timezone.now() -> ) -> self.nu = datetime.datetime.now() -> self.w = Workout.objects.create(name='testworkout',workouttype='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 NoTokenError -> self.assertRaises(NoTokenError) - - #@pytest.mark.django_db -> class DataTest(TestCase): -> def setUp(self): -> redis_connection.publish('tasks','KILL') -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -> r = Rower.objects.create(user=u,gdproptin=True, -> gdproptindate=timezone.now() -> ) -! self.nu = datetime.datetime.now() - - -! def test_workoutform(self): -> form_data = { -> 'name':'test', -> 'date':'2016-05-01', -> 'starttime':'07:53:00', -> 'timezone':'UTC', -> 'duration':'0:55:00.1', -> 'distance':8000, -> 'notes':'Aap noot \n mies', -> 'weightcategory':'lwt', -> 'adaptiveclass': 'PR1', -> 'workouttype':'water', -> 'boattype':'1x', -> 'private':False, -> } -> 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 = 'rowers/tests/testdata/testdata.csv' -> f = open(filename,'rb') -> file_data = {'file': SimpleUploadedFile(f.name, f.read())} -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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,ftp=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') - -> w = Workout.objects.create(name='testworkout',workouttype='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_chart2(w.id,promember=0,xparam='time', -> yparam1='pace',yparam2='hr') -! res = iplots.interactive_flex_chart2(w.id,promember=0,xparam='distance', -! yparam1='pace',yparam2='hr') -> res = iplots.interactive_flex_chart2(w.id,promember=0,xparam='time', -> yparam1='pace',yparam2='spm') -> res = iplots.interactive_flex_chart2(w.id,promember=0,xparam='distance', -> yparam1='pace',yparam2='spm') - -> res = iplots.interactive_flex_chart2(w.id,promember=1,xparam='time', -> yparam1='pace',yparam2='hr') -> res = iplots.interactive_flex_chart2(w.id,promember=1,xparam='distance', -> yparam1='pace',yparam2='hr') -> res = iplots.interactive_flex_chart2(w.id,promember=1,xparam='time', -> yparam1='pace',yparam2='spm') -> res = iplots.interactive_flex_chart2(w.id,promember=1,xparam='distance', -> yparam1='pace',yparam2='spm') - - - - - #@pytest.mark.django_db -> class ViewTest(TestCase): -> def setUp(self): -> redis_connection.publish('tasks','KILL') -! self.c = Client() -> self.u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -> self.r = Rower.objects.create(user=self.u,gdproptin=True, -> gdproptindate=timezone.now(), -> rowerplan='coach', -> ) -! 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 = 'rowers/tests/testdata/testdata.csv' -! f = open(filename,'rb') -> file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'rower', -> 'boattype':'1x', -> '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/edit', form_data, follow=True) -> self.assertEqual(response.status_code, 200) - - -> response = self.c.get('/rowers/workout/1/histo', form_data, follow=True) -! self.assertEqual(response.status_code, 200) - -> form_data = { -> 'name':'aap', -> 'date':'2016-11-05', -> 'starttime':'09:07:14', -> 'timezone':'Europe/Berlin', -> 'duration':'1:00:00.5', -> 'distance':'15000', -> 'weightcategory':'hwt', -> 'adaptiveclass':'PR1', -> 'workouttype':'rower', -> 'boattype':'1x', -> 'private':True, -> 'notes':'noot mies', -> } -> form = WorkoutForm(data=form_data) -! self.assertTrue(form.is_valid()) -> response = self.c.post('/rowers/workout/1/edit', form_data, follow=True) -> self.assertEqual(response.status_code, 200) - - -> w = Workout.objects.get(id=1) -> f_to_be_deleted = w.csvfilename -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - - - - -> 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 = 'rowers/tests/testdata/tim.csv' -> f = open(filename,'rb') -> file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'rower', -> 'boattype':'1x', -> 'notes':'aap noot mies', -> 'make_plot':False, -> 'upload_to_C2':False, -> 'upload_to_Strava':False, -> 'upload_to_SportTracks':False, -> 'upload_to_RunKeeper':False, -> 'upload_to_MapMyFitness':False, -> 'plottype':'timeplot', -> 'file': f, -> 'makeprivate':False, -> 'landingpage':'workout_edit_view', -> } - -> 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) - - -! w = Workout.objects.get(id=1) -! f_to_be_deleted = w.csvfilename -! try: -> os.remove(f_to_be_deleted+'.gz') -! except WindowsError: -! pass - - - - -! def test_upload_view_sled_noname(self): -! self.c.login(username='john',password='koeinsloot') - -! filename = 'rowers/tests/testdata/testdata.csv' -! f = open(filename,'rb') -! file_data = {'file': f} -! form_data = { -! 'title':'', -! 'workouttype':'rower', -! 'boattype':'1x', -! '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 -! try: -! os.remove(f_to_be_deleted+'.gz') -! except WindowsError: -! pass - -! def test_upload_view_logcard(self): -! self.c.login(username='john',password='koeinsloot') - -! filename = 'rowers/tests/testdata/logcard.csv' -! f = open(filename,'rb') -> file_data = {'file': f} -> form_data = { -> 'title':'', -> 'workouttype':'rower', -> 'boattype': '1x', -> '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/upload/', -> status_code=302,target_status_code=200) - -> self.assertEqual(response.status_code, 200) - - - - -> def test_upload_view_TCX_CN(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/crewnerddata.tcx' -! f = open(filename,'rb') -! file_data = {'file': f} - -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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 = 'rowers/tests/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 -! try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -! pass - -> def test_upload_view_TCX_SpeedCoach2a(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/Speedcoach2example.csv' -> f = open(filename,'rb') -> file_data = {'file': f} - -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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 -! try: -! os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - -> def test_upload_view_TCX_SpeedCoach2b(self): -> self.c.login(username='john',password='koeinsloot') - -! filename = 'rowers/tests/testdata/Speedcoach2example.csv' -> f = open(filename,'rb') -> file_data = {'file': f} - -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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 -! try: -! os.remove(f_to_be_deleted+'.gz') -! except WindowsError: -! pass - - - -> def test_upload_view_TCX_SpeedCoach2c(self): -> self.c.login(username='john',password='koeinsloot') - -! filename = 'rowers/tests/testdata/speedcoach3test3.csv' -> f = open(filename,'rb') -> file_data = {'file': f} - -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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 -! try: -! os.remove(f_to_be_deleted+'.gz') -! except WindowsError: -! pass - - -! def test_upload_view_SpeedCoach2v127(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/SpeedCoach2Linkv1.27.csv' -! f = open(filename,'rb') -> file_data = {'file': f} - -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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 -! try: -! os.remove(f_to_be_deleted+'.gz') -! except WindowsError: -! pass - - - -> def test_upload_view_SpeedCoach2v127intervals(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/SpeedCoach2Link_interval.csv' -> f = open(filename,'rb') -> file_data = {'file': f} - -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -! except WindowsError: -> pass - - - -> def test_upload_view_TCX_NoHR(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/NoHR.tcx' -> f = open(filename,'rb') -> file_data = {'file': f} - -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - - -> def test_upload_view_TCX_CN(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/rowinginmotionexample.tcx' -> f = open(filename,'rb') -! file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'water', -> 'boattype':'1x', -> '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - - -> def test_upload_view_RP(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/RP_testdata.csv' -> f = open(filename,'rb') -! file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'rower', -> 'boattype':'1x', -> '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - - -> def test_upload_view_Mystery(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/mystery.csv' -> f = open(filename,'rb') -> file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'rower', -> 'boattype':'1x', -> '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - - -> def test_upload_view_RP_interval(self): -> self.c.login(username='john',password='koeinsloot') - -> filename = 'rowers/tests/testdata/RP_interval.csv' -> f = open(filename,'rb') -! file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'rower', -> 'boattype':'1x', -> '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - - - -> def test_upload_view_sled_desktop(self): -> self.c.login(username='john',password='koeinsloot') - -! filename = 'rowers/tests/testdata/painsled_desktop_example.csv' -! f = open(filename,'rb') -> file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'rower', -> 'boattype':'1x', -> '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - -> def test_upload_view_sled_ergdata(self): -> self.c.login(username='john',password='koeinsloot') - -! filename = 'rowers/tests/testdata/ergdata_example.csv' -! f = open(filename,'rb') -> file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'rower', -> 'boattype':'1x', -> '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 -! try: -! os.remove(f_to_be_deleted+'.gz') -! except WindowsError: -! pass - -! def test_upload_view_sled_boatcoach(self): -! self.c.login(username='john',password='koeinsloot') - -! filename = 'rowers/tests/testdata/boatcoach.csv' -! f = open(filename,'rb') -! file_data = {'file': f} -! form_data = { -! 'title':'test', -! 'workouttype':'rower', -! 'boattype':'1x', -! '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - -> def test_upload_view_sled_ergstick(self): -> self.c.login(username='john',password='koeinsloot') - -! filename = 'rowers/tests/testdata/ergstick.csv' -> f = open(filename,'rb') -> file_data = {'file': f} -> form_data = { -> 'title':'test', -> 'workouttype':'rower', -> 'boattype':'1x', -> '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 -> try: -> os.remove(f_to_be_deleted+'.gz') -> except WindowsError: -> pass - - - # def test_upload_view_FIT_SpeedCoach2a(self): - # self.c.login(username='john',password='koeinsloot') - - # filename = 'rowers/tests/testdata/3x250m.fit' - # with open(filename,'rb') as f: - - # file_data = {'file': f} - - # form_data = { - # 'title':'test', - # 'workouttype':'water', - # 'boattype':'1x', - # '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+'.gz') - - #@pytest.mark.django_db -> class URLTests(TestCase): -> def setUp(self): -> redis_connection.publish('tasks','KILL') -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot', -> ) -> r = Rower.objects.create(user=u,rowerplan='coach') -> self.c = Client() -> self.c.login(username='john',password='koeinsloot') - -> 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, -> r.pw_ut1, -> r.pw_at, -> r.pw_tr,r.pw_an])/r.ftp - - -> self.hrdata = { -> 'hrmax':r.max, -> 'hrut2':r.ut2, -> 'hrut1':r.ut1, -> 'hrat':r.at, -> 'hrtr':r.tr, -> 'hran':r.an, -> 'ftp':r.ftp, -> 'powerperc':serialize_list(powerperc), -> 'powerzones':serialize_list(r.powerzones), -> } - -> urlstotest = [ -> '/rowers/400/', -> '/rowers/403/', -> '/rowers/404/', -> '/rowers/500/', -> '/rowers/502/', -> '/rowers/1/list-workouts/', -> '/rowers/1/list-workouts/2016-01-01/2016-12-31', -> '/rowers/1/ote-bests/', -> '/rowers/1/ote-bests2/2016-01-01/2016-12-31', -> '/rowers/about', -> '/rowers/addmanual/', -> '/rowers/agegroupcp/30', -> '/rowers/agegroupcp/30/1', -> '/rowers/agegrouprecords/male/hwt', -> '/rowers/agegrouprecords/male/hwt/2000m', -> '/rowers/agegrouprecords/male/hwt/2000min', -> '/rowers/ajax_agegroup/45/hwt/male/1', -> '/rowers/analysis/', -> '/rowers/analysis/user/1', -> '/rowers/brochure', -> '/rowers/courses/upload', -> '/rowers/createplan/', -> '/rowers/createplan/user/1/', -> '/rowers/cumstats/', -> '/rowers/cumstats/2016-01-01/2016-12-31', -> '/rowers/cumstats/user/1', -> '/rowers/cumstats/user/1/2016-01-01/2016-12-31', -> '/rowers/developers', -> '/rowers/email/', -> '/rowers/email/thankyou/', -> '/rowers/fitness-progress/', -> '/rowers/fitness-progress/user/1', -> '/rowers/fitness-progress/user/1/rower', -> '/rowers/flexall/', -> '/rowers/flexall/spm/hr/None/', -> '/rowers/flexall/spm/hr/None/2016-01-01/2016-12-31/', -> '/rowers/flexall/spm/hr/None/2016-01-01/2016-12-31/user/1', -> '/rowers/flexall/user/1/', -> '/rowers/flexalldata/', -> '/rowers/help', -> '/rowers/histo/', -> '/rowers/histo/user/1', -> '/rowers/histo/user/1/2016-01-01/2016-12-31', -> '/rowers/histodata', -> '/rowers/job-kill/1', -> '/rowers/jobs-status/', -> '/rowers/laboratory/', -> '/rowers/laboratory/user/1', -> '/rowers/legal', -> '/rowers/list-courses/', -> '/rowers/list-graphs/', -> '/rowers/list-jobs/', -> '/rowers/list-workouts/', -> '/rowers/list-workouts/2016-01-01/2016-12-31', -> '/rowers/list-workouts/2016-01-01/2016-12-31/user/1/', -> '/rowers/list-workouts/ranking', -> '/rowers/list-workouts/user/1/', -> '/rowers/me/calcdps/', -> '/rowers/me/edit/', -> '/rowers/me/edit/user/1', -> '/rowers/me/exportsettings/', -> '/rowers/me/exportsettings/user/1', -> '/rowers/me/favoritecharts/', -> '/rowers/me/favoritecharts/user/1', -> '/rowers/me/invitation/', -> '/rowers/me/preferences/', -> '/rowers/me/preferences/user/1', -> '/rowers/me/request/', -> '/rowers/me/teams/', -> '/rowers/me/workflowconfig2/', -> '/rowers/me/workflowconfig2/user/1', -> '/rowers/me/workflowdefault', -> '/rowers/multi-compare', -> '/rowers/ote-bests/', -> '/rowers/ote-bests/2016-01-01/2016-12-31', -> '/rowers/ote-bests/user/1', -> '/rowers/ote-bests/user/1/2016-01-01/2016-12-31', -> '/rowers/ote-bests2/', -> '/rowers/ote-bests2/2016-01-01/2016-12-31', -> '/rowers/ote-bests2/user/1', -> '/rowers/ote-ranking/', -> '/rowers/ote-ranking/2016-01-01/2016-12-31', -> '/rowers/ote-ranking/user/1/', -> '/rowers/ote-ranking/user/1/2016-01-01/2016-12-31', -> '/rowers/otw-bests/', -> '/rowers/otw-bests/2016-01-01/2016-12-31', -> '/rowers/otw-bests/user/1/2016-01-01/2016-12-31', -> '/rowers/partners', -> '/rowers/physics', -> '/rowers/planrequired', -> '/rowers/promembership', -> '/rowers/register', -> '/rowers/register/thankyou/', -> '/rowers/sessions/', -> '/rowers/sessions/2016-01-01/2016-12-31', -> '/rowers/sessions/2016-01-01/2016-12-31/user/1', -> '/rowers/sessions/coach/', -> '/rowers/sessions/coach/user/1/', -> '/rowers/sessions/create/', -> '/rowers/sessions/create/user/1', -> '/rowers/sessions/manage/', -> '/rowers/sessions/manage/user/1/', -> '/rowers/sessions/multiclone/', -> '/rowers/sessions/multiclone/user/1/', -> '/rowers/sessions/multicreate/', -> '/rowers/sessions/multicreate/user/1/', -> '/rowers/sessions/print/', -> '/rowers/sessions/print/user/1', -> '/rowers/sessions/teamcreate/', -> '/rowers/sessions/user/1', -> '/rowers/team-compare-select/', -> '/rowers/team-compare-select/workout/1', -> '/rowers/team-compare-select/2016-01-01/2016-12-31', -> '/rowers/test-job/2', -> '/rowers/test-job2/2', -> '/rowers/test_callback', -> '/rowers/updatefitness', -> '/rowers/updatefitness/rower', -> '/rowers/updatefitness/rower/50', -> '/rowers/user-boxplot', -> '/rowers/user-boxplot-data', -> '/rowers/user-boxplot-select/', -> '/rowers/user-boxplot-select/user/1/', -> '/rowers/user-boxplot/user/1', -> '/rowers/user-multiflex-data', -> '/rowers/user-multiflex-select/', -> '/rowers/user-multiflex-select/2016-01-01/2016-12-31', -> '/rowers/user-multiflex-select/user/1/', -> '/rowers/user-multiflex-select/user/1/2016-01-01/2016-12-31', -> '/rowers/user-multiflex/', -> '/rowers/user-multiflex/user/1', -> '/rowers/workout/1/', -> '/rowers/workout/1/adddistanceplot', -> '/rowers/workout/1/adddistanceplot2', -> '/rowers/workout/1/addotwpowerplot', -> '/rowers/workout/1/addpiechart', -> '/rowers/workout/1/addpowerpiechart', -> '/rowers/workout/1/addstatic', -> '/rowers/workout/1/addstatic/3', -> '/rowers/workout/1/addtimeplot', -> '/rowers/workout/1/addtimeplot2', -> '/rowers/workout/1/comment', -> '/rowers/workout/1/darkskywind', -> '/rowers/workout/1/data', -> '/rowers/workout/1/edit', -> '/rowers/workout/1/editintervals', -> '/rowers/workout/1/flexchart', -> '/rowers/workout/1/flexchart/spm/hr/None', -> '/rowers/workout/1/flexchart/spm/hr/None/scatter', -> '/rowers/workout/1/flexchart/spm/hr/None/scatter/', -> '/rowers/workout/1/forcecurve', -> '/rowers/workout/1/get-testscript', -> '/rowers/workout/1/get-thumbnails', -> '/rowers/workout/1/histo', -> '/rowers/workout/1/image', -> '/rowers/workout/1/instroke', -> '/rowers/workout/1/interactiveotwplot', -> '/rowers/workout/1/map', -> '/rowers/workout/1/otwsetpower', -> '/rowers/workout/1/recalcsummary/', -> '/rowers/workout/1/restore', -> '/rowers/workout/1/smoothenpace', -> '/rowers/workout/1/split', -> '/rowers/workout/1/stats', -> '/rowers/workout/1/stream', -> '/rowers/workout/1/task', -> '/rowers/workout/1/test_strokedata', -> '/rowers/workout/1/toggle-ranking', -> '/rowers/workout/1/undosmoothenpace', -> '/rowers/workout/1/unsubscribe', -> '/rowers/workout/1/updatecp', -> '/rowers/workout/1/view', -> '/rowers/workout/1/wind', -> '/rowers/workout/1/workflow', -> '/rowers/workout/compare/1/2016-01-01/2016-12-31', -> '/rowers/workout/fusion/1/', -> '/rowers/workout/fusion/1/2016-01-01/2016-12-31', -> '/rowers/workout/upload/', -> '/rowers/workout/upload/team/', -> '/rowers/workouts-join', -> '/rowers/workouts-join-select/', -> '/rowers/workouts-join-select/2016-01-01/2016-12-31', -> ] - -! lijst = [] -> for url in urlstotest: -> lijst.append( -> (url,200) -> ) - -> @parameterized.expand(lijst) -> def test_url_generator(self,url,expected): -> response = self.c.get(url,follow=True) -> if response.status_code != expected: -> print response.status_code -! self.assertEqual(response.status_code, -! expected, -! msg=url+' response status code not 200') - - - #@pytest.mark.django_db -> class subroutinetests(TestCase): -> def setUp(self): -> redis_connection.publish('tasks','KILL') -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -! r = Rower.objects.create(user=u) -! nu = datetime.datetime.now() -> filename = 'rowers/tests/testdata/testdata.csv' -> self.w = Workout.objects.create(name='testworkout', -> workouttype='water', -> user=r,date=nu.strftime('%Y-%m-%d'), -> starttime=nu.strftime('%H:%M:%S'), -> duration="0:55:00",distance=8000, -> csvfilename=filename) - - -> def c2stuff(self): -> data = c2stuff.createc2workoutdata(self.w) -! jsond = json.dumps(data) -! data = c2stuff.createc2workoutdata_as_splits(w) -> jsond = json.dumps(data) - - - - #@pytest.mark.django_db -> class PlotTests(TestCase): -! def setUp(self): -! redis_connection.publish('tasks','KILL') -> u = User.objects.create_user('john', -> 'sander@ds.ds', -> 'koeinsloot') -! r = Rower.objects.create(user=u) -! 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) - - # timestr = strftime("%Y%m%d-%H%M%S") - # imagename = f1+timestr+'.png' - # fullpathimagename = 'static/plots/'+imagename -> powerperc = 100*np.array([r.pw_ut2, -> r.pw_ut1, -> r.pw_at, -> r.pw_tr,r.pw_an])/r.ftp - - -> self.hrdata = { -> 'hrmax':r.max, -> 'hrut2':r.ut2, -> 'hrut1':r.ut1, -> 'hrat':r.at, -> 'hrtr':r.tr, -> 'hran':r.an, -> 'ftp':r.ftp, -> 'powerperc':serialize_list(powerperc), -> 'powerzones':serialize_list(r.powerzones), -> } - - -! 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -! except WindowsError: -> pass - -> 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -> pass - -> 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -> pass - -> 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -> pass - -> 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -> pass - -> plotnr = 13 -! 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -> try: -> os.remove(fullpathimagename) -> except WindowsError: -> pass - -> 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -! pass - -! 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -! pass - -! 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -! pass - -! 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -! pass - -! plotnr = 9 -! 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -! pass - -! plotnr = 13 -! 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) -! try: -! os.remove(fullpathimagename) -! except WindowsError: -! pass diff --git a/rowers/views.py b/rowers/views.py index 77299f11..9450d9cb 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -38,6 +38,7 @@ from django.views.generic.edit import UpdateView,DeleteView from django.http import ( HttpResponse, HttpResponseRedirect, + JsonResponse, HttpResponseForbidden, HttpResponseNotAllowed, HttpResponseNotFound,Http404 ) @@ -227,6 +228,7 @@ class JSONResponse(HttpResponse): kwargs['content_type'] = 'application/json' super(JSONResponse, self).__init__(content, **kwargs) + def getrequestrower(request,rowerid=0,userid=0,notpermanent=False): userid = int(userid) @@ -12038,7 +12040,10 @@ def workout_toggle_ranking(request,id=0): row.save() if is_ajax: - return JSONResponse({'result':row.rankingpiece}) + response = JSONResponse({'result':row.rankingpiece}, + content_type='application/json') + + return response else: url = reverse(workouts_view) response = HttpResponseRedirect(url)