improved (fixed) rules and two additional tests for permissions
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user