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()