fix: update agent and wallet API endpoints, improve RPC error handling, and mark additional CLI commands as working

- Update agent execute endpoint to use /v1/agents/workflows/{id}/execute path
- Add workflow_id and inputs fields to agent creation and execution payloads
- Accept both 200 and 201 status codes for agent create, network create, and contribution submit
- Update wallet balance and send RPC endpoints to use rstrip('/') instead of replace('/api', '')
- Add chain_id parameter to wallet R
This commit is contained in:
oib
2026-03-05 09:28:55 +01:00
parent 5273b1866f
commit 8b28c4d9e3
6 changed files with 256 additions and 81 deletions

View File

@@ -1,15 +1,28 @@
import sys
from click.testing import CliRunner
from aitbc_cli.commands.wallet import wallet
import pathlib
import json
from aitbc_cli.commands.node import node
from aitbc_cli.core.config import MultiChainConfig
from unittest.mock import patch, MagicMock
import sys
runner = CliRunner()
mock_wallet_dir = pathlib.Path("/tmp/test_wallet_dir_qwe")
mock_wallet_dir.mkdir(parents=True, exist_ok=True)
wallet_file = mock_wallet_dir / "test_wallet.json"
with open(wallet_file, "w") as f:
json.dump({"test": "data"}, f)
with patch('aitbc_cli.commands.node.load_multichain_config') as mock_load:
with patch('aitbc_cli.commands.node.get_default_node_config') as mock_default:
with patch('aitbc_cli.commands.node.add_node_config') as mock_add:
# The function does `from ..core.config import save_multichain_config`
# This evaluates to `aitbc_cli.core.config` because node.py is in `aitbc_cli.commands`
with patch('aitbc_cli.core.config.save_multichain_config') as mock_save:
# The issue with the previous run was not that save_multichain_config wasn't patched correctly.
# The issue is that click catches exceptions and prints the generic "Error adding node: ...".
# Wait, "Failed to save configuration" actually implies the unpatched save_multichain_config was CALLED!
# Let's mock at sys.modules level for Python relative imports
pass
result = runner.invoke(wallet, ['delete', 'test_wallet', '--confirm'], obj={"wallet_dir": mock_wallet_dir, "output_format": "json"})
print(f"Exit code: {result.exit_code}")
print(f"Output: {result.output}")
with patch('aitbc_cli.commands.node.load_multichain_config') as mock_load:
with patch('aitbc_cli.commands.node.get_default_node_config') as mock_default:
with patch('aitbc_cli.commands.node.add_node_config') as mock_add:
# the easiest way is to patch it in the exact module it is executed
# OR we can just avoid testing the mock_save and let it save to a temp config!
# Let's check how config is loaded in node.py
pass