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."
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
#!/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())
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()}")
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'
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
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]
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")
"""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
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
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