重新调整模板
This commit is contained in:
72
tests/test_runtime_diagnostics_integration.py
Normal file
72
tests/test_runtime_diagnostics_integration.py
Normal file
@@ -0,0 +1,72 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Architecture guard: runtime diagnostics must come from platform-kit."""
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import unittest
|
||||
|
||||
from _support import get_scripts_dir, get_skill_root
|
||||
|
||||
_FORBIDDEN_DEFINITIONS = (
|
||||
"class RuntimeDiagnostics",
|
||||
"class RuntimeIssue",
|
||||
"def collect_runtime_diagnostics",
|
||||
"def format_runtime_health_lines",
|
||||
"def runtime_diagnostics_dict",
|
||||
"def _is_git_lfs_pointer",
|
||||
"def _is_usable_audio_file",
|
||||
"def _probe_background_music",
|
||||
)
|
||||
|
||||
|
||||
class TestRuntimeDiagnosticsIntegration(unittest.TestCase):
|
||||
def test_no_vendored_jiangchang_skill_core(self) -> None:
|
||||
vendored = os.path.join(get_scripts_dir(), "jiangchang_skill_core")
|
||||
self.assertFalse(os.path.isdir(vendored), vendored)
|
||||
|
||||
def test_runtime_diagnostics_module_removed(self) -> None:
|
||||
legacy = os.path.join(get_scripts_dir(), "util", "runtime_diagnostics.py")
|
||||
self.assertFalse(os.path.isfile(legacy), legacy)
|
||||
|
||||
def test_util_py_files_do_not_reimplement_runtime_diagnostics(self) -> None:
|
||||
util_dir = os.path.join(get_scripts_dir(), "util")
|
||||
for name in os.listdir(util_dir):
|
||||
if not name.endswith(".py"):
|
||||
continue
|
||||
path = os.path.join(util_dir, name)
|
||||
with open(path, encoding="utf-8") as f:
|
||||
text = f.read()
|
||||
for forbidden in _FORBIDDEN_DEFINITIONS:
|
||||
self.assertNotIn(
|
||||
forbidden,
|
||||
text,
|
||||
msg=f"{name} must not define {forbidden}",
|
||||
)
|
||||
|
||||
def test_task_service_imports_platform_kit_diagnostics(self) -> None:
|
||||
path = os.path.join(get_scripts_dir(), "service", "task_service.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
text = f.read()
|
||||
self.assertIn("from jiangchang_skill_core import", text)
|
||||
self.assertIn("collect_runtime_diagnostics", text)
|
||||
self.assertIn("format_runtime_health_lines", text)
|
||||
self.assertIn("PLATFORM_KIT_MIN_VERSION", text)
|
||||
self.assertNotIn("from util.runtime_diagnostics import", text)
|
||||
|
||||
def test_collect_runtime_diagnostics_callable_from_platform_kit(self) -> None:
|
||||
from jiangchang_skill_core import collect_runtime_diagnostics
|
||||
|
||||
from util.constants import PLATFORM_KIT_MIN_VERSION, SKILL_SLUG
|
||||
from util.runtime_paths import get_skill_root
|
||||
|
||||
diag = collect_runtime_diagnostics(
|
||||
skill_slug=SKILL_SLUG,
|
||||
platform_kit_min_version=PLATFORM_KIT_MIN_VERSION,
|
||||
skill_root=get_skill_root(),
|
||||
)
|
||||
self.assertEqual(diag.skill_slug, SKILL_SLUG)
|
||||
self.assertEqual(diag.platform_kit_min_version, PLATFORM_KIT_MIN_VERSION)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user