"""Tests for Hugging Face adapter publishing helpers.""" from __future__ import annotations import tempfile import unittest from pathlib import Path from scripts.publish_hf_adapter import upload_adapter, validate_adapter_dir class PublishHfAdapterTest(unittest.TestCase): def test_validate_adapter_dir_requires_config_and_weights(self) -> None: with tempfile.TemporaryDirectory() as tmp_dir: adapter_dir = Path(tmp_dir) with self.assertRaises(ValueError): validate_adapter_dir(adapter_dir) def test_upload_adapter_dry_run_does_not_require_hub_client(self) -> None: with tempfile.TemporaryDirectory() as tmp_dir: adapter_dir = Path(tmp_dir) (adapter_dir / "adapter_config.json").write_text("{}", encoding="utf-8") (adapter_dir / "adapter_model.safetensors").write_text("fake", encoding="utf-8") summary = upload_adapter( adapter_dir=adapter_dir, repo_id="qqyule/objectverse-diary-lora-test", private=False, commit_message="Dry run", dry_run=True, ) self.assertFalse(summary["uploaded"]) self.assertEqual(summary["repo_id"], "qqyule/objectverse-diary-lora-test") self.assertIn("adapter_config.json", summary["files"]) if __name__ == "__main__": unittest.main()