Bite 25. No promo twice, keep state in a class

In this bite a real world scenario: PyBites has a growing set of Bites and gives away promos. They choose a Bite randomly but don't want to choose the same one again.

Hence you are provided with a BITES constant (subset to keep it on the screen) and a bites_done set that gets passed into the class via its constructor. Complete the methods in the Promo class:

  1. _pick_random_bite is a helper (_ here means private) that picks a randomly available Bite. When no more Bites are available raise a NoBitesAvailable (provided).
  2. new_bite should use this helper and update self.bites_done (it keeps state, the reason we used a class here).

See also the tests. We hope you learn a thing or two. Enjoy!

45 out of 50 users completed this Bite.
Will you be Pythonista #46 to crack this Bite?
Average Bite difficulty 1-10 rating: 4.5
» Up for a challenge? 💪

Github login button
We use Python 3.7