almost all team functionality tested
This commit is contained in:
@@ -133,25 +133,11 @@ def count_invites(manager):
|
|||||||
|
|
||||||
return count
|
return count
|
||||||
|
|
||||||
def count_members(id):
|
|
||||||
t = Team.objects.get(id=id)
|
|
||||||
return Rower.objects.filter(team=t).count()
|
|
||||||
|
|
||||||
def count_club_members(manager):
|
def count_club_members(manager):
|
||||||
ts = Team.objects.filter(manager=manager)
|
ts = Team.objects.filter(manager=manager)
|
||||||
return Rower.objects.filter(team__in=ts).distinct().count()
|
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
|
# Medium level functionality
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ class TeamCreateTest(TestCase):
|
|||||||
|
|
||||||
self.t = TeamFactory(manager=self.u)
|
self.t = TeamFactory(manager=self.u)
|
||||||
|
|
||||||
|
# need to set up some requests for testing (they are not good below)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for csvfilename in self.csvfilenames:
|
for csvfilename in self.csvfilenames:
|
||||||
try:
|
try:
|
||||||
@@ -67,6 +69,22 @@ class TeamCreateTest(TestCase):
|
|||||||
except (IOError, WindowsError):
|
except (IOError, WindowsError):
|
||||||
pass
|
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):
|
def test_teamview(self):
|
||||||
login = self.c.login(username=self.u.username, password = self.password)
|
login = self.c.login(username=self.u.username, password = self.password)
|
||||||
self.assertTrue(login)
|
self.assertTrue(login)
|
||||||
@@ -87,6 +105,117 @@ class TeamCreateTest(TestCase):
|
|||||||
response = self.c.get(url)
|
response = self.c.get(url)
|
||||||
self.assertEqual(response.status_code, 200)
|
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):
|
def test_team_invite_view(self):
|
||||||
login = self.c.login(username=self.u.username, password = self.password)
|
login = self.c.login(username=self.u.username, password = self.password)
|
||||||
self.assertTrue(login)
|
self.assertTrue(login)
|
||||||
@@ -135,6 +264,9 @@ class TeamCreateTest(TestCase):
|
|||||||
test = Team.objects.filter(id=tid)
|
test = Team.objects.filter(id=tid)
|
||||||
self.assertEqual(len(test),0)
|
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):
|
def test_lowlevel_remove_member(self):
|
||||||
id, comment = add_member(self.t.id, self.users[3].rower)
|
id, comment = add_member(self.t.id, self.users[3].rower)
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
2
rowers/tests/testdata/testdata.tcx
vendored
2
rowers/tests/testdata/testdata.tcx
vendored
@@ -2502,7 +2502,7 @@
|
|||||||
</Trackpoint>
|
</Trackpoint>
|
||||||
</Track>
|
</Track>
|
||||||
</Lap>
|
</Lap>
|
||||||
<Notes><Element 'Notes' at 0x138f7dd8></Notes>
|
<Notes><Element 'Notes' at 0x19d5f2b0></Notes>
|
||||||
</Activity>
|
</Activity>
|
||||||
</Activities>
|
</Activities>
|
||||||
<Creator>
|
<Creator>
|
||||||
|
|||||||
@@ -397,8 +397,8 @@ urlpatterns = [
|
|||||||
url(r'^me/invitation/$',views.rower_invitations_view),
|
url(r'^me/invitation/$',views.rower_invitations_view),
|
||||||
url(r'^me/raise500/$',views.raise_500),
|
url(r'^me/raise500/$',views.raise_500),
|
||||||
url(r'^me/invitation/(\w+.*)/$',views.rower_invitations_view),
|
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+)/revoke/$',views.request_revoke_view),
|
||||||
url(r'^me/request/(?P<id>\d+)/reject',views.request_reject_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/(\w+.*)/$',views.manager_requests_view),
|
||||||
url(r'^me/request/$',views.manager_requests_view),
|
url(r'^me/request/$',views.manager_requests_view),
|
||||||
url(r'^me/edit/$',views.rower_edit_view),
|
url(r'^me/edit/$',views.rower_edit_view),
|
||||||
|
|||||||
Reference in New Issue
Block a user