From 92334ca4efa4c4218759c0b09b2333e258608431 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 17 Feb 2019 15:20:54 +0100 Subject: [PATCH] adding coach/athlete offer request testing --- rowers/braintreestuff.py | 2 +- rowers/tests/test_permissions.py | 317 +++++++++++++++++++++++++- rowers/tests/testdata/testdata.csv.gz | Bin 12525 -> 12525 bytes rowers/urls.py | 6 +- 4 files changed, 315 insertions(+), 10 deletions(-) diff --git a/rowers/braintreestuff.py b/rowers/braintreestuff.py index 68dead51..7d6a5fbd 100644 --- a/rowers/braintreestuff.py +++ b/rowers/braintreestuff.py @@ -44,7 +44,7 @@ else: ) -from rowers.models import Rower,PaidPlan +from rowers.models import Rower,PaidPlan, CoachingGroup from rowers.utils import ProcessorCustomerError def create_customer(rower,force=False): diff --git a/rowers/tests/test_permissions.py b/rowers/tests/test_permissions.py index af9101ae..dc7ecdc2 100644 --- a/rowers/tests/test_permissions.py +++ b/rowers/tests/test_permissions.py @@ -87,8 +87,8 @@ class PermissionsBasicsTests(TestCase): self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic) self.factory = RequestFactory() - self.password = faker.word() - self.ubasic.set_password(self.password) + self.ubasicpassword = faker.word() + self.ubasic.set_password(self.ubasicpassword) self.ubasic.save() @@ -1016,8 +1016,8 @@ class PermissionsCoachingTests(TestCase): self.rcoach.mycoachgroup = self.coachinggroup self.rcoach.save() self.factory = RequestFactory() - self.password = faker.word() - self.ucoach.set_password(self.password) + self.ucoachpassword = faker.word() + self.ucoach.set_password(self.ucoachpassword) self.ucoach.save() self.uplan = UserFactory(username='planuser') @@ -1076,8 +1076,8 @@ class PermissionsCoachingTests(TestCase): self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic) self.factory = RequestFactory() - self.password = faker.word() - self.ubasic.set_password(self.password) + self.ubasicpassword = faker.word() + self.ubasic.set_password(self.ubasicpassword) self.ubasic.save() @@ -1099,6 +1099,311 @@ class PermissionsCoachingTests(TestCase): notes=faker.text(), manager=self.ucoach) + def test_athlete_request_athlete_revoke(self): + login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword) + self.assertTrue(login) + + url = reverse('request_coaching_view',kwargs={'coachid':self.rcoach.id}) + + expected_url = reverse('rower_teams_view') + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachRequest.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),1) + + rekwest = coachingrequests[0] + + url = reverse('reject_revoke_coach_request',kwargs={'id':rekwest.id}) + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachRequest.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),0) + + def test_coach_offer_coach_revoke(self): + login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword) + self.assertTrue(login) + + url = reverse('offer_coaching_view',kwargs={'userid':self.ubasic.id}) + + expected_url = reverse('rower_teams_view') + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachOffer.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),1) + + rekwest = coachingrequests[0] + + url = reverse('reject_revoke_coach_offer',kwargs={'id':rekwest.id}) + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachOffer.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),0) + + + def test_athlete_request_coach_reject(self): + login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword) + self.assertTrue(login) + + url = reverse('request_coaching_view',kwargs={'coachid':self.rcoach.id}) + + expected_url = reverse('rower_teams_view') + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachRequest.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),1) + + rekwest = coachingrequests[0] + + login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword) + self.assertTrue(login) + + url = reverse('reject_revoke_coach_request',kwargs={'id':rekwest.id}) + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachRequest.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),0) + + def test_coach_offer_athlete_reject(self): + login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword) + self.assertTrue(login) + + url = reverse('offer_coaching_view',kwargs={'userid':self.ubasic.id}) + + expected_url = reverse('rower_teams_view') + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachOffer.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),1) + + rekwest = coachingrequests[0] + + login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword) + self.assertTrue(login) + + url = reverse('reject_revoke_coach_offer',kwargs={'id':rekwest.id}) + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachOffer.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),0) + + + def test_athlete_request_coach_accept_coach_drop(self): + login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword) + self.assertTrue(login) + + url = reverse('request_coaching_view',kwargs={'coachid':self.rcoach.id}) + + expected_url = reverse('rower_teams_view') + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachRequest.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),1) + + rekwest = coachingrequests[0] + + login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword) + self.assertTrue(login) + + url = reverse('coach_accept_coachrequest_view',kwargs={'code':rekwest.code}) + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachRequest.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),0) + + coaches = teams.rower_get_coaches(self.rbasic) + self.assertEqual(coaches[0],self.rcoach) + + url = reverse('coach_drop_athlete_confirm_view',kwargs={'id':self.rbasic.id}) + + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + url = reverse('coach_drop_athlete_view',kwargs={'id':self.rbasic.id}) + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coaches = teams.rower_get_coaches(self.rbasic) + self.assertEqual(len(coaches),0) + + def test_coach_offer_athlete_accept_athlete_drop(self): + login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword) + self.assertTrue(login) + + url = reverse('offer_coaching_view',kwargs={'userid':self.ubasic.id}) + + expected_url = reverse('rower_teams_view') + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachOffer.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),1) + + rekwest = coachingrequests[0] + + login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword) + self.assertTrue(login) + + url = reverse('rower_accept_coachoffer_view',kwargs={'code':rekwest.code}) + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachOffer.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),0) + + coaches = teams.rower_get_coaches(self.rbasic) + self.assertEqual(coaches[0],self.rcoach) + + url = reverse('athlete_drop_coach_view',kwargs={'id':self.rcoach.id}) + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coaches = teams.rower_get_coaches(self.rbasic) + self.assertEqual(len(coaches),0) + + def test_coach_offer_athlete_accept_coach_drop(self): + login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword) + self.assertTrue(login) + + url = reverse('offer_coaching_view',kwargs={'userid':self.ubasic.id}) + + expected_url = reverse('rower_teams_view') + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachOffer.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),1) + + rekwest = coachingrequests[0] + + login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword) + self.assertTrue(login) + + url = reverse('rower_accept_coachoffer_view',kwargs={'code':rekwest.code}) + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachOffer.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),0) + + coaches = teams.rower_get_coaches(self.rbasic) + self.assertEqual(coaches[0],self.rcoach) + + login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword) + self.assertTrue(login) + + url = reverse('coach_drop_athlete_view',kwargs={'id':self.rbasic.id}) + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coaches = teams.rower_get_coaches(self.rbasic) + self.assertEqual(len(coaches),0) + + + def test_athlete_request_coach_accept_athlete_drop(self): + login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword) + self.assertTrue(login) + + url = reverse('request_coaching_view',kwargs={'coachid':self.rcoach.id}) + + expected_url = reverse('rower_teams_view') + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachRequest.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),1) + + rekwest = coachingrequests[0] + + login = self.c.login(username=self.ucoach.username,password=self.ucoachpassword) + self.assertTrue(login) + + url = reverse('coach_accept_coachrequest_view',kwargs={'code':rekwest.code}) + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coachingrequests = CoachRequest.objects.filter(user=self.ubasic) + self.assertEqual(len(coachingrequests),0) + + coaches = teams.rower_get_coaches(self.rbasic) + self.assertEqual(coaches[0],self.rcoach) + + login = self.c.login(username=self.ubasic.username,password=self.ubasicpassword) + self.assertTrue(login) + + url = reverse('athlete_drop_coach_confirm_view',kwargs={'id':self.rcoach.id}) + + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + url = reverse('athlete_drop_coach_view',kwargs={'id':self.rcoach.id}) + + response = self.c.get(url,follow=True) + self.assertRedirects(response, + expected_url=expected_url, + status_code=302,target_status_code=200) + + coaches = teams.rower_get_coaches(self.rbasic) + self.assertEqual(len(coaches),0) + # coach related diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index aa231cedb35e3f7e218f7559f7e3834af3d3c80c..b9f3e726e4c17c10f90a6afa30578d280985ebb7 100644 GIT binary patch delta 15 WcmaEx_%@MEzMF$XH+Li3a{~Y}s|CdX delta 15 WcmaEx_%@MEzMF%i&SE3ma{~Y~hy~#Q diff --git a/rowers/urls.py b/rowers/urls.py index 71595bbe..e602430b 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -430,10 +430,10 @@ urlpatterns = [ name='request_coaching_view'), url(r'^me/coachoffer/(?P\d+)/$',views.offer_coaching_view, name='offer_coaching_view'), - url(r'^me/coachrequest/(\w+.*)/accept/$',views.coach_accept_coachrequest_view, + url(r'^me/coachrequest/(?P\w+.*)/accept/$',views.coach_accept_coachrequest_view, name='coach_accept_coachrequest_view'), - url(r'^me/coachoffer/(\w+.*)/accept/$',views.rower_accept_coachoffer_view, - name='rower_accept_coachofer_view'), + url(r'^me/coachoffer/(?P\w+.*)/accept/$',views.rower_accept_coachoffer_view, + name='rower_accept_coachoffer_view'), url(r'^team/(?P\d+)/delete/$',views.team_delete_view,name='team_delete_view'), url(r'^team/create/$',views.team_create_view,name='team_create_view'), url(r'^me/team/(?P\d+)/drop/(?P\d+)/$',views.manager_member_drop_view,name='manager_member_drop_view'),