예제 #1
0
def test_collection_list_donors():
    donors = DonorCollection()
    donors.add(Donor('A. Tester', [1.23]))
    donors.add(Donor('B. Developer', [4.56]))
    print(donors.list_donors())
    assert 'A. Tester' in donors.list_donors()
    assert 'B. Developer' in donors.list_donors()
    assert 'A. Tester\nB. Developer' in donors.list_donors()
예제 #2
0
def test_collection_add():
    donor = Donor('A. Tester', [1.23])
    donors = DonorCollection()
    donors.add(donor)
    assert 'A. Tester' in donors.donors.keys()
    donor2 = Donor('B. Developer', [1.23, 2.34])
    donors.add(donor2)
    assert 'B. Developer' in donors.donors.keys()
def test_collection_print_report():
    cur_dir = os.getcwd()
    donors = DonorCollection()
    donors.add(Donor('Test1', [10]))
    donors.add(Donor('Test2', [27]))
    donor_count = len(donors.donors)
    donors.print_report()
    donor_file_count = len([x for x in os.listdir(cur_dir) if x.endswith('.txt')])
    assert donor_file_count == donor_count
def test_create_report():
    donors = DonorCollection()
    donors.add(Donor('Tester 01', [1.00, 2.00]))
    expected = ("\nDonor Name                | Total Given | Num Gifts | Average Gift\n"
                "------------------------------------------------------------------\n"
                "Tester 01                  $       3.00           2  $       1.50\n")
    actual = donors.create_report()
    print(actual)
    assert actual == expected
예제 #5
0
def main():
    prompt_action = {
        "1": enter_a_donation,
        "2": create_report,
        "3": print_report,
        "4": exit_program
    }

    donors = DonorCollection()
    donors.add(Donor('Bill Gates', [1, 2]))
    donors.add(Donor('Warren Buffet', [12, 22]))
    donors.add(Donor('Jeff Bezos', [199]))
    donors.add(Donor('Mark Zuckerberg', [10.12, 20.30, 40.44]))
    donors.add(Donor('Melinda Gates', [99.00]))

    while True:
        response = input(prompt)  # continuously collect user selection
        # now redirect to feature functions based on the user selection
        try:
            prompt_action[response](donors)
        except KeyError:
            print("try again")
예제 #6
0
def main():
    prompt_action = {
        "1": enter_a_donation,
        "2": create_report,
        "3": print_report,
        "4": exit_program
    }

    donors = DonorCollection()
    donors.add(Donor('Jimmy Hendrix', [23.23, 24.48]))
    donors.add(Donor('Jack White', [32.84, 48]))
    donors.add(Donor('Keith Richards', [68]))
    donors.add(Donor('Jimmy Page', [34, 89]))
    donors.add(Donor('Albert Hamond', [34, 64, 49]))

    while True:
        response = input(prompt)  # continuously collect user selection
        # now redirect to feature functions based on the user selection
        try:
            prompt_action[response](donors)
        except KeyError:
            print("try again")
예제 #7
0
def test_collection_donor_exists():
    donors = DonorCollection()
    donors.add(Donor('Test1', [10]))
    donors.add(Donor('Test2', [27]))
    assert donors.donor_exists('Test1')
    assert donors.donor_exists('Test2')