Private
Public Access
1
0

regression test for #612

This commit is contained in:
Sander Roosendaal
2021-05-18 22:16:46 +02:00
parent 934c326300
commit 668992d27a
4 changed files with 97 additions and 1 deletions

View File

@@ -637,7 +637,9 @@ def process_invite_code(user,code): # pragma: no cover
return (0,'The invitation has expired')
t = invitation.team
result, comment = add_member(t.id,r)
if not result:
return (result,"The member couldn't be added")

View File

@@ -350,6 +350,98 @@ class TeamTest(TestCase):
response = self.c.post(url, form_data)
self.assertEqual(response.status_code, 200)
def test_team_invite_convoluted(self):
uA = User.objects.get(username='user1')
uB = User.objects.get(username='user2')
passwordA = self.user_passwords[0]
passwordB = self.user_passwords[1]
# login User A
login = self.c.login(username=uA.username, password = passwordA)
self.assertTrue(login)
# start a group
teamA = Team(
manager = uA,
name = 'teamA',
private = 'open',
viewing = 'allmembers'
)
teamA.save()
uA.rower.team.add(teamA)
# invite B to the group
inviteA = TeamInvite(
team = teamA,
user = uB,
code = 'ABCDEF',
email = self.users[1].email,
)
inviteA.save()
invite = TeamInvite.objects.get(code=inviteA.code)
# B accepts the invite
login = self.c.login(username = uB.username, password = passwordB)
self.assertTrue(login)
url = reverse('rower_invitations_view')+inviteA.code
response = self.c.get(url,follow=True)
expected_url = reverse('team_view', kwargs={'team_id':teamA.id})
self.assertRedirects(response, expected_url=expected_url, status_code=301, target_status_code=200)
# A requests B to become their coach
coachrequest = CoachRequest(
coach = uB.rower,
user = uA,
code = 'ABCDEFG'
)
coachrequest.save()
# B accepts coaching request
login = self.c.login(username = uB.username, password = passwordB)
self.assertTrue(login)
url = reverse('coach_accept_coachrequest_view', kwargs={'code':coachrequest.code})
response = self.c.get(url,follow=True)
expected_url = reverse('rower_teams_view')
self.assertRedirects(response, expected_url=expected_url, status_code=302, target_status_code=200)
# Now check a few things
self.assertTrue(is_team_member(uA,teamA))
self.assertTrue(is_team_member(uB,teamA))
self.assertTrue(is_coach_user(uB,uA))
# B leaves A's group
url = reverse('team_leave_view',kwargs={'id':teamA.id})
response = self.c.get(url)
expected_url = reverse('rower_teams_view')
self.assertRedirects(response, expected_url=expected_url, status_code=302, target_status_code=200)
self.assertFalse(is_team_member(uB,teamA))
self.assertTrue(is_coach_user(uB,uA))
# B should see A's workouts on the list
url = reverse('workouts_view',kwargs={'userid':uA.id})
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
# B should see A's Plan
url = '/rowers/sessions/'
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
self.assertTrue(uA.first_name in str(response.content))
url = reverse('plannedsessions_view',kwargs={'userid':uA.id})
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
self.assertTrue(uA.first_name in str(response.content))
@override_settings(TESTING=True)
class TeamTestLowLevel(TestCase):
def setUp(self):

View File

@@ -1387,6 +1387,7 @@ from rowers.plannedsessions import cratiocolors,checkscores
def plannedsessions_view(request,
userid=0,startdatestring='',enddatestring=''):
try:
r = getrequestplanrower(request,userid=userid)
except PermissionDenied: # pragma: no cover

View File

@@ -564,9 +564,10 @@ def invitation_reject_view(request,id=0):
@login_required()
def rower_invitations_view(request,code=None,message='',successmessage=''):
if code:
teams.remove_expired_invites()
res,text = teams.process_invite_code(request.user,code)
if res: # pragma: no cover
messages.info(request,text)