additional tests defined
This commit is contained in:
@@ -1,21 +1,21 @@
|
||||
pkg_mox = None
|
||||
|
||||
|
||||
def setUpPackage():
|
||||
global pkg_mox
|
||||
import urllib
|
||||
import urllib2
|
||||
import mox
|
||||
import requests
|
||||
pkg_mox = mox.Mox()
|
||||
pkg_mox.StubOutWithMock(requests.api.sessions.Session, 'send')
|
||||
pkg_mox.StubOutWithMock(urllib.URLopener, 'open')
|
||||
pkg_mox.StubOutWithMock(urllib2.OpenerDirector, 'open')
|
||||
pkg_mox.ReplayAll()
|
||||
# def setUpPackage():
|
||||
# global pkg_mox
|
||||
# import urllib
|
||||
# import urllib2
|
||||
# import mox
|
||||
# import requests
|
||||
# pkg_mox = mox.Mox()
|
||||
# pkg_mox.StubOutWithMock(requests.api.sessions.Session, 'send')
|
||||
# pkg_mox.StubOutWithMock(urllib.URLopener, 'open')
|
||||
# pkg_mox.StubOutWithMock(urllib2.OpenerDirector, 'open')
|
||||
# pkg_mox.ReplayAll()
|
||||
|
||||
|
||||
def tearDownPackage():
|
||||
pkg_mox.VerifyAll()
|
||||
pkg_mox.UnsetStubs()
|
||||
#def tearDownPackage():
|
||||
# pkg_mox.VerifyAll()
|
||||
# pkg_mox.UnsetStubs()
|
||||
|
||||
from tests import *
|
||||
|
||||
157
rowers/tests/test_emails.py
Normal file
157
rowers/tests/test_emails.py
Normal file
@@ -0,0 +1,157 @@
|
||||
#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()
|
||||
|
||||
from rowers.tests.test_imports import mocked_requests
|
||||
|
||||
|
||||
from django_mailbox.models import Mailbox,MessageAttachment,Message
|
||||
|
||||
|
||||
#@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())
|
||||
|
||||
1083
rowers/tests/test_imports.py
Normal file
1083
rowers/tests/test_imports.py
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2,13 +2,47 @@ from django.test import TestCase
|
||||
from rowers.models import *
|
||||
|
||||
class FormTests(TestCase):
|
||||
def SetUp(self):
|
||||
def setUp(self):
|
||||
self.u = User.objects.create_user('john',
|
||||
'sander@ds.ds',
|
||||
'koeinsloot')
|
||||
|
||||
r = Rower.objects.create(user=u)
|
||||
r = Rower.objects.create(user=self.u)
|
||||
|
||||
|
||||
def test_form(self):
|
||||
form = TeamInviteForm()
|
||||
|
||||
|
||||
class ModelTests(TestCase):
|
||||
def setUp(self):
|
||||
self.u = User.objects.create_user('john',
|
||||
'Sander@ds.ds',
|
||||
'koeinsloot')
|
||||
|
||||
self.u.first_name = 'Sander'
|
||||
self.u.last_name = 'Roosendaal'
|
||||
self.u.save()
|
||||
|
||||
self.r = Rower.objects.create(user=self.u)
|
||||
|
||||
def create_team(self):
|
||||
return Team.objects.create(
|
||||
name = 'test team',
|
||||
manager = self.u,
|
||||
)
|
||||
|
||||
def create_paidplan(self):
|
||||
return PaidPlan.objects.create(
|
||||
name = 'test plan',
|
||||
shortname = 'pro',
|
||||
price = 15.0,
|
||||
)
|
||||
|
||||
def test_models(self):
|
||||
pp = self.create_paidplan()
|
||||
team = self.create_team()
|
||||
self.assertEqual(u'%s' % pp,u'test plan - pro at 15.00 EURO (single payment)')
|
||||
self.assertEqual(u'%s' % self.r, u'Sander Roosendaal')
|
||||
self.assertEqual('%s' % self.r, 'Sander Roosendaal')
|
||||
self.assertEqual(self.r.clean_email(),'sander@ds.ds')
|
||||
|
||||
294
rowers/tests/test_urls.py
Normal file
294
rowers/tests/test_urls.py
Normal file
@@ -0,0 +1,294 @@
|
||||
#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')
|
||||
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')
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@ import rowers.dataprep as dataprep
|
||||
|
||||
from redis import StrictRedis
|
||||
redis_connection = StrictRedis()
|
||||
from rowingdata import rowingdata as rdata
|
||||
from rowingdata import rower as rrower
|
||||
|
||||
from rowers.models import User,Rower, Workout
|
||||
|
||||
@@ -27,51 +29,48 @@ class UserMiddleWareTest(TestCase):
|
||||
u = User.objects.create_user('john',
|
||||
'sander@ds.ds',
|
||||
'koeinsloot')
|
||||
r = Rower.objects.create(user=u)
|
||||
self.r = Rower.objects.create(user=u)
|
||||
|
||||
self.c = Client()
|
||||
self.c.login(username='john',password='koeinsloot')
|
||||
nu = datetime.datetime.now()
|
||||
self.nu = datetime.datetime.now()
|
||||
|
||||
response = dataprep.new_workout_from_file(r,'/media/testdata.csv.gz',
|
||||
title='sample')
|
||||
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)']
|
||||
|
||||
newworkoutid = response[0]
|
||||
self.w = Workout.objects.get(id=newworkoutid)
|
||||
|
||||
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
|
||||
)
|
||||
|
||||
|
||||
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):
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user