def test1(self): tourney = PokerTournament( name = 'Test create', players_quota = 4, dirs = [path.join(TESTS_PATH, '../conf')], seats_per_game = 4, betting_structure = "level-10-20-no-limit" ) for serial in xrange(1,5): self.failUnless(tourney.register(serial)) self.assertEqual(len(tourney.games), 1) for game in tourney.games: for serial in game.serialsAll(): game.botPlayer(serial) turn = 1 running = True while running: turn += 1 if turn >= 200: raise Exception('Suspecting infity loop (more than 200 turns were played).') for game in tourney.games: game.beginTurn(turn) tourney.removeBrokePlayers(game.id, now=True) if game.id in tourney.id2game and not tourney.tourneyEnd(game.id): running = False break
def test3(self): # # Multi tables sit-n-go # seats_per_game = 10 games_count = 2 players_count = seats_per_game * games_count tourney = PokerTournament( name = 'Test create', players_quota = players_count, dirs = [path.join(TESTS_PATH, '../conf')], seats_per_game = seats_per_game ) for serial in xrange(1,players_count + 1): self.failUnless(tourney.register(serial)) self.assertEqual(len(tourney.games), games_count) for game in tourney.games: for serial in game.serialsAll(): game.botPlayer(serial) turn = 1 running = True while running: turn += 1 if turn >= 200: raise Exception('Suspecting infity loop (more than 200 turns were played).') for game in tourney.games: if game.sitCount() > 1: game.beginTurn(turn) tourney.removeBrokePlayers(game.id, now=True) if game.id in tourney.id2game and not tourney.tourneyEnd(game.id): running = False break
def testInactivePlayersAllInactiveButOne(self): arguments = { 'dirs': [path.join(TESTS_PATH, '../conf')], 'players_quota': 3, 'seats_per_game': 3, 'sit_n_go': 'y', 'inactive_delay': 1 } tourney = PokerTournament(**arguments) def gameCallbackTourneyEndTurn(game_id, game_type, *args): if game_type == 'end': tourney.endTurn(game_id) tourney.tourneyEnd(game_id) serials = range(3) for s in serials: tourney.register(s) game = tourney.games[0] game.registerCallback(gameCallbackTourneyEndTurn) game.beginTurn(1) self.assertTrue(game.isFirstRound()) tourney.start_time = 0 winner = game.getSerialInPosition() game.call(winner) game.autoPlayer(game.getSerialInPosition()) game.autoPlayer(game.getSerialInPosition()) self.assertTrue(tourney.state == TOURNAMENT_STATE_COMPLETE) self.assertEqual(tourney.winners[0], winner)
def setUp(self): self.tourney = PokerTournament(name='Test create', players_quota=4, dirs=[path.join(TESTS_PATH, '../conf')], seats_per_game=4) for serial in xrange(1, 5): self.assertTrue(self.tourney.register(serial)) self.game = self.tourney.games[0] self.players = self.game.playersAll()
def assertTourneyPrizes(self, prizes_specs, quota, register_i, assert_prizes): tourney = PokerTournament(dirs=[path.join(TESTS_PATH, '../conf')], prizes_specs=prizes_specs, start_time=time.time() + 2000, sit_n_go='n', buy_in=5, players_quota=quota) for ii in xrange(1, register_i + 1): tourney.register(ii) self.assertEqual(tourney.prizes(), assert_prizes)
def _set_up(self, options=None): default_opts = { 'name': 'Test create', 'players_quota': 4, 'dirs': [path.join(TESTS_PATH, '../conf')], 'seats_per_game': 4, 'rebuy_delay': 600, 'buy_in': 5, 'prizes_specs':"table" } if options is not None: default_opts.update(options) self.tourney = PokerTournament(**default_opts) for serial in xrange(1,5): self.assertTrue(self.tourney.register(serial)) self.game = self.tourney.games[0] self.players = self.game.playersAll()
def tourneyTableStartBalancedHelper(self, num_players, seats, num_tables, min_per_table): """tourneyTableStartBalancedHelper Helper function to test various scenarios of initial seating""" tourney = PokerTournament(name='Only%d' % num_players, players_quota=num_players, players_min=num_players, dirs=[path.join(TESTS_PATH, '../conf')], seats_per_game=seats, betting_structure="level-10-20-no-limit") for serial in xrange(1, num_players + 1): self.failUnless(tourney.register(serial)) self.assertEquals(len(tourney.games), num_tables) for game in tourney.games: self.failUnless(len(game.serial2player.values()) >= min_per_table)
def testUnequalTables(self): tourney = PokerTournament(name='Test create', players_quota=4, dirs=[path.join(TESTS_PATH, '../conf')], seats_per_game=2) def tourneySoftRemovePlayer(self, game_id, serial, now): game = self.id2game[game_id] game.removePlayer(serial) self.finallyRemovePlayer(serial, now) def gameCallbackTourneyEndTurn(game_id, game_type, *args): if game_type == 'end': tourney.endTurn(game_id) tourney.tourneyEnd(game_id) for serial in xrange(1, 5): self.assertTrue(tourney.register(serial)) for g in tourney.games: g.registerCallback(gameCallbackTourneyEndTurn) players = {} for g in tourney.games: for (serial, player) in g.serial2player.iteritems(): players[serial] = player for g in tourney.games: g.beginTurn(1) broke_info = {} # in all games, one of the two players is getting broke. for g in tourney.games: serial = g.getSerialInPosition() broke_player = players[serial] broke_info[serial] = g.id broke_player.money = 0 g.fold(serial) self.assertEquals( len(tourney.games), 1, 'there should be only one game left (games: %s)' % tourney.id2game.keys())
def test2(self): # # One table sit-n-go # tourney = PokerTournament(name='Test create', players_quota=4, dirs=[path.join(TESTS_PATH, '../conf')], seats_per_game=4) for serial in xrange(1, 4): self.failUnless(tourney.register(serial)) self.failUnless(tourney.unregister(serial)) self.failUnless(tourney.register(serial)) self.failUnless(tourney.register(4)) self.failIf(tourney.unregister(4)) self.assertEqual(len(tourney.games), 1) game = tourney.games[0] game.beginTurn(1)