Ejemplo n.º 1
0
def test_don_init():
    d1 = mro.Donor("DJ Cool Buttz", [69])
    d2 = mro.Donor("DJ CB JR", [420, 80])
    assert d1.name == "DJ Cool Buttz"
    assert d2.name == "DJ CB JR"
    assert sum(d1.donations) == 69
    assert sum(d2.donations) == 500
Ejemplo n.º 2
0
def test_add_donor():
    tester = mailroom_oo.Donor("Test Person", [1, 2, 3])
    tester2 = mailroom_oo.Donor("Test2 Person2", [4, 5, 6])
    test_donors = mailroom_oo.DonorList([tester, tester2])
    assert(test_donors.list_donor_names() == "Test Person\nTest2 Person2")
    tester3 = mailroom_oo.Donor("Test3 Person3", [7, 8, 9])
    test_donors.add_donor(tester3)
    assert(test_donors.list_donor_names() == "Test Person\nTest2 Person2\nTest3 Person3")
    assert(tester3.num_donations == 3)
 def test_donor_history(self):
     d1 = mailroom.Donor("Tony", "Lee", [100.0])
     d2 = mailroom.Donor("Andy", "Arko", [200.0])
     test_dh = mailroom.DonorHistory([d1, d2])
     self.assertEqual(test_dh.get_all_donor_names(), ["Tony Lee", "Andy Arko"])
     d3 = mailroom.Donor("Michelle", "Cao", [300.0])
     test_dh.add_donor(d3)
     self.assertEqual(test_dh.get_all_donor_names(), ["Tony Lee", "Andy Arko", "Michelle Cao"])
     self.assertEqual(test_dh.donors[0].donations, [100])
     self.assertEqual(test_dh.donors[1].first, 'Andy')
     self.assertEqual(test_dh.donors[1].last, 'Arko')
     self.assertEqual(test_dh.donors[0].full_name, 'Tony Lee')
Ejemplo n.º 4
0
def test_list_donors():
    donors = mr.Donors()
    donor = mr.Donor()
    # Test formatting and sorting of the dictionary when listing donors
    assert str(donors.list_donors()).split("\n")[0] == "No.  Name   "
    assert str(donors.list_donors()).split("\n")[1] == "==== ======="
    assert str(donors.list_donors()).split("\n")[2] == "1    Arya Stark"
    def test_donor(self):
        test_donor = mailroom.Donor("Tony", "Lee", [100.0])
        self.assertEqual(test_donor.donations, [100.0])
        self.assertEqual(test_donor.full_name, "Tony Lee" )

        test_donor.add_donation(200.0)
        self.assertEqual(test_donor.donations, [100.0, 200.0] )
def test_donor_data_to_obj():
    d1 = m.Donor('William Gates, III', database['William Gates, III'])
    print(d1.name)
    print(d1.donations)

    assert d1.name == 'William Gates, III'
    assert d1.donations == database['William Gates, III']
Ejemplo n.º 7
0
def test_file_created():
    donors = mr.Donors()
    donor = mr.Donor()
    donors.send_letter_to_all()
    file_to_test = tempfile.gettempdir() + "/James_Butts.txt"
    #  Make sure letters are getting created (written to temp)
    assert os.path.exists(file_to_test)
def test_donor_property_sum_number_avg():
    d2 = m.Donor('Mark Zuckerberg', database['Mark Zuckerberg'])
    print(d2.total)
    print(d2.num_donations)
    print(d2.average_don)

    assert d2.total == sum(database['Mark Zuckerberg'])
    assert d2.num_donations == 3
    assert d2.average_don == sum(database['Mark Zuckerberg']) / 3
Ejemplo n.º 9
0
def test_sum_amount():
    '''
    Verifies sum_amount method properly adds up a donation total for a donor
    '''
    new_donor = mail.Donor('Chaz', [1000, 1000, 1000])

    total_donated = new_donor.sum_amount()

    assert total_donated == 3000
Ejemplo n.º 10
0
def test_show_donors():
    donors = mr.Donors()
    donor = mr.Donor()
    #  Check calculations
    #  Number of donations
    assert len(donors.donor_db["Melisandre"]) == 4
    #  Total donations
    assert sum(donors.donor_db["Melisandre"]) == 300019.00
    #  Average donation
    assert sum(donors.donor_db["Melisandre"]) / len(donors.donor_db["Melisandre"]) == 75004.75
Ejemplo n.º 11
0
def test_donor_instance():
    '''
    tests that a new donor can be created with attributes
    properly assigned
    '''

    new_donor = mail.Donor('George Washington', 10000)

    new_donor.name == 'George Washington'
    new_donor.amount == 10000
Ejemplo n.º 12
0
def test_donor_verify():
    '''
    tests donor_verify successfully updates dictionary depending on name given
    '''
    new_donor = mail.Donor('Bill Gates', 500)

    mail.donor_verify(new_donor)

    # checks to see 500 was added to Gates
    assert mail.donor_collection.donor_dict.get('Bill Gates') == [
        539000, 235642, 500
    ]

    next_donor = mail.Donor('Bob', 100)

    mail.donor_verify(next_donor)

    # checks to verify Bob was added to donor_dict
    assert mail.donor_collection.donor_dict.get('Bob') == [100]
Ejemplo n.º 13
0
def test_update_donor():
    '''
    Verifies a donation amount is added to donor_collection if method update donor called
    '''

    donor = mail.Donor('Bill Gates', 500)
    donor_collection = mail.DonorCollection()

    donor_collection.update_donor(donor)

    assert 500 in donor_collection.donor_dict.get('Bill Gates')
Ejemplo n.º 14
0
def test_add_donor():
    '''
    Verifies a new donor can be added to donor_collection if method update add_donor called
    '''

    donor = mail.Donor('Jimi Hendrix', 1000)
    donor_collection = mail.DonorCollection()

    donor_collection.add_donor(donor)

    assert 'Jimi Hendrix' in donor_collection.donor_dict
    assert 1000 in donor_collection.donor_dict.get('Jimi Hendrix')
def test_add_donor():
    """
    adds a new donor

    then tests that the donor is added, and that a donation is properly recorded.
    """
    name = "Fred Flintstone  "
    donor = mailroomoo.Donor(name)
    mailroom.add_donor(donor)
    donor.donations.append(300)
    assert donor.name == "Fred Flintstone"
    assert donor.donations == [300]
    assert mailroom.get_donor(name) == donor
Ejemplo n.º 16
0
def test_thank_you_note():
    '''
    Tests formatted message is displayed properly
    '''

    joe = mail.Donor('Joe Biden', 5000)

    exp_output = (
        'Dear Joe Biden, \n\nThank you for your show of support and generosity. '
        'Your Donation of $5000 will contribute to saving Olympic Marmots '
        'in Washington State. These Marmota are special and a unique gift to the Olympic '
        'National Park ecosystem. As a way of saying thank you. '
        'You will be receiving your very own Olympic Marmot t-shirt in the mail!\n\n'
        'Sincerely,\n\nThe Olympic Marmot Wildlife Foundation\n')

    assert mail.thank_you_note(joe) == exp_output
Ejemplo n.º 17
0
def test_format_email():
    donors = mr.Donors()
    donor = mr.Donor()
    # test normal case for generating mail text
    assert donor.format_email("James Butts", 100.00, 1000.00) == ''.join((
            "Dear James Butts,\n\n",
            "Thank you for your recent contribution of $100.00.\n\n",
            "We appreciate your generosity in support of our mission.\n\n",
            "Thank you for your lifetime contributions of $1000.00.\n\n"
            "Warmest Regards,\n\n",
            "Charity Staff\n"))

    # test for number formatting in mail text
    assert donor.format_email("Joe Biden", 10000.9999, 1000.1) == ''.join((
            "Dear Joe Biden,\n\n",
            "Thank you for your recent contribution of $10001.00.\n\n",
            "We appreciate your generosity in support of our mission.\n\n",
            "Thank you for your lifetime contributions of $1000.10.\n\n"
            "Warmest Regards,\n\n",
            "Charity Staff\n"))
Ejemplo n.º 18
0
def test_add_contribution():
    donors = mr.Donors()
    donor = mr.Donor()
    donors.add_contribution("James Butts", 100)
    assert donors.donor_db["James Butts"][-1:] == [100]
    # Test that we are summing total contributions correctly
    assert sum(donors.donor_db["James Butts"]) == 100


    #  Pass a contribution to a recurring donor
    donors.add_contribution("Daenerys Targaryen", 100)
    assert donors.donor_db["Daenerys Targaryen"][-1:] == [100]
    # Test that we are summing total contributions correctly
    assert sum(donors.donor_db["Daenerys Targaryen"]) == 8355.00

    # Pass multiple contributions to a recurring donor
    donors.add_contribution("Daenerys Targaryen", [100, 200])
    assert donors.donor_db["Daenerys Targaryen"][-2:] == [100, 200]
    # Test that we are summing total contributions correctly for multiple contributions
    assert sum(donors.donor_db["Daenerys Targaryen"]) == 8655.00
Ejemplo n.º 19
0
def test_get_letter_text():
    donors = mr.Donors()
    donor = mr.Donor()
    donors.send_letter_to_all()
    letter_text = ""
    tempfilepath = tempfile.gettempdir() + "/James_Butts.txt"
    with open(tempfilepath, "r") as letter_file:
        letter_text = letter_file.readlines()
        letter_text = "".join(letter_text)
        print(letter_text)
        print(''.join(("Dear James Butts,\n\n",
        "Thank you for your recent contribution of $100.00.\n\n",
        "We appreciate your generosity in support of our mission.\n\n",
        "Thank you for your lifetime contributions of $100.00.\n\n",
        "Warmest Regards,\n\n",
        "Charity Staff\n")))
    assert letter_text == ''.join(("Dear James Butts,\n\n",
        "Thank you for your recent contribution of $100.00.\n\n",
        "We appreciate your generosity in support of our mission.\n\n",
        "Thank you for your lifetime contributions of $100.00.\n\n",
        "Warmest Regards,\n\n",
        "Charity Staff\n"))
Ejemplo n.º 20
0
                    print(f'Do better {name}')
                else:
                    dc.add_contribution(name, don_amount)
                    print(dr.thanks_mail(name, don_amount))
                    mainy()
            except ValueError:
                print('You have entered a non-number, try again')
    if don.upper() == 'N' or 'NO':
        input_name()


def analytics():
    dc.data_metrics()


def mass_mail():
    dc.mass_mail()


def exit_program():
    print("Bye!")
    sys.exit()


if __name__ == "__main__":
    dc = mailroom_oo.DonorCollection()
    dr = mailroom_oo.Donor()
    # why does this work with and without parenthesis?
    dc.loadup()
    mainy()
Ejemplo n.º 21
0
def test_add_donor_and_donation():
    tester = mailroom_oo.Donor("Test Person", [1, 2, 3])
    tester2 = mailroom_oo.Donor("Test2 Person2", [4, 5, 6])
    test_donors = mailroom_oo.DonorList([tester])
    test_donors.add_donor_and_donation(tester2, 7)
    assert(tester2.num_donations == 4)
Ejemplo n.º 22
0
def test_thanks_mail():
    donor = mro.Donor()
    assert donor.thanks_mail("FunkyBaby", 175.00) == ''.join(
        ("\nDear FunkyBaby,\n", "Thanks for the $175.00 bucks.\n",
         "We'll spend it real good baby.\n"))
Ejemplo n.º 23
0
def test_add_donations():
    add_tester = mailroom_oo.Donor("Test Person", [1, 2, 3])
    add_tester.add_donation(4)
    assert(add_tester.donations == [1, 2, 3, 4])
    assert(add_tester.donor_totals == 10)
Ejemplo n.º 24
0
'''
Tests for mailroom_oo.py
'''

import os
import mailroom_oo

tester = mailroom_oo.Donor("Test Person", [1, 2, 3])
tester2 = mailroom_oo.Donor("Test2 Person2", [4, 5, 6])
test_donors = mailroom_oo.DonorList([tester, tester2])

def test_name():
    assert(tester.name == "Test Person")

def test_first_donations():
    assert(tester.donations == [1, 2, 3])

def test_donor_totals():
    assert(tester.donor_totals == 6)

def test_add_donations():
    add_tester = mailroom_oo.Donor("Test Person", [1, 2, 3])
    add_tester.add_donation(4)
    assert(add_tester.donations == [1, 2, 3, 4])
    assert(add_tester.donor_totals == 10)

def test_num_donations():
    assert(tester.num_donations == 3)

def test_average_donations():
    assert(tester.average_donations == 2)
Ejemplo n.º 25
0
                input("Donor {} doesn't exist, add them (y/n)?:".format(
                    donor_name)))
            if response.lower() == 'y':
                donors.add_contribution(donor_name, amount)
                print(
                    donor.format_email(donor_name, amount,
                                       sum(donors.donor_db[donor_name])))
    # return donor_db


def main():
    '''
    main loop, continually present users with menu options
    '''

    while True:
        switcher(int(input(print_menu())))


if __name__ == '__main__':
    # We're not getting imported, run main():
    # donor_db = {}  # dict that contains user/donation records
    donors = mr.Donors()
    donor = mr.Donor()
    donors.populate_data
    main()
else:
    # donor_db = {}
    donors = mr.Donors()
    donor = mr.Donor()
    donors.populate_data
Ejemplo n.º 26
0
def test_list_donor():
    """Test that the list of donors is returned correctly."""
    d1 = mailroom.Donor()
    listing = d1.show_donor_names()
    assert "Jimmy Nguyen" in listing
    assert "Elizabeth McBath" in listing
Ejemplo n.º 27
0
def test_get_donors_details():
    donors = mr.Donors()
    donor = mr.Donor()
    #  Check output and formating of get_donor_details()
    donor_list = donors.get_donors_details()
    assert donor_list[1] == 'Arya Stark               $10899.92           5         $2179.98      \n'
import mailroom_oo as m

database = {'William Gates, III': [54842.49, 48965.25],
            'Mark Zuckerberg': [7852.25, 48652.0, 3548.0],
            'Jeff Bezos': [5486.0, 58794.02, 7412.1],
            'Paul Allen': [46872.02]}

d1 = m.Donor('William Gates, III', database['William Gates, III'])
d2 = m.Donor('Mark Zuckerberg', database['Mark Zuckerberg'])
d3 = m.Donor('Jeff Bezos', database['Jeff Bezos'])
d4 = m.Donor('Paul Allen', database['Paul Allen'])


def test_donor_data_to_obj():
    d1 = m.Donor('William Gates, III', database['William Gates, III'])
    print(d1.name)
    print(d1.donations)

    assert d1.name == 'William Gates, III'
    assert d1.donations == database['William Gates, III']
    # assert False


def test_donor_property_sum_number_avg():
    d2 = m.Donor('Mark Zuckerberg', database['Mark Zuckerberg'])
    print(d2.total)
    print(d2.num_donations)
    print(d2.average_don)

    assert d2.total == sum(database['Mark Zuckerberg'])
    assert d2.num_donations == 3