Skip to content

Commit 8a2d5be

Browse files
committed
Edited Jinja template and regenerated tests for phone-number.
1 parent 805fcb5 commit 8a2d5be

File tree

2 files changed

+72
-1
lines changed

2 files changed

+72
-1
lines changed

exercises/practice/phone-number/.meta/template.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{{ macros.header([class]) }}
44

55
class {{ class }}Test(unittest.TestCase):
6-
{% for case in cases[0]["cases"] -%}
6+
{% for case in cases -%}
77
def test_{{ case["description"] | to_snake }}(self):
88
{% if "error" in case["expected"] -%}
99
with self.assertRaisesWithMessage(ValueError):

exercises/practice/phone-number/phone_number_test.py

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,77 @@
88

99

1010
class PhoneNumberTest(unittest.TestCase):
11+
def test_cleans_the_number(self):
12+
number = PhoneNumber("(223) 456-7890").number
13+
self.assertEqual(number, "2234567890")
14+
15+
def test_cleans_numbers_with_dots(self):
16+
number = PhoneNumber("223.456.7890").number
17+
self.assertEqual(number, "2234567890")
18+
19+
def test_cleans_numbers_with_multiple_spaces(self):
20+
number = PhoneNumber("223 456 7890 ").number
21+
self.assertEqual(number, "2234567890")
22+
23+
def test_invalid_when_9_digits(self):
24+
with self.assertRaisesWithMessage(ValueError):
25+
PhoneNumber("123456789")
26+
27+
def test_invalid_when_11_digits_does_not_start_with_a_1(self):
28+
with self.assertRaisesWithMessage(ValueError):
29+
PhoneNumber("22234567890")
30+
31+
def test_valid_when_11_digits_and_starting_with_1(self):
32+
number = PhoneNumber("12234567890").number
33+
self.assertEqual(number, "2234567890")
34+
35+
def test_valid_when_11_digits_and_starting_with_1_even_with_punctuation(self):
36+
number = PhoneNumber("+1 (223) 456-7890").number
37+
self.assertEqual(number, "2234567890")
38+
39+
def test_invalid_when_more_than_11_digits(self):
40+
with self.assertRaisesWithMessage(ValueError):
41+
PhoneNumber("321234567890")
42+
43+
def test_invalid_with_letters(self):
44+
with self.assertRaisesWithMessage(ValueError):
45+
PhoneNumber("123-abc-7890")
46+
47+
def test_invalid_with_punctuations(self):
48+
with self.assertRaisesWithMessage(ValueError):
49+
PhoneNumber("123-@:!-7890")
50+
51+
def test_invalid_if_area_code_starts_with_0(self):
52+
with self.assertRaisesWithMessage(ValueError):
53+
PhoneNumber("(023) 456-7890")
54+
55+
def test_invalid_if_area_code_starts_with_1(self):
56+
with self.assertRaisesWithMessage(ValueError):
57+
PhoneNumber("(123) 456-7890")
58+
59+
def test_invalid_if_exchange_code_starts_with_0(self):
60+
with self.assertRaisesWithMessage(ValueError):
61+
PhoneNumber("(223) 056-7890")
62+
63+
def test_invalid_if_exchange_code_starts_with_1(self):
64+
with self.assertRaisesWithMessage(ValueError):
65+
PhoneNumber("(223) 156-7890")
66+
67+
def test_invalid_if_area_code_starts_with_0_on_valid_11_digit_number(self):
68+
with self.assertRaisesWithMessage(ValueError):
69+
PhoneNumber("1 (023) 456-7890")
70+
71+
def test_invalid_if_area_code_starts_with_1_on_valid_11_digit_number(self):
72+
with self.assertRaisesWithMessage(ValueError):
73+
PhoneNumber("1 (123) 456-7890")
74+
75+
def test_invalid_if_exchange_code_starts_with_0_on_valid_11_digit_number(self):
76+
with self.assertRaisesWithMessage(ValueError):
77+
PhoneNumber("1 (223) 056-7890")
78+
79+
def test_invalid_if_exchange_code_starts_with_1_on_valid_11_digit_number(self):
80+
with self.assertRaisesWithMessage(ValueError):
81+
PhoneNumber("1 (223) 156-7890")
1182

1283
# Additional tests for this track
1384
def test_area_code(self):

0 commit comments

Comments
 (0)