File size: 2,009 Bytes
76f3fc9 fa6cb6c 76f3fc9 31e53d8 8fe1fb3 31e53d8 8fe1fb3 4d28286 9718307 4d28286 31e53d8 fa6cb6c 76f3fc9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | import ast
import json
import unittest
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
class HuggingFaceEntrypointTests(unittest.TestCase):
def test_entrypoint_calls_ui_launch_with_supported_keywords(self):
tree = ast.parse((REPO_ROOT / "app.py").read_text(encoding="utf-8"))
launch_calls = [
node
for node in ast.walk(tree)
if isinstance(node, ast.Call)
and isinstance(node.func, ast.Name)
and node.func.id == "launch"
]
self.assertEqual(len(launch_calls), 1)
self.assertEqual(
{keyword.arg for keyword in launch_calls[0].keywords},
{"host", "port", "share"},
)
def test_space_metadata_pins_python_310(self):
readme = (REPO_ROOT / "README_HF.md").read_text(encoding="utf-8")
self.assertIn('python_version: "3.10"', readme)
def test_space_requirements_keep_gradio_5_audio_separator_pins(self):
requirements = (REPO_ROOT / "requirements_hf.txt").read_text(
encoding="utf-8"
)
self.assertIn("gradio==5.49.1", requirements)
self.assertIn("fastapi>=0.115,<1", requirements)
self.assertIn("pydantic>=2,<3", requirements)
self.assertIn("jinja2>=3.1,<4", requirements)
self.assertIn("pandas>=2,<3", requirements)
self.assertIn("numpy>=2,<3", requirements)
self.assertIn("audio-separator[cpu]==0.44.1", requirements)
self.assertIn("huggingface_hub>=0.19.0,<1.0", requirements)
def test_cover_current_default_does_not_require_untracked_official_tree(self):
config = json.loads(
(REPO_ROOT / "configs" / "config.json")
.read_text(encoding="utf-8")
)
self.assertEqual(config["cover"]["vc_pipeline_mode"], "current")
self.assertFalse(config["cover"]["use_official"])
if __name__ == "__main__":
unittest.main()
|