facecloak / tests /test_deploy.py
a-01a's picture
Deploy FaceCloak
0faa034 verified
from pathlib import Path
import shutil
import uuid
from facecloak.deploy import (
HF_TOKEN_ENV_VAR,
create_or_update_space,
default_space_repo_id,
read_env_file,
)
class DummyRuntime:
stage = "BUILDING"
hardware = "cpu-basic"
class DummyCommit:
oid = "abc123"
class DummyApi:
def __init__(self) -> None:
self.created = None
self.uploaded = None
def whoami(self, token, cache=False):
return {"name": "example-user"}
def create_repo(self, **kwargs):
self.created = kwargs
def upload_folder(self, **kwargs):
self.uploaded = kwargs
return DummyCommit()
def get_space_runtime(self, repo_id, token=None):
return DummyRuntime()
def _local_temp_dir(name: str) -> Path:
path = Path("tests") / "_tmp" / f"{name}_{uuid.uuid4().hex}"
path.mkdir(parents=True, exist_ok=True)
return path
def test_read_env_file_parses_simple_key_values() -> None:
temp_dir = _local_temp_dir("env")
env_path = temp_dir / ".env"
env_path.write_text(
f"{HF_TOKEN_ENV_VAR}=hf_test_token\nOTHER=value\n", encoding="utf-8"
)
values = read_env_file(env_path)
assert values[HF_TOKEN_ENV_VAR] == "hf_test_token"
assert values["OTHER"] == "value"
shutil.rmtree(temp_dir)
def test_default_space_repo_id_uses_hf_username() -> None:
repo_id = default_space_repo_id(DummyApi(), "hf_test_token")
assert repo_id == "example-user/facecloak"
def test_create_or_update_space_uses_space_repo_settings() -> None:
api = DummyApi()
temp_dir = _local_temp_dir("deploy")
folder_path = temp_dir / "repo"
folder_path.mkdir()
(folder_path / "app.py").write_text("print('ok')\n", encoding="utf-8")
result = create_or_update_space(
api=api,
token="hf_test_token",
repo_id="example-user/facecloak",
folder_path=folder_path,
)
assert api.created["repo_type"] == "space"
assert api.created["space_sdk"] == "gradio"
assert api.uploaded["repo_type"] == "space"
assert result.repo_id == "example-user/facecloak"
assert result.runtime_stage == "BUILDING"
shutil.rmtree(temp_dir)