def __init__(self, *args, **kwargs): PokerDisplay.__init__(self, *args, **kwargs) self.widget = QPokerWidget(kwargs["dataDir"]) self.widget.seatClicked = lambda seat: self.seatClicked(seat) self.widget.foldClicked = lambda: self.foldClicked() self.widget.checkClicked = lambda: self.checkClicked() self.widget.callClicked = lambda: self.callClicked() self.widget.betClicked = lambda: self.betClicked() self.widget.show() self.serial2seat = {}
def setUp(self): self.widget = QPokerWidget()
class QPokerWidgetTestCase(unittest.TestCase): def setUp(self): self.widget = QPokerWidget() def tearDown(self): self.widget = None def testWidgetDefaultState(self): for card in self.widget.board: self.assertEquals(False, card.isVisible()) def testRenderChat(self): self.widget.renderChat("salut les aminches") self.assertEquals("salut les aminches", str(self.widget.chat.text())) def testRenderBoard(self): cards = ("As", "2c", "Qh", "Jd") ids = ("1_spade", "2_club", "queen_heart", "jack_diamond") map(lambda card, id: self.assertEquals(id, card2SvgElement(card)), cards, ids) self.widget.renderBoard(cards) for i in range(len(cards)): item = self.widget.board[i] id = ids[i] self.assertEquals(True, item.isVisible()) self.assertEquals(id, item.elementId()) for i in range(len(cards), len(self.widget.board)): item = self.widget.board[i] self.assertEquals(False, item.isVisible()) self.assertEquals('back', item.elementId()) def testRenderEmptyBoard(self): cards = [] self.widget.renderBoard(cards) map(lambda svgItem: self.assertEquals(False, svgItem.isVisible()), self.widget.board) map(lambda svgItem: self.assertEquals('back', svgItem.elementId()), self.widget.board) def testRenderStart(self): self.widget.renderStart() map(lambda svgItem: self.assertEquals(False, svgItem.isVisible()), self.widget.board) map(lambda svgItem: self.assertEquals('back', svgItem.elementId()), self.widget.board) def testRenderPlayerArrive(self): self.widget.renderPlayerArrive(0, "playerName") self.assertEquals('playerName', self.widget.names[0].text()) self.assertEquals(True, self.widget.names[0].isVisible()) def testRenderPlayerLeave(self): self.widget.renderPlayerLeave(0) self.assertEquals('', self.widget.names[0].text()) self.assertEquals(False, self.widget.names[0].isVisible()) self.assertEquals(False, self.widget.moneys[0].isVisible()) self.assertEquals(False, self.widget.bets[0].isVisible()) def testRenderPlayerChips(self): self.widget.renderPlayerChips(0, 10000, 100) self.assertEquals('10000', self.widget.moneys[0].text()) self.assertEquals(True, self.widget.moneys[0].isVisible()) self.assertEquals('100', self.widget.bets[0].text()) self.assertEquals(True, self.widget.bets[0].isVisible()) self.widget.renderPlayerChips(0, 10000, 0) self.assertEquals(False, self.widget.bets[0].isVisible()) def testRenderPot(self): self.widget.renderPot(0, 10000) self.assertEquals('10000', self.widget.pots[0].text()) self.assertEquals(True, self.widget.pots[0].isVisible()) self.widget.renderPotReset() self.assertEquals('', self.widget.pots[0].text()) self.assertEquals(False, self.widget.pots[0].isVisible()) def testRenderPosition(self): position = 1 self.widget.renderPosition(position) for i in range(10): if i == position: self.assertEquals('seat_inposition', str(self.widget.seats[i].elementId())) else: self.assertEquals('seat', str(self.widget.seats[i].elementId())) self.widget.renderPositionReset() for seat in self.widget.seats: self.assertEquals('seat', str(seat.elementId())) def testKeyPressEventZoomIn(self): matrix = self.widget.view.matrix() matrix.scale(1.1, 1.1) self.widget.keyPressEvent(KeyPressEventMockup('q')) self.assertEquals(matrix, self.widget.view.matrix()) def testKeyPressEventZoomOut(self): matrix = self.widget.view.matrix() matrix.scale(0.9, 0.9) self.widget.keyPressEvent(KeyPressEventMockup('a')) self.assertEquals(matrix, self.widget.view.matrix()) def testSeatClickedEvent(self): self.seatClicked = None def f(seat): self.seatClicked = seat self.widget.seatClicked = f self.widget.seats[0].mousePressEvent(None) self.assertEquals(0, self.seatClicked) def testFoldClickedEvent(self): self.foldClicked = None def f(): self.foldClicked = True self.widget.foldClicked = f self.widget.fold.mousePressEvent(None) self.assertEquals(True, self.foldClicked) def testCheckClickedEvent(self): self.checkClicked = None def f(): self.checkClicked = True self.widget.checkClicked = f self.widget.check.mousePressEvent(None) self.assertEquals(True, self.checkClicked) def testCallClickedEvent(self): self.callClicked = None def f(): self.callClicked = True self.widget.callClicked = f self.widget.call.mousePressEvent(None) self.assertEquals(True, self.callClicked) def testBetClickedEvent(self): self.betClicked = None def f(): self.betClicked = True self.widget.betClicked = f self.widget.bet.mousePressEvent(None) self.assertEquals(True, self.betClicked)
class DummyPokerDisplay(PokerDisplay): def __init__(self, *args, **kwargs): PokerDisplay.__init__(self, *args, **kwargs) self.widget = QPokerWidget(kwargs["dataDir"]) self.widget.seatClicked = lambda seat: self.seatClicked(seat) self.widget.foldClicked = lambda: self.foldClicked() self.widget.checkClicked = lambda: self.checkClicked() self.widget.callClicked = lambda: self.callClicked() self.widget.betClicked = lambda: self.betClicked() self.widget.show() self.serial2seat = {} def seatClicked(self, seat): protocol = self.protocol self.renderer.getSeat(PacketPokerSeat(game_id = protocol.getCurrentGameId(), serial = protocol.getSerial(), seat = seat)) def foldClicked(self): protocol = self.protocol self.renderer.interactorSelected(PacketPokerFold(game_id = protocol.getCurrentGameId(), serial = protocol.getSerial())) def checkClicked(self): protocol = self.protocol self.renderer.interactorSelected(PacketPokerCheck(game_id = protocol.getCurrentGameId(), serial = protocol.getSerial())) def callClicked(self): protocol = self.protocol self.renderer.interactorSelected(PacketPokerCall(game_id = protocol.getCurrentGameId(), serial = protocol.getSerial())) def betClicked(self): protocol = self.protocol self.renderer.interactorSelected(PacketPokerRaise(game_id = protocol.getCurrentGameId(),serial = protocol.getSerial(), amount = 0)) def render(self, packet): print "PokerDisplay2D::render: " + str(packet) if packet.type == PACKET_POKER_CHAT: message = packet.message message = message.replace('\n', '') self.widget.renderChat(message) elif packet.type == PACKET_POKER_BOARD_CARDS: game = self.factory.getGame(packet.game_id) board = game.eval.card2string(packet.cards) self.widget.renderBoard(board) elif packet.type == PACKET_POKER_START: self.widget.renderStart() elif packet.type == PACKET_POKER_PLAYER_ARRIVE: self.serial2seat[packet.serial] = packet.seat self.widget.renderPlayerArrive(packet.seat, packet.name) elif packet.type == PACKET_POKER_PLAYER_LEAVE: del self.serial2seat[packet.serial] self.widget.renderPlayerLeave(packet.seat) elif packet.type == PACKET_POKER_PLAYER_CHIPS: self.widget.renderPlayerChips(self.serial2seat[packet.serial], packet.money, packet.bet) elif packet.type == PACKET_POKER_POT_CHIPS: game = self.factory.getGame(packet.game_id) pots = game.getPots() self.widget.renderPot(packet.index, pots['pots'][packet.index][0]) elif packet.type == PACKET_POKER_CHIPS_POT_RESET: self.widget.renderPotReset() elif packet.type == PACKET_POKER_POSITION: if packet.serial == 0: self.widget.renderPositionReset() else: self.widget.renderPosition(self.serial2seat[packet.serial])