def test_donor_names():
    donors = Donors()
    d1 = Donor("Mark", 50)
    d2 = Donor("Mary", 80)
    donors.add_donor(d1)
    donors.add_donor(d2)
    assert set(donors.names) == set(["Mark", "Mary"])
def test_challenge():
    donors = Donors()
    d1 = Donor("Mark", 50)
    d1.add_donation(90)
    d1.add_donation(110)
    d2 = Donor("Mary", 80)
    d2.add_donation(95)
    d2.add_donation(115)
    donors.add_donor(d1)
    donors.add_donor(d2)
    copy = donors.challenge(3, min_amt=85, max_amt=100)
    assert copy.get_donor("Mark").donations == (270, )
    assert copy.get_donor("Mary").donations == (285, )
def test_donors_add_donor_w_multiple_donations():
    db = Donors()
    db.add_donor(Donor("Bill", [1, 2, 3]))
    assert db["Bill"].name == "Bill"
    assert db["Bill"].donations == [1, 2, 3]
def test_get_donor():
    donors = Donors()
    d = Donor("Mark", 50)
    donors.add_donor(d)
    assert donors.get_donor("Mark") == d
    assert donors.get_donor("Mary") is None
def test_donors_add_donor():
    db = Donors()
    db.add_donor(Donor("Bill", 100))
    assert db["Bill"].name == "Bill"
    assert db["Bill"].donations == [100]