def test_get_donor():
    # Test that donors can be retrieved from collection
    dc = DonorCollection()
    dc.update_donor('Meghanr Tainor', 100.0)
    d = dc.get_donor('Meghanr Tainor')
    assert d.name == 'Meghanr Tainor'
    assert d.last_donation() == 100.0
예제 #2
0
def test_update_donor():
    # Tests that new donor can be added and updated
    dc = DonorCollection()
    dc.update_donor('Jason Mendoza',100.)
    dc.update_donor('Jason Mendoza',200.)
    d = dc.get_donor('Jason Mendoza')
    assert d.last_donation() == 200.
    assert d.total_donations() == 300.
    assert d.num_donations() == 2
    assert d.average_donation() == 150.
def test_update_donor():
    # Tests that new donor can be added and updated
    dc = DonorCollection()
    dc.update_donor('Meghanr Tainor', 100.00)
    dc.update_donor('Meghanr Tainor', 200.00)
    d = dc.get_donor('Meghanr Tainor')
    assert d.last_donation() == 200.00
    assert d.total_donations() == 300.00
    assert d.num_donations() == 2
    assert d.average_donation() == 150.00
예제 #4
0
def test_report_generation():
    # Test report generation
    dc = DonorCollection()
    donors = ['Eleanor Shellstrop', 'Jason Mendoza', 'Chidi Anagonye']
    amounts = [[50.,25.,75.], [100.,50.,80.], [200.,100.,300.]]
    for donor, amount in zip(donors,amounts):
        for donation in amount:
            dc.update_donor(donor, donation)
    report = dc.generate_report_data()
    assert len(report) == len(donors)
    assert report[-1] == ('Eleanor Shellstrop', 150., 3, 50.)
예제 #5
0
def test_get_donor():
    # Test that donors can be retrieved from collection
    dc = DonorCollection()
    dc.update_donor('Jason Mendoza',100.)
    d = dc.get_donor('Jason Mendoza')
    assert isinstance(d,Donor)
    assert d.name == 'Jason Mendoza'
    assert d.last_donation() == 100.
    # Should return new donor if donor does not exist
    d = dc.get_donor('New Donor')
    assert isinstance(d,Donor)
    assert d.name == 'New Donor'
def test_report_generation():
    # Test report generation
    dc = DonorCollection()
    donors = ['Meghanr Tainor', 'Jason Mendoza', 'Chidi Anagonye']
    amounts = [[50.00, 25.00, 75.00], [100.00, 50.00, 80.00],
               [200.00, 100.00, 300.00]]
    for donor, amount in zip(donors, amounts):
        for donation in amount:
            dc.update_donor(donor, donation)
    report = dc.generate_report_data()
    assert len(report) == len(donors)
    assert report[-1] == ('Meghanr Tainor', 150.00, 3, 50.00)
예제 #7
0
def test_get_donor_names():
    # Test that list of donor names can be retrieved
    dc = DonorCollection()
    dc.update_donor('Eleanor Shellstrop',50.)
    dc.update_donor('Jason Mendoza',25.)
    dc.update_donor('Chidi Anagonye',100.)
    donors = dc.donor_names
    donors.sort()
    assert donors == ['Chidi Anagonye', 'Eleanor Shellstrop', 'Jason Mendoza']
def test_get_donor_names():
    # Test that list of donor names can be retrieved
    dc = DonorCollection()
    dc.update_donor('Meghanr Tainor', 50.00)
    dc.update_donor('Demi Lovato', 25.00)
    dc.update_donor('Charlie Puth', 100.00)
    donors = dc.donor_names
    donors.sort()
    assert donors == ['Charlie Puth', 'Demi Lovato', 'Meghanr Tainor']
예제 #9
0
def test_add_donor():
    # Test that donors can be added to collection
    dc = DonorCollection()
    dc.update_donor('Jason Mendoza',25.)
    donors = dc.donors
    assert 'Jason Mendoza' in donors
예제 #10
0
def send_letters():
    # Prompt for directory to write to
    target = input('Enter directory to put letters > ')
    if create_directory(target):
        write_letters(target)

def exit_program():
    print('Exiting program...')
    sys.exit()

def main():
    response_dict = {'1':write_thank_you,'2':create_report,'3':send_letters,'4':exit_program}
    # Main function, repeatedly display prompt and react based on user input
    while True:
        try:
            response_dict[input(prompt)]()
        except KeyError:
            print('Not a valid option! Please try again.')

if __name__ == "__main__":
    # Create some donor data for running the program from the command line
    dc = DonorCollection()
    donors = ['Eleanor Shellstrop', 'Jason Mendoza', 'Chidi Anagonye']
    amounts = [[50.,25.,75.], [100.,50.,80.], [200.,100.,300.]]
    for donor, amount in zip(donors,amounts):
        for donation in amount:
            dc.update_donor(donor, donation)
    # Driver for main function
    main()
def test_DonorCollect_update():
    """ tests whether an existing donor's information can be updated """
    donors = Donors()
    donor = donors.update_donor("Smeagol", 500)
    n = donor.donation_number
    assert n == 2
예제 #12
0
def test_add_donor():
    # Test that donors can be added to collection
    dc = DonorCollection()
    dc.update_donor('Meghanr Tainor', 25.)
    donors = dc.donors
    assert 'Meghanr Tainor' in donors