Пример #1
0
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'))
Пример #2
0
    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)
Пример #3
0
 def test_add_group(self):
     address_book = AddressBook()
     group = Group('Brozzz')
     address_book.add_group(group)
     self.assertIn(group, address_book)