File size: 1,594 Bytes
db06ffa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import json
import tempfile
import unittest
from pathlib import Path

from zsgdp.cli import main
from zsgdp.deployment import check_huggingface_space


class DeploymentReadinessTests(unittest.TestCase):
    def test_space_check_accepts_current_project(self):
        report = check_huggingface_space(Path.cwd())

        self.assertTrue(report["valid"])
        self.assertEqual(report["target"], "huggingface_spaces")
        self.assertEqual(report["space_name"], "zeroshotGPU")
        self.assertEqual(report["gpu_models_target"], "zeroshotGPU")
        self.assertEqual(report["failure_count"], 0)
        self.assertTrue(any(check["status"] == "warn" for check in report["checks"]))

    def test_space_check_cli_writes_report(self):
        with tempfile.TemporaryDirectory() as tmp:
            output_path = Path(tmp) / "space_report.json"

            code = main(["space-check", "--root", str(Path.cwd()), "--output", str(output_path)])

            self.assertEqual(code, 0)
            self.assertTrue(output_path.exists())
            self.assertTrue(json.loads(output_path.read_text(encoding="utf-8"))["valid"])

    def test_space_check_reports_missing_files(self):
        with tempfile.TemporaryDirectory() as tmp:
            root = Path(tmp)

            report = check_huggingface_space(root)

            self.assertFalse(report["valid"])
            self.assertGreater(report["failure_count"], 0)
            self.assertTrue(any(check["id"] == "required_file" and check["status"] == "fail" for check in report["checks"]))


if __name__ == "__main__":
    unittest.main()