def test_sum_amount():
    '''
    Verifies sum_amount method properly adds up a donation total for a donor
    '''
    new_donor = mail.Donor('Chaz', [1000, 1000, 1000])

    total_donated = new_donor.sum_amount()

    assert total_donated == 3000
def test_donor_instance():
    '''
    tests that a new donor can be created with attributes
    properly assigned
    '''

    new_donor = mail.Donor('George Washington', 10000)

    new_donor.name == 'George Washington'
    new_donor.amount == 10000
def test_donor_verify():
    '''
    tests donor_verify successfully updates dictionary depending on name given
    '''
    new_donor = mail.Donor('Bill Gates', 500)

    mail.donor_verify(new_donor)

    # checks to see 500 was added to Gates
    assert mail.Donor_Collection.donor_dict.get('Bill Gates') == [
        539000, 235642, 500
    ]

    next_donor = mail.Donor('Bob', 100)

    mail.donor_verify(next_donor)

    # checks to verify Bob was added to donor_dict
    assert mail.Donor_Collection.donor_dict.get('Bob') == [100]
def test_update_donor():
    '''
    Verifies a donation amount is added to donor_collection if method update donor called
    '''

    donor = mail.Donor('Bill Gates', 500)
    donor_collection = mail.Donor_Collection(donor)

    donor_collection.update_donor()

    assert 500 in donor_collection.donor_dict.get('Bill Gates')
def test_add_donor():
    '''
    Verifies a new donor can be added to donor_collection if method update add_donor called
    '''

    donor = mail.Donor('Jimi Hendrix', 1000)
    donor_collection = mail.Donor_Collection(donor)

    donor_collection.add_donor()

    assert 'Jimi Hendrix' in donor_collection.donor_dict
    assert 1000 in donor_collection.donor_dict.get('Jimi Hendrix')
def test_thank_you_note():
    '''
    Tests formatted message is displayed properly
    '''

    joe = mail.Donor('Joe Biden', 5000)

    exp_output = (
        'Dear Joe Biden, \n\nThank you for your show of support and generosity. '
        'Your Donation of $5000 will contribute to saving Olympic Marmots '
        'in Washington State. These Marmota are special and a unique gift to the Olympic '
        'National Park ecosystem. As a way of saying thank you. '
        'You will be receiving your very own Olympic Marmot t-shirt in the mail!\n\n'
        'Sincerely,\n\nThe Olympic Marmot Wildlife Foundation\n')

    assert mail.thank_you_note(joe) == exp_output