replan by weeks fixing #417
This commit is contained in:
129
rowers/tests/test_simplefunctions.py
Normal file
129
rowers/tests/test_simplefunctions.py
Normal file
@@ -0,0 +1,129 @@
|
||||
from statements import *
|
||||
from nose.tools import *
|
||||
|
||||
from rowers.views import *
|
||||
|
||||
from django.http import Http404
|
||||
from django.core.exceptions import PermissionDenied
|
||||
|
||||
filename = 'rowers/tests/testdata/testdata.csv'
|
||||
|
||||
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')
|
||||
|
||||
nu = datetime.datetime.now()
|
||||
|
||||
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 WorkoutFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = Workout
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
notes = faker.text()
|
||||
startdatetime = row.rowdatetime
|
||||
starttime = workoutstarttime
|
||||
workouttype='water'
|
||||
date=timezone.now().date()
|
||||
duration=duration
|
||||
distance=totaldist
|
||||
csvfilename=filename
|
||||
|
||||
class SessionFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = PlannedSession
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
comment = faker.text()
|
||||
|
||||
# tests simple functions from views.py
|
||||
class SimpleViewTest(TestCase):
|
||||
def setUp(self):
|
||||
self.u = UserFactory()
|
||||
|
||||
self.r = Rower.objects.create(user=self.u,
|
||||
birthdate=faker.profile()['birthdate'],
|
||||
gdproptin=True,
|
||||
gdproptindate=timezone.now(),
|
||||
rowerplan='coach')
|
||||
|
||||
self.c = Client()
|
||||
self.user_workouts = WorkoutFactory.create_batch(5, user=self.r)
|
||||
# self.factory = RequestFactory()
|
||||
self.password = faker.word()
|
||||
self.u.set_password(self.password)
|
||||
self.u.save()
|
||||
|
||||
def test_getrequestrower(self):
|
||||
user_no_rower = UserFactory(username='norower')
|
||||
user_no_rower.set_password(faker.word())
|
||||
|
||||
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = '/rowers/list-workouts/user/{id}/'.format(id=user_no_rower.id)
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertIn(response.status_code,[403,404])
|
||||
|
||||
|
||||
|
||||
|
||||
# def test_getworkout(self):
|
||||
# with assert_raises(Http404):
|
||||
# w = get_workout(123)
|
||||
|
||||
def test_deactivate(self):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = '/rowers/me/deactivate/'
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data = {
|
||||
'is_active': True
|
||||
}
|
||||
|
||||
response = self.c.post(url, form_data)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
form_data = {
|
||||
'is_active': False
|
||||
}
|
||||
|
||||
response = self.c.post(url, form_data, follow=True)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertRedirects(response,
|
||||
expected_url='/login/',
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertEqual(login,False)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user