"""
conftest.py — Configuration globale pytest.

Les tests marqués @pytest.mark.integration (appels LLM réels, tokens consommés)
sont SKIPPÉS par défaut.
Pour les activer : pytest --run-integration
"""
import pytest


def pytest_addoption(parser):
    parser.addoption(
        "--run-integration",
        action="store_true",
        default=False,
        help="Active les tests LLM/API qui consomment des tokens (désactivés par défaut)",
    )
    parser.addoption(
        "--run-deployment",
        action="store_true",
        default=False,
        help="Active les smoke tests sur un serveur live (nécessite --base-url)",
    )
    parser.addoption(
        "--base-url",
        default="http://localhost:8000",
        help="URL du serveur pour les tests de déploiement (défaut: http://localhost:8000)",
    )
    parser.addoption(
        "--api-key",
        default="",
        help="Valeur du header X-API-Key pour les tests de déploiement",
    )


def pytest_collection_modifyitems(config, items):
    if not config.getoption("--run-integration"):
        skip_integration = pytest.mark.skip(
            reason="Test LLM (consomme des tokens) — relancer avec --run-integration"
        )
        for item in items:
            if "integration" in item.keywords:
                item.add_marker(skip_integration)

    if not config.getoption("--run-deployment"):
        skip_deployment = pytest.mark.skip(
            reason="Test serveur live — relancer avec --run-deployment [--base-url URL]"
        )
        for item in items:
            if "deployment" in item.keywords:
                item.add_marker(skip_deployment)
