def test_load(): dr = DonationRecords() dr.load("test_file.json") d1 = dr.get_donor("Not There") assert d1 is None d2 = dr.get_donor("John Doe") d3 = Donor("John Doe", [555.55, 666.66]) assert d2 == d3
def test_donation_records(): d1 = Donor("Bob Smith", [100, 100, 200, 300]) d2 = Donor("John Doe", [150, 250]) d3 = Donor("Sally Jones", [250, 250]) dr = DonationRecords([d1, d2, d3]) num_donors = len(dr.donors) assert (num_donors == 3) assert (dr.get_donor("John Doe") is not None) assert (dr.get_donor("No Name") is None) dr.add_donor(Donor("Bill Nye", [100])) num_donors = len(dr.donors) assert (num_donors == 4) report_text = dr.create_report() assert "Bob Smith" in report_text assert "175.00" in report_text # Bob's average assert "700.00" in report_text # Bob's total assert "Sally Jones" in report_text assert "250.00" in report_text # Sally's average assert "Bill Nye" in report_text assert "100.00" in report_text # Bill's average
"\n q - Quit" "\nEnter your selection => " ) # main menu dictionary, options and associated functions main_menu = {"1": record_donation, "2": update_donation, "3": print_report, "4": thank_all, "5": clear_donor_list, "q": quit_menu } if __name__ == "__main__": logging.basicConfig(level=logging.WARN) logger = logging.getLogger(__name__) # login to mongodb client = login_mongodb() db = client['mailroom'] # initialize collections if they don't exist collist = db.list_collection_names() if not "donors" in collist: init_db(db) # create a donor records set donation_records = DonationRecords(db) display_menu(main_prompt, main_menu, donation_records)
#!/usr/bin/env python3 # Lesson 4, mailroom menu from mailroom import Donor, DonationRecords # initialize array of donors donor_array = [ Donor("Ned Flanders", [1200.25, 850.35]), Donor("Martin Prince", [12.22, 19.56]), Donor("Edna Krabappel", [55.43, 118.67, 75.23]), Donor("Homer Simpson", [253.64, 772.50, 99.99]), Donor("Moe Szylak", [54.23]) ] # create a donor records set donation_records = DonationRecords(donor_array) def record_donation(): """ Prompt operator for donor name, or 'list' to see names of donors on record. Take name entered and either use existing donor, or add new record. Then prompt for amount of this donation, then save the donation record and print a thank you note. """ while True: donor_name = input( "\nEnter full name of donor (or 'list' to see names of donors): ") if donor_name == "list": for d in donation_records.donors: print(d.name)
"\n 2 - Update Record" "\n 3 - Create a Report" "\n 4 - Send letters to Everyone" "\n 5 - Clear donor data" "\n q - Quit" "\nEnter your selection => ") # main menu dictionary, options and associated functions main_menu = { "1": record_donation, "2": update_donation, "3": print_report, "4": thank_all, "5": clear_donor_list, "q": quit_menu } if __name__ == "__main__": logging.basicConfig(level=logging.WARN) logger = logging.getLogger(__name__) # login to neo4j driver = login_neo4j() init_db(driver) # create a donor records set donation_records = DonationRecords(driver) display_menu(main_prompt, main_menu, donation_records)
def test_save(): dr = DonationRecords() dr.load("test_file.json") dr.add_donor(Donor("Jane Doe", [777.77, 888.88])) dr.save("test_file_r1.json") dr.load("test_file.json") d1 = dr.get_donor("Jane Doe") assert d1 is None dr.load("test_file_r1.json") d1 = dr.get_donor("Jane Doe") d2 = Donor("Jane Doe", [777.77, 888.88]) assert d1 == d2