def testDeserializesRoundCorrectly(self): players = "some players" serializedTurnTracker = "a turn tracker" serializedTrickEvaluator = "a trick evaluator" hands = {"1" : ["card 1", "card 2"], "2" : ["card 3", "card 4"]} curTrick = "trick 1" prevTricks = ["trick 2", "trick 3"] scores = {"1" : 3, "2" : 2} data = {"turnTracker" : serializedTurnTracker, "trickEvaluator" : serializedTrickEvaluator, "hands" : hands, "curTrick" : curTrick, "prevTricks" : prevTricks, "scores" : scores} when(self.turnTrackerSerializer).deserialize(serializedTurnTracker, players).thenReturn(self.turnTracker) when(self.trickEvaluatorSerializer).deserialize(serializedTrickEvaluator).thenReturn(self.trickEvaluator) expectedCards = {} for playerId, hand in hands.iteritems(): for card in hand: deserializedCard = self._randomCard() when(self.cardSerializer).deserialize(card).thenReturn(deserializedCard) expectedCards[card] = deserializedCard expectedTricks = {curTrick : testhelper.createMock(euchre.Trick)} when(self.trickSerializer).deserialize(curTrick, self.trump).thenReturn(expectedTricks[curTrick]) for trick in prevTricks: deserializedTrick = testhelper.createMock(euchre.Trick) expectedTricks[trick] = deserializedTrick when(self.trickSerializer).deserialize(trick, self.trump).thenReturn(deserializedTrick) testhelper.replaceClass(src.euchre, "CardTranslator", testhelper.createSimpleMock()) self.wasCalled = False def assertCorrectTrump(trump): self.assertEqual(self.trump, trump) self.wasCalled = True src.euchre.CardTranslator.getInstance = assertCorrectTrump obj = self.testObj.deserialize(data, players) self.assertTrue(self.wasCalled) self.assertEqual(self.turnTracker, obj._turnTracker) verify(self.turnTrackerSerializer).deserialize(serializedTurnTracker, players) self.assertEqual(self.trickEvaluator, obj._trickEvaluator) for playerId, hand in hands.iteritems(): for i in range(len(hand)): self.assertEqual(expectedCards[hand[i]], obj._hands[playerId][i]) self.assertEqual(expectedTricks[curTrick], obj.getCurrentTrick()) for i in range(len(prevTricks)): self.assertEqual(expectedTricks[prevTricks[i]], obj.getPreviousTricks()[i]) for playerId, score in scores.iteritems(): self.assertEqual(score, obj._scores[playerId])
def _doTraining(self): when(self.requestDataAccessor).getCookies().thenReturn(self.requestCookies) when(facebook).get_user_from_cookie(self.requestCookies, self.appId, self.appSecret).thenReturn(self.fbCookie) when(facebook).GraphAPI(self.accessToken).thenReturn(self.graph) when(self.graph).get_object(self.playerId).thenReturn(self.profile) testhelper.replaceClass(src.social, "User", testhelper.createSimpleMock()) when(src.social.User).getInstance(self.playerId, self.expectedName).thenReturn(self.expectedUser) when(src.social.User).getInstance().thenReturn(self.nullUser) when(self.configManager).get("FB.sessionKey").thenReturn(self.sessionKey) when(self.configManager).get("FB.appId").thenReturn(self.appId) when(self.configManager).get("FB.appSecret").thenReturn(self.appSecret)