Beispiel #1
0
class TestDeck(unittest.TestCase):
    def setUp(self):
        self.deck = Deck()

    def test_is_constructed(self):
        self.assertIsInstance(self.deck, Deck)
        self.assertTrue(len(self.deck.cards), 52)

    def test_card_draw(self):
        self.assertIsInstance(self.deck.draw(), Card)

    def test_discard(self):
        card = self.deck.draw()
        self.deck.discard(card)
        self.assertTrue(len(self.deck.discard_pile), 1)

    def test_deck_reshuffled_if_all_cards_drawn(self):
        # draw and discard all cards
        for i in range(52):
            card = self.deck.draw()
            self.deck.discard(card)

        # draw initiates reshuffle
        card = self.deck.draw()
        self.deck.discard(card)
        self.assertEqual(len(self.deck.cards), 51)
        self.assertEqual(len(self.deck.discard_pile), 1)