spec-b300 / source /tests /conftest.py
khazic's picture
Archive three-epoch run: logs and provenance part 4
c34ff1f verified
Raw History Blame Contribute Delete
1.43 kB
"""Shared pytest configuration and fixtures for all tests."""
import subprocess
from importlib.metadata import version as pkg_version
import pytest
import torch
from packaging.version import Version
from tests.e2e.utils import VLLM_PYTHON
@pytest.fixture
def seed():
torch.manual_seed(42)
yield 42 # noqa: PT022
# Skip decorators
requires_cuda = pytest.mark.skipif(
not torch.cuda.is_available(), reason="CUDA required"
)
def requires_multi_gpu(fn):
fn = pytest.mark.multi_gpu(fn)
return pytest.mark.skipif(
not torch.cuda.is_available() or torch.cuda.device_count() < 2,
reason="2+ GPUs required",
)(fn)
_TRANSFORMERS_VERSION = Version(pkg_version("transformers"))
def requires_transformers_version(min_version: str):
return pytest.mark.skipif(
Version(min_version) > _TRANSFORMERS_VERSION,
reason=(
f"transformers>={min_version} required (installed: {_TRANSFORMERS_VERSION})"
),
)
def requires_vllm_version(min_version: str):
out = subprocess.check_output( # noqa: S603
[
VLLM_PYTHON,
"-c",
"from importlib.metadata import version; print(version('vllm'))",
],
text=True,
)
installed = Version(out.strip())
return pytest.mark.skipif(
Version(min_version) > installed,
reason=f"vllm>={min_version} required (installed: {installed})",
)