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')
|
||||
|
||||
t = invitation.team
|
||||
|
||||
result, comment = add_member(t.id,r)
|
||||
|
||||
if not result:
|
||||
return (result,"The member couldn't be added")
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user