144 lines
3.9 KiB
Python
144 lines
3.9 KiB
Python
from statements import *
|
|
|
|
nu = datetime.datetime.now()
|
|
|
|
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')
|
|
|
|
from rowers.teams import *
|
|
|
|
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()
|
|
|
|
class TeamFactory(factory.DjangoModelFactory):
|
|
class Meta:
|
|
model = Team
|
|
|
|
name = factory.LazyAttribute(lambda _: faker.word())
|
|
notes = faker.text()
|
|
private = 'open'
|
|
viewing = 'allmembers'
|
|
|
|
class TeamCreateFactory(TestCase):
|
|
def setUp(self):
|
|
self.user_passwords = []
|
|
usernames = [
|
|
'user1',
|
|
'user2',
|
|
'user3',
|
|
'user4',
|
|
'user5',
|
|
'user6',
|
|
]
|
|
self.users = []
|
|
|
|
for i in range(6):
|
|
u = UserFactory(username=usernames[i])
|
|
self.users.append(u)
|
|
|
|
r = Rower.objects.create(
|
|
birthdate=faker.profile()['birthdate'],
|
|
gdproptin=True,
|
|
gdproptindate=timezone.now(),
|
|
rowerplan='coach',
|
|
user=u
|
|
)
|
|
r.save()
|
|
|
|
password = faker.word()
|
|
u.set_password(password)
|
|
u.save()
|
|
self.user_passwords.append(password)
|
|
|
|
|
|
workouts = WorkoutFactory.create_batch(5, user=r)
|
|
|
|
|
|
self.c = Client()
|
|
|
|
self.u = self.users[0]
|
|
self.password = self.user_passwords[0]
|
|
|
|
self.t = TeamFactory(manager=self.u)
|
|
|
|
|
|
def test_teamview(self):
|
|
login = self.c.login(username=self.u.username, password = self.password)
|
|
self.assertTrue(login)
|
|
|
|
url = '/rowers/team/{t}/'.format(t=self.t.id)
|
|
response = self.c.get(url)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_teamview_member(self):
|
|
|
|
id,comment = add_member(self.t.id,self.users[1].rower)
|
|
self.assertEqual(id,self.t.id)
|
|
|
|
login = self.c.login(username=self.users[1].username, password = self.user_passwords[1])
|
|
self.assertTrue(login)
|
|
|
|
url = '/rowers/team/{t}/'.format(t=self.t.id)
|
|
response = self.c.get(url)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_team_invite_view(self):
|
|
login = self.c.login(username=self.u.username, password = self.password)
|
|
self.assertTrue(login)
|
|
|
|
url = '/rowers/team/{t}/'.format(t=self.t.id)
|
|
|
|
form_data = {
|
|
'email': self.users[1].email,
|
|
'user': u''
|
|
}
|
|
|
|
response = self.c.post(url, form_data)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|