def test_group_donations(self): d1 = mr.Donor("Mike", "Dell", [299.09, 26273.67]) test_db = mr.DonorBook([d1]) self.assertEqual(test_db.group_donations(), [["Mike Dell", 299.09 + 26273.67, 2]]) d2 = mr.Donor("Bill", "Gates", [234.22, 45645.24, 43953.09, 98823]) test_db.add_donor(d2) self.assertEqual( test_db.group_donations(), [["Bill Gates", 234.22 + 45645.24 + 43953.09 + 98823, 4], ["Mike Dell", 299.09 + 26273.67, 2]])
def test_donor_last_donation(self): c = mailroom.Donor('test') self.assertEqual(c.last_donation, None) with self.assertRaises(ValueError): c.add_donation(-100) c.add_donation(100) self.assertEqual(c.last_donation, 100.0)
def test_donorbook(self): d1 = mr.Donor("Bill", "Gates", [234.22, 45645.24, 43953.09, 98823]) d2 = mr.Donor("Jeff", "Bezo", [4564.23]) test_db = mr.DonorBook([d1, d2]) self.assertEqual(test_db.donors[0].first, 'Bill') self.assertEqual(test_db.donors[1].last, 'Bezo') self.assertEqual(test_db.donors[0].donations, [234.22, 45645.24, 43953.09, 98823]) d3 = mr.Donor("Mike", "Dell", [299.09, 26273.67]) test_db.add_donor(d3) self.assertEqual(test_db.donors[2].full_name, 'Mike Dell') self.assertEqual(test_db.donors[2].donations, [299.09, 26273.67]) self.assertEqual(test_db.get_all_donor_names(), ["Bill Gates", "Jeff Bezo", "Mike Dell"])
def test_last_donation(): """ creates an new donor with no donations """ donor = mailroom.Donor("Fred Flintstone", [100, 200, 300]) assert donor.last_donation == 300
def test_add_donation(): # fixme: there should be a better way to get an arbitrary donor donor = mailroom.Donor("Fred Flintstone", [100, 200, 300]) donor.make_donation(3000) assert donor.last_donation == 3000
def test_num_donations(): donor = mailroom.Donor("Zhou Qunfei") donor.addDonation(5000.00) donor.addDonation(15000.00) donor.addDonation(11000.00) db.addDonor(donor) assert db.findDonor("Zhou Qunfei").getNumDonations() == 3
def test_add_donation(self): name = "Ted Inger" amount = 123.45 d = mr.Donor(name) d.add_donation(amount) self.assertEqual(d.name, name) self.assertEqual(d.donations, [amount]) self.assertEqual(d.latest_donation, amount)
def test_add_donor(): donor_obj = mr.Donor() name = "Fred Flintstone " donor = donor_obj.add_donor(name) donor[1].append(300) assert donor[0] == "Fred Flintstone" assert donor[1] == [300] assert donor_obj.find_donor(name) == donor
def tearDown(self): # Removes files created by test_send_letters_all for filename in os.listdir('.'): if filename.endswith('.txt'): donorname = ((filename[9:-4]).replace("_", " ")).split() if mr.Donor(donorname[0], ' '.join(donorname[1:])) in mr.donor_data.keys(): os.remove(filename)
def test_mult_donor(): donor = mailroom.Donor("fred", [3, 7, 2, 4]) new_donor = mailroom.mult_donor(donor, 3) assert new_donor.name == donor.name print(new_donor.donations) assert new_donor.donations == [9, 21, 6, 12]
def test_new_empty_donor(): """ creates an new donor with no donations """ donor = mailroom.Donor("Fred Flintstone") assert donor.name == "Fred Flintstone" assert donor.last_donation is None
def test_add_donor(): name = "Fred Flintstone " donor = mailroom.Donor(name) donor.addDonation(300) db.addDonor(donor) assert donor.name == "Fred Flintstone" assert donor.donationList == [300] assert db.findDonor(name) == donor
def test_donor(self): test_donor = mr.Donor("Victor", "James", [123.45]) self.assertEqual(test_donor.first, "Victor") self.assertEqual(test_donor.last, "James") self.assertEqual(test_donor.donations, [123.45]) self.assertEqual(test_donor.full_name, "Victor James") test_donor.add_donation(678.90) self.assertEqual(test_donor.donations, [123.45, 678.90])
def test_create_thank_you_email(): name = "Test" donor = mailroom.Donor(name) donor.addDonation(5000.00) db.addDonor(donor) assert db.findDonor("Test").createThankYouEmail() == ("\nDear Test,\n\n" "\tThank you so much for your generous donation of $5,000.00!\n\n" "\tIt will be put to very good use.\n\n" "\t\tSincerely,\n\t\t\t- The Team")
def test_list_donor(): ''' list_donor() returns a list of correctly ''' donor_obj = mr.Donor() listing = donor_obj.list_donors() assert listing.startswith("Donor list:\n") assert "Jeff Bezos" in listing assert len(listing.split('\n')) == 5
def test_gen_letter(): """ test the donor letter """ # create a sample donor donor_obj = mr.Donor() donor = ("Fred Flintstone", [432.45, 65.45, 230.0]) letter = donor_obj.gen_letter(donor) assert letter.startswith("Dear Fred Flintstone") assert letter.endswith("-The Team\n") assert "donation of $230.00" in letter
def test_send_letters_all(self): capturedprint = io.StringIO() # Redirect stdout to a stringIO object sys.stdout = capturedprint mr.send_letters_all() sys.stdout = sys.__stdout__ for filename in os.listdir('.'): if filename.endswith('.txt'): donorname = ((filename[9:-4]).replace("_", " ")).split() self.assertIn(mr.Donor(donorname[0], ' '.join(donorname[1:])), mr.donor_data.keys())
def test_gen_letter(): """ test the donor letter """ # create a sample donor donor = mailroom.Donor("Fred Flintstone", [432.45, 65.45, 230.0]) letter = sample_db.gen_letter(donor) # what to test? tricky! assert letter.startswith("Dear Fred Flintstone") assert letter.endswith("-The Team\n") assert "donation of $230.00" in letter
def test_add_donations(self): name1 = "Adam Lee" amt1 = 100 d = mr.Donor(name1) d.add_donation(amt1) amt2 = 400 d.add_donation(amt2) self.assertEqual(d.count_donations, 2) self.assertEqual(d.total_donations, 500) self.assertEqual(d.average_donations, 250)
def test_generate_donor_report(): donor_obj = mr.Donor() report = donor_obj.generate_donor_report() print(report) # printing so you can see it if it fails # this is pretty tough to test # these are not great, because they will fail if unimportant parts of the # report are changed. # but at least you know that codes working now. assert report.startswith( "Donor Name | Total Given | Num Gifts | Average Gift") assert "Jeff Bezos $ 877.33 1 $ 877.33" in report
def setUp(self): mr.donor_data = \ {mr.Donor('Al', 'Donor1'): [10.00, 20.00, 30.00, 40.00, 50.00], mr.Donor('Bert', 'Donor2'): [10.00], mr.Donor('Connie', 'Donor3'): [10.00, 10.00, 10.01], mr.Donor('Dennis', 'Donor4'): [10.00, 20.00, 20.00], mr.Donor('Egbert', 'Donor5'): [10.39, 20.21, 10.59, 4000.40], mr.Donor('TESTME', 'TESTME'): [11.39, 22.21, 11.59, 4001.40], }
def test_save_letters_to_disk(): """ This only tests that the files get created, but that's a start Note that the contents of the letter was already tested with test_gen_letter """ donor_obj = mr.Donor() donor_obj.save_letters_to_disk() assert os.path.isfile('Jeff_Bezos.txt') assert os.path.isfile('William_Gates_III.txt') # check that it'snot empty: with open('William_Gates_III.txt') as f: size = len(f.read()) assert size > 0
def test_find_donor_not(): db.addDonor(mailroom.Donor("Bill Gates")) assert db.findDonor("Bill Gtes") is None
def test_donor_init(self): with self.assertRaises(ValueError): mailroom.Donor('')
def test_find_donor_not(): '''test one that's not there ''' donor_obj = mr.Donor() donor = donor_obj.find_donor("Jeff Bzos") assert donor is None
def test_avg_donation(): donor = mailroom.Donor("Mark Zuckerberg") donor.addDonation(5000.00) donor.addDonation(15000.00) db.addDonor(donor) assert db.findDonor(" mark zuckerberg ").getAvgDonation() == 10000.00
def test_get_donor_fullname(self): self.assertEqual(mr.get_donor_fullname(mr.Donor('X', 'Y')), 'X Y') self.assertEqual( mr.get_donor_fullname(mr.Donor(' THREE', 'THREE ')), 'THREE THREE')
def test_donor_name(self): name = "Ted Inger" d = mr.Donor(name) self.assertEqual(d.name, name) self.assertEqual(d.donations, [])
def test_tot_donation(): donor = mailroom.Donor("Marian Ilitch") donor.addDonation(5000.00) donor.addDonation(15000.00) db.addDonor(donor) assert db.findDonor(" marian ilitch ").getTotDonation() == 20000.00
def test_find_donor(): db.addDonor(mailroom.Donor("Bill Gates")) assert db.findDonor(" Bill GaTes\n").name == "Bill Gates"