Private
Public Access
1
0

improved (fixed) rules and two additional tests for permissions

This commit is contained in:
Sander Roosendaal
2020-01-16 14:56:52 +01:00
parent 94b5e59100
commit c23fd15b7c
4 changed files with 180 additions and 17 deletions

View File

@@ -15,6 +15,86 @@ import rowers.teams as teams
import rowers.plannedsessions as plannedsessions
from rowers.rower_rules import is_coach_user
@override_settings(TESTING=True)
class PlanningPermissionsCoach(TestCase):
def setUp(self):
self.c = Client()
self.ucoach = UserFactory()
self.rcoach = Rower.objects.create(
user=self.ucoach,
birthdate=faker.profile()['birthdate'],
gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='coach',
clubsize=10,
)
self.ucoachpassword = faker.word()
self.ucoach.set_password(self.ucoachpassword)
self.ucoach.save()
self.ucoachee = UserFactory()
self.rcoachee = Rower.objects.create(
user=self.ucoachee,
birthdate=faker.profile()['birthdate'],
gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='basic'
)
self.coachgroup = CoachingGroup.objects.create(name=self.ucoach.first_name)
self.rcoach.mycoachgroup = self.coachgroup
self.rcoach.save()
self.team = Team.objects.create(
name=faker.word()+'3',
notes=faker.text(),
manager=self.ucoach)
# coachee is in coach's team
self.rcoachee.team.add(self.team)
# coachee is coached by coach
self.rcoachee.coachinggroups.add(self.rcoach.mycoachgroup)
self.rcoachee.save()
self.ugroupmember = UserFactory()
self.rgroupmember = Rower.objects.create(
user=self.ugroupmember,
birthdate=faker.profile()['birthdate'],
gdproptin=True,surveydone=True,
gdproptindate=timezone.now(),
rowerplan='basic'
)
# groupmember is in coach's team (but not coached)
self.rgroupmember.team.add(self.team)
# def test_target(self):
def test_trainingplan(self):
plan = TrainingPlan(
name='test plan',
manager=self.ucoach.rower,
)
plan.save()
# can add self and coachee
plan.rowers.add(self.ucoach.rower)
plan.rowers.add(self.ucoachee.rower)
# test 1
athletes = plan.rowers.all()
self.assertTrue(self.ucoach.rower in athletes)
self.assertTrue(self.ucoachee.rower in athletes)
# can add groupmember if not basic
plan.rowers.add(self.rgroupmember)
athletes = plan.rowers.all()
self.assertTrue(self.rgroupmember in athletes)
@override_settings(TESTING=True)
class PermissionsFreeCoach(TestCase):
def setUp(self):
@@ -884,6 +964,37 @@ class PermissionsViewTests(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,403)
## Coach can see list of workouts of athlete
def test_coach_athlete_workout_list(self):
self.rbasic.team.add(self.teamcoach)
print(self.rbasic.team.all())
print(self.teamcoach)
login = self.c.login(username=self.ucoach.username, password=self.ucoachpassword)
self.assertTrue(login)
url = reverse('workouts_view',
kwargs={'rowerid':self.rbasic.id})
response = self.c.get(url)
print(url,response.status_code)
self.assertEqual(response.status_code,200)
url = reverse('workouts_view',
kwargs={'userid':self.ubasic.id})
response = self.c.get(url)
print(url,response.status_code)
self.assertEqual(response.status_code,200)
url = reverse('workouts_view')
response = self.c.get(url)
print(url,response.status_code)
self.assertEqual(response.status_code,200)
## Self coach can create one group
## Self coach cannot create more than one group
def test_plan_groups_create(self):