test_setup_wizard_proxy_validation.py 757 B

123456789101112131415161718192021
  1. from __future__ import annotations
  2. import core.setup_wizard as setup_wizard
  3. def test_validate_proxy_prints_actionable_message_when_socks_support_missing() -> None:
  4. captured: list[str] = []
  5. class _HttpxMissingSocks:
  6. def get(self, _url: str, **_kwargs): # type: ignore[no-untyped-def]
  7. raise RuntimeError("Using SOCKS proxy, but the 'socksio' package is not installed")
  8. original_httpx = setup_wizard.httpx
  9. setup_wizard.httpx = _HttpxMissingSocks()
  10. try:
  11. setup_wizard._validate_proxy(captured.append, "socks5://127.0.0.1:1080")
  12. finally:
  13. setup_wizard.httpx = original_httpx
  14. assert any("缺少 SOCKS 依赖" in line for line in captured)
  15. assert any("uv sync" in line for line in captured)