docs: update CLI command syntax across workflow documentation
Some checks failed
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
Documentation Validation / validate-docs (push) Has been cancelled
API Endpoint Tests / test-api-endpoints (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

@@ -1,146 +1,98 @@
#!/usr/bin/env python3
"""Basic CLI tests for AITBC CLI functionality."""
"""Basic CLI tests for the unified AITBC command hierarchy."""
import pytest
import importlib.util
import json
import subprocess
import sys
import os
from pathlib import Path
# Add CLI to path for imports
sys.path.insert(0, str(Path(__file__).parent.parent))
CLI_DIR = Path(__file__).resolve().parent.parent
PROJECT_ROOT = CLI_DIR.parent
CLI_FILE = CLI_DIR / "aitbc_cli.py"
UNIFIED_FILE = CLI_DIR / "unified_cli.py"
CLI_BIN = PROJECT_ROOT / "aitbc-cli"
def run_cli(*args):
return subprocess.run(
[str(CLI_BIN), *args],
capture_output=True,
text=True,
timeout=15,
cwd=str(PROJECT_ROOT),
)
class TestCLIImports:
"""Test CLI module imports."""
"""Test direct file-based CLI module imports."""
def test_cli_main_import(self):
"""Test that main CLI module can be imported."""
try:
from aitbc_cli import main
assert main is not None
print("✅ CLI main import successful")
except ImportError as e:
pytest.fail(f"❌ CLI main import failed: {e}")
def test_cli_commands_import(self):
"""Test that CLI command modules can be imported."""
try:
from commands.wallet import create_wallet, list_wallets
from commands.blockchain import get_blockchain_info
assert create_wallet is not None
assert list_wallets is not None
assert get_blockchain_info is not None
print("✅ CLI commands import successful")
except ImportError as e:
pytest.fail(f"❌ CLI commands import failed: {e}")
spec = importlib.util.spec_from_file_location("aitbc_cli_file", CLI_FILE)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
assert callable(module.main)
def test_unified_cli_import(self):
spec = importlib.util.spec_from_file_location("unified_cli_file", UNIFIED_FILE)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
assert callable(module.run_cli)
class TestCLIBasicFunctionality:
"""Test basic CLI functionality."""
"""Test the visible command tree and core commands."""
def test_cli_help_output(self):
"""Test that CLI help command works."""
try:
result = subprocess.run(
[sys.executable, "aitbc_cli.py", "--help"],
capture_output=True,
text=True,
timeout=10,
cwd=str(Path(__file__).parent.parent)
)
assert result.returncode == 0
assert "AITBC CLI" in result.stdout
assert "usage:" in result.stdout
print("✅ CLI help output working")
except subprocess.TimeoutExpired:
pytest.fail("❌ CLI help command timed out")
except Exception as e:
pytest.fail(f"❌ CLI help command failed: {e}")
def test_cli_list_command(self):
"""Test that CLI list command works."""
try:
result = subprocess.run(
[sys.executable, "aitbc_cli.py", "list"],
capture_output=True,
text=True,
timeout=10,
cwd=str(Path(__file__).parent.parent)
)
# Command should succeed even if no wallets exist
assert result.returncode == 0
print("✅ CLI list command working")
except subprocess.TimeoutExpired:
pytest.fail("❌ CLI list command timed out")
except Exception as e:
pytest.fail(f"❌ CLI list command failed: {e}")
result = run_cli("--help")
assert result.returncode == 0
assert "AITBC CLI" in result.stdout
assert "wallet" in result.stdout
assert "blockchain" in result.stdout
assert "ai" in result.stdout
assert "market" in result.stdout
def test_cli_version_output(self):
result = run_cli("--version")
assert result.returncode == 0
assert "2.1.0" in result.stdout
def test_nested_wallet_list_command(self):
result = run_cli("wallet", "list")
assert result.returncode == 0
def test_legacy_wallet_list_alias(self):
result = run_cli("list")
assert result.returncode == 0
def test_json_output_flag(self):
result = run_cli("--output", "json", "wallet", "list")
assert result.returncode == 0
json.loads(result.stdout or "[]")
class TestCLIErrorHandling:
"""Test CLI error handling."""
def test_cli_invalid_command(self):
"""Test that CLI handles invalid commands gracefully."""
try:
result = subprocess.run(
[sys.executable, "aitbc_cli.py", "invalid-command"],
capture_output=True,
text=True,
timeout=10,
cwd=str(Path(__file__).parent.parent)
)
# Should fail gracefully
assert result.returncode != 0
print("✅ CLI invalid command handling working")
except subprocess.TimeoutExpired:
pytest.fail("❌ CLI invalid command test timed out")
except Exception as e:
pytest.fail(f"❌ CLI invalid command test failed: {e}")
result = run_cli("invalid-command")
assert result.returncode != 0
def test_wallet_balance_requires_target(self):
result = run_cli("wallet", "balance")
assert result.returncode != 0
assert "Error: Wallet name is required" in result.stdout
class TestCLIConfiguration:
"""Test CLI configuration and setup."""
def test_cli_file_exists(self):
"""Test that main CLI file exists."""
cli_file = Path(__file__).parent.parent / "aitbc_cli.py"
assert cli_file.exists(), f"❌ CLI file not found: {cli_file}"
print(f"✅ CLI file exists: {cli_file}")
def test_cli_file_executable(self):
"""Test that CLI file is executable."""
cli_file = Path(__file__).parent.parent / "aitbc_cli.py"
assert cli_file.is_file(), f"❌ CLI file is not a file: {cli_file}"
# Check if file has content
with open(cli_file, 'r') as f:
content = f.read()
assert len(content) > 1000, f"❌ CLI file appears empty or too small"
assert "def main" in content, f"❌ CLI file missing main function"
print(f"✅ CLI file is valid: {len(content)} characters")
"""Test CLI file presence and launcher availability."""
def test_cli_files_exist(self):
assert CLI_FILE.exists()
assert UNIFIED_FILE.exists()
assert CLI_BIN.exists()
if __name__ == "__main__":
# Run basic tests when executed directly
print("🧪 Running basic CLI tests...")
test_class = TestCLIImports()
test_class.test_cli_main_import()
test_class.test_cli_commands_import()
test_class = TestCLIBasicFunctionality()
test_class.test_cli_help_output()
test_class.test_cli_list_command()
test_class = TestCLIErrorHandling()
test_class.test_cli_invalid_command()
test_class = TestCLIConfiguration()
test_class.test_cli_file_exists()
test_class.test_cli_file_executable()
print("✅ All basic CLI tests passed!")
def test_cli_file_contains_main(self):
content = CLI_FILE.read_text()
assert len(content) > 1000
assert "def main" in content