Files
aitbc/tests/run_production_tests.py
aitbc e4f1a96172
Some checks failed
Blockchain Synchronization Verification / sync-verification (push) Failing after 8s
CLI Tests / test-cli (push) Successful in 10s
Contract Performance Benchmarks / benchmark-gas-usage (push) Successful in 1m22s
Contract Performance Benchmarks / benchmark-execution-time (push) Successful in 1m11s
Contract Performance Benchmarks / benchmark-throughput (push) Successful in 1m13s
Cross-Chain Functionality Tests / test-cross-chain-sync (push) Failing after 5s
Cross-Chain Functionality Tests / test-cross-chain-transactions (push) Successful in 5s
Cross-Chain Functionality Tests / test-cross-chain-bridge (push) Has been skipped
Cross-Chain Functionality Tests / test-multi-chain-consensus (push) Failing after 3s
Cross-Chain Functionality Tests / aggregate-results (push) Has been skipped
Cross-Node Transaction Testing / transaction-test (push) Successful in 5s
Deploy to Testnet / deploy-testnet (push) Successful in 1m14s
Contract Performance Benchmarks / compare-benchmarks (push) Has been cancelled
Documentation Validation / validate-docs (push) Failing after 10s
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Node Failover Simulation / failover-test (push) Has been cancelled
Security Scanning / security-scan (push) Has been cancelled
Smart Contract Tests / test-solidity (map[name:aitbc-contracts path:contracts]) (push) Has been cancelled
Smart Contract Tests / test-solidity (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Has been cancelled
Smart Contract Tests / test-foundry (push) Has been cancelled
Smart Contract Tests / lint-solidity (push) Has been cancelled
Smart Contract Tests / deploy-contracts (push) Has been cancelled
Documentation Validation / validate-policies-strict (push) Successful in 3s
Integration Tests / test-service-integration (push) Failing after 45s
Multi-Chain Island Architecture Tests / test-multi-chain-island (push) Failing after 2s
Multi-Node Blockchain Health Monitoring / health-check (push) Successful in 5s
P2P Network Verification / p2p-verification (push) Successful in 3s
Production Tests / Production Integration Tests (push) Failing after 7s
Python Tests / test-python (push) Failing after 46s
Staking Tests / test-staking-service (push) Failing after 2s
Staking Tests / test-staking-integration (push) Has been skipped
Staking Tests / test-staking-contract (push) Has been skipped
Staking Tests / run-staking-test-runner (push) Has been skipped
Systemd Sync / sync-systemd (push) Successful in 21s
API Endpoint Tests / test-api-endpoints (push) Failing after 12m19s
ci: standardize pytest invocation and add security scanning
- Changed pytest calls to use `venv/bin/python -m pytest` with explicit config
- Added `--rootdir "$PWD"` and `--import-mode=importlib` for consistent imports
- Fixed PYTHONPATH to use absolute paths with $PWD prefix
- Added smart contract security scanning for Solidity files
- Added Circom circuit security checks for ZK proof circuits
- Added ZK proof implementation security validation
- Added contracts/** to security scanning workflow
2026-05-11 13:46:42 +02:00

107 lines
3.2 KiB
Python
Executable File

#!/usr/bin/env python3
"""
AITBC Production Test Runner
Runs all production test suites for the 100% completed AITBC system
"""
import sys
import subprocess
import os
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parent.parent
TESTS_DIR = Path(__file__).resolve().parent / "production"
def run_test_suite(test_file: str, description: str) -> bool:
"""Run a single test suite and return success status"""
print(f"\n🧪 Running {description}")
print(f"📁 File: {test_file}")
print("=" * 60)
try:
test_path = TESTS_DIR / test_file
# Run the test with monorepo-safe pytest settings
result = subprocess.run([
sys.executable,
"-m",
"pytest",
"-c",
"/dev/null",
"--rootdir",
str(REPO_ROOT),
"--import-mode=importlib",
str(test_path),
"-v",
"--tb=short",
], capture_output=True, text=True, cwd=REPO_ROOT)
print(result.stdout)
if result.stderr:
print("STDERR:", result.stderr)
success = result.returncode == 0
if success:
print(f"{description}: PASSED")
else:
print(f"{description}: FAILED")
return success
except Exception as e:
print(f"❌ Error running {description}: {e}")
return False
def main():
"""Run all production test suites"""
print("🎉 AITBC Production Test Runner")
print("=" * 60)
print("🎯 Project Status: 100% COMPLETED (v0.3.0)")
print("📊 Running all production test suites...")
# Production test suites
test_suites = [
("test_jwt_authentication.py", "JWT Authentication & RBAC"),
("test_production_monitoring.py", "Production Monitoring & Alerting"),
("test_type_safety.py", "Type Safety & Validation"),
("test_advanced_features.py", "Advanced Features & AI/ML"),
("test_complete_system_integration.py", "Complete System Integration")
]
results = []
total_tests = 0
passed_tests = 0
for test_file, description in test_suites:
total_tests += 1
success = run_test_suite(test_file, description)
results.append((description, success))
if success:
passed_tests += 1
# Print summary
print("\n" + "=" * 60)
print("🎯 PRODUCTION TEST RESULTS SUMMARY")
print("=" * 60)
for description, success in results:
status = "✅ PASSED" if success else "❌ FAILED"
print(f"{status:<10} {description}")
print(f"\n📊 Overall Results: {passed_tests}/{total_tests} test suites passed")
success_rate = (passed_tests / total_tests) * 100
print(f"🎯 Success Rate: {success_rate:.1f}%")
if success_rate == 100:
print("\n🎉 ALL PRODUCTION TESTS PASSED!")
print("🚀 AITBC System: 100% Production Ready")
return 0
else:
print(f"\n⚠️ {total_tests - passed_tests} test suite(s) failed")
print("🔧 Please review the failed tests above")
return 1
if __name__ == "__main__":
sys.exit(main())