def test_challenge(): mailroom = Mailroom() letter = mailroom.add_donation("Matt", 100) letter = mailroom.add_donation("Joe", 40) reports = mailroom.challenge(4, max_donation=50) assert len(reports) == 2 assert reports[0] == CHALLENGE_REPORT_ORIGINAL assert reports[1] == CHALLENGE_REPORT_MATCHING
def test_report(): """ test report generation """ mailroom = Mailroom() for donor, amount in INITIAL_DONORS.items(): mailroom.add_donation(donor, amount) mailroom.add_donation("Monty Python", 10) assert EXPECTED_REPORT == mailroom.report()
def test_get_sorted_donors(): """ test sorting of donors """ mailroom = Mailroom() for donor, amount in INITIAL_DONORS.items(): mailroom.add_donation(donor, amount) mailroom.add_donation("Monty Python", 10) sorted_donors = [ donor_obj.name for donor_obj in mailroom.sort_donors_by_donation() ] assert [ "Monty Python", "John Adams", "Thomas Jefferson", "John Quincy Adams", "George Washington", "James Madison" ] == sorted_donors
def test_get_sorted_donors_with_passed_in_list_of_donors(): """ test sorting of donor with external donor list """ mailroom = Mailroom() for donor, amount in INITIAL_DONORS.items(): mailroom.add_donation(donor, amount) mailroom.add_donation("Monty Python", 10) d1 = Donor("Test One", [1]) d2 = Donor("Test Two", [1, 2, 3]) donor_list = [d1, d2] sorted_donors = [ donor_obj.name for donor_obj in mailroom.sort_donors_by_donation(donor_list) ] assert ["Test Two", "Test One"] == sorted_donors
def test_mailroom_add_donation(): """ test add donation workflow """ mailroom = Mailroom() letter = mailroom.add_donation("Monty Python", 10) assert "Monty Python" == mailroom.donors[0].name assert [10] == mailroom.donors[0].get_donations() assert "\n\nDear Monty Python,\nThank you for your donation of 10.\n\n" == letter