fix: seed profile gate for TestIssueLockArtifactWarning (Closes #359)
gitea_lock_issue is profile-gated via task_capability_map (gitea.issue.comment); without GITEA_ALLOWED_OPERATIONS the call fail-closes before the artifact-warning logic runs, so the test asserted success on a permission block. Seed the environment in setUp/tearDown exactly like tests/test_mcp_server.py::TestIssueLocking and complete the mocked git state with base_equivalent, inspected_git_root, and base_branch so the newer lock-worktree base-equivalence gate passes. The test still verifies the artifact warning fires for '?? _emit_payload.py'. Full suite now passes with zero failures. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
@@ -62,7 +62,24 @@ class TestPreflightWarnings(unittest.TestCase):
|
|||||||
self.assertIn("_encode_commit_payload.py", status["preflight_warnings"][0])
|
self.assertIn("_encode_commit_payload.py", status["preflight_warnings"][0])
|
||||||
|
|
||||||
|
|
||||||
|
# Issue-write tools are profile-gated (#69); gitea_lock_issue requires
|
||||||
|
# gitea.issue.comment (see task_capability_map), so the gate must be
|
||||||
|
# seeded exactly like tests/test_mcp_server.py::TestIssueLocking (#359).
|
||||||
|
ISSUE_WRITE_ENV = {
|
||||||
|
"GITEA_ALLOWED_OPERATIONS": (
|
||||||
|
"gitea.issue.create,gitea.issue.close,gitea.issue.comment"
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class TestIssueLockArtifactWarning(unittest.TestCase):
|
class TestIssueLockArtifactWarning(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self._env_patcher = patch.dict(os.environ, ISSUE_WRITE_ENV, clear=True)
|
||||||
|
self._env_patcher.start()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
self._env_patcher.stop()
|
||||||
|
|
||||||
@patch("mcp_server.api_get_all", return_value=[])
|
@patch("mcp_server.api_get_all", return_value=[])
|
||||||
@patch("mcp_server._auth", return_value="token x")
|
@patch("mcp_server._auth", return_value="token x")
|
||||||
@patch("mcp_server._resolve", return_value=("h", "o", "r"))
|
@patch("mcp_server._resolve", return_value=("h", "o", "r"))
|
||||||
@@ -72,6 +89,9 @@ class TestIssueLockArtifactWarning(unittest.TestCase):
|
|||||||
mock_state.return_value = {
|
mock_state.return_value = {
|
||||||
"current_branch": "master",
|
"current_branch": "master",
|
||||||
"porcelain_status": "?? _emit_payload.py\n",
|
"porcelain_status": "?? _emit_payload.py\n",
|
||||||
|
"base_equivalent": True,
|
||||||
|
"inspected_git_root": "/scratch/wt",
|
||||||
|
"base_branch": "origin/master",
|
||||||
}
|
}
|
||||||
result = mcp_server.gitea_lock_issue(
|
result = mcp_server.gitea_lock_issue(
|
||||||
issue_number=261,
|
issue_number=261,
|
||||||
|
|||||||
Reference in New Issue
Block a user