Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Successful in 19s
Deploy to Testnet / deploy-testnet (push) Successful in 1m10s
Multi-Node Stress Testing / stress-test (push) Successful in 2s
Node Failover Simulation / failover-test (push) Successful in 1s
Python Tests / test-python (push) Failing after 7s
Deploy to Testnet / notify-deployment (push) Successful in 1s
- Fixed bare except clauses in dev/examples/wallet.py - Fixed bare except clauses in dev/gpu/gpu_exchange_status.py (2 clauses) - Fixed bare except clauses in dev/gpu/gpu_miner_host.py - Fixed bare except clauses in dev/onboarding/auto-onboard.py - Fixed bare except clauses in dev/onboarding/onboarding-monitor.py - Fixed bare except clauses in dev/scripts/dev_heartbeat.py - Fixed bare except clauses in tests/integration/test_blockchain_simple.py (3 clauses) - Fixed bare except clause in tests/integration/test_full_workflow.py - Fixed bare except clause in tests/load_test.py - Fixed bare except clause in tests/security/test_confidential_transactions.py - Fixed bare except clause in tests/verification/test_coordinator.py - All bare except clauses now use proper Exception handling - Addresses remaining ruff E722 warnings in non-critical code
91 lines
2.9 KiB
Python
91 lines
2.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Final test and summary for blockchain nodes
|
|
"""
|
|
|
|
import httpx
|
|
import json
|
|
|
|
# Node URLs
|
|
NODES = {
|
|
"node1": {"url": "http://127.0.0.1:8082", "name": "Node 1"},
|
|
"node2": {"url": "http://127.0.0.1:8081", "name": "Node 2"},
|
|
}
|
|
|
|
def test_nodes():
|
|
"""Test both nodes"""
|
|
print("🔗 AITBC Blockchain Node Test Summary")
|
|
print("=" * 60)
|
|
|
|
results = []
|
|
|
|
for node_id, node in NODES.items():
|
|
print(f"\n{node['name']}:")
|
|
|
|
# Test RPC API
|
|
try:
|
|
response = httpx.get(f"{node['url']}/openapi.json", timeout=5)
|
|
api_ok = response.status_code == 200
|
|
print(f" RPC API: {'✅' if api_ok else '❌'}")
|
|
except Exception:
|
|
api_ok = False
|
|
print(f" RPC API: ❌")
|
|
|
|
# Test chain head
|
|
try:
|
|
response = httpx.get(f"{node['url']}/rpc/head", timeout=5)
|
|
if response.status_code == 200:
|
|
head = response.json()
|
|
height = head.get('height', 0)
|
|
print(f" Chain Height: {height}")
|
|
|
|
# Test faucet
|
|
try:
|
|
response = httpx.post(
|
|
f"{node['url']}/rpc/admin/mintFaucet",
|
|
json={"address": "aitbc1test000000000000000000000000000000000000", "amount": 100},
|
|
timeout=5
|
|
)
|
|
faucet_ok = response.status_code == 200
|
|
print(f" Faucet: {'✅' if faucet_ok else '❌'}")
|
|
except Exception:
|
|
faucet_ok = False
|
|
print(f" Faucet: ❌")
|
|
|
|
results.append({
|
|
'node': node['name'],
|
|
'api': api_ok,
|
|
'height': height,
|
|
'faucet': faucet_ok
|
|
})
|
|
else:
|
|
print(f" Chain Head: ❌")
|
|
except Exception:
|
|
print(f" Chain Head: ❌")
|
|
|
|
# Summary
|
|
print("\n\n📊 Test Results Summary")
|
|
print("=" * 60)
|
|
|
|
for result in results:
|
|
status = "✅ OPERATIONAL" if result['api'] and result['faucet'] else "⚠️ PARTIAL"
|
|
print(f"{result['node']:.<20} {status}")
|
|
print(f" - RPC API: {'✅' if result['api'] else '❌'}")
|
|
print(f" - Height: {result['height']}")
|
|
print(f" - Faucet: {'✅' if result['faucet'] else '❌'}")
|
|
|
|
print("\n\n📝 Notes:")
|
|
print("- Both nodes are running independently")
|
|
print("- Each node maintains its own chain")
|
|
print("- Nodes are not connected (different heights)")
|
|
print("- To connect nodes in production:")
|
|
print(" 1. Deploy on separate servers")
|
|
print(" 2. Use Redis for gossip backend")
|
|
print(" 3. Configure P2P peer discovery")
|
|
print(" 4. Ensure network connectivity")
|
|
|
|
print("\n✅ Test completed successfully!")
|
|
|
|
if __name__ == "__main__":
|
|
test_nodes()
|