Exemplo n.º 1
0
class TestLottery(unittest.TestCase):
    def setUp(self):
        self.client = Redis(decode_responses=True)
        self.client.flushdb()

        self.lottery = Lottery(self.client, "test-lottery")

    def test_add_player(self):
        self.assertEqual(self.lottery.get_all_players(), set())

        self.lottery.add_player("peter")

        self.assertNotEqual(self.lottery.get_all_players(), set())

    def test_get_all_players(self):
        self.assertEqual(self.lottery.get_all_players(), set())

        self.lottery.add_player("peter")

        self.assertEqual(self.lottery.get_all_players(), {"peter"})

    def test_player_count(self):
        self.assertEqual(self.lottery.player_count(), 0)

        self.lottery.add_player("peter")

        self.assertEqual(self.lottery.player_count(), 1)

    def test_draw(self):
        player_list = {"peter", "jack", "tom"}
        for player in player_list:
            self.lottery.add_player(player)

        # 确保获奖者的数量跟我们要求的一致
        self.assertEqual(len(self.lottery.draw(1)), 1)

        self.assertEqual(len(self.lottery.draw(2)), 2)

        # 确保获奖者来源于参与抽奖的玩家
        winner = self.lottery.draw(1)[0]
        self.assertTrue(winner in player_list)