Beispiel #1
0
	def test_print_report(self):
		mailroom = Mailroom()
		sample_donor_data = \
		{'Mark Zuckerberg':[5000.50,1089.90,750.45], 
		 'Jeff Bezos':[700.90,900.99],
		  'Paul Allen':[11100.80],
		  'Joanne K Rowling':[1199.90,9878.12]}

		mailroom.populate_donors_from_dict(sample_donor_data)
		self.assertEqual(4,mailroom.donor_count)
		donors = ['Mark Zuckerberg','Jeff Bezos','Paul Allen','Joanne K Rowling']
		for index,name in enumerate(mailroom.donor_names):
			self.assertEqual(name,donors[index])
		capturedOutput = io.StringIO() 	# Create StringIO object
		sys.stdout = capturedOutput           	#  and redirect stdout.
		mailroom.create_report()
		sys.stdout = sys.__stdout__				#Reset Redirect
		report_text = \
			'''Donor Name                     | Total Given  | Num Gifts | Average Gift\n------------------------------------------------------------------------\nMark Zuckerberg                 $   6840.85           3    $   2280.28\nJeff Bezos                      $   1601.89           2    $    800.94\nPaul Allen                      $  11100.80           1    $  11100.80\nJoanne K Rowling                $  11078.02           2    $   5539.01'''
		self.assertEqual(capturedOutput.getvalue().strip(), report_text.strip())
		#Remove all the donor name text files created
		for filename in os.listdir('.'):
			if filename.endswith('.txt'):
				donorname = filename[:-4]
				if donorname in mailroom.donor_data_dict.keys():
					os.remove(filename)
Beispiel #2
0
	def test_populate_donors_from_invalid_data_dict(self):
		mailroom = Mailroom()
		sample_donor_data = \
		{'Mark Zuckerberg':[5000.50,1089.90,750.45], 
		 'Jeff Bezos':[700.90,'not  a number'],
		  'Paul Allen':[11100.80],
		  'Joanne K Rowling':[1199.90,9878.12]}
		with self.assertRaises(ValueError): 
			mailroom.populate_donors_from_dict(sample_donor_data)
Beispiel #3
0
	def test_create_mailroom_populate_donors_from_dict(self):
		mailroom = Mailroom()
		sample_donor_data = \
		{'Mark Zuckerberg':[5000.50,1089.90,750.45], 
		 'Jeff Bezos':[700.90,900.99],
		  'Paul Allen':[11100.80],
		  'Joanne K Rowling':[1199.90,9878.12]}
		mailroom.populate_donors_from_dict(sample_donor_data)
		self.assertEqual(4,mailroom.donor_count)
		donors = ['Mark Zuckerberg','Jeff Bezos','Paul Allen','Joanne K Rowling']
		for index,name in enumerate(mailroom.donor_names):
			self.assertEqual(name,donors[index])
Beispiel #4
0
	def test_send_letters_to_everyone(self):
		mailroom = Mailroom()
		sample_donor_data = \
		{'Mark Zuckerberg':[5000.50,1089.90,750.45], 
		 'Jeff Bezos':[700.90,900.99],
		  'Paul Allen':[11100.80],
		  'Joanne K Rowling':[1199.90,9878.12]}

		mailroom.populate_donors_from_dict(sample_donor_data)
		self.assertEqual(4,mailroom.donor_count)
		donors = ['Mark Zuckerberg','Jeff Bezos','Paul Allen','Joanne K Rowling']
		for index,name in enumerate(mailroom.donor_names):
			self.assertEqual(name,donors[index])

		mailroom.send_letters_to_everyone()
		for filename in os.listdir('.'):
			if filename.endswith('.txt'):
				donorname = filename[:-4]
				self.assertIn(donorname, mailroom.donor_data_dict.keys())
Beispiel #5
0
	def test_mailroom_get_donations_for_donor(self):
		mailroom = Mailroom()
		sample_donor_data = \
		{'Mark Zuckerberg':[5000.50,1089.90,750.45], 
		 'Jeff Bezos':[700.90,900.99],
		  'Paul Allen':[11100.80],
		  'Joanne K Rowling':[1199.90,9878.12]}

		mailroom.populate_donors_from_dict(sample_donor_data)
		self.assertEqual(4,mailroom.donor_count)
		donors = ['Mark Zuckerberg','Jeff Bezos','Paul Allen','Joanne K Rowling']
		for index,name in enumerate(mailroom.donor_names):
			self.assertEqual(name,donors[index])

		donations_list = mailroom.donations_for_donor('Mark Zuckerberg')
		expected_donations = [5000.50,1089.90,750.45]
		self.assertEqual(len(donations_list), len(expected_donations))
		for index in range(0,len(donations_list)):
			self.assertEqual(donations_list[index], expected_donations[index])