Consolidate Persimmons shared backend and tests

This commit is contained in:
matcha committed 2026-10-04 02:58:06 +00:00
1 parent d68b0f2840
commit 92151538e7
1 file changed
+74
+74
View File
@@ -0,0 +1,74 @@
from __future__ import annotations
import unittest
from tea_mcp.persimmons import (
LEGACY_REPO,
list_repositories,
metadata_vault,
public_connection,
vault_from_input,
)
class VaultModelTests(unittest.IsolatedAsyncioTestCase):
def test_vault_context_is_explicit_and_legacy_compatible(self):
self.assertEqual(vault_from_input({"vault_kind": "user"}), {"kind": "user"})
self.assertEqual(
vault_from_input({"vault_kind": "repository", "repository": "team/project"}),
{"kind": "repository", "repository": "team/project"},
)
implicit = vault_from_input({})
self.assertEqual(implicit["kind"], "repository")
self.assertEqual(implicit["repository"], LEGACY_REPO)
self.assertTrue(implicit["implicit_legacy"])
self.assertEqual(metadata_vault({}), {"kind": "repository", "repository": LEGACY_REPO})
self.assertEqual(
metadata_vault({"vault": {"kind": "user"}}),
{"kind": "user"},
)
def test_public_record_carries_vault_without_private_value(self):
record = public_connection(
"ABCDEF123456",
{
"name": "Example connection",
"provider": "Gitea",
"account": "",
"credential_type": "PAT",
"scopes": ["Repositories"],
"vault": {"kind": "repository", "repository": "team/project"},
},
available=True,
)
self.assertEqual(record["vault_kind"], "repository")
self.assertEqual(record["repository"], "team/project")
self.assertNotIn("credential", record)
async def test_repository_discovery_only_returns_writable_repos(self):
repos = [
{
"full_name": "team/project",
"private": True,
"owner": {"login": "team"},
"permissions": {"admin": False, "push": True, "pull": True},
},
{
"full_name": "team/read-only",
"private": True,
"owner": {"login": "team"},
"permissions": {"admin": False, "push": False, "pull": True},
},
]
async def request(method, path, *, params=None, json=None):
self.assertEqual((method, path), ("GET", "user/repos"))
return repos
result = await list_repositories(request)
self.assertEqual([item["full_name"] for item in result["repositories"]], ["team/project"])
if __name__ == "__main__":
unittest.main()