def setUp(self): self._createPlayersAndHands() self.trumpSelector = testhelper.createSingletonMock(euchre.TrumpSelector) self.trickEvaluator = testhelper.createSingletonMock(euchre.TrickEvaluator) self.round = testhelper.createSingletonMock(euchre.Round) when(self.round).getHands().thenReturn(self.hands) self._createSequence()
def testDiscardCardPassesThrough(self): sequence = testhelper.createSingletonMock(euchre.Sequence) sequenceFactory = testhelper.createSingletonMock(euchre.SequenceFactory) when(sequenceFactory).buildSequence(any(), any(), any()).thenReturn(sequence) player = self.players[random.randrange(0, len(self.players))] card = euchre.Card.getInstance(suit=random.randint(1,4), value=random.randint(9,14)) self.game.startGame() self.game.discardCard(player, card) verify(sequence).discardCard(player, card)
def setUp(self): self.trumpSelector = testhelper.createMock(euchre.TrumpSelector) self.round = testhelper.createMock(euchre.Round) self.upCard = euchre.Card(euchre.SUIT_DIAMONDS, euchre.VALUE_KING) self.sequence = euchre.Sequence(self.trumpSelector, self.round, self.upCard) self.trumpSelectorSerializer = testhelper.createSingletonMock(serializer.TrumpSelectorSerializer) self.roundSerializer = testhelper.createSingletonMock(serializer.RoundSerializer) self.cardSerializer = testhelper.createSingletonMock(serializer.CardSerializer) self.testObj = serializer.SequenceSerializer.getInstance()
def createExecutableBasics(self): self.requestDataAccessor = testhelper.createSingletonMock(util.RequestDataAccessor) self.responseWriter = testhelper.createSingletonMock(util.ResponseWriter) self.session = testhelper.createSingletonMock(util.Session) self.facebook = testhelper.createSingletonMock(social.Facebook) self.response = None def handleResponse(response): self.response = response self.responseWriter.write = handleResponse
def setUp(self): self.playerSerializer = testhelper.createSingletonMock(serializer.PlayerSerializer) self.scoreTrackerSerializer = testhelper.createSingletonMock(serializer.ScoreTrackerSerializer) self.sequenceSerializer = testhelper.createSingletonMock(serializer.SequenceSerializer) self.players = [game.Player("1"), game.Player("2"), game.Player("3"), game.Player("4")] self.scoreTracker = testhelper.createSingletonMock(euchre.ScoreTracker) self.sequence = testhelper.createMock(euchre.Sequence) self.prevSequence = testhelper.createMock(euchre.Sequence) self.game = euchre.Game.getInstance(self.players, [["1", "2"], ["3", "4"]]) self.testObj = serializer.GameSerializer.getInstance()
def testPlayCardScoresRoundWhenCurSequenceIsComplete(self): callingPlayerId = self.players[1].playerId sequence = testhelper.createSingletonMock(euchre.Sequence) trumpSelector = testhelper.createSingletonMock(euchre.TrumpSelector) when(sequence).getState().thenReturn(euchre.Sequence.STATE_COMPLETE) when(trumpSelector).getSelectingPlayerId().thenReturn(callingPlayerId) self._buildTestObj() self.game.startGame() self.game.playCard(self.players[0], euchre.Card(euchre.SUIT_HEARTS, euchre.VALUE_JACK)) verify(sequence).scoreCurrentRound(self.scoreTracker)
def setUp(self): self.robotFactory = testhelper.createSingletonMock(ai.RobotFactory) self.gameStatusRetriever = testhelper.createSingletonMock(retriever.GameStatusRetriever) self.turnRetriever = testhelper.createSingletonMock(retriever.TurnRetriever) self.players = ["1239804adjf", "32409afslk", "euchre_robot_random_0", "euchre_robot_random_1"] self.randomAI = testhelper.createSingletonMock(ai.RandomCardPlayerAI) self.gameObj = testhelper.createMock(model.GameModel) self.status = "" self.doTraining() self.buildTestObj()
def testPlayCardDoesNotCreateANewSequenceIfATeamHasWon(self): callingPlayerId = self.players[1].playerId sequence = testhelper.createSingletonMock(euchre.Sequence) trumpSelector = testhelper.createSingletonMock(euchre.TrumpSelector) when(sequence).getState().thenReturn(euchre.Sequence.STATE_COMPLETE) when(trumpSelector).getSelectingPlayerId().thenReturn(callingPlayerId) self._buildTestObj() self.game.startGame() when(self.scoreTracker).getTeamScore(0).thenReturn(euchre.WINNING_SCORE) when(self.scoreTracker).getTeamScore(1).thenReturn(3) self.game.playCard(self.players[0], euchre.Card(euchre.SUIT_HEARTS, euchre.VALUE_JACK)) self.assertEqual(None, self.game.getSequence())
def setUp(self): self.hands = {"1" : [self._randomCard(), self._randomCard()], "2" : [self._randomCard(), self._randomCard()]} self.trickEvaluator = testhelper.createMock(euchre.TrickEvaluator) self.trickEvaluatorSerializer = testhelper.createSingletonMock(serializer.TrickEvaluatorSerializer) self.trump = random.randint(1, 4) when(self.trickEvaluator).getTrump().thenReturn(self.trump) self.turnTracker = testhelper.createMock(game.TurnTracker) self.turnTrackerSerializer = testhelper.createSingletonMock(serializer.TurnTrackerSerializer) self.trickSerializer = testhelper.createSingletonMock(serializer.TrickSerializer) self.cardSerializer = testhelper.createSingletonMock(serializer.CardSerializer) self.round = euchre.Round(self.turnTracker, self.trickEvaluator, self.hands, euchre.CardTranslator.getInstance(euchre.SUIT_NONE)) self.testObj = serializer.RoundSerializer.getInstance()
def setUp(self): self.handRetriever = testhelper.createSingletonMock(retriever.HandRetriever) self.upCardRetriever = testhelper.createSingletonMock(retriever.UpCardRetriever) self.playerId = "2304asdfoi34" self.playerObj = game.Player.getInstance(self.playerId) self.gameObj = testhelper.createMock(euchre.Game) self.hand = [ euchre.Card.getInstance(euchre.SUIT_CLUBS, 3), euchre.Card.getInstance(euchre.SUIT_HEARTS, 8), euchre.Card.getInstance(euchre.SUIT_SPADES, 10), euchre.Card.getInstance(euchre.SUIT_DIAMONDS, 12), euchre.Card.getInstance(euchre.SUIT_CLUBS, 14) ] when(self.handRetriever).retrieveHand(self.playerId, self.gameObj).thenReturn(self.hand)
def setUp(self): self.filenames = ["temp/foo.template", "bar.template", "bin/div.template"] self.contents = [["<html></html>"], ["<h1>sweeeeeet text</h1>"], ["<div class=\"foobar\"></div>"]] self.fileReader = testhelper.createSingletonMock(util.FileReader) for i in range(len(self.filenames)): when(self.fileReader).getFileContents(self.filenames[i]).thenReturn(self.contents[i]) self.testObj = util.TemplateManager.getInstance()
def testPlayingCardAddsItToCurrentTrick(self): mockTrick = testhelper.createSingletonMock(euchre.Trick) when(mockTrick).getPlayedCards().thenReturn({}) self.round._curTrick = mockTrick card = self.round._hands[self.players[0].playerId][2] self.round.playCard(self.players[0], card) verify(mockTrick).add(self.players[0], card)
def setUp(self): self.game = testhelper.createMock(euchre.Game) self.sequence = testhelper.createMock(euchre.Sequence) self.round = testhelper.createMock(euchre.Round) self.teamRetriever = testhelper.createSingletonMock(retriever.TeamRetriever) self.gameScores = [random.randint(0, 9), random.randint(0, 9)] self.playerIds = ["1234", "4567", "7890", "0123"] self.players = [game.Player.getInstance(playerId) for playerId in self.playerIds] self.teams = [self.playerIds[:2], self.playerIds[2:]] self.roundScores = {} for playerId in self.playerIds: self.roundScores[playerId] = random.randint(0, 5) when(self.game).getSequence().thenReturn(self.sequence) when(self.game).getPlayers().thenReturn(self.players) when(self.game).getTeamScore(0).thenReturn(self.gameScores[0]) when(self.game).getTeamScore(1).thenReturn(self.gameScores[1]) when(self.sequence).getRound().thenReturn(self.round) for playerId in self.playerIds: when(self.round).getScore(playerId).thenReturn(self.roundScores[playerId]) for teamId in range(len(self.teams)): for playerId in self.teams[teamId]: when(self.teamRetriever).retrieveTeamByPlayerId(self.game, playerId).thenReturn(teamId) self._buildTestObj()
def setUp(self): self.game = testhelper.createMock(euchre.Game) self.sequence = testhelper.createMock(euchre.Sequence) self.previousSequence = testhelper.createMock(euchre.Sequence) self.round = testhelper.createMock(euchre.Round) self.previousRound = testhelper.createMock(euchre.Round) self.trick = testhelper.createMock(euchre.Trick) self.trickLeaderRetriever = testhelper.createSingletonMock(retriever.TrickLeaderRetriever) self.winnerId = "7890" self.trump = euchre.SUIT_HEARTS self.cards = {"1234" : euchre.Card(euchre.SUIT_HEARTS, 10), "4567" : euchre.Card(euchre.SUIT_HEARTS, 12), "7890" : euchre.Card(euchre.SUIT_HEARTS, 11), "0123" : euchre.Card(euchre.SUIT_HEARTS, 14)} self.expectedResult = {"playedCards" : {}, "winnerId" : self.winnerId} for playerId, card in self.cards.iteritems(): self.expectedResult["playedCards"][playerId] = {"suit" : card.suit, "value" : card.value} when(self.game).getSequence().thenReturn(self.sequence) when(self.game).getPreviousSequence().thenReturn(None) when(self.sequence).getRound().thenReturn(self.round) when(self.previousSequence).getRound().thenReturn(self.previousRound) when(self.round).getPreviousTricks().thenReturn([{}, self.trick]) when(self.round).getTrump().thenReturn(self.trump) when(self.previousRound).getPreviousTricks().thenReturn([{}, {}, self.trick]) when(self.previousRound).getTrump().thenReturn(self.trump) when(self.trick).getPlayedCards().thenReturn(self.cards) when(self.trickLeaderRetriever).getLeaderFromTrick(self.trick, self.trump).thenReturn(self.winnerId) self._buildTestObj()
def testStartGameShufflesDeck(self): actualDeck = euchre.Deck.getInstance() deck = testhelper.createSingletonMock(euchre.Deck) when(deck).deal(5).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)) when(deck).peekTop().thenReturn(actualDeck.peekTop()) self._buildTestObj() self.game.startGame() verify(deck).shuffle()
def setUp(self): self.turnTracker = testhelper.createMock(game.TurnTracker) self.availableTrump = euchre.SUIT_HEARTS self.selectedTrump = euchre.SUIT_DIAMONDS self.blackListedSuits = [euchre.SUIT_SPADES] self.selectingPlayerId = "123456" self.trumpSelector = euchre.TrumpSelector(self.turnTracker, self.availableTrump) self.turnTrackerSerializer = testhelper.createSingletonMock(serializer.TurnTrackerSerializer) self.testObj = serializer.TrumpSelectorSerializer.getInstance()
def setUp(self): self.players = [game.Player("1"), game.Player("2"), game.Player("3"), game.Player("4")] self.teams = [["1", "2"], ["3", "4"]] self.requestingPlayerId = random.choice(self.players).playerId self.sequence = testhelper.createSingletonMock(euchre.Sequence) self.trumpTurnTracker = testhelper.createMock(game.TurnTracker) self.roundTurnTracker = testhelper.createMock(game.TurnTracker) self.round = testhelper.createSingletonMock(euchre.Round) self.trumpSelector = testhelper.createSingletonMock(euchre.TrumpSelector) when(self.sequence).getRound().thenReturn(self.round) when(self.sequence).getTrumpSelector().thenReturn(self.trumpSelector) when(self.round).getTurnTracker().thenReturn(self.roundTurnTracker) when(self.trumpSelector).getTurnTracker().thenReturn(self.trumpTurnTracker) self.game = euchre.Game.getInstance(self.players, self.teams) when(self.game).getPlayers().thenReturn(self.players) self.handRetriever = testhelper.createSingletonMock(retriever.HandRetriever) self.testObj = retriever.TurnRetriever.getInstance()
def testGetPreviousSequenceReturnsPreviousSequenceIfAvailable(self): sequenceFactory = testhelper.createSingletonMock(euchre.SequenceFactory) firstSequence = testhelper.createMock(euchre.Sequence) secondSequence = testhelper.createMock(euchre.Sequence) when(firstSequence).getState().thenReturn(euchre.Sequence.STATE_COMPLETE) when(sequenceFactory).buildSequence(any(), any(), any()).thenReturn(firstSequence).thenReturn(secondSequence) self._buildTestObj() self.game.startGame() self.game.playCard(self.players[0], euchre.Card(euchre.SUIT_DIAMONDS, euchre.VALUE_JACK)) self.assertEqual(firstSequence, self.game.getPreviousSequence())
def setUp(self): self.players = [game.Player("1"), game.Player("2"), game.Player("3"), game.Player("4")] self.teams = [ [self.players[0].playerId, self.players[2].playerId], [self.players[1].playerId, self.players[3].playerId] ] self.callingPlayerId = self.players[0].playerId self.scoreTracker = euchre.ScoreTracker(self.players, self.teams) self.round = testhelper.createSingletonMock(euchre.Round) when(self.round).isComplete().thenReturn(True)
def setUp(self): self.trump = euchre.SUIT_CLUBS self.players = [game.Player("1"), game.Player("2"), game.Player("3"), game.Player("4")] self.deck = euchre.Deck(9) self.hands = {} self.handSize = euchre.HAND_SIZE for player in self.players: self.hands[player.playerId] = self.deck.deal(self.handSize) self.cardTranslator = testhelper.createSingletonMock(euchre.CardTranslator) self.cardTranslator.translateCard = lambda card: card self._buildTestObj()
def testSelectTrumpCreatesANewSequenceShufflesDeckAndAdvancesDealerIfTrumpSelectionFailed(self): initialPlayers = self.players[:] secondSequencePlayers = self.players[1:] + [self.players[0]] actualDeck = euchre.Deck.getInstance() deck = testhelper.createSingletonMock(euchre.Deck) when(deck).deal(5).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)) when(deck).peekTop().thenReturn(actualDeck.peekTop()) sequenceFactory = testhelper.createSingletonMock(euchre.SequenceFactory) firstSequence = testhelper.createMock(euchre.Sequence) secondSequence = testhelper.createMock(euchre.Sequence) when(sequenceFactory).buildSequence(any(), any(), actualDeck.peekTop()).thenReturn(firstSequence).thenReturn(secondSequence) self._buildTestObj() self.game.startGame() sequence = self.game.getSequence() when(sequence).getState().thenReturn(euchre.Sequence.STATE_TRUMP_SELECTION_FAILED) self.game.selectTrump(self.players[0], euchre.SUIT_NONE) self.assertNotEqual(sequence, self.game.getSequence()) verify(deck, times=2).shuffle() verify(sequenceFactory).buildSequence(initialPlayers, any(), any()) verify(sequenceFactory).buildSequence(secondSequencePlayers, any(), any())
def testPlayCardCreatesANewSequenceShufflesDeckAndAdvancesDealerIfCurrentOneIsComplete(self): initialPlayers = self.players[:] secondSequencePlayers = self.players[1:] + [self.players[0]] actualDeck = euchre.Deck.getInstance() deck = testhelper.createSingletonMock(euchre.Deck) when(deck).deal(5).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)).thenReturn(actualDeck.deal(5)) when(deck).peekTop().thenReturn(actualDeck.peekTop()) sequenceFactory = testhelper.createSingletonMock(euchre.SequenceFactory) firstSequence = testhelper.createMock(euchre.Sequence) secondSequence = testhelper.createMock(euchre.Sequence) when(sequenceFactory).buildSequence(any(), any(), actualDeck.peekTop()).thenReturn(firstSequence).thenReturn(secondSequence) self._buildTestObj() self.game.startGame() sequence = self.game.getSequence() when(sequence).getState().thenReturn(euchre.Sequence.STATE_COMPLETE) self.game.playCard(self.players[0], euchre.Card(euchre.SUIT_CLUBS, 9)) self.assertNotEqual(sequence, self.game.getSequence()) verify(deck, times=2).shuffle() verify(sequenceFactory).buildSequence(initialPlayers, any(), any()) verify(sequenceFactory).buildSequence(secondSequencePlayers, any(), any())
def setUp(self): self.requestDataAccessor = testhelper.createMock(util.RequestDataAccessor) self.session = testhelper.createSingletonMock(util.Session) self.graph = testhelper.createMock(facebook.GraphAPI) self.configManager = testhelper.createSingletonMock(util.ConfigManager) self.requestCookies = "pretty sweet cookies" self.accessToken = "23042098dlakj" self.fbCookie = {"access_token" : self.accessToken} self.playerId = "234ojlksdj323" self.expectedName = "Foobar Bingbaz, Jr." self.expectedUser = testhelper.createMock(social.User) self.nullUser = testhelper.createMock(social.User) self.profile = {"name" : self.expectedName, "id" : self.playerId} self.sessionData = {"accessToken" : self.accessToken} self.sessionKey = "fbuser" self.appId = "4873248102985" self.appSecret = "23049804w9rasdlfaj234094239lskdjds" self._doTraining() self._buildTestObj()
def testPassesCallsThroughToSequence(self): sequence = testhelper.createSingletonMock(euchre.Sequence) trumpSuit = euchre.SUIT_CLUBS player = self.players[0] card = euchre.Card(euchre.SUIT_DIAMONDS, 10) state = "foo" when(sequence).getState().thenReturn(state) self.game.startGame() self.game.selectTrump(player, trumpSuit) self.game.playCard(player, card) verify(sequence).selectTrump(player, trumpSuit) verify(sequence).playCard(player, card) self.assertEqual(state, self.game.getSequenceState())
def setUp(self): self.baseUrl = "http://awesomest.url.ever" self.templateFiles = "some filenames" self.templates = "the best templates ever" self.locStrings = {"foo" : "all of the localized strings"} self.appId = "23049279483" self.environment = "foo_env" self.robots = [{"id" : "dladksjf", "displayName" : "ewpoiure"}, {"id" : "cz,xm", "displayName" : "zxcovpiu"}] self.expectedData = { "ajaxUrl" : self.baseUrl + "/ajax", "templates" : self.templates, "locStrings" : self.locStrings, "appId" : self.appId, "environment" : self.environment, "channelUrl" : self.baseUrl + "/data/channel.html", "robots" : self.robots } self.expectedTemplates = None self.requestDataAccessor = testhelper.createSingletonMock(util.RequestDataAccessor) when(self.requestDataAccessor).getBaseUrl().thenReturn(self.baseUrl) when(util.glob).glob("templates/*.template").thenReturn(self.templateFiles) self.templateManager = testhelper.createSingletonMock(util.TemplateManager) def replaceLoadTemplates(filenames): if self.templateFiles == filenames: self.expectedTemplates = self.templates self.templateManager.loadTemplates = replaceLoadTemplates self.templateManager.getTemplates = lambda: self.expectedTemplates self.fileLoader = testhelper.createSingletonMock(util.FileReader) when(self.fileLoader).getFileContents("data/locStrings.json").thenReturn(json.dumps(self.locStrings)) self.configManager = testhelper.createSingletonMock(util.ConfigManager) when(self.configManager).get("FB.appId").thenReturn(self.appId) when(self.configManager).get("environment").thenReturn(self.environment) when(self.configManager).get("robots").thenReturn(self.robots) self.testObj = util.PageDataBuilder.getInstance(self.requestDataAccessor)
def setUp(self): self.players = [game.Player("1"), game.Player("2"), game.Player("3"), game.Player("4")] self.teams = [ [self.players[0].playerId, self.players[2].playerId], [self.players[1].playerId, self.players[3].playerId] ] self.scoreTracker = testhelper.createSingletonMock(euchre.ScoreTracker) for teamId in range(len(self.teams)): for playerId in self.teams[teamId]: when(self.scoreTracker).getTeamIdFromPlayerId(playerId).thenReturn(teamId) when(self.scoreTracker).getTeamScore(teamId).thenReturn(0) when(self.scoreTracker).getTeams().thenReturn(self.teams) self._buildTestObj()
def setUp(self): self._currentPlayerId = 0 self.users = [] for i in range(4): self.users.append(self.createUser()) self.gameId = "23097324kjasdfl234098" self.gameModel = testhelper.createMock(model.GameModel) self.gameModel.playerId = [] self.gameModel.teams = json.dumps([[], []]) self.gameModel.readyToRemove = [] self.gameModel.serializedGame = "" self.gameModel.key = testhelper.createMock(ndb.Key) self.gameModelFactory = testhelper.createSingletonMock(model.GameModelFactory) self.gameModelFinder = testhelper.createSingletonMock(model.GameModelFinder) testhelper.createSingletonMock(model.MatchmakingTicketFinder) model.MatchmakingTicketFinder.instance = FakeMatchmakingTicketFinder() self.gameSerializer = serializer.GameSerializer.getInstance() self.upCardRetriever = retriever.UpCardRetriever.getInstance() self.doTraining()
def setUp(self): self.fileReader = testhelper.createSingletonMock(util.FileReader) self.rootDir = "data/config" self.baseFilename = "common.config" self.baseFileContents = '{"foo" : 1, "bar" : 2}' self.prodFilename = "production.config" self.prodFileContents = '{"environment" : "production"}' self.stageFilename = "staging.config" self.stageFileContents = '{"environment" : "staging"}' self.localFilename = "local.config" self.localFileContents = '{"environment" : "local"}' when(self.fileReader).getFileContents(self.rootDir + "/" + self.baseFilename).thenReturn(self.baseFileContents) when(self.fileReader).getFileContents(self.rootDir + "/" + self.prodFilename).thenReturn(self.prodFileContents) when(self.fileReader).getFileContents(self.rootDir + "/" + self.stageFilename).thenReturn(self.stageFileContents) when(self.fileReader).getFileContents(self.rootDir + "/" + self.localFilename).thenReturn(self.localFileContents) self._buildTestObj()
def setUp(self): self.trump = random.randint(1, 4) self.cardSerializer = testhelper.createSingletonMock(serializer.CardSerializer) self.testObj = serializer.TrickSerializer.getInstance()
def setUp(self): self.cardTranslator = testhelper.createSingletonMock(euchre.CardTranslator) self.trick = euchre.Trick.getInstance(euchre.SUIT_NONE) self.players = [game.Player("1"), game.Player("2"), game.Player("3"), game.Player("4")]