Пример #1
0
class TestPerson(unittest.TestCase):
    def setUp(self):
        self.person = Person('David', 'Gilmour')

    def test_person_str(self):
        self.assertEqual('Gilmour, David', str(self.person))

    def test_add_street_address(self):
        self.person.addStreetAddress('15 Charlotte Street')
        self.assertEqual(1, len(self.person.street_addresses))

    def test_add_empty_street_address(self):
        self.assertRaises(ValueError, self.person.addStreetAddress, '')

    def test_add_email_address(self):
        self.person.addEmailAddress('*****@*****.**')
        self.assertEqual(1, len(self.person.email_addresses))

    def test_add_empty_email_address(self):
        self.assertRaises(ValueError, self.person.addEmailAddress, '')

    def test_add_phone_number(self):
        self.person.addPhoneNumber('+44 7770 231 213')
        self.assertEqual(1, len(self.person.phone_numbers))

    def test_add_empty_phone_number(self):
        self.assertRaises(ValueError, self.person.addPhoneNumber, '')

    def test_add_person_to_group(self):
        groupPf = Group('Pink Floyd')
        groupSt = Group('Spinal Tap')

        self.person.addToGroup(groupPf)
        self.person.addToGroup(groupSt)

        self.assertEqual(2, len(self.person.groups))

        # Add person to a duplicated group, and verify that the
        # group count doesn't change
        groupPfDup = Group('Pink Floyd')

        self.person.addToGroup(groupPf)
        self.assertEqual(2, len(self.person.groups))

        # Verify that the Groups' members count got incremented
        self.assertEqual(1, len(groupPf.members))
        self.assertEqual(1, len(groupSt.members))

        # The duplicated Group's members did not get incremented
        self.assertEqual(0, len(groupPfDup.members))