from __future__ import annotations import unittest import numpy as np from backend.runtime_utils import ( clone_cache_payload, make_json_compatible, parse_cors_origins, resolve_runtime_paths, ) class RuntimeUtilsTests(unittest.TestCase): def test_parse_cors_origins_splits_and_trims(self) -> None: result = parse_cors_origins(" https://a.com,https://b.com , , ") self.assertEqual(result, ["https://a.com", "https://b.com"]) def test_parse_cors_origins_defaults_to_wildcard(self) -> None: self.assertEqual(parse_cors_origins(" "), ["*"]) def test_clone_cache_payload_returns_independent_copy(self) -> None: original = {"nested": {"value": 1}, "items": [1, 2, 3]} cloned = clone_cache_payload(original) cloned["nested"]["value"] = 7 cloned["items"].append(4) self.assertEqual(original["nested"]["value"], 1) self.assertEqual(original["items"], [1, 2, 3]) def test_make_json_compatible_converts_numpy_scalars_and_arrays(self) -> None: payload = { "flag": np.bool_(True), "score": np.float64(12.5), "count": np.int64(7), "series": np.array([1.0, 2.0]), } result = make_json_compatible(payload) self.assertIs(result["flag"], True) self.assertEqual(result["score"], 12.5) self.assertEqual(result["count"], 7) self.assertEqual(result["series"], [1.0, 2.0]) def test_resolve_runtime_paths_for_dev_mode(self) -> None: paths = resolve_runtime_paths( module_file=r"D:\Python\Kronos_Platform_V1\backend\main.py", is_frozen=False, bundle_dir=r"D:\Bundle", ) self.assertEqual(paths.current_dir, r"D:\Python\Kronos_Platform_V1\backend") self.assertEqual(paths.project_root, r"D:\Python\Kronos_Platform_V1") def test_resolve_runtime_paths_for_frozen_mode(self) -> None: paths = resolve_runtime_paths( module_file=r"D:\Python\Kronos_Platform_V1\backend\main.py", is_frozen=True, bundle_dir=r"D:\Bundle", ) self.assertEqual(paths.current_dir, r"D:\Bundle") self.assertEqual(paths.project_root, r"D:\Bundle") if __name__ == "__main__": unittest.main()