class AddressBookTestCase(unittest.TestCase): def setUp(self): self.address_book = AddressBook() self.person1 = Person(first_name='p1fn', last_name='p1ln', emails=['p1em1@com', 'p1em2@com']) self.person2 = Person(first_name='p2fn', last_name='p2ln', emails=['p2em1@com', 'p2em2@com']) self.person3 = Person(first_name='p3fn', last_name='p3ln', emails=['p3em1@com', 'p3em2@com']) self.group1 = Group(name='Group1', persons=self.person1) self.group2 = Group(name='Group2', persons=[self.person3, self.person1]) def test_wrong_creation(self): with self.assertRaises(TypeError): test_group = Group() with self.assertRaises(TypeError): test_person = Person() def test_add_person(self): self.address_book.add_person(self.person1) self.assertTrue(id(self.person1) in self.address_book.persons) self.address_book.add_person(self.person2) self.assertTrue(id(self.person2) in self.address_book.persons) def test_add_group(self): self.address_book.add_group(self.group2) self.assertTrue(self.group2.name in self.address_book.groups) group_persons = copy(self.group2.persons) address_persons = copy(self.address_book.persons) self.assertTrue(set(group_persons).intersection(address_persons)) def test_get_belongs_groups(self): groups_from_address = self.address_book.get_belongs_groups( self.person1) for group in groups_from_address: self.assertTrue(id(self.person1) in group.persons.keys()) def test_get_persons_from_group(self): person_from_group = self.address_book.get_persons_from_group( self.group2) for person in person_from_group: self.assertTrue(id(person) in self.address_book.persons.keys()) def test_find_person_by_name(self): persons = self.address_book.find_person_by_name('p1fn') for p in persons: self.assertEqual('p1fn', p.first_name) def test_find_person_by_email(self): persons1 = self.address_book.find_person_by_email('p1em1@com') for p1 in persons1: self.assertTrue(p1.check_email('p1em1@com')) persons2 = self.address_book.find_person_by_email('p1em1') for p2 in persons2: self.assertTrue(p2.check_email('p1em1@com'))
def test_get_group_members(self): book = AddressBook() family = Group('family') friends = Group('friends') work = Group('work') book.add_group(family) book.add_group(friends) book.add_group(work) book.add_person(Person('John', 'Doe', Address('New York'), Email('*****@*****.**'), PhoneNumber('88005553535'), friends)) book.add_person(Person('Jane', 'Doe', Address('Chicago'), Email('*****@*****.**'), PhoneNumber('2128506'), [friends, work])) entries = book.get_group_members(work) self.assertEqual(len(entries), 1) entries = book.get_group_members(friends) self.assertEqual(len(entries), 2) self.assertEqual({entries[0].first_name, entries[1].first_name}, {'John', 'Jane'}) entries = book.get_group_members(family) self.assertEqual(len(entries), 0)
def test_add_group(self): address_book = AddressBook() group = Group('Brozzz') address_book.add_group(group) self.assertIn(group, address_book)