Files
gitlab-instance-0a899031_sh/d2ypp2/tests/test_runtime_bootstrap.py
root e638a4656c s
2026-05-18 06:48:30 +00:00

40 lines
1.6 KiB
Python

from __future__ import annotations
import tempfile
import unittest
from pathlib import Path
from unittest.mock import patch
from src.runtime_bootstrap import compute_nofile_target, ensure_runtime_layout, load_msg_push_exports
class RuntimeBootstrapTests(unittest.TestCase):
def test_compute_nofile_target_respects_minimum_and_hard_limit(self) -> None:
self.assertEqual(compute_nofile_target(1024, 524288), 65536)
self.assertEqual(compute_nofile_target(131072, 65535), 65535)
def test_load_msg_push_exports_falls_back_to_noop_when_backup_missing(self) -> None:
with patch("builtins.__import__", side_effect=ModuleNotFoundError("backup")):
funcs = load_msg_push_exports()
self.assertEqual(len(funcs), 7)
result = funcs[0]("demo")
self.assertTrue(result["disabled"])
def test_ensure_runtime_layout_creates_expected_directories(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
issues = ensure_runtime_layout(Path(tmp))
self.assertEqual(issues, [])
self.assertTrue((Path(tmp) / "backup_config").is_dir())
self.assertTrue((Path(tmp) / ".process_runner").is_dir())
def test_ensure_runtime_layout_reports_unwritable_directory(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
root = Path(tmp)
with patch("src.runtime_bootstrap.os.access", side_effect=lambda p, mode: str(p) != str(root / "logs")):
issues = ensure_runtime_layout(root)
self.assertTrue(any("logs" in issue for issue in issues))
if __name__ == "__main__":
unittest.main()