def test_total_gift_count_2():
    d = Donor('Joe Smith', {'gift_amounts': [50.0, 120.15]})
    assert d.total_gift_count == 2
def test_donor_collection_add_donor():
    dc = DonorCollection()
    dc.add_donor(Donor("Bob"))
    assert dc["Bob"] == Donor("Bob")
def test_donor_create_donor_name_and_donation():
    name, donations = "Fred Flintstone", (100, 3.50)

    donor = Donor(name, donations)
    assert donor.name == name
    assert donor.donations == donations
def test_average():
    d = Donor('Fred Armisen', [240, 422, 1000])

    assert d.average_donations == 554
def test_letter():
    d = Donor('Fred Armisen', [240, 422, 1000])
    letter = d.gen_letter

    assert letter.startswith('Dear Fred Armisen')
    assert 'donation of $1000' in letter
def test_sum_donations():
    d = Donor('Nam Vo', [100, 50.0, 80.0])
    print(f"d = {d}")
    assert (d.sum_donations) == 230.0
def test_donation_list():
    d1 = Donor('Fred Armisen', [240, 422, 1000])
    d2 = Donor('Fred Armisen', 240)

    assert d1.donations == [240, 422, 1000]
    assert d2.donations == [240]
def test_donor_eq():
    d1 = Donor("Jason Jenkins", 124)
    assert d1 == "jason Jenkins"
    assert d1 != "test"
def test_donor_collection_get_report():
    donors = DonorCollection()

    will_gates = Donor("William Gates", 1345.462)

    mark_zuck = Donor("Mark Zuckerberg", 12546.124)
    mark_zuck.give(13445.124)

    jeff_bezo = Donor("Jeff Bezos", 1234.123)
    jeff_bezo.give(12341431.12)

    paul_allen = Donor("Paul Allen", 734.12)
    paul_allen.give(124.41)
    paul_allen.give(10000)

    jason_jenkins = Donor("Jason Jenkins", 10)
    jason_jenkins.give(20)
    jason_jenkins.give(30)
    jason_jenkins.give(40)
    jason_jenkins.give(50)
    jason_jenkins.give(60)

    donors.append(will_gates)
    donors.append(mark_zuck)
    donors.append(jeff_bezo)
    donors.append(paul_allen)
    donors.append(jason_jenkins)

    expected = []
    expected.append(["Jeff Bezos", 12342665.24, 2, 6171332.62])
    expected.append(["Mark Zuckerberg", 25991.25, 2, 12995.62])
    expected.append(["Paul Allen", 10858.53, 3, 3619.51])
    expected.append(["William Gates", 1345.46, 1, 1345.46])
    expected.append(["Jason Jenkins", 210.00, 6, 35.00])

    assert donors.get_report() == expected
def test_donor_str():
    d1 = Donor("Jason Jenkins", 124)
    assert str(d1) == "Jason Jenkins"
def test_donor_thanks():
    d1 = Donor("Jason Jenkins", 124)
    assert d1.thanks() == "Thank you Jason Jenkins for your donation."
Beispiel #12
0
    print(dashes)


def send_letter_everyone(d):
    """This method creates the letter for each donor in the donor's database"""
    print("Letters have been sent to all the donors!!!")
    d.send_letter_everyone()


if __name__ == "__main__":
    """The flow control of the program. It separates the business logic from
    the data manipulation"""

    options = {1: thank_you, 2: print_report, 3: send_letter_everyone, 4: quit}

    donor_1 = Donor("Adam Johnson", [6000.20, 2200, 1050, 100])
    donor_2 = Donor("Matt Marvin", [550, 1000, 250])
    donor_3 = Donor("Ashley Wiggins", [55.66, 270, 1000])
    donor_4 = Donor("Kristina Laughrey", [500, 500, 200])
    donor_5 = Donor("Kimberley Allen", [12000.99, 5000])
    donor_6 = Donor("Doug Boolinger", [260.57, 930.90])
    donor_7 = Donor("Sherry Henning", [6000, 2460.20, 900])

    d = DonorCollection(donor_1, donor_2, donor_3, donor_4, donor_5, donor_6,
                        donor_7)

    while True:
        user_response = prompt_user()
        if user_response == 4:
            quit()
        try:
def test_avg_gift_amount_2():
    d = Donor('Joe Smith', {'gift_amounts': [50.0, 120.15, 80.22]})
    assert d.avg_gift_amount == 83.46
def test_avg_gift_amount_1():
    #No donation made yet
    d = Donor('Joe Smith', {'gift_amounts': [0]})
    assert d.avg_gift_amount == 0
Beispiel #15
0
#!/usr/bin/env python3
# Lesson 09: incorporating Object Oriented Programming

import sys
from operator import itemgetter
from donor_models import Donor, DonorCollection

# donor_db = {'Bob': [5.00, 10.00, 20.00, 15000.00],
#             'Kathy': [20, 00],
#             'Sherry': [50.00, 100.00],
#             'Sophia': [1000.00],
#             'Chet': [10000.00, 10000.00]}

bob = Donor('Bob', [5.00, 10.00, 20.00, 15000.00])
kathy = Donor('Kathy', [20])
sherry = Donor('Sherry', [50.00, 100.00])
sophia = Donor('Sophia', [1000.00])
chet = Donor('Chet', [10000.00, 10000.00])

donors = DonorCollection([bob, kathy, sherry, sophia, chet])


def exit_program():
    print("Quitting...")
    sys.exit()


def create_report():
    print(donors.generate_report())

Beispiel #16
0
def init_donors_collection():
    for key, value in db_donors2.items():
        donor_name = key
        donations_ary = value
        dx = Donor(donor_name, donations_ary)
        all_donors.add_donor(dx)
def test_send_thankyou():
    d = Donor('Nam Vo', [100, 50.0])
    print(f"d.send_thankyou() = {d.send_thankyou()}")
Beispiel #18
0
def test_new_donor():
    """ Verify a new donor can be created """
    donor = Donor("Bob", [100])

    assert donor.name == "Bob"
    assert donor.donations[0] is 100
def test_donor_name():
    d = Donor('Fred Armisen')
    assert d.name == 'Fred Armisen'
Beispiel #20
0
def test_new_donor_fail():
    """ Verify a new donor needs a list for amount to be created """
    with pytest.raises(AssertionError):
        Donor("Bob", 100)
def test_total_donation():
    d = Donor('Fred Armisen', [240, 422, 1000])

    assert d.total_donations == 1662
Beispiel #22
0
def test_add_donation():
    """ Verify a donation can be added to a donor """
    donor = Donor("Bob", [100])
    donor.add_donation(100)

    assert donor.donations == [100, 100]
def test_add_donation():
    d = Donor('Fred Armisen', [240, 422, 1000])
    d.add_donation(600)

    assert d.donations == [240, 422, 1000, 600]
Beispiel #24
0
def test_add_donation_fail():
    """ Verify a donation value can not be added to a donor unless it can be cast to a float """
    donor = Donor("Bob", [100])
    with pytest.raises(ValueError):
        donor.add_donation("tom")
Beispiel #25
0
"""Test for mailroom"""
import os
import time
import pytest
from donor_models import Donor, DonorCollection

p1, p2 = Donor('Mo'), Donor('Larry')
p2.add_donation(20)
p1.add_donation(4, 2)
dt = DonorCollection()
dt.add_donors(p1, p2)


def test_create_donor():
    """Test create of donor"""
    assert p1._name == 'Mo'
    assert p2._name == 'Larry'


def test_add_donation():
    """Test donation added"""
    assert p1._donations[1] == 2


def test_math():
    """Test math: total, num, avg"""
    assert p1.d_tot == 6
    assert p1.d_num == 2
    assert p1.d_avg == 3

Beispiel #26
0
def test_total_donations():
    """ Verify donation total for a donor is correct """
    donor = Donor("Bob", [100])
    donor.add_donation(100)

    assert donor.donations_total == 200
def test_donor_create_donor_name():
    name = "Fred Flintstone"
    donor = Donor(name)
    assert donor.name == name
Beispiel #28
0
def test_compose_message():
    """ Verify the donor message is correct """
    donor = Donor("Bob", [100])
    donor.add_donation(100)
    assert donor.compose_message == "\nTo: Bob\nSubject: Thank you.\n\nBob thank you for your previous generous " \
                                    "donation of 100.00.\nYour total donations to date are now: 200.00."
def test_donor_add_donation():
    name, donation = "Fred Flintstone", 500
    donor = Donor(name)
    donor.add_donation(donation)
    assert donor.num_donations == 1
def test_total_gift_count_3():
    #It does not make sense to have zero gift amount unless bad data
    #was allowed.
    d = Donor('Joe Smith', {'gift_amounts': [0, 15.0, 0, 20.0, 50.00]})
    assert d.total_gift_count == 3