Spaces:
Running
Running
File size: 1,503 Bytes
03a907a | 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 | import pytest
from dataset.problem_22.buggy import parse_and_validate_emails
def test_parse_and_validate_emails():
emails = [
"user1@example.com",
"user2@test.org",
"invalid_email@example.com ", # Trailing space
"bad-format.com", # No @ symbol
"user@notallowed.com", # Not in allowed domains
"user_3@example.com"
]
allowed_domains = {"example.com", "test.org"}
result = parse_and_validate_emails(emails, allowed_domains)
# valid_emails: "user1@example.com", "user2@test.org", "user_3@example.com"
# "invalid_email@example.com " should be valid after trimming space
assert len(result['valid_emails']) == 4
assert "invalid_email@example.com" in result['valid_emails']
# invalid_emails: "bad-format.com", "user@notallowed.com"
assert len(result['invalid_emails']) == 2
assert "bad-format.com" in result['invalid_emails']
assert "user@notallowed.com" in result['invalid_emails']
# domain_counts
assert isinstance(result['domain_counts'], dict)
assert result['domain_counts']['example.com'] == 3
assert result['domain_counts']['test.org'] == 1
def test_empty_list():
result = parse_and_validate_emails([], {"example.com"})
assert result['valid_emails'] == []
assert result['invalid_emails'] == []
assert isinstance(result['domain_counts'], dict)
assert len(result['domain_counts']) == 0
|