Download tests/test_email_service_catalog.py from webhook/codex: direct link, hf CLI and curl.
- Browser
- Download file 5.31 kB
-
https://huggingface.co/spaces/webhook/codex/resolve/main/tests/test_email_service_catalog.py
- Command line
-
hf download hf://spaces/webhook/codex/tests/test_email_service_catalog.py
-
curl -L -o test_email_service_catalog.py https://huggingface.co/spaces/webhook/codex/resolve/main/tests/test_email_service_catalog.py
5.31 kB
| from contextlib import contextmanager | |
| from pathlib import Path | |
| import src.config.settings as settings_module | |
| from src.core import email_service_catalog | |
| from src.database.models import Base, CpaService, EmailService, Sub2ApiService, TeamManagerService | |
| from src.database.session import DatabaseSessionManager | |
| class DummySettings: | |
| external_api_enabled = True | |
| def _session_context(manager): | |
| session = manager.SessionLocal() | |
| try: | |
| yield session | |
| finally: | |
| session.close() | |
| def _make_db(name: str): | |
| runtime_dir = Path("tests_runtime") | |
| runtime_dir.mkdir(exist_ok=True) | |
| db_path = runtime_dir / name | |
| if db_path.exists(): | |
| db_path.unlink() | |
| manager = DatabaseSessionManager(f"sqlite:///{db_path}") | |
| Base.metadata.create_all(bind=manager.engine) | |
| return manager | |
| def test_build_external_capabilities_does_not_expose_legacy_tempmail_placeholder(monkeypatch): | |
| manager = _make_db("email_service_catalog_no_legacy_tempmail.db") | |
| monkeypatch.setattr(email_service_catalog, "get_db", lambda: _session_context(manager)) | |
| monkeypatch.setattr(email_service_catalog, "get_settings", lambda: DummySettings()) | |
| payload = email_service_catalog.build_external_capabilities() | |
| assert payload["email_types"] == [] | |
| def test_build_external_capabilities_survives_temp_mail_configs_without_worker_credentials(monkeypatch): | |
| manager = _make_db("email_service_catalog_capabilities.db") | |
| with manager.session_scope() as session: | |
| session.add_all([ | |
| EmailService( | |
| service_type="temp_mail", | |
| name="Temp pool", | |
| config={"domains": ["alpha.example.com", "beta.example.com"]}, | |
| enabled=True, | |
| priority=0, | |
| ), | |
| CpaService(name="CPA", api_url="https://cpa.test", api_token="token", enabled=True, priority=0), | |
| Sub2ApiService(name="Sub2", api_url="https://sub2.test", api_key="key", enabled=True, priority=0), | |
| TeamManagerService(name="TM", api_url="https://tm.test", api_key="key", enabled=True, priority=0), | |
| ]) | |
| monkeypatch.setattr(email_service_catalog, "get_db", lambda: _session_context(manager)) | |
| monkeypatch.setattr(email_service_catalog, "get_settings", lambda: DummySettings()) | |
| payload = email_service_catalog.build_external_capabilities() | |
| assert all(item["type"] != "tempmail" for item in payload["email_types"]) | |
| temp_mail = next(item for item in payload["email_types"] if item["type"] == "temp_mail") | |
| assert temp_mail["available"] is True | |
| assert temp_mail["count"] == 1 | |
| assert temp_mail["services"][0]["domain_count"] == 2 | |
| assert temp_mail["services"][0]["domains_preview"] == ["alpha.example.com", "beta.example.com"] | |
| assert temp_mail["services"][0]["domain_source"] == "config_domains" | |
| settings = payload["settings"] | |
| assert settings["external_api_enabled"] is True | |
| assert {provider["provider"] for provider in payload["upload_providers"]} == {"cpa", "sub2api", "tm"} | |
| def test_build_external_capabilities_uses_worker_domain_summary_when_credentials_exist(monkeypatch): | |
| manager = _make_db("email_service_catalog_worker_domains.db") | |
| with manager.session_scope() as session: | |
| session.add( | |
| EmailService( | |
| service_type="temp_mail", | |
| name="Temp worker", | |
| config={ | |
| "base_url": "https://apmail.889110.xyz", | |
| "admin_password": "admin888", | |
| "domain": "fallback.example.com", | |
| }, | |
| enabled=True, | |
| priority=0, | |
| ) | |
| ) | |
| monkeypatch.setattr(email_service_catalog, "get_db", lambda: _session_context(manager)) | |
| monkeypatch.setattr(email_service_catalog, "get_settings", lambda: DummySettings()) | |
| monkeypatch.setattr(email_service_catalog.TempMailService, "_fetch_domains_from_worker", lambda self: {"domains": ["w1.example.com", "w2.example.com"]}) | |
| payload = email_service_catalog.build_external_capabilities() | |
| temp_mail = next(item for item in payload["email_types"] if item["type"] == "temp_mail") | |
| assert temp_mail["services"][0]["domain_source"] == "worker_api" | |
| assert temp_mail["services"][0]["domains_preview"] == ["w1.example.com", "w2.example.com"] | |
| def test_build_external_capabilities_temp_mail_gracefully_handles_empty_summary(monkeypatch): | |
| manager = _make_db("email_service_catalog_empty_domains.db") | |
| with manager.session_scope() as session: | |
| session.add( | |
| EmailService( | |
| service_type="temp_mail", | |
| name="Temp empty", | |
| config={}, | |
| enabled=True, | |
| priority=0, | |
| ) | |
| ) | |
| monkeypatch.setattr(email_service_catalog, "get_db", lambda: _session_context(manager)) | |
| monkeypatch.setattr(email_service_catalog, "get_settings", lambda: DummySettings()) | |
| payload = email_service_catalog.build_external_capabilities() | |
| temp_mail = next(item for item in payload["email_types"] if item["type"] == "temp_mail") | |
| assert temp_mail["services"][0]["domain_source"] == "none" | |
| assert temp_mail["services"][0]["domain_count"] == 0 | |
| assert temp_mail["services"][0]["domains_preview"] == [] | |