|
1 | 1 | import unittest
|
2 | 2 |
|
3 |
| -from phone_number import Phone |
4 |
| - |
| 3 | +from phone_number import PhoneNumber |
5 | 4 |
|
6 | 5 | # Tests adapted from `problem-specifications//canonical-data.json` @ v1.7.0
|
7 | 6 |
|
| 7 | + |
8 | 8 | class PhoneNumberTest(unittest.TestCase):
|
9 |
| - def test_cleans_number(self): |
10 |
| - number = Phone("(223) 456-7890").number |
| 9 | + def test_cleans_the_number(self): |
| 10 | + number = PhoneNumber("(223) 456-7890").number |
11 | 11 | self.assertEqual(number, "2234567890")
|
12 | 12 |
|
13 |
| - def test_cleans_number_with_dots(self): |
14 |
| - number = Phone("223.456.7890").number |
| 13 | + def test_cleans_numbers_with_dots(self): |
| 14 | + number = PhoneNumber("223.456.7890").number |
15 | 15 | self.assertEqual(number, "2234567890")
|
16 | 16 |
|
17 |
| - def test_cleans_number_with_multiple_spaces(self): |
18 |
| - number = Phone("223 456 7890 ").number |
| 17 | + def test_cleans_numbers_with_multiple_spaces(self): |
| 18 | + number = PhoneNumber("223 456 7890 ").number |
19 | 19 | self.assertEqual(number, "2234567890")
|
20 | 20 |
|
21 | 21 | def test_invalid_when_9_digits(self):
|
22 | 22 | with self.assertRaisesWithMessage(ValueError):
|
23 |
| - Phone("123456789") |
| 23 | + PhoneNumber("123456789") |
24 | 24 |
|
25 |
| - def test_invalid_when_11_digits_and_first_not_1(self): |
| 25 | + def test_invalid_when_11_digits_does_not_start_with_a_1(self): |
26 | 26 | with self.assertRaisesWithMessage(ValueError):
|
27 |
| - Phone("22234567890") |
| 27 | + PhoneNumber("22234567890") |
28 | 28 |
|
29 |
| - def test_valid_when_11_digits_and_first_is_1(self): |
30 |
| - number = Phone("12234567890").number |
| 29 | + def test_valid_when_11_digits_and_starting_with_1(self): |
| 30 | + number = PhoneNumber("12234567890").number |
31 | 31 | self.assertEqual(number, "2234567890")
|
32 | 32 |
|
33 |
| - def test_valid_when_11_digits_and_first_is_1_with_punctuation(self): |
34 |
| - number = Phone("+1 (223) 456-7890").number |
| 33 | + def test_valid_when_11_digits_and_starting_with_1_even_with_punctuation(self): |
| 34 | + number = PhoneNumber("+1 (223) 456-7890").number |
35 | 35 | self.assertEqual(number, "2234567890")
|
36 | 36 |
|
37 | 37 | def test_invalid_when_more_than_11_digits(self):
|
38 | 38 | with self.assertRaisesWithMessage(ValueError):
|
39 |
| - Phone("321234567890") |
| 39 | + PhoneNumber("321234567890") |
40 | 40 |
|
41 | 41 | def test_invalid_with_letters(self):
|
42 | 42 | with self.assertRaisesWithMessage(ValueError):
|
43 |
| - Phone("123-abc-7890") |
| 43 | + PhoneNumber("123-abc-7890") |
44 | 44 |
|
45 |
| - def test_invalid_with_punctuation(self): |
| 45 | + def test_invalid_with_punctuations(self): |
46 | 46 | with self.assertRaisesWithMessage(ValueError):
|
47 |
| - Phone("123-@:!-7890") |
| 47 | + PhoneNumber("123-@:!-7890") |
48 | 48 |
|
49 | 49 | def test_invalid_if_area_code_starts_with_0(self):
|
50 | 50 | with self.assertRaisesWithMessage(ValueError):
|
51 |
| - Phone("(023) 456-7890") |
| 51 | + PhoneNumber("(023) 456-7890") |
52 | 52 |
|
53 | 53 | def test_invalid_if_area_code_starts_with_1(self):
|
54 | 54 | with self.assertRaisesWithMessage(ValueError):
|
55 |
| - Phone("(123) 456-7890") |
| 55 | + PhoneNumber("(123) 456-7890") |
56 | 56 |
|
57 | 57 | def test_invalid_if_exchange_code_starts_with_0(self):
|
58 | 58 | with self.assertRaisesWithMessage(ValueError):
|
59 |
| - Phone("(223) 056-7890") |
| 59 | + PhoneNumber("(223) 056-7890") |
60 | 60 |
|
61 | 61 | def test_invalid_if_exchange_code_starts_with_1(self):
|
62 | 62 | with self.assertRaisesWithMessage(ValueError):
|
63 |
| - Phone("(223) 156-7890") |
| 63 | + PhoneNumber("(223) 156-7890") |
64 | 64 |
|
65 | 65 | def test_invalid_if_area_code_starts_with_0_on_valid_11_digit_number(self):
|
66 | 66 | with self.assertRaisesWithMessage(ValueError):
|
67 |
| - Phone("1 (023) 456-7890") |
| 67 | + PhoneNumber("1 (023) 456-7890") |
68 | 68 |
|
69 | 69 | def test_invalid_if_area_code_starts_with_1_on_valid_11_digit_number(self):
|
70 | 70 | with self.assertRaisesWithMessage(ValueError):
|
71 |
| - Phone("1 (123) 456-7890") |
| 71 | + PhoneNumber("1 (123) 456-7890") |
72 | 72 |
|
73 |
| - def test_invalid_exchange_code_starts_with_0_valid_11_digit_number(self): |
| 73 | + def test_invalid_if_exchange_code_starts_with_0_on_valid_11_digit_number(self): |
74 | 74 | with self.assertRaisesWithMessage(ValueError):
|
75 |
| - Phone("1 (223) 056-7890") |
| 75 | + PhoneNumber("1 (223) 056-7890") |
76 | 76 |
|
77 |
| - def test_invalid_exchange_code_starts_with_1_valid_11_digit_number(self): |
| 77 | + def test_invalid_if_exchange_code_starts_with_1_on_valid_11_digit_number(self): |
78 | 78 | with self.assertRaisesWithMessage(ValueError):
|
79 |
| - Phone("1 (223) 156-7890") |
| 79 | + PhoneNumber("1 (223) 156-7890") |
80 | 80 |
|
81 |
| - # Track specific tests |
| 81 | + # Additional tests for this track |
82 | 82 | def test_area_code(self):
|
83 |
| - number = Phone("2234567890") |
| 83 | + number = PhoneNumber("2234567890") |
84 | 84 | self.assertEqual(number.area_code, "223")
|
85 | 85 |
|
86 | 86 | def test_pretty_print(self):
|
87 |
| - number = Phone("2234567890") |
| 87 | + number = PhoneNumber("2234567890") |
88 | 88 | self.assertEqual(number.pretty(), "(223) 456-7890")
|
89 | 89 |
|
90 | 90 | def test_pretty_print_with_full_us_phone_number(self):
|
91 |
| - number = Phone("12234567890") |
| 91 | + number = PhoneNumber("12234567890") |
92 | 92 | self.assertEqual(number.pretty(), "(223) 456-7890")
|
93 | 93 |
|
94 | 94 | # Utility functions
|
95 | 95 | def assertRaisesWithMessage(self, exception):
|
96 | 96 | return self.assertRaisesRegex(exception, r".+")
|
97 | 97 |
|
98 | 98 |
|
99 |
| -if __name__ == '__main__': |
| 99 | +if __name__ == "__main__": |
100 | 100 | unittest.main()
|
0 commit comments