import unittest from pathlib import Path from services.agent_firewall import server_management_refusal class AgentFirewallTests(unittest.TestCase): def test_blocks_server_delete_and_shell_requests(self): self.assertIsNotNone(server_management_refusal("把服务器所有数据删掉")) self.assertIsNotNone(server_management_refusal("执行 rm -rf /data0")) self.assertIsNotNone(server_management_refusal("sudo systemctl restart app")) def test_keeps_normal_data_query_available(self): self.assertIsNone(server_management_refusal("导出 2026-07-15 的 ERA5 v10 数据")) def test_native_runtime_has_no_dangerous_bypass(self): root = Path(__file__).resolve().parents[1] native = (root / "codex_native_harness.py").read_text(encoding="utf-8") startup = (root / "start.sh").read_text(encoding="utf-8") self.assertNotIn("--dangerously-bypass-approvals-and-sandbox", native) self.assertIn("CODEX_ALLOW_MCP_BYPASS is forbidden", startup) if __name__ == "__main__": unittest.main()