def test_find_person_by_name(self): person_1 = AddressBookPerson(first_name="Mike", last_name="Tyson") person_2 = AddressBookPerson(first_name="Mike", last_name="Shinoda") person_3 = AddressBookPerson(first_name="Tyson", last_name="Fury") person_4 = AddressBookPerson(first_name="Mike", last_name="Oldfield") self.address_book.add_person(person_1) self.address_book.add_person(person_2) self.address_book.add_person(person_3) self.address_book.add_person(person_4) by_first_name = self.address_book.get_persons_by_name( first_name="Mike") by_last_name = self.address_book.get_persons_by_name(last_name="Tyson") by_both = self.address_book.get_persons_by_name(first_name="Mike", last_name="Shinoda") self.assertIn(person_1, by_first_name) self.assertIn(person_2, by_first_name) self.assertIn(person_4, by_first_name) self.assertNotIn(person_3, by_first_name) self.assertIn(person_1, by_last_name) self.assertNotIn(person_2, by_last_name) self.assertIn(person_2, by_both)
def test_relations(self): group = AddressBookGroup('Beatles') person_1 = AddressBookPerson(first_name="John", last_name="Lennon") person_2 = AddressBookPerson(first_name="Paul", last_name="McCartney") person_3 = AddressBookPerson(first_name="George", last_name="Harrison") person_4 = AddressBookPerson(first_name="Pete", last_name="Best") person_5 = AddressBookPerson(first_name="Ringo", last_name="Starr") self.address_book.add_group(group) self.address_book.add_person(person_1) self.address_book.add_person(person_2) self.address_book.add_person(person_3) self.address_book.add_person(person_4) self.address_book.add_person(person_5) self.address_book.add_person_to_group(person_1, group) self.address_book.add_person_to_group(person_2, group) self.address_book.add_person_to_group(person_3, group) self.address_book.add_person_to_group(person_4, group) self.address_book.remove_person_from_group(person_4, group) self.address_book.add_person_to_group(person_5, group) members = self.address_book.get_group_members(group) self.assertEqual(len(members), 4) self.assertIn(person_5, members) self.assertNotIn(person_4, members)
def test_person(self): person_1 = AddressBookPerson(first_name="Freddie", last_name="Mercury") person_2 = AddressBookPerson(first_name="Bryan", last_name="May") person_3 = AddressBookPerson(first_name="Mike", last_name="Gross") self.address_book.add_person(person_1) self.address_book.add_person(person_2) self.address_book.add_person(person_3) self.address_book.remove_person(person_2) self.assertEqual(len(self.address_book.persons), 2) self.assertIn(person_1, self.address_book.persons.values()) self.assertIn(person_3, self.address_book.persons.values())
def test_find_person_by_email_part(self): person_1 = AddressBookPerson( first_name="Thome", last_name="Yorke", email_addresses=["*****@*****.**", "*****@*****.**"]) person_2 = AddressBookPerson(first_name="Johny", last_name="Greenwood", email_addresses=["*****@*****.**"]) person_3 = AddressBookPerson(first_name="Tom", last_name="Jones", email_addresses=["*****@*****.**"]) self.address_book.add_person(person_1) self.address_book.add_person(person_2) self.address_book.add_person(person_3) persons = self.address_book.get_persons_by_email('thom') self.assertIn(person_1, persons) self.assertIn(person_3, persons) self.assertNotIn(person_2, persons)
def test_find_persons_groups(self): group_1 = AddressBookGroup("Nirvana") group_2 = AddressBookGroup("Foo Fighters") group_3 = AddressBookGroup("Rolling Stones") person = AddressBookPerson(first_name="David", last_name="Grohl") self.address_book.add_person(person) self.address_book.add_group(group_1) self.address_book.add_group(group_2) self.address_book.add_group(group_3) self.address_book.add_person_to_group(person, group_1) self.address_book.add_person_to_group(person, group_2) groups = self.address_book.get_person_groups(person) self.assertIn(group_1, groups) self.assertIn(group_2, groups) self.assertNotIn(group_3, groups)
def test_person_removal_fails(self): person = AddressBookPerson(first_name='Paul', last_name="Rodgers") with self.assertRaises(AddressBookValueError): self.address_book.remove_person(person)
def setUp(self): self.person = AddressBookPerson(first_name='Mark', last_name='Rutte')
class PersonTest(unittest.TestCase): def setUp(self): self.person = AddressBookPerson(first_name='Mark', last_name='Rutte') def test_street_address(self): address_list = ['Greek street, 3, Lisbon', 'Palm street, 4, Porto'] self.person.add_street_adress(address_list[0]) self.person.add_street_adress(address_list[1]) self.assertEqual(self.person.street_addresses, address_list) self.person.remove_street_adress(address_list[0]) self.assertEqual(self.person.street_addresses, address_list[1:]) def test_street_address_removal_fails(self): with self.assertRaises(AddressBookValueError): self.person.remove_street_adress("Bermuda Triangle, 777") def test_email_address(self): email_list = ['*****@*****.**', '*****@*****.**'] self.person.add_email_adress(email_list[0]) self.person.add_email_adress(email_list[1]) self.assertEqual(self.person.email_addresses, email_list) self.person.remove_email_adress(email_list[1]) self.assertEqual(self.person.email_addresses, email_list[:-1]) def test_email_address_removal_fails(self): with self.assertRaises(AddressBookInvalidDataException): self.person.add_email_adress("[email protected]") def test_email_address_validation_fails(self): with self.assertRaises(AddressBookValueError): self.person.remove_email_adress("*****@*****.**") def test_phone_number(self): phone_list = ['911', '112'] self.person.add_phone_number(phone_list[0]) self.person.add_phone_number(phone_list[1]) self.assertEqual(self.person.phone_numbers, phone_list) self.person.remove_phone_number(phone_list[0]) self.assertEqual(self.person.phone_numbers, phone_list[1:]) def test_phone_removal_fails(self): with self.assertRaises(AddressBookValueError): self.person.remove_phone_number("012345678") def test_phone_validation_fails(self): with self.assertRaises(AddressBookInvalidDataException): self.person.add_phone_number("001!!!") def test_email_search(self): email_list = [ '*****@*****.**', '*****@*****.**', ] self.person.add_email_adress(email_list[0]) self.person.add_email_adress(email_list[1]) self.assertTrue(self.person.has_email('abc')) self.assertFalse(self.person.has_email('xyz'))