Private
Public Access
1
0

further test coverage improvements

This commit is contained in:
Sander Roosendaal
2021-04-13 11:48:42 +02:00
parent 5b199a8b07
commit 08dbd43b61
4 changed files with 223 additions and 55 deletions

View File

@@ -12,6 +12,9 @@ from rowers.utils import allmonths,allsundays
import rowers.plannedsessions as plannedsessions
from django.db import transaction
from rowers.views.workoutviews import plannedsession_compare_view
from rowers.opaque import encoder
@override_settings(TESTING=True)
class TrainingPlanTest(TestCase):
def setUp(self):
@@ -311,6 +314,71 @@ class SessionLinkTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
url = reverse(plannedsession_compare_view,kwargs={'id':ps.id,'userid':self.u.id})
response = self.c.get(url,follow=True)
expected_url = reverse('plannedsession_view',kwargs={'id':ps.id})
self.assertRedirects(response,expected_url=expected_url,
status_code=302,target_status_code=200)
# need a workout attached to the session, to get correct redirect below
w.plannedsession = ps
w.save()
url = reverse(plannedsession_compare_view,kwargs={'id':ps.id,'userid':self.u.id})
response = self.c.get(url,follow=True)
expected_url = reverse('multi_compare_view',kwargs={'userid':self.u.id,'id':encoder.encode_hex(w.id)})
self.assertRedirects(response,expected_url=expected_url,
status_code=302,target_status_code=200)
# while we're here, let's submit a POST request to multi compare view
url = expected_url
form_data = {
'xparam': 'distance',
'yparam': 'spm',
'plottype': 'line',
'teamid':0,
}
form = ChartParamChoiceForm(form_data)
self.assertTrue(form.is_valid())
request = self.factory.post(url,
data=form_data)
# adding session
middleware = SessionMiddleware()
middleware.process_request(request)
request.session.save()
session = request.session
session['ids'] = [w.id]
session.save()
request.user = self.u
response = multi_compare_view(request,id=str(w.id))
self.assertEqual(response.status_code,200)
# and adding a get
request = self.factory.get(url)
# adding session
middleware = SessionMiddleware()
middleware.process_request(request)
request.session.save()
session = request.session
session['ids'] = [w.id]
session['plottype'] = 'line'
session['xparam'] = 'distance'
session['yparam'] = 'spm'
session.save()
request.user = self.u
response = multi_compare_view(request,id=str(w.id))
self.assertEqual(response.status_code,200)
def test_multiplesessions(self):
with transaction.atomic():
login = self.c.login(username=self.u.username, password=self.password)