def test_compare(): d1 = Donor("Bob Smith", [100, 100, 200]) d2 = Donor("John Doe", [150, 250]) d3 = Donor("Sally Jones", [250, 250]) assert (d1 == d2) assert (d3 > d1) assert (d2 != d3)
def test_make_Donors(): d1 = Donor("Fred Flinstone") d2 = Donor("James Dean") d3 = Donor("Jack the Ripper") donor_list = [d1, d2, d3] d_list = Donors(donor_list) assert d_list.donor_list[0].name == "Fred Flinstone"
def test_donor_letter_witout(): '''test the note writing function without a current donation''' alex = Donor('Alex', [100]) output = ("Dear Alex,\n\nThank you for your generosity to our cause.\nYou " "have now given a total of $100.\nWe greatly appreciate " "your contributions!\n\nThank you!\nAlex Laws") assert alex.write_note() == output
def test_add_donation_existing_donor(): '''test function that adds donations to existing person''' alex = Donor('Alex', [100]) ryan = Donor('Ryan', [300]) donor_list_obj = Donor_list(alex, ryan) run_mailroom.add_donation('Ryan', 500, donor_list_obj) assert donor_list_obj.get_donor('Ryan').donations == [300, 500]
def test_add_donation(): reset_data() mailroom = Mailroom() assert mailroom.donors_list.add_donation("Test1", 55.55) == Donor("Test1") assert mailroom.donors_list.add_donation("Test1", 4) == Donor("Test1") assert mailroom.donors_list.add_donation("Laura Todd", 99) == Donor("Laura Todd")
def test_send_thanks_single_donation(): """ test thank you letter """ mailroom = Mailroom() donor = Donor("Monty Python") donor.add_donation(10) assert "\n\nDear Monty Python,\nThank you for your donation of 10.\n\n" == mailroom.send_thanks( donor)
def test_donor_eq(): reset_data() mailroom = Mailroom() donor1 = Donor("A") donor2 = Donor("B") assert not (donor1 == donor2) donor2 = Donor("A") assert donor1 == donor2
def test_donor_lt(): reset_data() mailroom = Mailroom() donor1 = Donor("Frank Fred") donor2 = Donor("Lisa Grant") assert donor1 < donor2 donor2 = Donor("Laura Todd") assert donor1 > donor2
def test_add_donor(): """Test for adding a new donor in DMS.""" name = "Teddy Tulip" donor = Donor.add_donor(name) donor.add_donation(55.55) assert donor.name == "Teddy Tulip" assert donor.last_donation == 55.55 assert Donor.find_donor(name) == donor
def test_donor_letter_with(): '''test the note writing function with a current donation''' alex = Donor('Alex', [100]) alex.new_donation(500) output = ("Dear Alex,\n\nThank you for your generosity to our cause.\nYour" " recent gift of $500 is very helpful. You have now given a " "total of $600.\nWe greatly appreciate your contributions!" "\n\nThank you!\nAlex Laws") assert alex.write_note(500) == output
def test_Donor(): test_donor = Donor('bob', [10, 20, 30]) test_donor2 = Donor('joe', [20]) assert test_donor.name == 'bob' assert test_donor.donations == [10, 20, 30] assert test_donor.total == 60 assert test_donor.avg == 20 assert test_donor.cnt == 3 assert test_donor2 < test_donor
def test_list_donors(): d1 = Donor("Fred Flinstone") d2 = Donor("James Dean") d3 = Donor("Jack the Ripper") d_list = Donors([d1, d2, d3]) list_of_donors = d_list.list_donors() assert list_of_donors == [ "Fred Flinstone", "James Dean", "Jack the Ripper" ]
def test_find_donor(): d1 = Donor("Fred Flinstone", [100, 200, 300, 400]) d2 = Donor("James Dean", [500, 600, 700, 800]) d3 = Donor("Jack the Ripper", [1, 2, 3, 4]) d4 = Donor("Mickey Mouse", [100, 200, 300, 5, 15, 7]) d_list = Donors([d1, d2, d3, d4]) donor_class = d_list.find_donor("Mickey Mouse") assert donor_class.donation == [100, 200, 300, 5, 15, 7] donor_class = d_list.find_donor("") assert donor_class == []
def test_add_first_donation_to_donor(self): donor_name = "Sireesha Sankuratripati" donor = Donor (donor_name) self.assertEqual(donor_name, donor.donor_name) self.assertEqual(0, len(donor.donation_amounts_list)) #add a donation donation_val = 1000.90 donor.add_donation(donation_val) self.assertEqual(1, len(donor.donation_amounts_list)) self.assertEqual(donation_val, donor.donation_amounts_list[0])
def test_donor(): d = Donor("Quincy Adams", [100, 200, 300, 400]) assert (d.name == "Quincy Adams") assert (d.donations == [100, 200, 300, 400]) assert (d.num_donations == 4) assert (d.total_donations == 1000) assert (d.avg_donation == 250) d.donate(500) assert (d.num_donations == 5) assert (d.total_donations == 1500) assert (d.avg_donation == 300)
def test_donor_name(): with pytest.raises(Exception) as excinfo: d = Donor() assert str(excinfo.value) == "__init__() missing 1 required positional "\ "argument: 'name'" d = Donor("Stuart") assert d.name == "Stuart" d.name = "Stuart Kershaw" assert d.name == "Stuart Kershaw"
def test_make_filenames(): d1 = Donor("Fred Flinstone", [100, 200, 300, 400]) d2 = Donor("James Dean", [500, 600, 700, 800]) d3 = Donor("Jack the Ripper", [1, 2, 3, 4]) d4 = Donor("Mickey Mouse", [100, 200, 300, 5, 15, 7]) d_list = Donors([d1, d2, d3, d4]) filenames = d_list.make_filenames() assert filenames == [ "Fred_Flinstone.txt", "James_Dean.txt", "Jack_the_Ripper.txt", "Mickey_Mouse.txt" ]
def test_save(): donors.load("test_donors.json") donors.add_donor(Donor("Json Donor 2", [5.50, 5.45])) donors.save("test_donors_save.json") donors.load("test_donors.json") donor = donors.find_donor("Json Donor 2") assert donor is None donors.load("test_donors_save.json") donor = donors.find_donor("Json Donor 2") donor2 = Donor("Json Donor 2", [5.50, 5.45]) assert donor == donor2
def test_make_thank_strings(): d1 = Donor("Fred Flinstone", [100, 200, 300, 400]) d2 = Donor("James Dean", [500, 600, 700, 800]) d3 = Donor("Jack the Ripper", [1, 2, 3, 4]) d_list = Donors([d1, d2, d3]) thank_notes = d_list.make_thank_notes() assert thank_notes == [ 'Dear Fred Flinstone, Thank you for your donation of $1000.00. These funds help save the migratory butterflies of New South East.Thank you', 'Dear James Dean, Thank you for your donation of $2600.00. These funds help save the migratory butterflies of New South East.Thank you', 'Dear Jack the Ripper, Thank you for your donation of $10.00. These funds help save the migratory butterflies of New South East.Thank you' ]
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
def test_add_new_donor(): d1 = Donor("Fred Flinstone") d2 = Donor("James Dean") d3 = Donor("Jack the Ripper") d_list = Donors([d1, d2, d3]) d4 = Donor("Mickey Mouse") d_list.append(d4) assert d_list.donor_list[3].name == "Mickey Mouse" d_list.donor_list[3].add_donation(100) assert d_list.donor_list[3].donation == [ 100, ]
def test_donor_email_single(capsys): d = Donor() name = 'Pam Beesley' donation = 100.00 dstr = ('\n\nDear Pam Beesley,\n\n' ' Thank you for your very kind' ' donation of $100.00.\n\n' ' It will be put to very good use.\n\n' ' Sincerely,\n' ' -The Team\n\n\n') d.donor_email(name, donation) captured = capsys.readouterr() assert captured.out == dstr
def test_make_report(): d1 = Donor("Fred Flinstone", [100, 200, 300, 400]) d2 = Donor("James Dean", [500, 600, 700, 800]) d3 = Donor("Jack the Ripper", [1, 2, 3, 4]) d_list = Donors([d1, d2, d3]) report = d_list.make_report() assert d_list.make_headers_string( ) == 'Donor Names Total Given Num Gifts Average Gifts ' assert report.startswith('Donor') assert 'Fred Flinstone $1000.00 4 $250.00' in report assert 'James Dean $2600.00 4 $650.00' in report assert 'Jack the Ripper $10.00 4 $2.50' in report assert report.endswith('\n')
def test_most_recent_donation(): a = datetime(2019, 12, 2, 23, 29, 17, 120741) b = datetime(2019, 12, 2, 23, 28, 25, 610351) c = datetime(2019, 12, 2, 23, 28, 29, 310351) donor = Donor('Bill Murray', [{ 'amount': 20.00, 'date': a }, { 'amount': 30.00, 'date': b }, { 'amount': 40.00, 'date': c }]) assert donor.most_recent_donation() == (20.00, a)
def test_add(): """test adding donor to database""" Donor_Collection.delete().execute() Donation_Amount.delete().execute() for item in Donors: donor = Donor(item[PERSON_NAME], item[DONATION_LIST]) collection.add_update(donor) try: database.connect() database.execute_sql('PRAGMA foreign_keys = ON;') for donor in Donors: db_donor = Donor_Collection.get( Donor_Collection.person_name == donor[PERSON_NAME]) assert (db_donor.person_name == donor[PERSON_NAME]) assert (db_donor.donation_count == len(donor[DONATION_LIST])) assert (db_donor.total_amount == sum(donor[DONATION_LIST])) db_amounts = Donation_Amount.select().where( Donation_Amount.from_person == donor[PERSON_NAME]) assert (len(db_amounts) == len(donor[DONATION_LIST])) for amount in db_amounts: assert (amount.donation_amount in donor[DONATION_LIST]) except Exception as e: assert (False) finally: database.close()
def test_load(): donors.load("test_donors.json") donor = donors.find_donor("Bill Ted") assert donor is None donor = donors.find_donor("Json Donor 1") donor2 = Donor("Json Donor 1", [4.50, 3.45]) assert donor == donor2
def test_list_donors(): """Test displaying donors in the DMS.""" dr = Donor.list_donors() assert "Below is the current donor list:" in dr assert "Jimmy Nguyen" in dr assert "Elizabeth McBath" in dr
def main(): choice = '' selection = 'Select an option (1, 2, 3, or 4) ===>' switch_function_dict = {'1': add_update_donor, '2': create_report, '3': delete_donor, '4': quit} database.connect() database.execute_sql('PRAGMA foreign_keys = ON;') # update local list of donors for db_donor in Donor_Collection: amounts = [] amount_list = Donation_Amount.select().where(Donation_Amount.from_person == db_donor.person_name) for amount in amount_list: amounts.append(amount.donation_amount) donor = Donor(db_donor.person_name, amounts) collection.insert_donor(donor) database.close() while True: # Display main menu display_main_menu() choice = input(selection) try: if switch_function_dict[choice]() == 'exit menu': break except KeyError: print("Please enter 1, 2, 3, or 4")
def test_thank_all(): d1 = Donor("Bob Smith", [100, 100, 200, 300]) dr = DonationRecords([d1]) dr.thank_all() assert os.path.isfile("Bob_Smith.txt") # clean up test thank you file, for cleanliness os.remove("Bob_Smith.txt")
def test_delete(): """ test deleting a donor from database""" Donor_Collection.delete().execute() Donation_Amount.delete().execute() for item in Donors: donor = Donor(item[PERSON_NAME], item[DONATION_LIST]) collection.add_update(donor) # delete donor John collection.delete('John') try: database.connect() database.execute_sql('PRAGMA foreign_keys = ON;') donor = Donor_Collection.select().where( Donor_Collection.person_name == 'John') assert (False) except Exception as e: pass finally: database.close()