"""pytest 共通設定: anthropic SDK 未導入環境でも migrator をテストするためのスタブ.

src.migrator は `from anthropic import Anthropic, RateLimitError, ...` を
モジュールロード時に行う。プロンプト生成や retry ロジックなど、API を実際に
叩かない純粋部分を SDK 無しでテストできるよう、anthropic が未導入なら最小限の
スタブを sys.modules に登録する（導入済みなら本物を使う）。
"""
from __future__ import annotations

import sys
import types


def _install_anthropic_stub() -> None:
    try:
        import anthropic  # noqa: F401
        return
    except ModuleNotFoundError:
        pass

    mod = types.ModuleType("anthropic")

    class Anthropic:
        def __init__(self, *args, **kwargs):
            self.messages = types.SimpleNamespace(create=lambda *a, **k: None)

    class _Err(Exception):
        pass

    mod.Anthropic = Anthropic
    mod.RateLimitError = type("RateLimitError", (_Err,), {})
    mod.APITimeoutError = type("APITimeoutError", (_Err,), {})
    mod.APIStatusError = type("APIStatusError", (_Err,), {})
    mod.APIError = type("APIError", (_Err,), {})
    sys.modules["anthropic"] = mod


_install_anthropic_stub()
