302 lines
11 KiB
Python
302 lines
11 KiB
Python
#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 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',gdproptin=True,
|
|
gdproptindate=timezone.now())
|
|
self.c = Client()
|
|
|
|
self.nu = datetime.datetime.now()
|
|
filename = 'rowers/tests/testdata/testdata.csv'
|
|
self.wotw = Workout.objects.create(name='testworkout',
|
|
workouttype='water',
|
|
user=r,date=self.nu.strftime('%Y-%m-%d'),
|
|
starttime=self.nu.strftime('%H:%M:%S'),
|
|
duration="0:55:00",distance=8000,
|
|
csvfilename=filename)
|
|
|
|
self.wote = Workout.objects.create(name='testworkout',
|
|
workouttype='Indoor Rower',
|
|
user=r,date=self.nu.strftime('%Y-%m-%d'),
|
|
starttime=self.nu.strftime('%H:%M:%S'),
|
|
duration="0:55:00",distance=8000,
|
|
csvfilename=filename)
|
|
|
|
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/workout/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/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/',
|
|
]
|
|
|
|
# urlstotest = ['/rowers/createplan/user/1/']
|
|
|
|
lijst = []
|
|
for url in urlstotest:
|
|
lijst.append(
|
|
(url,200)
|
|
)
|
|
|
|
@parameterized.expand(lijst)
|
|
@patch('rowers.dataprep.create_engine')
|
|
@patch('rowers.dataprep.read_df_sql')
|
|
@patch('rowers.dataprep.getsmallrowdata_db')
|
|
def test_url_generator(self,url,expected,
|
|
mocked_sqlalchemy,
|
|
mocked_read_df_sql,
|
|
mocked_getsmallrowdata_db):
|
|
login = self.c.login(username='john',password='koeinsloot')
|
|
self.assertTrue(login)
|
|
response = self.c.get(url,follow=True)
|
|
if response.status_code != expected:
|
|
print url
|
|
print response.status_code
|
|
self.assertEqual(response.status_code,
|
|
expected)
|
|
|
|
|