Signed-off-by: wangyu <410167048@qq.com> Signed-off-by: [Your Name] <your.email@example.com> Co-authored-by: amy-why-3459 <wuhaiyan17@huawei.com>
47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project
|
|
|
|
"""Shared, importable test helper utilities.
|
|
|
|
Submodules (``assertions``, ``clean``, ``client``, ``media``, ``runtime``, …) are imported
|
|
explicitly by callers. Unit tests for these helpers live under ``tests/``.
|
|
Avoid star-importing everything here: that ran before refactor only inside the
|
|
old monolithic ``conftest``; a greedy ``__init__`` changes import order and can
|
|
affect in-process Omni (``OmniRunner`` / offline e2e) vs subprocess-based
|
|
``OmniServer`` tests.
|
|
"""
|
|
|
|
import pytest
|
|
|
|
|
|
def skip_if_gated_repo_inaccessible(
|
|
repo_id: str,
|
|
*,
|
|
revision: str | None = None,
|
|
filename: str = "config.json",
|
|
) -> None:
|
|
"""Skip the test if a gated HuggingFace repo is not accessible.
|
|
|
|
Tries to download ``filename`` via ``hf_hub_download``, which performs an
|
|
actual file-access check (unlike ``HfApi().model_info()``
|
|
that only checks metadata). If the token has metadata access but not
|
|
file-download access, ``hf_hub_download`` will raise ``GatedRepoError``
|
|
and we skip cleanly.
|
|
"""
|
|
try:
|
|
from huggingface_hub import hf_hub_download
|
|
from huggingface_hub.errors import GatedRepoError, RepositoryNotFoundError
|
|
except Exception:
|
|
return
|
|
try:
|
|
hf_hub_download(repo_id=repo_id, filename=filename, revision=revision)
|
|
except GatedRepoError as exc:
|
|
pytest.skip(
|
|
f"Skipping: gated HF repo {repo_id!r} inaccessible to the current "
|
|
f"HF_TOKEN ({exc}). See docs/contributing/ci/hf_credentials.md."
|
|
)
|
|
except RepositoryNotFoundError as exc:
|
|
pytest.skip(f"Skipping: HF repo {repo_id!r} not found ({exc}).")
|
|
except Exception:
|
|
return
|