from query.qwen_mt_translate import Translator class _RecordingRedis: def __init__(self): self.setex_calls = [] def setex(self, key, ttl, value): self.setex_calls.append((key, ttl, value)) def test_translate_failure_returns_none_and_skips_cache(monkeypatch): translator = Translator(model="qwen", api_key="dummy-key", use_cache=False) fake_redis = _RecordingRedis() translator.use_cache = True translator.redis_client = fake_redis translator.cache_prefix = "trans" translator.expire_seconds = 60 monkeypatch.setattr(translator, "_translate_qwen", lambda *args, **kwargs: None) result = translator.translate( text="商品标题", target_lang="en", source_lang="zh", prompt="translate for product search", ) assert result is None assert fake_redis.setex_calls == []