import sys import os from pathlib import Path from unittest.mock import patch sys.path.insert(0, str(Path(__file__).resolve().parents[1])) from src.extraction.factory import build_extractor def test_auto_uses_llamacpp_on_cpu_basic_space(monkeypatch): monkeypatch.delenv("EXTRACTOR_BACKEND", raising=False) monkeypatch.delenv("LLAMACPP_VISION", raising=False) monkeypatch.setenv("BTE_SPACE_HARDWARE", "cpu-basic") with patch("src.extraction.factory.LlamaCppGPUExtractor") as llama_cls: extractor = build_extractor() llama_cls.assert_called_once_with() assert extractor is llama_cls.return_value assert os.environ["LLAMACPP_VISION"] == "1" def test_auto_uses_transformers_when_hardware_is_not_cpu_basic(monkeypatch): monkeypatch.delenv("EXTRACTOR_BACKEND", raising=False) monkeypatch.setenv("BTE_SPACE_HARDWARE", "zero-a10g") with patch("src.extraction.factory.AutoExtractor") as auto_cls: extractor = build_extractor(model="demo/model") auto_cls.assert_called_once_with(model_id="demo/model") assert extractor is auto_cls.return_value