def test_game_play(size, expected): """ Game ends when player has 0, 1, or 1000 or over chips. """ game = Game() game.get_player().get_purse().set_size(size) actual = game.play() assert actual == expected
def test_game_deal(): """ A hand is dealt to a player and a dealer. """ def _random(start, end): return start game = Game(_random=_random) game.deal() hidden_card = Card('Clubs', '4') hidden_card.set_hidden(True) expected_dealer_cards = [Card('Clubs', '2'), hidden_card] expected_player_cards = [Card('Spades', 'Ace'), Card('Clubs', '3')] actual_dealer_cards = game.get_dealer().get_hand().get_cards() actual_player_cards = game.get_player().get_hand().get_cards() assert len(actual_dealer_cards) == len(expected_dealer_cards) for i in range(len(actual_dealer_cards)): assert actual_dealer_cards[i].get_suit( ) == expected_dealer_cards[i].get_suit() assert actual_dealer_cards[i].get_pip( ) == expected_dealer_cards[i].get_pip() assert actual_dealer_cards[i].get_hidden( ) == expected_dealer_cards[i].get_hidden() assert len(actual_player_cards) == len(expected_player_cards) for i in range(len(actual_player_cards)): assert actual_player_cards[i].get_suit( ) == expected_player_cards[i].get_suit() assert actual_player_cards[i].get_pip( ) == expected_player_cards[i].get_pip() assert actual_player_cards[i].get_hidden( ) == expected_player_cards[i].get_hidden()
def test_game_settle(prints, player_cards, dealer_cards, player_bet, expected_player_purse): """ Round of Blackjack settled. """ def test_print(message): _print = prints.pop(0) assert message == _print game = Game(_print=test_print) game.get_player().get_hand().set_cards(player_cards) game.get_dealer().get_hand().set_cards(dealer_cards) game.get_player().make_bet(player_bet) game.settle() expected_player_cards = [] expected_player_bet = 0 expected_player_purse = expected_player_purse expected_dealer_cards = [] actual_player_cards = game.get_player().get_hand().get_cards() actual_player_bet = game.get_player().get_bet().get_size() actual_player_purse = game.get_player().get_purse().get_size() actual_dealer_cards = game.get_dealer().get_hand().get_cards() assert actual_player_cards == expected_player_cards assert actual_player_bet == expected_player_bet assert actual_player_purse == expected_player_purse assert actual_dealer_cards == expected_dealer_cards
def test_game_hit_player(prints, prompts, inputs, cards, new_card, expected): """ A player can hit, stay or bust. """ def test_print(message): _print = prints.pop(0) assert message == _print def test_prompt(message=''): if len(prompts) > 0: _prompt = prompts.pop(0) assert message == _prompt return inputs.pop(0) game = Game(_print=test_print, _input=test_prompt) game.get_player().get_hand().set_cards(cards) actual = game.hit_player(new_card) assert actual == expected
class MyTestCase(unittest.TestCase): def test_get_player(self): # Resetting game pieces Player._game_pieces = ['battleship', 'dog', 'iron', 'shoe', 'thimble', 'top hat', 'wheelbarrow'] self.game = Game(3) self.game.players[0].game_piece = 'test' player = self.game.get_player('test') self.assertEqual(player.game_piece, 'test', 'Game Piece should be test') def test_get_current_player(self): # Resetting game pieces Player._game_pieces = ['battleship', 'dog', 'iron', 'shoe', 'thimble', 'top hat', 'wheelbarrow'] self.game = Game(4) self.game.player_turn = 2 test_current = self.game.players[2] current_player = self.game.get_current_player() self.assertEqual(test_current.game_piece, current_player.game_piece, 'Should be the same player') def test_next_player_turn(self): # Resetting game pieces Player._game_pieces = ['battleship', 'dog', 'iron', 'shoe', 'thimble', 'top hat', 'wheelbarrow'] self.game = Game(4) self.game.player_turn = 0 next_player = self.game.next_player_turn() self.assertEqual(next_player, 1, 'Next player should be 1') next_player = self.game.next_player_turn() self.assertEqual(next_player, 2, 'Next player should be 2') next_player = self.game.next_player_turn() self.assertEqual(next_player, 3, 'Next player should be 3') next_player = self.game.next_player_turn() self.assertEqual(next_player, 0, 'Next player should be 0') def test_player_action(self): # Resetting game pieces Player._game_pieces = ['battleship', 'dog', 'iron', 'shoe', 'thimble', 'top hat', 'wheelbarrow'] self.game = Game(4) self.game.player_turn = 0 tiles = Tiles.get_tiles() mediterranean_avenue = tiles[1] self.game.player_action(mediterranean_avenue) def test_play_turn(self): pass
def test_game_bet(prints, prompts, inputs, purse): """ A player can make a bet. """ def test_print(message): _print = prints.pop(0) assert message == _print def test_prompt(message=''): if len(prompts) > 0: _prompt = prompts.pop(0) assert message == _prompt return inputs.pop(0) game = Game(test_print, test_prompt) if purse: game.get_player().get_purse().set_size(purse) game.bet()