コード例 #1
0
def test_donorcollection_append():
    """Test DonorCollection append instance method."""
    donor1 = Donor("Alexander Boone", 500, 2)
    donor2 = Donor("Alexander", 500, 2)
    collection = DonorCollection(donor1, donor2)
    donor3 = Donor("New Guy", 1000, 5)
    collection.append(donor3)
    assert len(collection.names) == 3
    assert "New Guy" in collection.names
    assert repr(donor3) in collection.data
    assert donor3 in collection.donors
コード例 #2
0
def load_donors():
    """Load initial donor data into DonorCollection."""
    donors = [
        'Arnold Schwarzenegger', 'Lebron James', 'Elon Musk', 'Walter White',
        'Gordon Ramsay'
    ]
    donations = [100000, 1000000, 2000000, 500000, 1280000]
    donation_count = [1, 1, 1, 1, 1]
    collection = DonorCollection()
    for i in range(len(donors)):
        collection.append(Donor(donors[i], donations[i], donation_count[i]))
    return collection
コード例 #3
0
def test_donor_collection_init():
    donors = DonorCollection()
    d1 = Donor("Jason Jenkins", 124.123)
    d2 = Donor("Test", 0)
    donors.append(d1)
    donors.append(d2)

    assert donors[0].full_name == "Jason Jenkins"
    assert donors[0].total_given == 124.12
    assert donors[0].num_gifts == 1
    assert donors[0].average == 124.12

    assert donors[1].full_name == "Test"
    assert donors[1].total_given == 0
    assert donors[1].num_gifts == 0
    assert donors[1].average == 0
コード例 #4
0
def test_donor_collection_get_report():
    donors = DonorCollection()

    will_gates = Donor("William Gates", 1345.462)

    mark_zuck = Donor("Mark Zuckerberg", 12546.124)
    mark_zuck.give(13445.124)

    jeff_bezo = Donor("Jeff Bezos", 1234.123)
    jeff_bezo.give(12341431.12)

    paul_allen = Donor("Paul Allen", 734.12)
    paul_allen.give(124.41)
    paul_allen.give(10000)

    jason_jenkins = Donor("Jason Jenkins", 10)
    jason_jenkins.give(20)
    jason_jenkins.give(30)
    jason_jenkins.give(40)
    jason_jenkins.give(50)
    jason_jenkins.give(60)

    donors.append(will_gates)
    donors.append(mark_zuck)
    donors.append(jeff_bezo)
    donors.append(paul_allen)
    donors.append(jason_jenkins)

    expected = []
    expected.append(["Jeff Bezos", 12342665.24, 2, 6171332.62])
    expected.append(["Mark Zuckerberg", 25991.25, 2, 12995.62])
    expected.append(["Paul Allen", 10858.53, 3, 3619.51])
    expected.append(["William Gates", 1345.46, 1, 1345.46])
    expected.append(["Jason Jenkins", 210.00, 6, 35.00])

    assert donors.get_report() == expected
コード例 #5
0
def test_donor_collection_append():
    donor = Donor("Peter Pan", [5.00, 10.00, 15.00, 20.00, 25.00])
    donor_collection = DonorCollection(donors_data)

    donor_collection.append(donor)
    assert "Peter Pan" in donor_collection.donors
コード例 #6
0
 def test_donor_collection_append_error(self, test_input, expected, donors):
     donor_collection = DonorCollection(donors)
     with raises(expected):
         donor_collection.append(test_input)
コード例 #7
0
 def test_donor_collection_append_multiple(self, test_input, expected, donors):
     donor_collection = DonorCollection(donors)
     donor_collection.append(test_input)
     for donor in expected:
         assert donor in donor_collection.donors
コード例 #8
0
 def test_donor_collection_append(self, test_input, expected, donors):
     donor_collection = DonorCollection(donors)
     donor_collection.append(test_input)
     assert expected in donor_collection.donors
コード例 #9
0
menu_dict = {"1": send_thanks, "2": display_report, "3": quit_program}

if __name__ == "__main__":
    # Initial Setup
    will_gates = Donor("William Gates", 1345.462)

    mark_zuck = Donor("Mark Zuckerberg", 12546.124)
    mark_zuck.give(13445.124)

    jeff_bezo = Donor("Jeff Bezos", 1234.123)
    jeff_bezo.give(12341431.12)

    paul_allen = Donor("Paul Allen", 734.12)
    paul_allen.give(124.41)
    paul_allen.give(10000)

    jason_jenkins = Donor("Jason Jenkins", 10)
    jason_jenkins.give(20)
    jason_jenkins.give(30)
    jason_jenkins.give(40)
    jason_jenkins.give(50)
    jason_jenkins.give(60)

    donors.append(will_gates)
    donors.append(mark_zuck)
    donors.append(jeff_bezo)
    donors.append(paul_allen)
    donors.append(jason_jenkins)

    startup_prompt()