def test_donorcollection_donorlist():
    """Test donorColletion creation by donorList method with list inputs from donor_data.donors

    This test is to verify that the donor_data.donors is not modificed, similar to test_get_donor_names,
     but with donorList method
    """
    dList = []
    dList.append(
        Donor.multi_donation('Homer Simpson',
                             donor_data.donors['Homer Simpson']))
    dList.append(
        Donor.multi_donation('Charles Burns',
                             donor_data.donors['Charles Burns']))
    dList.append(
        Donor.multi_donation('Kent Brockman',
                             donor_data.donors['Kent Brockman']))
    c = DonorCollection.donorList(dList)
    assert isinstance(c.donors['Homer Simpson'], Donor)
    assert isinstance(c.donors['Charles Burns'], Donor)
    assert c.donors['Homer Simpson'].donations == [25.15]
    assert c.donors['Charles Burns'].donations == [0.01, 0.05]
    assert c.donors['Kent Brockman'].donations == [105.75, 225.76, 387.90]
def test_donor_multi_donation_with_string():
    with pytest.raises(ValueError):
        d = Donor.multi_donation('Homer Simpson', [15, 'wrong', 100.00])
def test_donor_multi_donation():
    d = Donor.multi_donation('Homer Simpson', [15, 25.25, 100.00])
    assert d.donations == [15, 25.25, 100.00]