def test_get_donor(): dc = DonorCollection() dc.add_donor("Rei", [50]) a = dc.get_donor("Rei") assert a.name == "Rei" assert a.donations == [50] assert dc.get_donor("Usagi") is False
def test_add_new_donation(): donor_collection = DC() # testing adding donation to a new donor donor_collection.add_new_donation("Jimmy Johns", 100) donor_collection.add_new_donation("Jimmy Johns", 200) # testing adding donation to an exsiting donor donor_collection.add_new_donation("Jack Ma", 200) assert donor_collection.get_donor("Jimmy Johns").total_donations == 300 assert donor_collection.get_donor("Jack Ma").total_donations == 2200
def test_get_donor(): # Test that donors can be retrieved from collection dc = DonorCollection() dc.update_donor('Jason Mendoza',100.) d = dc.get_donor('Jason Mendoza') assert isinstance(d,Donor) assert d.name == 'Jason Mendoza' assert d.last_donation() == 100. # Should return new donor if donor does not exist d = dc.get_donor('New Donor') assert isinstance(d,Donor) assert d.name == 'New Donor'
def test_donorcollection_names_sorted(): """Test names_sorted property.""" dc = DonorCollection() dc.add_donor("Test User 1") d = dc.get_donor("Test User 1") for value in [1, 2, 3, 4]: d.add_donation(value) dc.add_donor("Test User 2") d = dc.get_donor("Test User 2") for value in [5, 6, 7, 8]: d.add_donation(value) assert dc.names_sorted == ["Test User 2", "Test User 1"]
def test_DonorCollection_class(): dc = DonorCollection() dc.add_new_donor('Bill Gates') with pytest.raises(ValueError): dc.add_new_donor('Bill Gates') dc.add_donation('Bill Gates', 1000.0) d = dc.get_donor('Bill Gates') assert d.num_donations == 1 assert d.total_donations == 1000.0 assert d.donor_name == 'Bill Gates' dc.add_new_donor('Paul Allen') d2 = dc.get_donor('Paul Allen') d2.add_donation(2000.0) assert d2.num_donations == 1 assert d2.total_donations == 2000.0 assert d2.donor_name == 'Paul Allen'
def test_get_donor(): # Test that donors can be retrieved from collection dc = DonorCollection() dc.update_donor('Meghanr Tainor', 100.0) d = dc.get_donor('Meghanr Tainor') assert d.name == 'Meghanr Tainor' assert d.last_donation() == 100.0
def test_update_donor(): # Tests that new donor can be added and updated dc = DonorCollection() dc.update_donor('Jason Mendoza',100.) dc.update_donor('Jason Mendoza',200.) d = dc.get_donor('Jason Mendoza') assert d.last_donation() == 200. assert d.total_donations() == 300. assert d.num_donations() == 2 assert d.average_donation() == 150.
def test_update_donor(): # Tests that new donor can be added and updated dc = DonorCollection() dc.update_donor('Meghanr Tainor', 100.00) dc.update_donor('Meghanr Tainor', 200.00) d = dc.get_donor('Meghanr Tainor') assert d.last_donation() == 200.00 assert d.total_donations() == 300.00 assert d.num_donations() == 2 assert d.average_donation() == 150.00
def test_add_donation(): dc = DonorCollection() dc.add_donation('William Shatner', 500.25) d = dc.get_donor('William Shatner') assert d.name == 'William Shatner' assert d.num_of_donations == 1 assert d.sum_of_donations == 500.25 assert d.average_donation == 500.25 dc.add_donation('William Shatner', 100.75) d = dc.get_donor('William Shatner') assert d.name == 'William Shatner' assert d.num_of_donations == 2 assert d.sum_of_donations == 601.00 assert d.average_donation == 300.50 dc.add_donation('Harold Tunas', 45.00) d = dc.get_donor('Harold Tunas') assert d.name == 'Harold Tunas' assert d.num_of_donations == 1 assert d.sum_of_donations == 45.00 assert d.average_donation == 45.00
class MailroomCli(): """ MailroomCli: command line interface that interacts with DonorCollection """ _exit_mail = False _dc = None def __init__(self): self._dc = DonorCollection() def exit_mail(self): self._exit_mail = True def print_menu(self): print("Object Oriented Mailroom Tasks:\n") print("[1] Send a Thank you to a single donor") print("[2] Send a Thank you to all donors (to stdout)") print("[3] Create a report") print("[4] Send letters to all donors") print("[9] Exit Mailroom\n") def prompt_donor(self): donor_name = input("Enter donor name ('list' for all donors) : ") if donor_name == 'list': namelist = self._dc.list_names() if len(namelist) > 1: print(namelist) donor_name = input("Enter donor name : ") while True: try: donor_amt = input("Enter donation value: ") try: donor_amt = float(donor_amt) break except ValueError: print("Please enter a numeric donation value") except SyntaxError: print("Please enter a valid donation value") try: self._dc.add_new_donor(donor_name) self._dc.add_donation(donor_name, donor_amt) except ValueError: self._dc.add_donation(donor_name, donor_amt) return self._dc.get_donor(donor_name) def send_thankyou_single_donor_task(self): donor = self.prompt_donor() print(donor.generate_thankyou()) def send_thankyou_multiple_donors_task(self): self._dc.generate_thankyou_all() def send_thankyou_multiple_donors_to_file_task(self): filenames = self._dc.generate_thankyou_all_to_file() return filenames def create_report_task(self): print(self._dc.generate_report_all()) _task_dict = { 9: exit_mail, 4: send_thankyou_multiple_donors_to_file_task, 3: create_report_task, 2: send_thankyou_multiple_donors_task, 1: send_thankyou_single_donor_task } def do_tasks(self): while not self._exit_mail: self.print_menu() response = input("Enter Mailroom Option: ") # Validate response try: response = int(response) except ValueError: print("Enter a number between 1-9") continue # Dispatch task based on response try: self._task_dict[response](self) except KeyError: print("Please enter a correct task number") continue
def test_get_donor(): donor_collection = DC() donor_collection.add_donor("Jimmy Johns", 100) assert donor_collection.get_donor("Jimmy Johns").name == "Jimmy Johns" assert donor_collection.get_donor("Jimmy Johns").donations == [100]
def test_donorcollection_get_donor(): """Test the get_donor method.""" dc = DonorCollection() dc.add_donor("Test User") d = dc.get_donor("Test User") assert d.name == "Test User"
def test_get_donor(): dc = DonorCollection() assert dc.get_donor('Leonard Nimoy') is None dc.add_donation('Leonard Nimoy', 50000.00) assert dc.get_donor('Leonard Nimoy') == Donor('Leonard Nimoy')