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())
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
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