Merge branch 'develop' into feature/opaqueid
This commit is contained in:
@@ -5,7 +5,7 @@ pytestmark = pytest.mark.django_db
|
||||
from bs4 import BeautifulSoup
|
||||
import re
|
||||
from nose_parameterized import parameterized
|
||||
from django.test import TestCase, Client,override_settings, RequestFactory
|
||||
from django.test import TestCase, Client,override_settings, RequestFactory, TransactionTestCase
|
||||
|
||||
from django.core.management import call_command
|
||||
from django.utils.six import StringIO
|
||||
@@ -58,13 +58,132 @@ from django_mailbox.models import Mailbox,MessageAttachment,Message
|
||||
|
||||
from rowers.tests.mocks import *
|
||||
|
||||
from nose.tools import assert_raises
|
||||
|
||||
from rowers.models import *
|
||||
from rowers.forms import *
|
||||
from rowers.tests.mocks import *
|
||||
import factory
|
||||
from faker import Factory
|
||||
|
||||
from uuid import uuid4
|
||||
faker = Factory.create()
|
||||
|
||||
from rowers.utils import calculate_age
|
||||
|
||||
from rowers.tasks import handle_getagegrouprecords
|
||||
from rowers.opaque import encoder
|
||||
|
||||
import inspect
|
||||
|
||||
def get_random_file(filename='rowers/tests/testdata/testdata.csv',name=''):
|
||||
|
||||
frm = inspect.stack()[3]
|
||||
mod = inspect.getmodule(frm[0])
|
||||
fromstring = 'test_%s_' % mod.__name__
|
||||
|
||||
row = rdata(filename)
|
||||
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)
|
||||
duration = datetime.time(hour=hours,minute=minutes,second=seconds)
|
||||
|
||||
workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
|
||||
workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
|
||||
|
||||
extension = filename[-3:]
|
||||
|
||||
if name != '':
|
||||
newfilename = 'rowers/tests/testdata/temp/'+fromstring+name+'.'+extension
|
||||
else:
|
||||
newfilename = 'rowers/tests/testdata/temp/'+fromstring+uuid4().hex[:16]+'.'+extension
|
||||
|
||||
copyfile(filename,newfilename)
|
||||
|
||||
thedict = {
|
||||
'row':row,
|
||||
'filename':newfilename,
|
||||
'startdatetime': row.rowdatetime,
|
||||
'starttime': workoutstarttime,
|
||||
'date': workoutdate,
|
||||
'duration':duration,
|
||||
'totaldist':totaldist,
|
||||
}
|
||||
|
||||
return thedict
|
||||
|
||||
class UserFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = User
|
||||
|
||||
email = faker.email()
|
||||
username = faker.profile()['username']
|
||||
|
||||
first_name = faker.name().split(' ')[0]
|
||||
last_name = faker.name().split(' ')[0]
|
||||
|
||||
class RaceFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = VirtualRace
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
registration_closure = timezone.now()+datetime.timedelta(days=1)
|
||||
evaluation_closure = timezone.now()+datetime.timedelta(days=2)
|
||||
startdate = timezone.now().date()
|
||||
start_time = datetime.time()
|
||||
enddate = (timezone.now()+datetime.timedelta(days=1)).date()
|
||||
end_time = datetime.time()
|
||||
preferreddate = timezone.now().date()
|
||||
sessiontype = 'indoorrace'
|
||||
sessionvalue = 1
|
||||
sessionmode = 'time'
|
||||
|
||||
class WorkoutFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = Workout
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
notes = faker.text()
|
||||
startdatetime = get_random_file(name=faker.word())['startdatetime']
|
||||
starttime = get_random_file(name=faker.word())['starttime']
|
||||
workouttype='water'
|
||||
date=timezone.now().date()
|
||||
duration=get_random_file(name=faker.word())['duration']
|
||||
distance=get_random_file(name=faker.word())['totaldist']
|
||||
csvfilename=get_random_file(name=faker.word())['filename']
|
||||
|
||||
|
||||
class SessionFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = PlannedSession
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
comment = faker.text()
|
||||
|
||||
@pytest.fixture(scope="session", autouse=True)
|
||||
def cleanup(request):
|
||||
def remove_test_files():
|
||||
|
||||
for filename in os.listdir('media/mailbox_attachments'):
|
||||
path = os.path.join('media/mailbox_attachments/',filename)
|
||||
if not os.path.isdir(path):
|
||||
os.remove(path)
|
||||
|
||||
for filename in os.listdir('rowers/tests/testdata/temp'):
|
||||
path = os.path.join('rowers/tests/testdata/temp/',filename)
|
||||
if not os.path.isdir(path):
|
||||
os.remove(path)
|
||||
|
||||
|
||||
|
||||
|
||||
request.addfinalizer(remove_test_files)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user