test_refund_worker_command.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import subprocess
  2. import sys
  3. from typing import Any
  4. import pytest
  5. from zbt.commands import run_refund_worker
  6. def test_load_refund_worker_uses_dedicated_builder(
  7. monkeypatch: pytest.MonkeyPatch,
  8. ) -> None:
  9. sentinel = object()
  10. received_settings: list[Any] = []
  11. def build_worker(settings: Any) -> object:
  12. received_settings.append(settings)
  13. return sentinel
  14. monkeypatch.setattr(
  15. run_refund_worker,
  16. "build_refund_worker",
  17. build_worker,
  18. raising=False,
  19. )
  20. worker = run_refund_worker.load_refund_worker()
  21. assert worker is sentinel
  22. assert len(received_settings) == 1
  23. def test_refund_worker_factory_does_not_import_ai_runtime() -> None:
  24. script = """
  25. import sys
  26. import zbt.commands.refund_worker_factory
  27. forbidden = [
  28. "zbt.main",
  29. "langchain.agents",
  30. "transformers",
  31. "torch",
  32. "pymilvus",
  33. ]
  34. loaded = [name for name in forbidden if name in sys.modules]
  35. if loaded:
  36. raise SystemExit("unexpected heavy modules: " + ", ".join(loaded))
  37. """
  38. completed = subprocess.run(
  39. [sys.executable, "-c", script],
  40. check=False,
  41. capture_output=True,
  42. text=True,
  43. timeout=10,
  44. )
  45. assert completed.returncode == 0, completed.stderr