def test_donor_setter():
    d = Donor('Nam Vo', [100, 50.0])
    d.name = 'Vu Vo'
    d.donations = [40, 55.5]
    print(f"d = {d}")
    assert (d.name) == 'Vu Vo'
    assert (d.donations) == [40.0, 55.5]

    with pytest.raises(TypeError):
        d.name = 1000

    with pytest.raises(ValueError):
        d.donations = [30, -15]
def test_send_letter():
    donor = Donor("Daffey Duck")
    donor.donations = [5000.24, 10000.34, 30000, 300]
    letter = donor.send_letter()
    assert letter.startswith("Dear Daffey Duck,")
    assert "Dear Daffey Duck" in letter
    #assert letter.endswith("Sincerely, -The Team\n")
    assert "donation of $300.00" in letter
def test_avg_donation_made():
    donor = Donor("Bugs Bunny")
    donor.donations = [1000, 5000, 3000]

    assert sum(donor.donations) / len(donor.donations) == 3000
def test_total_donations_made():
    donor = Donor("Daffey Duck")

    donor.donations = [5000.24, 10000.34, 30000, 300]

    assert len(donor.donations) == 4
def test_sum_donation_total():
    donor = Donor("Yogi Bear")

    donor.donations = [2000.33, 4000, 1000]

    assert sum(donor.donations) == 7000.33
def test_last_donation():
    donor = Donor("Yosemite Sam")

    donor.donations = [100.56, 200.23, 300]
    assert donor.donations[-1] == 300