コード例 #1
0
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
コード例 #2
0
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()
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
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
コード例 #6
0
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()