def test_Table(self): """Test Table class""" table = Table() self.assertIsNotNone(table) self.assertEqual(table.number_of_seats, 9) self.assertEqual(len(table.players), 10) # 9 + 1 player = Player() table.seat_player(player, seat_number = 4) self.assertEqual(table.get_player_by_seat(4), player) self.assertEqual(table.get_player_seat(player), 4) self.assertEqual(len(table.get_seated_players()), 1) self.assertEqual(len(table.get_empty_seats()), 8) self.assertRaises(PlayerAlreadySeatedException, table.seat_player, player) players = [ Player(), Player(), Player(), Player() ] table.seat_players(players) self.assertEqual(len(table.get_seated_players()), 5) self.assertEqual(len(table.get_empty_seats()), 4) player2 = Player() table.seat_player(player2) self.assertEqual(len(table.get_seated_players()), 6) self.assertEqual(len(table.get_empty_seats()), 3) player3 = Player() self.assertRaises(SeatFullException, table.seat_player, player3, 4) players2 = [ Player(), Player(), Player(), Player() ] self.assertRaises(TableFullException, table.seat_players, players2) table.random_dealer() self.assertIn(table.get_dealer(), table.get_seated_players()) table.advance_dealer() self.assertIsInstance(table.__str__(), str)
def test_Table_get_next_player(self): """Test Table.get_next_player() method.""" players = [ Player(name="One", stack=100), Player(name="Two", stack=200), Player(name="Three", stack=500), Player(name="Four", stack=0) ] table = Table() table.seat_players(players, in_order=True) self.assertEqual(table.get_next_player(players[0]), players[1]) self.assertEqual(table.get_next_player(players[1]), players[2]) self.assertEqual(table.get_next_player(players[2]), players[3]) self.assertEqual(table.get_next_player(players[3]), players[0]) self.assertEqual( table.get_next_player(players[0], filter=lambda p: p.stack > 300), players[2]) table.set_dealer(players[1]) self.assertEqual(table.get_dealer(), players[1]) self.assertEqual(str(table), "1: One 2: Two* 3: Three 4: Four")