def test_select_winners_without_weights(mock_separate_prizes,
                                        given_number_of_winners,
                                        expected_number_of_winners):
    participants = mock_participant(test_list_of_participants_no_weights)
    lottery = Lottery(mock_separate_prizes, participants)
    winners = lottery.select_winners(given_number_of_winners)
    assert len(winners) == expected_number_of_winners
def test_select_winners_with_weights(mock_separate_prizes):
    participants = mock_participant(test_list_of_participants_weights)
    lottery = Lottery(mock_separate_prizes, participants)
    winners = lottery.select_winners(2)
    assert len(winners) == 2
    assert {
        "id": "1",
        "first_name": "Tanny",
        "last_name": "Bransgrove",
        "weight": "1"
    } in winners
    assert {
        "id": "2",
        "first_name": "Delila",
        "last_name": "Spriggs",
        "weight": "1"
    } in winners
    assert {
        "id": "3",
        "first_name": "Sigmund",
        "last_name": "Saw",
        "weight": "0"
    } not in winners