def test_create(self, db): """Test game creation.""" game = Game(PlayerFactory(), PlayerFactory(), Color.white, 0, 7, 1, 1) game.save() games = Game.query.all() players = Player.query.all() assert len(games) == 1 assert len(players) == 2
def __init__(self, season, episode): """Build a report.""" self.season = season self.episode = episode self.games = [] if self.episode > 0: self.games = Game.get_by_season_ep(season, episode) elif self.episode == 0: self.games = Game.get_by_season(season) player_sets = [game.players for game in self.games] self.players = frozenset().union(*player_sets)
def test_latest_season_episode(self, db): """Test calculation of latest (season, episode) tuple.""" games = [ GameFactory(season=s, episode=e) for (s, e) in [(1, 1), (1, 2), (2, 1), (3, 1)] ] map(methodcaller('save'), games) assert Game.latest_season_episode() == (3, 1)
def test_get_max_season_ep(self, db): """Test calculation of maximum season and episode.""" games = [ GameFactory(season=s, episode=e) for (s, e) in [(1, 1), (1, 2), (2, 1)] ] map(methodcaller('save'), games) assert Game.get_max_season_ep() == (2, 2)
def delete_game(game_id): """Delete a game.""" game = Game.get_by_id(game_id) if game is not None: game.delete() return '', 204 else: return '', 404
def prizes(): """Prizes and achievements.""" site_settings = current_app.config['SITE_SETTINGS'] players = Player.query.all() games = Game.query.all() return render_template('dashboard/prizes.html', site_settings=site_settings, players=players, games=games, season_stats=Game.season_stats())
def _set_game_create_choices(game_create_form): """ Calculate choices for season and episode and update form. Should allow up to one more than current maxima. """ max_season, max_episode = Game.get_max_season_ep() game_create_form.season.choices = [(s, s) for s in range(1, max_season + 2)] game_create_form.episode.choices = [(e, e) for e in range(1, max_episode + 2)] player_choices = [(player.id, '{} ({})'.format(player.full_name, player.aga_id)) for player in Player.get_players()] game_create_form.white_id.choices = player_choices game_create_form.black_id.choices = player_choices
def dashboard(): """Dashboard.""" site_settings = current_app.config['SITE_SETTINGS'] form = LoginForm(request.form) # Handle logging in if request.method == 'POST': if form.validate_on_submit(): login_user(form.user) flash('You are logged in.', 'success') redirect_url = (request.args.get('next') or url_for('dashboard.dashboard')) return redirect(redirect_url) else: flash_errors(form) players = Player.query.all() games = Game.query.all() return render_template('dashboard/dashboard.html', site_settings=site_settings, login_form=form, players=players, games=games, episode_stats=Game.episode_stats())
def validate_game_id(form, field): """Check that game exists.""" game_id = form.game_id.data if Game.get_by_id(game_id) is None: raise ValidationError('Game {} does not exist'.format(game_id))