blob: df1e21363611b2400e6cf9a5d520171844e2b6f1 [file]
from __future__ import annotations
import os
import sys
import unittest
from pathlib import Path
from unittest.mock import patch
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / "src"))
from iotdb_mcp_server.runtime_policy import ( # noqa: E402
dynamic_policy_snapshot,
reset_session_policy,
set_session_policy,
strict_permission_enforcement,
)
class RuntimePolicyTest(unittest.TestCase):
def tearDown(self) -> None:
reset_session_policy()
def test_targets_json_is_fully_withheld_from_policy_snapshot(self) -> None:
mcp_env = {
"TIMESEEK_IOTDB_TARGETS_JSON": (
'{"targets":{"prod":{"password":"secret",'
'"last_known_good_credential":{"password":"known-good"}}}}'
),
"IOTDB_ENABLE_WRITE_DML": "false",
}
with patch(
"iotdb_mcp_server.runtime_policy._load_mcp_env",
return_value=(mcp_env, "/tmp/.mcp.json"),
):
snapshot = dynamic_policy_snapshot()
self.assertEqual(snapshot["mcp_env"]["TIMESEEK_IOTDB_TARGETS_JSON"], "***")
self.assertEqual(snapshot["mcp_env"]["IOTDB_ENABLE_WRITE_DML"], "false")
self.assertNotIn("secret", str(snapshot))
self.assertNotIn("known-good", str(snapshot))
def test_readonly_preset_preserves_process_strict_enforcement(self) -> None:
with (
patch(
"iotdb_mcp_server.runtime_policy._load_mcp_env",
return_value=({}, ""),
),
patch.dict(
os.environ,
{"IOTDB_STRICT_PERMISSION_ENFORCEMENT": "true"},
clear=True,
),
):
snapshot = set_session_policy(preset="readonly")
self.assertTrue(strict_permission_enforcement())
self.assertNotIn(
"IOTDB_STRICT_PERMISSION_ENFORCEMENT",
snapshot["session_policy"],
)
def test_replacing_with_preset_preserves_session_enforcement(self) -> None:
with (
patch(
"iotdb_mcp_server.runtime_policy._load_mcp_env",
return_value=({}, ""),
),
patch.dict(os.environ, {}, clear=True),
):
set_session_policy({"TIMESEEK_MCP_PERMISSION_ENFORCEMENT": "strict"})
snapshot = set_session_policy(preset="readonly", replace=True)
self.assertTrue(strict_permission_enforcement())
self.assertEqual(
snapshot["session_policy"]["TIMESEEK_MCP_PERMISSION_ENFORCEMENT"],
"strict",
)
if __name__ == "__main__":
unittest.main()