mirror of
https://github.com/cnlimiter/codex-register.git
synced 2026-05-06 20:02:51 +08:00
46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
from src.services import EmailServiceType
|
|
from src.services.base import BaseEmailService
|
|
|
|
|
|
class DummyEmailService(BaseEmailService):
|
|
def __init__(self):
|
|
super().__init__(EmailServiceType.TEMPMAIL, name="dummy")
|
|
|
|
def create_email(self, config=None):
|
|
return {"email": "dummy@example.com", "service_id": "dummy"}
|
|
|
|
def get_verification_code(self, **kwargs):
|
|
return None
|
|
|
|
def list_emails(self, **kwargs):
|
|
return []
|
|
|
|
def delete_email(self, email_id: str) -> bool:
|
|
return True
|
|
|
|
def check_health(self) -> bool:
|
|
return True
|
|
|
|
|
|
def test_is_openai_candidate_message_supports_sender_and_content_paths():
|
|
service = DummyEmailService()
|
|
|
|
assert service._is_openai_candidate_message("noreply@openai.com", "hello") is True
|
|
assert service._is_openai_candidate_message("notice@example.com", "Your OpenAI verification code") is True
|
|
assert service._is_openai_candidate_message("notice@example.com", "newsletter") is False
|
|
|
|
|
|
def test_batch_has_openai_sender_only_checks_sender_fields():
|
|
service = DummyEmailService()
|
|
batch = [
|
|
{"from": "notice@example.com", "body": "openai mentioned in content"},
|
|
{"from": "alerts@example.com", "body": "still not sender"},
|
|
]
|
|
|
|
assert service._batch_has_openai_sender(batch, lambda item: item.get("from")) is False
|
|
assert service._batch_has_openai_sender(
|
|
batch + [{"from": "otp@tm1.openai.com", "body": "code"}],
|
|
lambda item: item.get("from"),
|
|
) is True
|
|
|