chore: remove configuration files and enhance blockchain explorer with advanced search, analytics, and export features
- Delete .aitbc.yaml.example CLI configuration template - Delete .lycheeignore link checker exclusion rules - Delete .nvmrc Node.js version specification - Add advanced search panel with filters for address, amount range, transaction type, time range, and validator - Add analytics dashboard with transaction volume, active addresses, and block time metrics - Add Chart.js integration
This commit is contained in:
65
dev/tests/test_multi_chain.py
Normal file
65
dev/tests/test_multi_chain.py
Normal file
@@ -0,0 +1,65 @@
|
||||
import asyncio
|
||||
from aitbc_chain.config import settings
|
||||
from aitbc_chain.main import node_app
|
||||
import httpx
|
||||
import time
|
||||
import os
|
||||
|
||||
# Create an alternate config just for this test process
|
||||
os.environ["SUPPORTED_CHAINS"] = "ait-devnet,ait-testnet"
|
||||
os.environ["DB_PATH"] = "./data/test_chain.db"
|
||||
from aitbc_chain.config import settings as test_settings
|
||||
|
||||
# Make sure we use a clean DB for the test
|
||||
if os.path.exists("./data/test_chain.db"):
|
||||
os.remove("./data/test_chain.db")
|
||||
if os.path.exists("./data/test_chain.db-journal"):
|
||||
os.remove("./data/test_chain.db-journal")
|
||||
|
||||
async def run_test():
|
||||
print(f"Testing with chains: {test_settings.supported_chains}")
|
||||
|
||||
# Start the app and the node
|
||||
import uvicorn
|
||||
from aitbc_chain.app import app
|
||||
from threading import Thread
|
||||
import requests
|
||||
|
||||
def run_server():
|
||||
uvicorn.run(app, host="127.0.0.1", port=8181, log_level="error")
|
||||
|
||||
server_thread = Thread(target=run_server, daemon=True)
|
||||
server_thread.start()
|
||||
|
||||
time.sleep(2) # Give server time to start
|
||||
|
||||
try:
|
||||
# Check health which should report supported chains
|
||||
resp = requests.get("http://127.0.0.1:8181/health")
|
||||
print("Health status:", resp.json())
|
||||
assert "ait-devnet" in resp.json()["supported_chains"]
|
||||
assert "ait-testnet" in resp.json()["supported_chains"]
|
||||
|
||||
# The lifepan started the node with both chains.
|
||||
# Wait for a couple blocks to be proposed
|
||||
time.sleep(5)
|
||||
|
||||
# Check block head for devnet
|
||||
resp = requests.get("http://127.0.0.1:8181/rpc/head?chain_id=ait-devnet")
|
||||
print("Devnet head:", resp.json())
|
||||
assert "hash" in resp.json()
|
||||
|
||||
# Check block head for testnet
|
||||
resp = requests.get("http://127.0.0.1:8181/rpc/head?chain_id=ait-testnet")
|
||||
print("Testnet head:", resp.json())
|
||||
assert "hash" in resp.json()
|
||||
|
||||
print("SUCCESS! Multi-chain support is working.")
|
||||
|
||||
except Exception as e:
|
||||
print("Test failed:", e)
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
sys.path.append('src')
|
||||
asyncio.run(run_test())
|
||||
Reference in New Issue
Block a user