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"])
示例#4
0
def test_last_donation():
    """
    creates an new donor with no donations
    """
    donor = mailroom.Donor("Fred Flintstone", [100, 200, 300])

    assert donor.last_donation == 300
示例#5
0
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
示例#6
0
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
示例#7
0
 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)
示例#8
0
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
示例#9
0
 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)
示例#10
0
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]
示例#11
0
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
示例#12
0
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])
示例#14
0
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")
示例#15
0
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
示例#16
0
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
示例#17
0
 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())
示例#18
0
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
示例#19
0
 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)
示例#20
0
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
示例#21
0
 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],
          }
示例#22
0
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
示例#23
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('')
示例#25
0
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
示例#26
0
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
示例#27
0
 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')
示例#28
0
 def test_donor_name(self):
     name = "Ted Inger"
     d = mr.Donor(name)
     self.assertEqual(d.name, name)
     self.assertEqual(d.donations, [])
示例#29
0
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
示例#30
0
def test_find_donor():
    db.addDonor(mailroom.Donor("Bill Gates"))
    assert db.findDonor("  Bill GaTes\n").name == "Bill Gates"