forked from brazilian-utils/python
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_email.py
More file actions
54 lines (46 loc) · 1.63 KB
/
Copy pathtest_email.py
File metadata and controls
54 lines (46 loc) · 1.63 KB
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
from unittest import TestCase, main
from brutils import is_valid_email
class TestEmailValidation(TestCase):
def test_valid_email(self):
# Valid email addresses
valid_emails = [
"joao.ninguem@gmail.com",
"user123@gmail.com",
"test.email@mydomain.co.uk",
"johndoe@sub.domain.example",
"f99999999@place.university-campus.ac.in",
]
for email in valid_emails:
try:
self.assertTrue(is_valid_email(email))
except: # noqa: E722
print(f"AssertionError for email: {email}")
raise AssertionError
def test_invalid_email(self):
# Invalid email addresses
invalid_emails = [
".joao.ninguem@gmail.com",
"joao ninguem@gmail.com",
"not_an_email",
"@missing_username.com",
"user@incomplete.",
"user@.incomplete",
"user@inva!id.com",
"user@missing-tld.",
]
for email in invalid_emails:
try:
self.assertFalse(is_valid_email(email))
except: # noqa: E722
print(f"AssertionError for email: {email}")
raise AssertionError
def test_non_string_input(self):
# Non-string input should return False
non_strings = [None, 123, True, ["test@example.com"]]
for value in non_strings:
self.assertFalse(is_valid_email(value))
def test_empty_string(self):
# Empty string should return False
self.assertFalse(is_valid_email(""))
if __name__ == "__main__":
main()