Spaces:
Running
Running
| 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 | |