def test_donor_thank_you_letter():
    d = Donor("Bill", 100)
    d.add_donation(200)
    d.add_donation(300)
    expected = f"Dear Bill,\n" \
               f"Thank you very much for your generous donation of $300.00.\n" \
               f"Sincerely,\n" \
               f"PYTHON210 Class of 2018"
    assert d.thank_you_letter() == expected
Esempio n. 2
0
def donor_actions(data):
    """
    Sub-menu of user options
    data: Current user data base
    :return: None
    """

    while True:
        print()
        print('Please choose from the following donor options:')
        print('1 = Return to main menu')
        print('2 = See a list of current donors')
        print('3 = Become a new donor')
        cmd = input('>>> ')

        if cmd == '1':
            break
        elif cmd == '2':
            print()
            print('We currently have the following donors on file: ')
            for i in data.donor_names():
                print(i)
        elif cmd == '3':  # TODO: check database if name already exists
            first = input('Please enter your first name: ')
            last = input('Please enter your last name: ')
            amount = float(input('Amount to donate today: '))

            new_donor = Donor(first.capitalize(), last.capitalize(), amount)
            data.add_donor(new_donor)
            print()
            print(f'{new_donor.full_name} has been added as a donor.')
        else:
            print('-' * 40)
            print('Sorry, need a number between 1 and 3')
            print('-' * 40)
def test_donor_donation_calculations():
    d = Donor("Bill", 100)
    d.add_donation(200)
    d.add_donation(300)
    assert d.num_donations() == 3
    assert d.sum_donations() == 600
    assert d.avg_donation() == 200
def test_donors_add_donor_w_multiple_donations():
    db = Donors()
    db.add_donor(Donor("Bill", [1, 2, 3]))
    assert db["Bill"].name == "Bill"
    assert db["Bill"].donations == [1, 2, 3]
def test_donors_add_donor():
    db = Donors()
    db.add_donor(Donor("Bill", 100))
    assert db["Bill"].name == "Bill"
    assert db["Bill"].donations == [100]
def test_donor_init():
    d = Donor("Bill", 100)
    assert d.name == "Bill"
    assert d.donations == [100]
def test_donor_add_donation():
    d = Donor("Bill", 100)
    d.add_donation(200)
    d.add_donation(300)
    assert d.donations == [100, 200, 300]
def test_donor_init_w_multiple_donations():
    d = Donor("Bill", [1, 2, 3])
    assert d.name == "Bill"
    assert d.donations == [1, 2, 3]
Esempio n. 9
0
            data.add_donor(new_donor)
            print()
            print(f'{new_donor.full_name} has been added as a donor.')
        else:
            print('-' * 40)
            print('Sorry, need a number between 1 and 3')
            print('-' * 40)


if __name__ == '__main__':
    """
    Create a database with a few donors and execute main user prompt
    """
    donor_db = DonorDataBase()

    d1 = Donor('John', 'Randal', [12.32, 34.53, 532.32])
    d2 = Donor('Sarah', 'Samson', [1.32, 324.53, 2345.33, 6602.12])
    d3 = Donor('Alex', 'Rez', [122.32, 2334.53])
    d4 = Donor('Billy', 'Durst', [15.32, 34.00])

    donor_db.add_donor(d1)
    donor_db.add_donor(d2)
    donor_db.add_donor(d3)
    donor_db.add_donor(d4)

    main_prompt = ("\nWelcome to the main menu!\n"
                   "Please pick a number from the following:\n"
                   "1: exit the program\n"
                   "2: check donor list and become a donor\n"
                   "3: display a summary of current donor activity\n"
                   "4: print out a thank you for each donor\n"