regression test for #612
This commit is contained in:
@@ -637,7 +637,9 @@ def process_invite_code(user,code): # pragma: no cover
|
|||||||
return (0,'The invitation has expired')
|
return (0,'The invitation has expired')
|
||||||
|
|
||||||
t = invitation.team
|
t = invitation.team
|
||||||
|
|
||||||
result, comment = add_member(t.id,r)
|
result, comment = add_member(t.id,r)
|
||||||
|
|
||||||
if not result:
|
if not result:
|
||||||
return (result,"The member couldn't be added")
|
return (result,"The member couldn't be added")
|
||||||
|
|
||||||
|
|||||||
@@ -350,6 +350,98 @@ class TeamTest(TestCase):
|
|||||||
response = self.c.post(url, form_data)
|
response = self.c.post(url, form_data)
|
||||||
self.assertEqual(response.status_code, 200)
|
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)
|
@override_settings(TESTING=True)
|
||||||
class TeamTestLowLevel(TestCase):
|
class TeamTestLowLevel(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|||||||
@@ -1387,6 +1387,7 @@ from rowers.plannedsessions import cratiocolors,checkscores
|
|||||||
def plannedsessions_view(request,
|
def plannedsessions_view(request,
|
||||||
userid=0,startdatestring='',enddatestring=''):
|
userid=0,startdatestring='',enddatestring=''):
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
r = getrequestplanrower(request,userid=userid)
|
r = getrequestplanrower(request,userid=userid)
|
||||||
except PermissionDenied: # pragma: no cover
|
except PermissionDenied: # pragma: no cover
|
||||||
|
|||||||
@@ -564,9 +564,10 @@ def invitation_reject_view(request,id=0):
|
|||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def rower_invitations_view(request,code=None,message='',successmessage=''):
|
def rower_invitations_view(request,code=None,message='',successmessage=''):
|
||||||
|
|
||||||
if code:
|
if code:
|
||||||
teams.remove_expired_invites()
|
teams.remove_expired_invites()
|
||||||
|
|
||||||
|
|
||||||
res,text = teams.process_invite_code(request.user,code)
|
res,text = teams.process_invite_code(request.user,code)
|
||||||
if res: # pragma: no cover
|
if res: # pragma: no cover
|
||||||
messages.info(request,text)
|
messages.info(request,text)
|
||||||
|
|||||||
Reference in New Issue
Block a user