def test_challenge1(self):
     """Test no donation filter with donation multiplier of 2."""
     new_group = d.Group(d.Individual('Shane', [3]))
     new_group.add('Joe', 10)
     new_group.add('Joe', 5)
     new_group.add('Joe', 6)
     self.assertEqual(new_group.challenge(2), 24)
 def test_challenge4(self):
     """Test minimum and maximum donation filter with donation multiplier of 2."""
     new_group = d.Group(d.Individual('Shane', [3]))
     new_group.add('Joe', 10)
     new_group.add('Joe', 5)
     new_group.add('Joe', 6)
     self.assertEqual(new_group.challenge(2, min_donation = 4, max_donation = 5 ), 5)
 def test_total_donations(self):
     """Test the total donation amount from all donors in the Class Instance"""
     new_group = d.Group(d.Individual('Shane', [3]))
     new_group.add('Joe', 10)
     new_group.add('Joe', 5)
     new_group.add('Joe', 6)
     self.assertEqual(new_group.total_donations(), 24)
 def test_report(self):
     new_group = d.Group(d.Individual('Shane', [3]))
     new_group.add('Joe', 3)
     new_group.add('Joe', 3)
     new_group.add('Joe', 3)
     new_group.add('Jack', 4)
     new_group.add('Jack', 5)
     assert "Joe        $" in new_group.report()
     assert "9.00     3         " in new_group.report()
     assert '$        3.00' in new_group.report()
 def test_summary(self):
     """Add a donor to the list and test that the donor summary
     is correct"""
     new_group = d.Group(d.Individual('Shane', [3]))
     new_group.add('Joe', 3)
     new_group.add('Joe', 3)
     new_group.add('Joe', 3)
     new_group.add('Jack', 4)
     new_group.add('Jack', 5)
     donor_summary = new_group.summary()
     self.assertEqual(donor_summary, {'Shane': [3, 1, 3],
                                      'Joe': [9, 3, 3],
                                      'Jack': [9, 2, 4.5]})
    def test_letters_for_all(self):
        new_group = d.Group(d.Individual('Shane', [3]))
        new_group.add('Joe', 3)
        new_group.add('Joe', 3)
        new_group.add('Joe', 3)
        new_group.add('Jack', 4)
        new_group.add('Jack', 5)
        try:
            new_group.letters()
            with open('Jack.txt', 'rU') as f:
                text = f.read()
        finally:
            os.remove('Jack.txt')

        expected_text = 'Dear Jack, thank you so much for your last ' \
                        'contribution of $5.00! You have contributed ' \
                        'a total of $9.00, and we appreciate your ' \
                        'support!'
        self.assertEqual(expected_text, text)
Beispiel #7
0
import os
import donors_10 as d
from functools import reduce

mail = d.Group(d.Individual('Shane', [200]), d.Individual('Joe', [1, 2, 3, 4]))


def more_choices():
    while True:
        name = input('\nChoose an Option: \n'
                     'e - to exit\n'
                     'list -To see a list of names, or\n'
                     'Type a name to start your thank you letter >>')
        if name == 'e':
            return
        if name == 'list':
            mail.print_donors()
        else:
            print('\n'
                  'Ok, you want to write a letter for {}, '
                  'lets see what we can do.'.format(name))

            if mail.search(name) is None:
                yes_no = input('The name you entered is not in the database.'
                               'Would you like to add this name? y or n >>')
                if yes_no == 'n':
                    return

            amount = input('\n'
                           'What is the donation amount? or '
                           '\'e\' to exit >')
 def test_sort_list_2(self):
     new_group = d.Group(d.Individual('Shane', [3]))
     donors_f = {'Joe': [15, 3, 35], 'Jack': [9, 2, 4.5],
                 'Fred': [2000, 2, 60]}
     self.assertEqual(new_group.sort_list(donors_f),
                      ['Fred', 'Joe', 'Jack'])
 def test_column_number_width_1(self):
     new_group = d.Group(d.Individual('Shane', [3]))
     donors_f = {'Joe': [9, 33333333333333, 35555], 'Jack': [9, 2, 4.5]}
     self.assertEqual(new_group.column_number_width(donors_f), 17)
 def test_column_average_width(self):
     new_group = d.Group(d.Individual('Shane', [3]))
     donors_f = {'Joe': [9, 3, 3], 'Jack': [9, 2, 4.5]}
     self.assertEqual(new_group.column_average_width(donors_f), 12)
 def test_column_total_width_2(self):
     new_group = d.Group(d.Individual('Shane', [3]))
     donors_f = {'Joe': [1555555555555, 3, 3], 'Jack': [9, 2, 4.5]}
     self.assertEqual(new_group.column_total_width(donors_f), 16)
 def test_Group_get(self):
     new_group = d.Group(d.Individual('Joe', [3, 3, 3]))
     self.assertEqual(new_group._donor_raw['Joe'].donations, [3, 3, 3])
     self.assertEqual(new_group._donor_raw['Joe'].name, 'Joe')
 def test_thankyou(self):
     test_text = 'Thank you so much for the generous gift of $5.00, Shane!'
     new_group = d.Group(d.Individual('Shane', [5]))
     self.assertEqual(d.Individual('Shane', [5]).thank_you, test_text)
 def test_Group_Add(self):
     """Test that the new donors are being appended to the donor list."""
     new_group = d.Group(d.Individual('Joe', [3, 3, 3]))
     new_group.add('Jill', 5)
     self.assertEqual(new_group._donor_raw['Jill'].name, 'Jill')
     self.assertEqual(new_group._donor_raw['Jill'].donations, [5])
 def test_Group_search1(self):
     """Returns None when name does not exist"""
     new_group = d.Group(d.Individual('Joe', [3, 3, 3]))
     self.assertEqual(new_group.search('Bob'), None)
 def test_Group_search2(self):
     """Returns 'name' when name does exist"""
     new_group = d.Group(d.Individual('Joe', [3, 3, 3]))
     self.assertEqual(new_group.search('Joe').name, 'Joe')
 def test_number_donations(self):
     new_group = d.Group(d.Individual('Shane', [3]))
     new_group.add('Joe', 1)
     new_group.add('Joe', 4)
     new_group.add('Joe', 5)
     self.assertEqual(new_group._donor_raw['Joe'].number_donations(), 3)
 def test_avg_donations(self):
     new_group = d.Group(d.Individual('Shane', [3]))
     new_group.add('Joe', 10)
     new_group.add('Joe', 5)
     new_group.add('Joe', 6)
     self.assertEqual(new_group._donor_raw['Joe'].avg_donations(), 7)
 def test_sum_donations(self):
     new_group = d.Group(d.Individual('Shane', [3]))
     new_group.add('Joe', 3)
     new_group.add('Joe', 3)
     new_group.add('Joe', 3)
     self.assertEqual(new_group._donor_raw['Joe'].sum_donations(), 9)