planned sessions initial tests
This commit is contained in:
@@ -2,7 +2,9 @@
|
|||||||
from statements import *
|
from statements import *
|
||||||
nu = datetime.datetime.now()
|
nu = datetime.datetime.now()
|
||||||
|
|
||||||
class PlannedSessionsTest(TestCase):
|
import rowers.plannedsessions as plannedsessions
|
||||||
|
|
||||||
|
class TrainingPlanTest(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.u = UserFactory()
|
self.u = UserFactory()
|
||||||
|
|
||||||
@@ -65,9 +67,253 @@ class PlannedSessionsTest(TestCase):
|
|||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
urlplan = '/rowers/plan/1/'
|
urlplan = '/rowers/plan/1/'
|
||||||
|
response = self.c.get(urlplan)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
html = BeautifulSoup(response.content,'html.parser')
|
||||||
|
urls = [a['href'] for a in html.find_all('a')]
|
||||||
|
|
||||||
|
for url in urls:
|
||||||
|
if 'macrocycle' in url and 'delete' not in url:
|
||||||
|
macrourl = url
|
||||||
|
print macrourl
|
||||||
|
response = self.c.get(macrourl)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
form_data = {
|
||||||
|
'name':faker.word(),
|
||||||
|
'startdate':nu.strftime("%Y-%m-%d"),
|
||||||
|
'enddate':targetdate.strftime("%Y-%m-%d"),
|
||||||
|
'notes':faker.text(),
|
||||||
|
}
|
||||||
|
|
||||||
|
macroform = TrainingMacroCycleForm(form_data)
|
||||||
|
self.assertTrue(macroform.is_valid())
|
||||||
|
|
||||||
|
response = self.c.post(macrourl,form_data,follow=True)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
self.assertRedirects(response,
|
||||||
|
expected_url='/rowers/plan/1/macro/3/',
|
||||||
|
status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
response = self.c.get(urlplan)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
html = BeautifulSoup(response.content,'html.parser')
|
||||||
|
urls = [a['href'] for a in html.find_all('a')]
|
||||||
|
|
||||||
|
for url in urls:
|
||||||
|
if 'planbymonths' in url:
|
||||||
|
print url
|
||||||
|
response = self.c.get(url,follow=True)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
response = self.c.get('/rowers/plan/1/macro/3/')
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
html = BeautifulSoup(response.content,'html.parser')
|
||||||
|
urls = [a['href'] for a in html.find_all('a')]
|
||||||
|
|
||||||
|
tested = False
|
||||||
|
|
||||||
|
for url in urls:
|
||||||
|
if 'planbyweeks' in url and not tested:
|
||||||
|
print url
|
||||||
|
response = self.c.get(url,follow=True)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
tested = True
|
||||||
|
|
||||||
|
# add test for creating new sessions
|
||||||
|
def sessions_create(self):
|
||||||
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
self.assertTrue(login)
|
||||||
|
|
||||||
|
url = '/rowers/sessions/create/'
|
||||||
|
|
||||||
|
startdate = nu.date()
|
||||||
|
enddate = (nu+datetime.timedelta(days=3)).date()
|
||||||
|
preferreddate = startdate
|
||||||
|
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
post_data = {
|
||||||
|
'comment': faker.text(),
|
||||||
|
'criterium': 'none',
|
||||||
|
'enddate': enddate.strftime("%Y-%m-%d"),
|
||||||
|
'preferreddate': preferreddate.strftime("%Y-%m-%d"),
|
||||||
|
'startdate': startdate.strftime("%Y-%m-%d"),
|
||||||
|
'sessionmode':'time',
|
||||||
|
'sessiontype':'session',
|
||||||
|
'sessionunit':'min',
|
||||||
|
'sessionvalue': '60',
|
||||||
|
'name': faker.word(),
|
||||||
|
}
|
||||||
|
|
||||||
|
form = PlannedSessionForm(post_data)
|
||||||
|
self.assertEqual(form.is_valid())
|
||||||
|
|
||||||
|
response = self.c.post(url,post_data)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class SessionLinkTest(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()
|
||||||
|
|
||||||
|
for w in self.user_workouts:
|
||||||
|
startdatetime = w.startdatetime
|
||||||
|
|
||||||
|
startdate = (startdatetime-datetime.timedelta(days=1)).date()
|
||||||
|
enddate = (startdatetime+datetime.timedelta(days=1)).date()
|
||||||
|
preferreddate = startdatetime.date()
|
||||||
|
|
||||||
|
ps = SessionFactory(startdate=startdate,enddate=enddate,
|
||||||
|
sessiontype='session',
|
||||||
|
sessionmode = 'time',
|
||||||
|
criterium = 'none',
|
||||||
|
sessionvalue = 60,
|
||||||
|
sessionunit='min',
|
||||||
|
preferreddate=preferreddate,
|
||||||
|
manager=self.u,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
ps.save()
|
||||||
|
result = plannedsessions.add_rower_session(self.r,ps)
|
||||||
|
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
for workout in self.user_workouts:
|
||||||
|
try:
|
||||||
|
os.remove(workout.csvfilename)
|
||||||
|
except (IOError, WindowsError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def test_plannedsessions(self):
|
||||||
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
self.assertTrue(login)
|
||||||
|
|
||||||
|
|
||||||
|
w = self.user_workouts[0]
|
||||||
|
startdatetime = w.startdatetime
|
||||||
|
|
||||||
|
startdate = (startdatetime-datetime.timedelta(days=1)).date()
|
||||||
|
enddate = (startdatetime+datetime.timedelta(days=1)).date()
|
||||||
|
|
||||||
|
url = '/rowers/sessions/'
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
post_data = {
|
||||||
|
'startdate':startdate.strftime("%Y-%m-%d"),
|
||||||
|
'enddate': enddate.strftime("%Y-%m-%d"),
|
||||||
|
}
|
||||||
|
|
||||||
|
response = self.c.post(url,post_data)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
url2 = '/rowers/sessions/manage/'
|
||||||
|
response = self.c.post(url2,post_data)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
pss = PlannedSession.objects.filter(startdate=startdate,enddate=enddate)
|
||||||
|
|
||||||
|
self.assertTrue(len(pss)>0)
|
||||||
|
|
||||||
|
ps = pss[0]
|
||||||
|
|
||||||
|
post_data = {
|
||||||
|
'plannedsession': str(ps.id),
|
||||||
|
'workouts':[str(w.id)],
|
||||||
|
}
|
||||||
|
|
||||||
|
plannedsessionstuple = []
|
||||||
|
for ps in pss:
|
||||||
|
sessiontpl = (ps.id,ps.__unicode__())
|
||||||
|
plannedsessionstuple.append(sessiontpl)
|
||||||
|
|
||||||
|
plannedsessionstuple = tuple(plannedsessionstuple)
|
||||||
|
|
||||||
|
|
||||||
|
workoutdata = {}
|
||||||
|
workoutdata['initial'] = []
|
||||||
|
|
||||||
|
choices = []
|
||||||
|
for w in self.user_workouts:
|
||||||
|
wtpl = (w.id,w.__unicode__())
|
||||||
|
choices.append(wtpl)
|
||||||
|
|
||||||
|
workoutdata['choices'] = tuple(choices)
|
||||||
|
|
||||||
|
form = PlannedSessionSelectForm(plannedsessionstuple,post_data)
|
||||||
|
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
form = WorkoutSessionSelectForm(workoutdata,post_data)
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
response = self.c.post(url2,post_data)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
|
||||||
|
urlsession = '/rowers/sessions/{id}/'.format(id=ps.id)
|
||||||
|
|
||||||
|
response = self.c.get(urlsession)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
url = '/rowers/sessions/coach/'
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
def test_multiplesessions(self):
|
||||||
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
self.assertTrue(login)
|
||||||
|
|
||||||
|
pss = PlannedSession.objects.all()
|
||||||
|
|
||||||
|
earliestdate = min([ps.startdate for ps in pss])
|
||||||
|
latestdate = max([ps.enddate for ps in pss])
|
||||||
|
|
||||||
|
url = '/rowers/sessions/multicreate/?when={be}/{en}'.format(
|
||||||
|
be = earliestdate.strftime("%Y-%m-%d"),
|
||||||
|
en = latestdate.strftime("%Y-%m-%d"),
|
||||||
|
)
|
||||||
|
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
url = '/rowers/sessions/multicreate/user/{userid}/extra/1/?when={be}/{en}'.format(
|
||||||
|
be = earliestdate.strftime("%Y-%m-%d"),
|
||||||
|
en = latestdate.strftime("%Y-%m-%d"),
|
||||||
|
userid = self.u.id
|
||||||
|
)
|
||||||
|
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
url = '/rowers/sessions/multiclone/user/{userid}/?when={be}/{en}'.format(
|
||||||
|
be = earliestdate.strftime("%Y-%m-%d"),
|
||||||
|
en = latestdate.strftime("%Y-%m-%d"),
|
||||||
|
userid = self.u.id
|
||||||
|
)
|
||||||
|
|
||||||
response = self.c.get(url)
|
response = self.c.get(url)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
2
rowers/tests/testdata/testdata.tcx
vendored
2
rowers/tests/testdata/testdata.tcx
vendored
@@ -2502,7 +2502,7 @@
|
|||||||
</Trackpoint>
|
</Trackpoint>
|
||||||
</Track>
|
</Track>
|
||||||
</Lap>
|
</Lap>
|
||||||
<Notes><Element 'Notes' at 0x13065cf8></Notes>
|
<Notes><Element 'Notes' at 0x1f6b6c18></Notes>
|
||||||
</Activity>
|
</Activity>
|
||||||
</Activities>
|
</Activities>
|
||||||
<Creator>
|
<Creator>
|
||||||
|
|||||||
Reference in New Issue
Block a user