def setUp(self): super(TestScoreEntered, self).setUp() self.injector.inject(self.tourn_1, num_players=5) tourn = Tournament(self.tourn_1) tourn.update({ 'rounds': 2, 'missions': ['foo_mission_1', 'foo_mission_2'] }) tourn.make_draws()
def test_enter_score(self): """ Enter a score for an entry """ entry = TournamentEntry.query.filter_by( player_id=self.player, tournament_id=self.tourn_1).first() tourn = Tournament(self.tourn_1) # a one-off score Score(category=self.cat_1.name, tournament=tourn, entry_id=entry.id, score=0).write() scores = TournamentScore.query.\ filter_by(entry_id=entry.id, tournament_id=tourn.get_dao().id).all() compare(len(scores), 1) compare(scores[0].score.value, 0) # a per_round score tourn.make_draws() round_id = TournamentRound.query.\ filter_by(tournament_name=self.tourn_1, ordering=2).first().id game_id = TournamentGame.query.join(GameEntrant).\ filter(and_(GameEntrant.entrant_id == entry.id, TournamentGame.tournament_round_id == round_id)).\ first().id Score(category=self.category_2.name, tournament=tourn, game_id=game_id, entry_id=entry.id, score=17).write() scores = GameScore.query.\ filter_by(entry_id=entry.id, game_id=game_id).all() compare(len(scores), 1) compare(scores[0].score.value, 17) # score already entered score = Score(tournament=tourn, entry_id=entry.id, score=100, category=self.cat_1.name) self.assertRaises(ValueError, score.write) score = Score(tournament=tourn, entry_id=entry.id, score=100, category=self.category_2.name, game_id=game_id) self.assertRaises(ValueError, score.write)