Private
Public Access
1
0

almost all team functionality tested

This commit is contained in:
Sander Roosendaal
2019-01-18 15:15:11 +01:00
parent 7d1973d1c6
commit 0fdd51fa9f
5 changed files with 135 additions and 17 deletions

View File

@@ -133,25 +133,11 @@ def count_invites(manager):
return count
def count_members(id):
t = Team.objects.get(id=id)
return Rower.objects.filter(team=t).count()
def count_club_members(manager):
ts = Team.objects.filter(manager=manager)
return Rower.objects.filter(team__in=ts).distinct().count()
def get_club_members(manager):
ts = Team.objects.filter(manager=manager)
return Rower.objects.filter(team__in=ts).distinct()
def get_team_members(id):
t = Team.objects.get(id=id)
return Rower.objects.filter(team=t)
def get_team_workouts(id):
t = Team.objects.get(id=id)
return Workout.objects.filter(team=t).order_by("-date", "-starttime")
# Medium level functionality

View File

@@ -60,6 +60,8 @@ class TeamCreateTest(TestCase):
self.t = TeamFactory(manager=self.u)
# need to set up some requests for testing (they are not good below)
def tearDown(self):
for csvfilename in self.csvfilenames:
try:
@@ -67,6 +69,22 @@ class TeamCreateTest(TestCase):
except (IOError, WindowsError):
pass
def test_manager_drop_member(self):
res = add_member(self.t.id,self.users[1].rower)
login = self.c.login(username=self.u.username, password = self.password)
self.assertTrue(login)
url = '/rowers/me/team/{t}/drop/{u}/'.format(
t = self.t.id,
u = self.users[1].id
)
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
self.assertRedirects(response,
expected_url='/rowers/me/teams/'.format(t=self.t.id),
status_code=302,target_status_code=200)
def test_teamview(self):
login = self.c.login(username=self.u.username, password = self.password)
self.assertTrue(login)
@@ -87,6 +105,117 @@ class TeamCreateTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
def test_teamsview(self):
id, result = create_request(self.t,self.users[2].id)
id, comment = create_invite(self.t,self.u,user=self.users[1])
url = '/rowers/me/teams/'
login = self.c.login(username=self.users[2].username, password = self.user_passwords[2])
self.assertTrue(login)
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
html = BeautifulSoup(response.content,'html.parser')
urls = [a['href'] for a in html.find_all('a')]
for u in urls:
if 'rowers' in u and 'http' not in u and 'authorize' not in u and 'import' not in u and 'logout' not in u:
response = self.c.get(u)
if response.status_code not in [200,302]:
print url
print u
print response.status_code
self.assertIn(response.status_code,[200,302])
login = self.c.login(username=self.users[1].username,
password = self.user_passwords[1])
self.assertTrue(login)
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
html = BeautifulSoup(response.content,'html.parser')
urls = [a['href'] for a in html.find_all('a')]
for u in urls:
if 'rowers' in u and 'http' not in u and 'authorize' not in u and 'import' not in u and 'logout' not in u:
response = self.c.get(u)
if response.status_code not in [200,302]:
print url
print u
print response.status_code
self.assertIn(response.status_code,[200,302])
def test_teamsview_manager(self):
id, result = create_request(self.t,self.users[2].id)
id, comment = create_invite(self.t,self.u,user=self.users[1])
url = '/rowers/me/teams/'
login = self.c.login(username=self.u,password=self.password)
self.assertTrue(login)
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
html = BeautifulSoup(response.content,'html.parser')
urls = [a['href'] for a in html.find_all('a')]
for u in urls:
if 'rowers' in u and 'http' not in u and 'authorize' not in u and 'import' not in u and 'logout' not in u:
response = self.c.get(u)
if response.status_code not in [200,302]:
print url
print u
print response.status_code
self.assertIn(response.status_code,[200,302])
def test_teamview_member_request(self):
login = self.c.login(username=self.users[1].username, password = self.user_passwords[1])
self.assertTrue(login)
url = '/rowers/team/{t}/requestmembership/{u}/'.format(
t=self.t.id,
u=self.users[1].id)
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code, 200)
self.assertRedirects(response,
expected_url='/rowers/team/{t}/'.format(t=self.t.id),
status_code=302,target_status_code=200)
id, result = create_request(self.t,self.users[2].id)
self.assertTrue(id != 0)
login = self.c.login(username=self.users[2].username, password = self.user_passwords[2])
self.assertTrue(login)
url = '/rowers/me/invitation/{id}/revoke/'.format(id=id)
self.assertRedirects(response,
expected_url='/rowers/team/{t}/'.format(t=self.t.id),
status_code=302,target_status_code=200)
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
id, result = create_request(self.t,self.users[2].id)
self.assertTrue(id != 0)
login = self.c.login(username=self.u.username, password = self.password)
self.assertTrue(login)
url = '/rowers/me/invitation/{id}/reject/'.format(id=id)
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
self.assertRedirects(response,
expected_url='/rowers/me/teams/',
status_code=302,target_status_code=200)
def test_team_invite_view(self):
login = self.c.login(username=self.u.username, password = self.password)
self.assertTrue(login)
@@ -135,6 +264,9 @@ class TeamCreateTest(TestCase):
test = Team.objects.filter(id=tid)
self.assertEqual(len(test),0)
def test_lowlevel_create_request(self):
id,comment = create_request(self.t,self.users[1].id)
self.assertEqual(id,1)
def test_lowlevel_remove_member(self):
id, comment = add_member(self.t.id, self.users[3].rower)

Binary file not shown.

View File

@@ -2502,7 +2502,7 @@
</Trackpoint>
</Track>
</Lap>
<Notes>&lt;Element 'Notes' at 0x138f7dd8&gt;</Notes>
<Notes>&lt;Element 'Notes' at 0x19d5f2b0&gt;</Notes>
</Activity>
</Activities>
<Creator>

View File

@@ -397,8 +397,8 @@ urlpatterns = [
url(r'^me/invitation/$',views.rower_invitations_view),
url(r'^me/raise500/$',views.raise_500),
url(r'^me/invitation/(\w+.*)/$',views.rower_invitations_view),
url(r'^me/request/(?P<id>\d+)/revoke',views.request_revoke_view),
url(r'^me/request/(?P<id>\d+)/reject',views.request_reject_view),
url(r'^me/request/(?P<id>\d+)/revoke/$',views.request_revoke_view),
url(r'^me/request/(?P<id>\d+)/reject/$',views.request_reject_view),
url(r'^me/request/(\w+.*)/$',views.manager_requests_view),
url(r'^me/request/$',views.manager_requests_view),
url(r'^me/edit/$',views.rower_edit_view),