Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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()
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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())
Exemplo n.º 9
0
    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)