simplify Athena runtime and centralize MCP management
This commit is contained in:
@@ -66,6 +66,41 @@ class RegistryTests(unittest.TestCase):
|
||||
con.close()
|
||||
self.assertEqual(ids, ["unmanaged", "one"])
|
||||
|
||||
def test_production_registry_has_unique_ids_and_fritzbox(self):
|
||||
document = json.loads((ROOT / "config/mcp-registry.json").read_text())
|
||||
ids = [item["id"] for item in document["servers"]]
|
||||
hermes_ids = [
|
||||
item.get("hermes_id", item["id"])
|
||||
for item in document["servers"] if "hermes" in item.get("clients", [])
|
||||
]
|
||||
self.assertEqual(len(ids), len(set(ids)))
|
||||
self.assertEqual(len(hermes_ids), len(set(hermes_ids)))
|
||||
fritz = next(item for item in document["servers"] if item["id"] == "fritzbox-local")
|
||||
self.assertEqual(fritz["hub"]["type"], "stdio")
|
||||
self.assertIn("fritz-mcp", fritz["hub"]["args"][-1])
|
||||
self.assertEqual(len(fritz["tool_include"]), 4)
|
||||
|
||||
def test_hermes_tool_filter_is_generated(self):
|
||||
item = {
|
||||
"id": "wide", "name": "Wide", "description": "Test",
|
||||
"url": "http://wide/mcp", "clients": ["hermes"],
|
||||
"tool_include": ["list", "describe", "call"],
|
||||
}
|
||||
block = self.module.hermes_block([item])
|
||||
self.assertIn(" tools:\n include:", block)
|
||||
self.assertIn(' - "describe"', block)
|
||||
|
||||
def test_raw_mcphub_token_can_replace_host_specific_env_file(self):
|
||||
item = {
|
||||
"id": "hub", "name": "Hub", "description": "Test",
|
||||
"url": "http://hub/mcp/test", "clients": ["hermes"],
|
||||
"env_file": "/missing/client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
}
|
||||
self.module.CLIENT_TOKEN = "local-token"
|
||||
self.assertTrue(self.module.enabled(item))
|
||||
self.assertEqual(self.module.resolved(item), ("http://hub/mcp/test", "local-token"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user