contrib/conftest.py (28 lines of code) (raw):

import os import time import uuid from typing import Generator import pytest from huggingface_hub import delete_repo @pytest.fixture(scope="session") def token() -> str: # Not critical, only usable on the sandboxed CI instance. return "hf_94wBhPGp6KrrTH3KDchhKpRxZwd6dmHWLL" @pytest.fixture(scope="session") def user() -> str: return "__DUMMY_TRANSFORMERS_USER__" @pytest.fixture(autouse=True, scope="session") def login_as_dummy_user(token: str) -> Generator: """Log in with dummy user token.""" # Cannot use `monkeypatch` fixture since we want it to be "session-scoped" old_token = os.environ["HF_TOKEN"] os.environ["HF_TOKEN"] = token yield os.environ["HF_TOKEN"] = old_token @pytest.fixture def repo_name(request) -> None: """ Return a readable pseudo-unique repository name for tests. Example: "repo-2fe93f-16599646671840" """ prefix = request.module.__name__ # example: `test_timm` id = uuid.uuid4().hex[:6] ts = int(time.time() * 10e3) return f"repo-{prefix}-{id}-{ts}" @pytest.fixture def cleanup_repo(user: str, repo_name: str) -> None: """Delete the repo at the end of the tests. TODO: Adapt to handle `repo_type` as well """ yield # run test delete_repo(repo_id=f"{user}/{repo_name}")