docs: update CLI command syntax across workflow documentation
Some checks failed
API Endpoint Tests / test-api-endpoints (push) Waiting to run
Documentation Validation / validate-docs (push) Waiting to run
CLI Tests / test-cli (push) Has been cancelled
Security Scanning / security-scan (push) Has been cancelled
Integration Tests / test-service-integration (push) Has been cancelled
Python Tests / test-python (push) Has been cancelled

- Updated marketplace commands: `marketplace --action` → `market` subcommands
- Updated wallet commands: direct flags → `wallet` subcommands
- Updated AI commands: `ai-submit`, `ai-status` → `ai submit`, `ai status`
- Updated blockchain commands: `chain` → `blockchain info`
- Standardized command structure across all workflow files
- Affected files: MULTI_NODE_MASTER_INDEX.md, TEST_MASTER_INDEX.md, multi-node-blockchain-marketplace
This commit is contained in:
aitbc
2026-04-08 12:10:21 +02:00
parent ef4a1c0e87
commit 40ddf89b9c
251 changed files with 3555 additions and 61407 deletions

View File

@@ -5,6 +5,7 @@ Enhanced conftest for pytest with AITBC CLI support and comprehensive test cover
import pytest
import sys
import os
import subprocess
from pathlib import Path
from unittest.mock import Mock
from click.testing import CliRunner
@@ -149,9 +150,19 @@ def pytest_collection_modifyitems(config, items):
@pytest.fixture
def aitbc_cli_runner():
"""Create AITBC CLI runner with test configuration"""
from aitbc_cli.main import cli
runner = CliRunner()
cli_path = project_root / "aitbc-cli"
def runner(*args, env=None, cwd=None):
merged_env = os.environ.copy()
if env:
merged_env.update(env)
return subprocess.run(
[str(cli_path), *args],
capture_output=True,
text=True,
cwd=str(cwd or project_root),
env=merged_env,
)
# Default test configuration
default_config = {

View File

@@ -3,34 +3,33 @@
echo "=== AITBC Integration Tests ==="
# Set Python path
PYTHON_CMD="/opt/aitbc/venv/bin/python"
CLI_CMD="/opt/aitbc/aitbc-cli"
# Test 1: Basic connectivity
echo "1. Testing connectivity..."
curl -s http://localhost:8006/rpc/head >/dev/null && echo "✅ RPC accessible" || echo "❌ RPC failed"
ssh -i ~/.ssh/id_ed25519_aitbc -o StrictHostKeyChecking=no root@aitbc1 'curl -s http://localhost:8006/rpc/head' >/dev/null && echo "✅ Remote RPC accessible" || echo "❌ Remote RPC failed"
ssh -i ~/.ssh/id_ed25519_aitbc -o StrictHostKeyChecking=no root@aitbc1 'curl -s http://localhost:8007/rpc/head' >/dev/null && echo "✅ Remote RPC accessible" || echo "❌ Remote RPC failed"
# Test 2: Wallet operations
echo "2. Testing wallet operations..."
$PYTHON_CMD /opt/aitbc/cli/simple_wallet.py list >/dev/null && echo "✅ Wallet list works" || echo "❌ Wallet list failed"
$CLI_CMD wallet list >/dev/null && echo "✅ Wallet list works" || echo "❌ Wallet list failed"
# Test 3: Transaction operations
echo "3. Testing transactions..."
# Create test wallet
$PYTHON_CMD /opt/aitbc/cli/simple_wallet.py create --name test-integration --password-file /var/lib/aitbc/keystore/.password >/dev/null && echo "✅ Wallet creation works" || echo "❌ Wallet creation failed"
$CLI_CMD wallet create test-integration --password-file /var/lib/aitbc/keystore/.password >/dev/null && echo "✅ Wallet creation works" || echo "❌ Wallet creation failed"
# Test 4: Blockchain operations
echo "4. Testing blockchain operations..."
$PYTHON_CMD /opt/aitbc/cli/simple_wallet.py chain >/dev/null && echo "✅ Chain info works" || echo "❌ Chain info failed"
$CLI_CMD blockchain info >/dev/null && echo "✅ Chain info works" || echo "❌ Chain info failed"
# Test 5: Enterprise CLI operations
echo "5. Testing enterprise CLI operations..."
$PYTHON_CMD /opt/aitbc/cli/enterprise_cli.py market list >/dev/null && echo "✅ Enterprise CLI works" || echo "❌ Enterprise CLI failed"
$CLI_CMD market list >/dev/null && echo "✅ Marketplace CLI works" || echo "❌ Marketplace CLI failed"
# Test 6: Mining operations
echo "6. Testing mining operations..."
$PYTHON_CMD /opt/aitbc/cli/enterprise_cli.py mine status >/dev/null && echo "✅ Mining operations work" || echo "❌ Mining operations failed"
$CLI_CMD mining status >/dev/null && echo "✅ Mining operations work" || echo "❌ Mining operations failed"
# Test 7: AI services
echo "7. Testing AI services..."

View File

@@ -0,0 +1,188 @@
"""
Test error handling improvements in AITBC services
"""
import pytest
import subprocess
import time
class TestServiceErrorHandling:
"""Test that services handle errors properly with specific exception types"""
def test_monitor_service_error_handling(self):
"""Test monitor service handles file and JSON errors properly"""
# This would test that monitor.py handles specific exceptions
# For now, we'll verify the service file exists and has proper imports
import os
monitor_file = "/opt/aitbc/services/monitor.py"
assert os.path.exists(monitor_file)
# Verify error handling improvements are present
with open(monitor_file, 'r') as f:
content = f.read()
assert "json.JSONDecodeError" in content
assert "FileNotFoundError" in content
assert "psutil.Error" in content
def test_marketplace_launcher_error_handling(self):
"""Test marketplace launcher handles subprocess errors properly"""
import os
launcher_file = "/opt/aitbc/services/real_marketplace_launcher.py"
assert os.path.exists(launcher_file)
with open(launcher_file, 'r') as f:
content = f.read()
assert "subprocess.CalledProcessError" in content
assert "FileNotFoundError" in content
def test_blockchain_launcher_error_handling(self):
"""Test blockchain HTTP launcher handles subprocess errors properly"""
import os
launcher_file = "/opt/aitbc/services/blockchain_http_launcher.py"
assert os.path.exists(launcher_file)
with open(launcher_file, 'r') as f:
content = f.read()
assert "subprocess.CalledProcessError" in content
assert "FileNotFoundError" in content
def test_gpu_launcher_error_handling(self):
"""Test GPU marketplace launcher handles subprocess errors properly"""
import os
launcher_file = "/opt/aitbc/services/gpu_marketplace_launcher.py"
assert os.path.exists(launcher_file)
with open(launcher_file, 'r') as f:
content = f.read()
assert "subprocess.CalledProcessError" in content
assert "FileNotFoundError" in content
assert "OSError" in content
class TestMinerManagementErrorHandling:
"""Test that miner management CLI handles errors properly"""
def test_miner_register_error_handling(self):
"""Test miner register handles network errors properly"""
import os
miner_file = "/opt/aitbc/cli/miner_management.py"
assert os.path.exists(miner_file)
with open(miner_file, 'r') as f:
content = f.read()
assert "requests.exceptions.ConnectionError" in content
assert "requests.exceptions.Timeout" in content
assert "json.JSONDecodeError" in content
def test_miner_status_error_handling(self):
"""Test miner status handles network errors properly"""
import os
miner_file = "/opt/aitbc/cli/miner_management.py"
with open(miner_file, 'r') as f:
content = f.read()
# Should have specific error handling for status function
assert "requests.exceptions.HTTPError" in content
class TestDatabasePerformanceOptimizations:
"""Test database performance optimizations"""
def test_database_connection_pooling(self):
"""Test database has connection pooling configured"""
import os
db_file = "/opt/aitbc/apps/coordinator-api/src/app/database.py"
assert os.path.exists(db_file)
with open(db_file, 'r') as f:
content = f.read()
assert "pool_size" in content
assert "max_overflow" in content
assert "pool_pre_ping" in content
assert "pool_recycle" in content
class TestCachePerformanceOptimizations:
"""Test cache performance optimizations"""
def test_cache_memory_management(self):
"""Test cache has memory management configured"""
import os
cache_file = "/opt/aitbc/apps/coordinator-api/src/app/utils/cache.py"
assert os.path.exists(cache_file)
with open(cache_file, 'r') as f:
content = f.read()
assert "max_size" in content
assert "max_memory_mb" in content
assert "_evict_oldest" in content
assert "_check_memory_limit" in content
class TestCLIComprehensiveTesting:
"""Test CLI tool functionality comprehensively"""
def test_cli_help_command(self):
"""Test CLI help command works"""
result = subprocess.run(
["/opt/aitbc/aitbc-cli", "--help"],
capture_output=True,
text=True
)
assert result.returncode == 0
assert "AITBC CLI" in result.stdout
def test_cli_system_command(self):
"""Test CLI system command works"""
result = subprocess.run(
["/opt/aitbc/aitbc-cli", "system", "status"],
capture_output=True,
text=True
)
assert result.returncode == 0
assert "System status" in result.stdout
def test_cli_chain_command(self):
"""Test CLI chain command works"""
result = subprocess.run(
["/opt/aitbc/aitbc-cli", "blockchain", "info"],
capture_output=True,
text=True
)
assert result.returncode == 0
assert "Blockchain information" in result.stdout
def test_cli_network_command(self):
"""Test CLI network command works"""
result = subprocess.run(
["/opt/aitbc/aitbc-cli", "network", "status"],
capture_output=True,
text=True
)
assert result.returncode == 0
assert "Network status" in result.stdout
def test_cli_wallet_command(self):
"""Test CLI wallet command works"""
result = subprocess.run(
["/opt/aitbc/aitbc-cli", "wallet", "--help"],
capture_output=True,
text=True
)
assert result.returncode == 0
assert "create,list,balance,transactions,send,import,export,delete,rename,backup,sync,batch" in result.stdout
def test_cli_marketplace_list_command(self):
"""Test CLI marketplace list command works"""
result = subprocess.run(
["/opt/aitbc/aitbc-cli", "market", "list"],
capture_output=True,
text=True
)
assert result.returncode == 0
assert "Marketplace list" in result.stdout
if __name__ == "__main__":
pytest.main([__file__, "-v"])