import subprocess import sys from typing import Any import pytest from zbt.commands import run_refund_worker def test_load_refund_worker_uses_dedicated_builder( monkeypatch: pytest.MonkeyPatch, ) -> None: sentinel = object() received_settings: list[Any] = [] def build_worker(settings: Any) -> object: received_settings.append(settings) return sentinel monkeypatch.setattr( run_refund_worker, "build_refund_worker", build_worker, raising=False, ) worker = run_refund_worker.load_refund_worker() assert worker is sentinel assert len(received_settings) == 1 def test_refund_worker_factory_does_not_import_ai_runtime() -> None: script = """ import sys import zbt.commands.refund_worker_factory forbidden = [ "zbt.main", "langchain.agents", "transformers", "torch", "pymilvus", ] loaded = [name for name in forbidden if name in sys.modules] if loaded: raise SystemExit("unexpected heavy modules: " + ", ".join(loaded)) """ completed = subprocess.run( [sys.executable, "-c", script], check=False, capture_output=True, text=True, timeout=10, ) assert completed.returncode == 0, completed.stderr