"""시험은 프로덕션 Opik 프로젝트에 쓰면 안 된다.

돈 가드(`tests/netprobe.py`)는 집 안(사설) 주소를 통과시킨다 — 요금이 없으니
옳다. 그런데 자체 호스팅 Opik 이 바로 집 안 주소라, 시험이 프로덕션 감사
데이터에 **실제로 쓴다**.

실측(2026-08-23): 프로덕션 trace 표집 4,200건 중 657건(15.6%)이 시험 기록이었다
(prompt='xxxx'·'p'·'SAMPLE prompt'). 발견 경로는
`tests/services/image_capture/test_i2i_capture.py` 가 진짜
`record_provider_call` 을 부르는 것.

막으면 자체 호스팅 Opik 이 죽으므로(2026-08-20 실측) **막지 않고 가른다**.
"""
import os

TEST_PROJECT = "theroad-scene-lab-test"


def test_settings_use_test_opik_project():
    """`settings` 가 시험용 프로젝트를 가리켜야 한다."""
    from app.core.config import settings

    assert settings.opik_project_name == TEST_PROJECT, (
        f"시험이 {settings.opik_project_name!r} 에 쓰고 있다 — "
        f"프로덕션 감사 데이터가 오염된다")


def test_env_var_is_set_for_child_readers():
    """`_init_opik` 과 `ImageTracer` 는 env 를 되읽는다 — 거기도 시험 이름."""
    assert os.environ.get("OPIK_PROJECT_NAME") == TEST_PROJECT


def test_image_tracer_would_use_the_test_project():
    """`ImageTracer` 가 클라이언트를 만들 때 쓰는 이름도 시험용이어야 한다.

    ★진짜 클라이언트를 만들지는 않는다(망을 안 탄다) — 그것이 읽는 값만 본다.
    """
    from app.core.config import settings

    assert getattr(settings, "opik_project_name", None) == TEST_PROJECT
