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)