def test_Sum_Donations(self): """Test Individual.Sum_Donations""" individual = d.Individual(self.__class__.people_collection) result = self.__class__.people_collection.find_one({"donor": "Joe"}) sum_ind = sum(result['donations']) log.info(f"The sum of Joe's donations is {sum_ind}") self.assertEqual(sum_ind, individual.sum_donations('Joe'))
def test_Number_Donations(self): """Test Individual.Number_of_Donations""" individual = d.Individual(self.__class__.people_collection) number = individual.number_donations('Shane') result = self.__class__.people_collection.find_one({"donor": "Shane"}) donations = result['donations'] self.assertEqual(number, len(donations))
def more_choices(): client = login_database.login_mongodb_cloud() db = client['mailroom'] people_collection = db['people'] mail = d.Group(people_collection) individual = d.Individual(people_collection) r = login_database.login_redis_cloud() 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 >>\n') if yes_no == 'n': return if yes_no == 'y': last_name = input(f"What is {name}'s last name?\n") email = input(f"What is {name}'s email?\n") telephone = input(f"What is {name}'s telephone #?\n") d.Individual.redis_add_new(r, name, last_name, telephone, email) else: return print(f"First confirm {name}'s information") individual.donor_verification(r, name) confirm_info = input("Does the donor info look ok? y or n >>\n") if confirm_info == 'n': update_redis(r, name) amount = input('\n''What is the donation amount? or ' '\'e\' to exit >') if amount == 'e': return try: if int(amount) <= 0: print('\nYou entered an invalid amount!!\n') return except ValueError: print('\nYou entered an invalid amount!!\n') return ValueError else: individual.add_donation(name, float(amount)) print(individual.thank_you(name, float(amount)))
def test_Individual_Add_Donation1(self): """Test Add_Donation when donor does not exist""" # pass db instance to Individulal Class Instance individual = d.Individual(self.__class__.people_collection) individual.add_donation('Luke', 5) result = self.__class__.people_collection.find_one({"donor": "Luke"}) aperson = result['donor'] adonation = result['donations'] self.assertEqual(aperson, 'Luke') # Test donor was added self.assertEqual(adonation[0], 5) # Test donation was added for Luke
def test_Individual_Add_Donation2(self): """Test Add_Donation when it is an existing donor.""" # pass db instance to Individulal Class Instance individual = d.Individual(self.__class__.people_collection) individual.add_donation('Shane', 500) result = self.__class__.people_collection.find_one({"donor": "Shane"}) aperson = result['donor'] adonation = result['donations'] self.assertEqual(aperson, 'Shane') # Test donor was added self.assertEqual(adonation, [6, 5, 10, 500]) # Test donation was added for Luke
def test_delete_donor(self): """Test delete_donor""" individual = d.Individual(self.__class__.people_collection) log.info(f"Show that we can find donor.") result = self.__class__.people_collection.find_one({"donor": "Pete"}) self.assertEqual(result['donor'], 'Pete') # Delete the document individual.delete_donor('Pete') # Show that we can no longer find entry result = self.__class__.people_collection.find_one({"donor": "Pete"}) self.assertEqual(result, None)
def delete_donor(): client = login_database.login_mongodb_cloud() db = client['mailroom'] people_collection = db['people'] mail = d.Group(people_collection) individual = d.Individual(people_collection) while True: name = input('\nWhich donor would you like to delete? \n' 'e - to exit\n' 'list To see a list of names, or\n' 'Type the name of the donor to delete.>>') if name == 'e': return if name == 'list': mail.print_donors() else: print('\n''Ok, you want to delete {}, ' 'lets see what we can do.'.format(name)) if mail.search(name) is None: print('The name you entered is not in the database.') return else: individual.delete_donor(name)
def test_Last_Donation(self): """Test Individual.last_donation""" individual = d.Individual(self.__class__.people_collection) result = self.__class__.people_collection.find_one({"donor": "Joe"}) last_donation = result['donations'][-1] self.assertEqual(last_donation, individual.last_donation('Joe'))