diff --git a/rowers/templates/plannedsession_multicreate.html b/rowers/templates/plannedsession_multicreate.html index 3c76bda1..2981a7b0 100644 --- a/rowers/templates/plannedsession_multicreate.html +++ b/rowers/templates/plannedsession_multicreate.html @@ -73,7 +73,7 @@ Clone multiple sessions - + diff --git a/rowers/templates/plannedsessions_multiclone_select.html b/rowers/templates/plannedsessions_multiclone_select.html index 9f86cfa0..cfbddce6 100644 --- a/rowers/templates/plannedsessions_multiclone_select.html +++ b/rowers/templates/plannedsessions_multiclone_select.html @@ -114,7 +114,7 @@ {{ dateshiftform.as_table }}

- +

You can use the date and search forms above to search through all sessions.

diff --git a/rowers/tests/.#test_urls.py b/rowers/tests/.#test_urls.py new file mode 100644 index 00000000..97eb3b79 --- /dev/null +++ b/rowers/tests/.#test_urls.py @@ -0,0 +1 @@ +E408191@CZ27LT9RCGN72.14016:1549376202 \ No newline at end of file diff --git a/rowers/tests/test_plans.py b/rowers/tests/test_plans.py index 3c7558fc..d8a804b1 100644 --- a/rowers/tests/test_plans.py +++ b/rowers/tests/test_plans.py @@ -125,7 +125,8 @@ class TrainingPlanTest(TestCase): tested = True # add test for creating new sessions - def sessions_create(self): + def test_sessions_create(self): + login = self.c.login(username=self.u.username, password=self.password) self.assertTrue(login) @@ -151,8 +152,10 @@ class TrainingPlanTest(TestCase): 'name': faker.word(), } + print 'posting to sessions/create' + form = PlannedSessionForm(post_data) - self.assertEqual(form.is_valid()) + self.assertTrue(form.is_valid()) response = self.c.post(url,post_data) self.assertEqual(response.status_code,200) @@ -1001,6 +1004,28 @@ class PlannedSessionsView(TestCase): rowerplan='coach') self.r.save() self.c = Client() + + self.u2 = UserFactory(username='testbasicuser') + self.r2 = Rower.objects.create(user=self.u2, + birthdate=faker.profile()['birthdate'], + gdproptin=True, + gdproptindate=timezone.now(), + rowerplan='basic') + + self.password2 = faker.word() + self.u2.set_password(self.password2) + self.u2.save() + + self.team = Team.objects.create( + name = faker.word(), + notes = faker.text(), + manager = self.u, + ) + + self.r.team.add(self.team) + self.r2.team.add(self.team) + self.r.save() + self.r2.save() # workouts # workout 1 - 2019-01-13, rScore 69 @@ -1120,6 +1145,9 @@ class PlannedSessionsView(TestCase): enddate = (startdatetime+datetime.timedelta(days=1)).date() preferreddate = startdatetime.date() + self.startdate = startdate + self.enddate = enddate + self.ps_rscore = SessionFactory( startdate=startdate,enddate=enddate, sessiontype='test', @@ -1210,17 +1238,81 @@ class PlannedSessionsView(TestCase): def test_multiclone_view(self): login = self.c.login(username=self.u.username, password=self.password) self.assertTrue(login) + + url = '/rowers/sessions/multiclone/' + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + formdata = { + 'startdate':self.startdate, + 'enddate':self.enddate, + } + + form = DateRangeForm(formdata) + self.assertTrue(form.is_valid()) + + response = self.c.post(url,formdata) + self.assertEqual(response.status_code,200) + + url = '/rowers/sessions/multiclone/?startdate={startdate}&enddate={enddate}'.format( + startdate = self.startdate, + enddate = self.enddate + ) + + formdata = { + 'plannedsessions':[self.ps_time.id,self.ps_trimp.id], + 'shiftstartdate':datetime.date.today()+timezone.timedelta(days=6) + } + + form = PlannedSessionMultipleCloneForm(formdata) + + self.assertTrue(form.is_valid()) + + form = SessionDateShiftForm(formdata) + + + self.assertTrue(form.is_valid()) + + response = self.c.post(url,formdata,follow=True) + self.assertEqual(response.status_code,200) + def test_multicreate_view(self): login = self.c.login(username=self.u.username, password=self.password) self.assertTrue(login) - # post something + # get something + url = '/rowers/sessions/multicreate/user/1/extra/1/' + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + data = {} + + data['csrf_token'] = response.context['csrf_token'] + + management_form = response.context['ps_formset'].management_form + for i in 'TOTAL_FORMS', 'INITIAL_FORMS', 'MIN_NUM_FORMS', 'MAX_NUM_FORMS': + data['%s-%s' % (management_form.prefix,i)] = management_form[i].value() + + for i in range(response.context['ps_formset'].total_form_count()): + current_form = response.context['ps_formset'].forms[i] + + for field_name in current_form.fields: + value = current_form[field_name].value() + data['%s-%s' % (current_form.prefix, field_name)] = value if value is not None else '' + + + # post data + response = self.c.post(url,data,follow=True) + self.assertEqual(response.status_code,200) def test_teamcreate_view(self): login = self.c.login(username=self.u.username, password=self.password) self.assertTrue(login) + url = '/sessions/teamcreate/' + response = self.c.get(url) + def test_teamedit_view(self): login = self.c.login(username=self.u.username, password=self.password) self.assertTrue(login) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index db3fe1e8..85862f10 100644 Binary files a/rowers/tests/testdata/testdata.csv.gz and b/rowers/tests/testdata/testdata.csv.gz differ diff --git a/rowers/views.py b/rowers/views.py index 1f16a670..ace74151 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -14167,6 +14167,7 @@ def plannedsession_create_view(request, enddatestring=enddatestring) + if request.method == 'POST': sessioncreateform = PlannedSessionForm(request.POST) if sessioncreateform.is_valid():