Exemple #1
0
class TestBlackjack(unittest.TestCase):
    def setUp(self):
        self.blackjack = Blackjack()
        self.player = Player()

    def test_game_over_end_game(self):
        deck = ["8♥", "6♣", "2♦", "10♦"]
        for card in range(len(deck)):
            self.player.hit_card(deck)
        self.assertTrue(self.blackjack.game_over([self.player])) """Method return True to Game Over"""

    def test_game_over_continue_game(self):
        deck = ["8♥", "6♣", "2♦"]
        for card in range(len(deck)):
            self.player.hit_card(deck)
        self.assertFalse(self.blackjack.game_over([self.player])) """Method return False to Game Over, i.e., the game continues"""

    def tearDown(self):
        pass
Exemple #2
0
class TestPlayer(unittest.TestCase):
    def setUp(self):
        self.player = Player()

    def test_player_hand_property(self):
        self.player.hand = "8♥"
        self.assertEqual(self.player.hand, ["8♥"])
        self.assertRaises(ValueError, setattr, self.player, "hand", 1)

    def test_player_money_property(self):
        self.assertEqual(self.player.money, Decimal("2000.0"))

    def test_hit_card(self):
        deck = ["8♥", "6♣", "2♦"]
        self.player.hit_card(deck)
        self.assertEqual(self.player.hand, ["8♥"])
        self.assertEqual(self.player.points, 8)
        self.assertEqual(len(deck), 2)

    def test_show_points(self):
        deck = ["8♥", "6♣", "2♦"]
        for card in range(3):
            self.player.hit_card(deck)

        import sys
        from io import StringIO
        saved_stdout = sys.stdout
        try:
            fake_out = StringIO()
            sys.stdout = fake_out
            self.player.show_points()
            output = fake_out.getvalue().strip()
            self.assertEqual(output, "Points in game: 16")
        finally:
            sys.stdout = saved_stdout

    def test_show_hand(self):
        self.player.hand = ["8♥", "6♣", "2♦"]
        import sys
        from io import StringIO
        saved_stdout = sys.stdout
        try:
            fake_out = StringIO()
            sys.stdout = fake_out
            self.player.show_hand()
            output = fake_out.getvalue().strip()
            self.assertEqual(output, "The player have 3 cards: 8♥, 6♣, 2♦")
        finally:
            sys.stdout = saved_stdout

    def test_show_money(self):
        import sys
        from io import StringIO
        saved_stdout = sys.stdout
        try:
            fake_out = StringIO()
            sys.stdout = fake_out
            self.player.show_money()
            output = fake_out.getvalue().strip()
            self.assertEqual(output, "Money in game: 2000.0")
        finally:
            sys.stdout = saved_stdout

    def test_deal_cards(self):
        deck = ["8♥", "6♣", "2♦", "10♦", "3♣"]
        self.player.deal_cards(deck)
        self.assertEqual(self.player.hand, ["8♥", "6♣", "2♦"])
        self.assertEqual(deck, ["10♦", "3♣"])
        self.assertEqual(len(deck), 2)

    def test_bet(self):
        self.assertEqual(self.player.bet(100), 100)
        self.assertRaises(Exception, lambda: self.player.bet(10))

    def test_get_card_value(self):
        self.assertEqual(self.player.get_card_value("6♣"), 6)


    def tearDown(self):
        pass