fix: validate gitea_edit_pr no-fields before authentication (#43)
gitea_edit_pr called _auth() (and resolved the remote) before checking whether any editable field was provided, so a pure validation error (no fields) surfaced as a RuntimeError "no credentials" in environments without Gitea auth — making test_edit_pr_no_fields_raises depend on credentials/network/env. Move the payload build + no-fields ValueError ahead of _resolve/_auth/URL setup. Behavior is unchanged when fields are provided (same _resolve → _auth → audited PATCH path). No change to auth, retry/backoff, audit, config profiles, or worktree helpers. Tests: add test_edit_pr_no_fields_validates_before_auth asserting the no-fields path raises ValueError and calls neither get_auth_header nor api_request (even with auth mocked to None). Existing edit-PR tests unchanged. Full suite passes with no Gitea credentials (287 passed, 0 failures) — the no-fields test no longer depends on the environment. Closes #43. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -737,6 +737,17 @@ class TestEditPR(unittest.TestCase):
|
||||
with self.assertRaises(ValueError):
|
||||
gitea_edit_pr(pr_number=1)
|
||||
|
||||
@patch("mcp_server.api_request")
|
||||
@patch("mcp_server.get_auth_header")
|
||||
def test_edit_pr_no_fields_validates_before_auth(self, mock_auth, mock_api):
|
||||
# No-fields validation must not depend on credentials/network: it raises
|
||||
# ValueError before touching auth or the API, even with no creds.
|
||||
mock_auth.return_value = None # simulate an unauthenticated environment
|
||||
with self.assertRaises(ValueError):
|
||||
gitea_edit_pr(pr_number=1)
|
||||
mock_auth.assert_not_called()
|
||||
mock_api.assert_not_called()
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Get File
|
||||
|
||||
Reference in New Issue
Block a user