46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
"""E2E test configuration.
|
|
|
|
These tests are SKIPPED by default. To run them set ``LLM_API_KEY`` and
|
|
``LLM_PROVIDER`` (and any model overrides) in the environment, then run:
|
|
|
|
pytest tests/e2e -m e2e
|
|
|
|
They exercise the full OntoCast workflow end-to-end — LLM calls included —
|
|
and so they cost real money. Keep them out of CI default runs.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parents[2]
|
|
for p in (REPO_ROOT, REPO_ROOT / "vendored" / "ontocast"):
|
|
if str(p) not in sys.path:
|
|
sys.path.insert(0, str(p))
|
|
|
|
|
|
def pytest_collection_modifyitems(
|
|
config: pytest.Config, items: list[pytest.Item]
|
|
) -> None:
|
|
"""Skip all e2e tests when LLM_API_KEY is not configured."""
|
|
if os.environ.get("LLM_API_KEY"):
|
|
return
|
|
skip_marker = pytest.mark.skip(
|
|
reason="E2E tests require LLM_API_KEY in environment."
|
|
)
|
|
for item in items:
|
|
# Only apply to tests in this directory tree.
|
|
if "tests/e2e" in str(item.fspath).replace("\\", "/"):
|
|
item.add_marker(skip_marker)
|
|
|
|
|
|
def pytest_configure(config: pytest.Config) -> None:
|
|
config.addinivalue_line(
|
|
"markers",
|
|
"e2e: end-to-end test that requires a real LLM and may cost money",
|
|
)
|