Some checks failed
CLI Tests / test-cli (push) Failing after 12s
Cross-Node Transaction Testing / transaction-test (push) Successful in 10s
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Node Failover Simulation / failover-test (push) Has been cancelled
Documentation Validation / validate-docs (push) Failing after 8s
Documentation Validation / validate-policies-strict (push) Successful in 3s
Security Scanning / security-scan (push) Successful in 16s
- Remove tabulate dependency from cross_chain commands - Use simple string formatting for rate table output - Add cross-chain to CLICK_COMMANDS list - Skip blockchain RPC test when no node available in CI - Update scenario documentation
91 lines
2.9 KiB
Python
Executable File
91 lines
2.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""Simple CLI test runner that uses the virtual environment."""
|
|
|
|
import subprocess
|
|
import sys
|
|
import os
|
|
from pathlib import Path
|
|
|
|
def run_cli_test():
|
|
"""Run basic CLI functionality tests."""
|
|
print("🧪 Running CLI Tests with Virtual Environment...")
|
|
|
|
# Set up environment
|
|
cli_dir = Path(__file__).resolve().parent.parent
|
|
cli_bin = cli_dir.parent / "aitbc-cli"
|
|
|
|
def run_command(*args):
|
|
return subprocess.run(
|
|
[str(cli_bin), *args],
|
|
capture_output=True,
|
|
text=True,
|
|
timeout=10,
|
|
cwd=str(cli_dir),
|
|
)
|
|
|
|
# Test 1: CLI help command
|
|
print("\n1. Testing CLI help command...")
|
|
try:
|
|
result = run_command("--help")
|
|
|
|
if result.returncode == 0 and "AITBC CLI" in result.stdout:
|
|
print("✅ CLI help command working")
|
|
else:
|
|
print(f"❌ CLI help command failed: {result.stderr}")
|
|
return False
|
|
except Exception as e:
|
|
print(f"❌ CLI help command error: {e}")
|
|
return False
|
|
|
|
# Test 2: CLI list command
|
|
print("\n2. Testing CLI list command...")
|
|
try:
|
|
result = run_command("wallet", "list")
|
|
|
|
if result.returncode == 0:
|
|
print("✅ CLI list command working")
|
|
else:
|
|
print(f"❌ CLI list command failed: {result.stderr}")
|
|
return False
|
|
except Exception as e:
|
|
print(f"❌ CLI list command error: {e}")
|
|
return False
|
|
|
|
# Test 3: CLI blockchain command (optional - skip if no blockchain node)
|
|
print("\n3. Testing CLI blockchain command...")
|
|
try:
|
|
result = run_command("blockchain", "block", "1")
|
|
|
|
if result.returncode == 0 and "Block #1" in result.stdout:
|
|
print("✅ CLI blockchain command working")
|
|
elif "Connection refused" in result.stderr or "Failed to establish" in result.stderr:
|
|
print("⚠️ CLI blockchain command skipped (no blockchain node available)")
|
|
print(" This is expected in CI environments without a running blockchain node")
|
|
else:
|
|
print(f"❌ CLI blockchain command failed: {result.stderr or result.stdout}")
|
|
return False
|
|
except Exception as e:
|
|
print(f"❌ CLI blockchain command error: {e}")
|
|
return False
|
|
|
|
# Test 4: CLI invalid command handling
|
|
print("\n4. Testing CLI invalid command handling...")
|
|
try:
|
|
result = run_command("invalid-command")
|
|
|
|
if result.returncode != 0:
|
|
print("✅ CLI invalid command handling working")
|
|
else:
|
|
print("❌ CLI invalid command should have failed")
|
|
return False
|
|
except Exception as e:
|
|
print(f"❌ CLI invalid command error: {e}")
|
|
return False
|
|
|
|
print("\n✅ All CLI tests passed!")
|
|
return True
|
|
|
|
if __name__ == "__main__":
|
|
success = run_cli_test()
|
|
sys.exit(0 if success else 1)
|