Skip to content

Commit

Permalink
test(team): add tests for permissable_teams helper
Browse files Browse the repository at this point in the history
  • Loading branch information
iarp committed Mar 22, 2022
1 parent 5ba190f commit cde740f
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 4 deletions.
1 change: 0 additions & 1 deletion core/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,6 @@ def test_template_context_adding_season_returns_none_when_current_season_does_no
self.assertEqual(200, resp.status_code)
self.assertIsNone(resp.context["season"])


def test_template_context_adding_season_returns_current_season(self):
u = User.objects.create(email="test@domain.com")

Expand Down
85 changes: 85 additions & 0 deletions team/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from core.perms import add_override_permission
from core.test_helpers import FixtureBasedTestCase

from . import helpers
from .models import (
Player,
PlayerPosition,
Expand Down Expand Up @@ -164,6 +165,90 @@ def test_coach_can_access_own_team(self):
self.assertIs(True, team1.can_access(team1_coach))
self.assertIs(False, team2.can_access(team1_coach))

def test_helper_permissiable_teams_for_coach(self):
season = Season.get_current()
team1 = Team.objects.filter(season=season).first()

allowed_teams = helpers.permissable_teams(team1.staff.first())

self.assertEqual(1, len(allowed_teams))
self.assertIn(team1, allowed_teams)

def test_helper_permissiable_teams_for_convenor(self):
season = Season.get_current()
team1 = Team.objects.filter(season=season).first()

convenor = team1.subdivision.staff.first()

allowed_teams = helpers.permissable_teams(convenor)

self.assertEqual(team1.subdivision.teams.count(), len(allowed_teams))
for team in team1.subdivision.teams.all():
self.assertIn(team, allowed_teams)

def test_helper_permissiable_teams_for_senior_convenor(self):
season = Season.get_current()
team1 = Team.objects.filter(season=season).first()

number_of_teams = team1.division.teams.count()

senior_convenor = team1.division.staff.first()

allowed_teams = helpers.permissable_teams(senior_convenor)

self.assertEqual(number_of_teams, len(allowed_teams))

for team in team1.division.teams.all():
self.assertIn(team, allowed_teams)

def test_helper_permissiable_teams_for_vp(self):
season = Season.get_current()
team1 = Team.objects.filter(season=season).first()

number_of_teams = team1.league.teams.count()

vp = team1.league.staff.first()

allowed_teams = helpers.permissable_teams(vp)

self.assertEqual(number_of_teams, len(allowed_teams))

for team in team1.league.teams.all():
self.assertIn(team, allowed_teams)

def test_helper_permissiable_teams_for_admin(self):
season = Season.get_current()
team1 = Team.objects.filter(season=season).first()

number_of_teams = team1.season.teams.count()

admin = team1.season.staff.first()

allowed_teams = helpers.permissable_teams(admin)

self.assertEqual(number_of_teams, len(allowed_teams))

for team in team1.season.teams.all():
self.assertIn(team, allowed_teams)

def test_helper_permissiable_teams_for_coach_with_extra_permissions_assigned(self):
season = Season.get_current()
team1 = Team.objects.filter(season=season).first()

team2 = Team.objects.filter(season=season).exclude(pk=team1.pk).last()
coach2 = team2.staff.first()

allowed_teams = helpers.permissable_teams(coach2)
self.assertEqual(1, len(allowed_teams))
self.assertIn(team2, allowed_teams)

coach2.permissions_add_override(team1, "team_can_access", True)

allowed_teams = helpers.permissable_teams(coach2)
self.assertEqual(2, len(allowed_teams))
self.assertIn(team1, allowed_teams)
self.assertIn(team2, allowed_teams)


class StaffAccessExtraPermissionsTests(FixtureBasedTestCase):
def test_coach1_with_extra_permissions_stafftype_can_edit_team2(self):
Expand Down
3 changes: 0 additions & 3 deletions team/views/team.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
from functools import wraps

from django.shortcuts import render

from team.models import Team
from team.helpers import add_selected_team


Expand Down
2 changes: 2 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ exclude =
.github
temp.py
generate_test_fixture_data.py
generate_test_fixture_data_local_extras.py
*/settings_test.py
exclude_lines =
pragma: no cover
extend_ignore=E722

0 comments on commit cde740f

Please sign in to comment.