Ejemplo n.º 1
0
class TestPhoneBook(unittest.TestCase):

    def setUp(self):
        self.phonebook = PhoneBook()

    def test_lookup_entry_by_name(self):
        self.phonebook.add('Person', '112233112233')
        self.assertEqual('112233112233', self.phonebook.lookup('Person'))

    def test_missing_entry_raises_KeyError(self):
        with self.assertRaises(KeyError):
            self.phonebook.lookup('Unknown Phone Number')

    def test_empty_phonebook_is_consistent(self):
        self.assertTrue(self.phonebook.is_consistent())

    def test_phonebook_with_normal_entries_are_consistent(self):
        self.phonebook.add('Bob', '12345')
        self.phonebook.add('Mary', '012345')
        self.assertTrue(self.phonebook.is_consistent())

    def test_phonebook_with_duplicate_entries_are_inconsistent(self):
        self.phonebook.add('Bob', '12345')
        self.phonebook.add('Mary', '12345')
        self.assertFalse(self.phonebook.is_consistent())
Ejemplo n.º 2
0
class PhonebookTest(unittest.TestCase):

    def setUp(self):
        self.phonebook = PhoneBook()

    def tearDown(self):
        pass

    def test_lookup_by_name(self):
        self.phonebook.add('bob', "12345")
        number = self.phonebook.lookup('bob')
        self.assertEqual(number, '12345')

    def test_lookup_missing_name(self):
        with self.assertRaises(KeyError):
            self.phonebook.lookup('missing')

    def test_empty_phonebook_is_consistent(self):
        self.assertTrue(self.phonebook.is_consistent())

    def test_is_consistent_with_different_entries(self):
        self.phonebook.add('bob', '12345')
        self.phonebook.add('blue', '23456')
        self.assertTrue(self.phonebook.is_consistent())

    def test_is_consistent_with_duplicate_entries(self):
        self.phonebook.add('bob', '12345')
        self.phonebook.add('blue', '12345')
        self.assertFalse(self.phonebook.is_consistent())

    def test_is_consistent_with_duplicate_prefix(self):
        self.phonebook.add('bob', '12345')
        self.phonebook.add('blue', '1234')
        self.assertFalse(self.phonebook.is_consistent())

    @unittest.SkipTest
    def test_skip_test_example(self):
        """This testcase is skipped because of decorator"""
        pass
Ejemplo n.º 3
0
class PhoneBookTest(unittest.TestCase):
    def setUp(self) -> None:
        self.phonebook = PhoneBook()

    def test_lookup_by_name(self):
        self.phonebook.add("Bob", "12345")
        number = self.phonebook.lookup("Bob")
        self.assertEqual("12345", number)

    def test_missing_name_raises_error(self):
        with self.assertRaises(KeyError):
            self.phonebook.lookup("missing")

    def test_empty_phonebook_is_consistent(self):
        self.assertTrue(self.phonebook.is_consistent())

    def test_is_consistent_with_different_entries(self):
        self.phonebook.add("Bob", "12345")
        self.phonebook.add("Anna", "012345")
        self.assertTrue(self.phonebook.is_consistent())

    def test_inconsistent_with_duplicate_entries(self):
        self.phonebook.add("Bob", "12345")
        self.phonebook.add("Sue", "12345")
        self.assertFalse(self.phonebook.is_consistent())

    def test_inconsistent_with_duplicate_prefix(self):
        self.phonebook.add("Bob", "12345")
        self.phonebook.add("Sue", "123")
        self.assertFalse(self.phonebook.is_consistent())

    # Unusually, to put two cases assertion in one test case!
    def test_phonebook_adds_names_and_numbers(self):
        self.phonebook.add("Sue", '123343')
        self.assertIn("Sue", self.phonebook.get_names())
        self.assertIn("123343", self.phonebook.get_numbers())


# python -m unittest   unit test in command line