def test_donors_add_donations_empty_db():
    db = Donors()
    db.add_donation("A Name", 1)
    expected = "   A Name"
    assert db.list_donors() == expected
    assert db["A Name"].name == "A Name"
    assert db["A Name"].donations == [1]
def test_donors_add_donations_empty_value_list():
    db = Donors({"A Name": [], "B Name": []})
    db.add_donation("A Name", 3)
    expected = "   A Name\n   B Name"
    assert db.list_donors() == expected
    assert db["A Name"].donations == [3]
    assert db["B Name"].donations == []
def test_donors_add_donations_name_in_db():
    db = Donors({"A Name": [1], "B Name": [2]})
    db.add_donation("A Name", 3)
    expected = "   A Name\n   B Name"
    assert db.list_donors() == expected
    assert db["A Name"].donations == [1, 3]
    assert db["B Name"].donations == [2]
def test_add_donation():
    donors = Donors()
    donors.add_donation("Mark", 10)
    assert donors.get_donor("Mark") == Donor("Mark", 10)
    donors.add_donation("Mark", 20)
    assert donors.get_donor("Mark").donations == (10, 20)
    donors.add_donation("Mary", 30)
    assert donors.get_donor("Mary") == Donor("Mary", 30)
    assert set(donors.names) == set(["Mark", "Mary"])
Example #5
0
        except ValueError:
            display("Error: Could not parse float. Please try again.")
    return _input


ty_dict = {'list': [display_donors, do_ty_menu],
           'q': [lambda: display("Returning to Main Menu."), do_main_menu]}


main_dict = {'s': [do_ty_menu],
             'c': [display_report, do_main_menu],
             'm': [mail_all_donors, do_main_menu],
             'p': [do_projection, do_main_menu],
             'q': [lambda: display("Exiting...")]}


if __name__ == "__main__":
    donors.add_donation("William Gates, III", 456456.22)
    donors.add_donation("William Gates, III", 197328.27)
    donors.add_donation("Mark Zuckerberg", 4567.97)
    donors.add_donation("Mark Zuckerberg", 7521.42)
    donors.add_donation("Mark Zuckerberg", 4306.71)
    donors.add_donation("Jeff Bezos", 877.33)
    donors.add_donation("Paul Allen", 150.00)
    donors.add_donation("Paul Allen", 450.00)
    donors.add_donation("Paul Allen", 108.42)
    donors.add_donation("Sergey Brin", 956755.89)
    donors.add_donation("Sergey Brin", 123.89)
    donors.add_donation("Sergey Brin", 34732.22)
    do_main_menu()
def test_donors_add_donations_name_not_in_db():
    db = Donors({"A Name": [1]})
    db.add_donation("B Name", 2)
    expected = "   A Name\n   B Name"
    assert db.list_donors() == expected