Example #1
0
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
Example #2
0
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()
Example #3
0
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
Example #4
0
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
Example #5
0
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