def get(self, request, game_id, *args, **kwargs): try: game = Game.objects.get(pk=game_id) except Game.DoesNotExist: raise Http404("Game does not exist") if request.user.is_authenticated(): player = Player.objects.get(user=request.user) teams = game.teams.all() player_team = None for team in teams: if team.player == player: player_team = team if player_team is None: raise Http404("Player is not authorised.") team_presenters = [TeamPresenter.from_team(team, game) for team in teams] is_player_next = is_team_next(player_team, game) other_teams = [] for team in teams: if team is not player_team and team.alive: other_teams.append(team) context = { "game_id": game_id, "player_team": TeamPresenter.from_team(player_team, game), "teams": team_presenters, "attack_form": AttackForm(other_teams=other_teams), "is_player_next": is_player_next, } return render(request, self.template_name, context) else: raise Http404("Player is not logged in.")
def test_from_team(self): presenter = TeamPresenter.from_team(team=self.team, game=self.game) self.assertEqual(presenter.player.username, self.user.username) self.assertTrue(presenter.is_next) self.assertEqual(presenter.winner, self.team.winner) self.assertEqual(presenter.alive, self.team.alive) self.assertEqual(len(presenter.tiles), GAME_SIZE) self.assertEqual(len(presenter.tiles[0]), GAME_SIZE)
def get(self, request, game_id, *args, **kwargs): try: game = Game.objects.get(pk=game_id) except Game.DoesNotExist: raise Http404("Game does not exist") if request.user.is_authenticated: player = Player.objects.get(user=request.user) teams = game.teams.all() player_team = None for team in teams: if team.player == player: player_team = team if player_team is None: raise Http404("Player is not authorised.") team_presenters = [ TeamPresenter.from_team( team, game ) for team in teams ] is_player_next = is_team_next(player_team, game) other_teams = [] for team in teams: if team is not player_team and team.alive: other_teams.append(team) context = { 'game_id': game_id, 'player_team': TeamPresenter.from_team(player_team, game), 'teams': team_presenters, 'attack_form': AttackForm(other_teams=other_teams), 'is_player_next': is_player_next } return render(request, self.template_name, context) else: raise Http404("Player is not logged in.")
def test_make_tiles(self): tiles = TeamPresenter.make_tiles(team=self.team, game=self.game) self.assertEqual(len(tiles), GAME_SIZE) for i in range(0, GAME_SIZE): self.assertEqual(len(tiles[i]), GAME_SIZE)