1+ from typing import Any
2+
13import pytest
24
35from email_validator import EmailSyntaxError , \
46 validate_email , \
57 ValidatedEmail
68
79
10+ def MakeValidatedEmail (** kwargs : Any ) -> ValidatedEmail :
11+ ret = ValidatedEmail ()
12+ for k , v in kwargs .items ():
13+ setattr (ret , k , v )
14+ return ret
15+
16+
817@pytest .mark .parametrize (
918 'email_input,output' ,
1019 [
1120 (
1221 'Abc@example.tld' ,
13- ValidatedEmail (
22+ MakeValidatedEmail (
1423 local_part = 'Abc' ,
1524 ascii_local_part = 'Abc' ,
1625 smtputf8 = False ,
2231 ),
2332 (
2433 'Abc.123@test-example.com' ,
25- ValidatedEmail (
34+ MakeValidatedEmail (
2635 local_part = 'Abc.123' ,
2736 ascii_local_part = 'Abc.123' ,
2837 smtputf8 = False ,
3443 ),
3544 (
3645 'user+mailbox/department=shipping@example.tld' ,
37- ValidatedEmail (
46+ MakeValidatedEmail (
3847 local_part = 'user+mailbox/department=shipping' ,
3948 ascii_local_part = 'user+mailbox/department=shipping' ,
4049 smtputf8 = False ,
4655 ),
4756 (
4857 "!#$%&'*+-/=?^_`.{|}~@example.tld" ,
49- ValidatedEmail (
58+ MakeValidatedEmail (
5059 local_part = "!#$%&'*+-/=?^_`.{|}~" ,
5160 ascii_local_part = "!#$%&'*+-/=?^_`.{|}~" ,
5261 smtputf8 = False ,
5867 ),
5968 (
6069 'jeff@臺網中心.tw' ,
61- ValidatedEmail (
70+ MakeValidatedEmail (
6271 local_part = 'jeff' ,
6372 ascii_local_part = 'jeff' ,
6473 smtputf8 = False ,
7079 ),
7180 (
7281 '"quoted local part"@example.org' ,
73- ValidatedEmail (
82+ MakeValidatedEmail (
7483 local_part = '"quoted local part"' ,
7584 ascii_local_part = '"quoted local part"' ,
7685 smtputf8 = False ,
8291 ),
8392 (
8493 '"de-quoted.local.part"@example.org' ,
85- ValidatedEmail (
94+ MakeValidatedEmail (
8695 local_part = 'de-quoted.local.part' ,
8796 ascii_local_part = 'de-quoted.local.part' ,
8897 smtputf8 = False ,
94103 ),
95104 (
96105 'MyName <me@example.org>' ,
97- ValidatedEmail (
106+ MakeValidatedEmail (
98107 local_part = 'me' ,
99108 ascii_local_part = 'me' ,
100109 smtputf8 = False ,
107116 ),
108117 (
109118 'My Name <me@example.org>' ,
110- ValidatedEmail (
119+ MakeValidatedEmail (
111120 local_part = 'me' ,
112121 ascii_local_part = 'me' ,
113122 smtputf8 = False ,
120129 ),
121130 (
122131 r'"My.\"Na\\me\".Is" <"me \" \\ me"@example.org>' ,
123- ValidatedEmail (
132+ MakeValidatedEmail (
124133 local_part = r'"me \" \\ me"' ,
125134 ascii_local_part = r'"me \" \\ me"' ,
126135 smtputf8 = False ,
@@ -157,7 +166,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
157166 [
158167 (
159168 '伊昭傑@郵件.商務' ,
160- ValidatedEmail (
169+ MakeValidatedEmail (
161170 local_part = '伊昭傑' ,
162171 smtputf8 = True ,
163172 ascii_domain = 'xn--5nqv22n.xn--lhr59c' ,
@@ -167,7 +176,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
167176 ),
168177 (
169178 'राम@मोहन.ईन्फो' ,
170- ValidatedEmail (
179+ MakeValidatedEmail (
171180 local_part = 'राम' ,
172181 smtputf8 = True ,
173182 ascii_domain = 'xn--l2bl7a9d.xn--o1b8dj2ki' ,
@@ -177,7 +186,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
177186 ),
178187 (
179188 'юзер@екзампл.ком' ,
180- ValidatedEmail (
189+ MakeValidatedEmail (
181190 local_part = 'юзер' ,
182191 smtputf8 = True ,
183192 ascii_domain = 'xn--80ajglhfv.xn--j1aef' ,
@@ -187,7 +196,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
187196 ),
188197 (
189198 'θσερ@εχαμπλε.ψομ' ,
190- ValidatedEmail (
199+ MakeValidatedEmail (
191200 local_part = 'θσερ' ,
192201 smtputf8 = True ,
193202 ascii_domain = 'xn--mxahbxey0c.xn--xxaf0a' ,
@@ -197,7 +206,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
197206 ),
198207 (
199208 '葉士豪@臺網中心.tw' ,
200- ValidatedEmail (
209+ MakeValidatedEmail (
201210 local_part = '葉士豪' ,
202211 smtputf8 = True ,
203212 ascii_domain = 'xn--fiqq24b10vi0d.tw' ,
@@ -207,7 +216,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
207216 ),
208217 (
209218 '葉士豪@臺網中心.台灣' ,
210- ValidatedEmail (
219+ MakeValidatedEmail (
211220 local_part = '葉士豪' ,
212221 smtputf8 = True ,
213222 ascii_domain = 'xn--fiqq24b10vi0d.xn--kpry57d' ,
@@ -217,7 +226,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
217226 ),
218227 (
219228 'jeff葉@臺網中心.tw' ,
220- ValidatedEmail (
229+ MakeValidatedEmail (
221230 local_part = 'jeff葉' ,
222231 smtputf8 = True ,
223232 ascii_domain = 'xn--fiqq24b10vi0d.tw' ,
@@ -227,7 +236,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
227236 ),
228237 (
229238 'ñoñó@example.tld' ,
230- ValidatedEmail (
239+ MakeValidatedEmail (
231240 local_part = 'ñoñó' ,
232241 smtputf8 = True ,
233242 ascii_domain = 'example.tld' ,
@@ -237,7 +246,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
237246 ),
238247 (
239248 '我買@example.tld' ,
240- ValidatedEmail (
249+ MakeValidatedEmail (
241250 local_part = '我買' ,
242251 smtputf8 = True ,
243252 ascii_domain = 'example.tld' ,
@@ -247,7 +256,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
247256 ),
248257 (
249258 '甲斐黒川日本@example.tld' ,
250- ValidatedEmail (
259+ MakeValidatedEmail (
251260 local_part = '甲斐黒川日本' ,
252261 smtputf8 = True ,
253262 ascii_domain = 'example.tld' ,
@@ -257,7 +266,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
257266 ),
258267 (
259268 'чебурашкаящик-с-апельсинами.рф@example.tld' ,
260- ValidatedEmail (
269+ MakeValidatedEmail (
261270 local_part = 'чебурашкаящик-с-апельсинами.рф' ,
262271 smtputf8 = True ,
263272 ascii_domain = 'example.tld' ,
@@ -267,7 +276,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
267276 ),
268277 (
269278 'उदाहरण.परीक्ष@domain.with.idn.tld' ,
270- ValidatedEmail (
279+ MakeValidatedEmail (
271280 local_part = 'उदाहरण.परीक्ष' ,
272281 smtputf8 = True ,
273282 ascii_domain = 'domain.with.idn.tld' ,
@@ -277,7 +286,7 @@ def test_email_valid(email_input: str, output: ValidatedEmail) -> None:
277286 ),
278287 (
279288 'ιωάννης@εεττ.gr' ,
280- ValidatedEmail (
289+ MakeValidatedEmail (
281290 local_part = 'ιωάννης' ,
282291 smtputf8 = True ,
283292 ascii_domain = 'xn--qxaa9ba.gr' ,
0 commit comments