def test_serialization(self): table = self.__setup_players_with_table() for card in table.deck.draw_cards(3): table.add_community_card(card) table.shift_dealer_btn() table.set_blind_pos(1, 2) serial = table.serialize() restored = Table.deserialize(serial) self.eq(table.dealer_btn, restored.dealer_btn) self.eq(Seats.serialize(table.seats), Seats.serialize(restored.seats)) self.eq(Deck.serialize(table.deck), Deck.serialize(restored.deck)) self.eq(table.get_community_card(), restored.get_community_card()) self.eq(1, restored.sb_pos()) self.eq(2, restored.bb_pos())
def serialize(self): community_card = [card.to_id() for card in self._community_card] return [ self.dealer_btn, Seats.serialize(self.seats), Deck.serialize(self.deck), community_card, self._blind_pos ]
class SeatsTest(BaseUnitTest): def setUp(self): self.seats = Seats() self.p1 = Player("uuid1", 100) self.p2 = Player("uuid2", 100) self.p3 = Player("uuid3", 100) def test_sitdown(self): self.seats.sitdown(self.p1) self.true(self.p1 in self.seats.players) def test_size(self): self.__sitdown_players() self.eq(3, len(self.seats.players)) def test_count_active_players(self): self.__setup_pay_status() self.__sitdown_players() self.eq(2, self.seats.count_active_players()) def test_acount_ask_wait_players(self): self.__setup_pay_status() self.__sitdown_players() self.eq(1, self.seats.count_ask_wait_players()) def test_serialization(self): self.__sitdown_players() serial = self.seats.serialize() restored = Seats.deserialize(serial) for i in range(len(self.seats.players)): self.eq(Player.serialize(self.seats.players[i]), Player.serialize(restored.players[i])) def __setup_pay_status(self): self.p1.pay_info.update_by_pay(10) self.p2.pay_info.update_to_fold() self.p3.pay_info.update_to_allin() def __sitdown_players(self): for player in [self.p1, self.p2, self.p3]: self.seats.sitdown(player)