/
test_utils.py
212 lines (169 loc) · 6.14 KB
/
test_utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
import unittest
from test_entries import LinetypeCases
from utils import extract_digits, preprocess_line
from utils import validate_color, validate_mi_or_raise, validate_name
from utils import validate_phonenumber, validate_phonenumber_or_raise
from utils import validate_zipcode, validate_zipcode_or_raise
from data_errors import DataValueError
class ExtractDigitsCases(unittest.TestCase):
def test_extract_digits0(self):
self.assertEqual(
extract_digits('ds03453fsdfs4506kgfdgdfg'),
'034534506'
)
def test_extract_digits1(self):
self.assertEqual(
extract_digits('03453'),
'03453'
)
def test_extract_digits2(self):
self.assertEqual(
extract_digits('a0b3c4d5e3f'),
'03453'
)
def test_extract_digits4(self):
self.assertEqual(
extract_digits('a0b3c4d5e3f'),
'03453'
)
def test_extract_digits5(self):
try:
extract_digits(03453)
except TypeError:
pass
else:
self.fail("Expected TypeError")
class PreProcessLineCases(LinetypeCases):
def test_ppl_0(self):
self.l0 = 'Lastname, Firstname, (703)-742-0996, Blue, 10013 '
self.assertEqual(preprocess_line(self.l0), self.elements0)
def test_ppl_1(self):
self.l1 = 'Firstname Lastname, Red, 11237, 703 955 0373'
self.assertEqual(preprocess_line(self.l1), self.elements1)
def test_ppl_2(self):
self.l2 = ' Firstname, Lastname, 10013, 646 111 0101, Green'
self.assertEqual(preprocess_line(self.l2), self.elements2)
def test_ppl_3(self):
self.l3 = 'Booker T., Washington, 87360, 373 781 7380, yellow'
self.assertEqual(preprocess_line(self.l3), self.elements3)
def test_ppl_4(self):
self.l4 = 'Chandler, Kerri, (623)-668-9293, pink, 123123121'
self.assertEqual(preprocess_line(self.l4), self.elements4)
def test_ppl_5(self):
self.l5 = 'James Murphy, yellow, 83880, 018 154 6474'
self.assertEqual(preprocess_line(self.l5), self.elements5)
def test_ppl_6(self):
self.l6 = 'asdfawefawea'
self.assertEqual(preprocess_line(self.l6), ['asdfawefawea'])
class ValidatorCases(unittest.TestCase):
def test_validate_color0(self):
self.assertEqual(validate_color('not a color'), 'not a color')
def test_validate_color1(self):
self.assertEqual(validate_color('not a 5olor'), None)
def test_validate_color2(self):
try:
validate_color(55555)
except TypeError:
pass
else:
self.fail("Expected TypeError")
def test_validate_name0(self):
self.assertEqual(validate_name('Chas Good'), 'Chas Good')
def test_validate_name1(self):
self.assertEqual(validate_name('Chas 5ood'), None)
def test_validate_name2(self):
self.assertEqual(validate_name('C.A. Capricorn'), 'C.A. Capricorn')
def test_validate_name3(self):
self.assertEqual(validate_name('Jean-Michel Lo'), 'Jean-Michel Lo')
def test_validate_zipcode0(self):
self.assertEqual(validate_zipcode('90210'), '90210')
def test_validate_zipcode1(self):
self.assertEqual(validate_zipcode('902106'), None)
def test_validate_zipcode2(self):
try:
validate_zipcode(90210)
except TypeError:
pass
else:
self.fail("Expected TypeError")
def test_validate_zipcode_or_raise0(self):
self.assertEqual(validate_zipcode_or_raise('90210'), '90210')
def test_validate_zipcodeor_raise1(self):
try:
validate_zipcode_or_raise('902106')
except DataValueError:
pass
else:
self.fail("Expected DataValueError")
def test_validate_zipcodeor_raise2(self):
try:
validate_zipcode_or_raise(90210)
except TypeError:
pass
else:
self.fail("Expected Typeerror")
def test_validate_phonenumber0(self):
self.assertEqual(validate_phonenumber('7153456434'), '7153456434')
def test_validate_phonenumber1(self):
self.assertEqual(validate_phonenumber('902106'), None)
def test_validate_phonenumber2(self):
try:
validate_phonenumber(7153456434)
except TypeError:
pass
else:
self.fail("Expected Typeerror")
def test_validate_phonenumber_or_raise0(self):
self.assertEqual(
validate_phonenumber_or_raise('715-345-6434'), '715-345-6434'
)
def test_validate_phonenumberor_raise1(self):
try:
validate_phonenumber_or_raise('902106')
except DataValueError:
pass
else:
self.fail("Expected DataValueError")
def test_validate_phonenumberor_raise2(self):
try:
validate_phonenumber_or_raise(90210)
except TypeError:
pass
else:
self.fail("Expected Typeerror")
def test_validate_phonenumber_or_raise3(self):
self.assertEqual(
validate_phonenumber_or_raise('(716) 543-5655'), '716-543-5655'
)
def test_validate_phonenumber_or_raise4(self):
try:
validate_phonenumber_or_raise('(716) 543-56556')
except DataValueError:
pass
else:
self.fail("Expected DataValueError")
def test_validate_mi_or_raise0(self):
self.assertEqual(validate_mi_or_raise("N."), "N.")
def test_validate_mi_or_raise1(self):
try:
validate_mi_or_raise("de la")
except DataValueError:
pass
else:
self.fail("Expected DataValueError")
def test_validate_mi_or_raise2(self):
try:
validate_mi_or_raise("N")
except DataValueError:
pass
else:
self.fail("Expected DataValueError")
def test_validate_mi_or_raise3(self):
try:
validate_mi_or_raise("n")
except DataValueError:
pass
else:
self.fail("Expected DataValueError")
if __name__ == '__main__':
unittest.main()