All checks were successful
API Endpoint Tests / test-api-endpoints (push) Successful in 39s
Integration Tests / test-service-integration (push) Successful in 44s
Package Tests / test-python-packages (map[name:aitbc-core path:packages/py/aitbc-core]) (push) Successful in 16s
Package Tests / test-python-packages (map[name:aitbc-agent-sdk path:packages/py/aitbc-agent-sdk]) (push) Successful in 30s
Package Tests / test-python-packages (map[name:aitbc-crypto path:packages/py/aitbc-crypto]) (push) Successful in 20s
Package Tests / test-python-packages (map[name:aitbc-sdk path:packages/py/aitbc-sdk]) (push) Successful in 20s
Package Tests / test-javascript-packages (map[name:aitbc-sdk-js path:packages/js/aitbc-sdk]) (push) Successful in 17s
Package Tests / test-javascript-packages (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Successful in 1m17s
Python Tests / test-python (push) Successful in 1m7s
Smart Contract Tests / test-solidity (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Successful in 30s
Security Scanning / security-scan (push) Successful in 1m5s
Smart Contract Tests / test-solidity (map[name:zk-circuits path:apps/zk-circuits]) (push) Successful in 49s
Smart Contract Tests / lint-solidity (push) Successful in 54s
aitbc-agent-sdk (package-tests.yml): - Add AITBCAgent convenience class matching test expectations - Fix test_agent_sdk.py: was importing nonexistent AITBCAgent, now tests the real API (Agent.create, AgentCapabilities, to_dict) plus AITBCAgent - Fix 3 remaining mypy errors: supported_models Optional coercion (line 64), missing return types on _submit_to_marketplace/_update_marketplace_offer - Run black on all 5 src files — zero mypy errors, zero black warnings - All 6 tests pass python-tests.yml: - Add pynacl to pip install (aitbc-crypto and aitbc-sdk import nacl) - Add pynacl>=1.5.0 to root requirements.txt Service readiness (api-endpoint-tests.yml, integration-tests.yml): - Replace curl -sf with curl http_code check — -sf fails on 404 responses but port 8006 (blockchain RPC) returns 404 on / while being healthy - Blockchain RPC uses REST /rpc/* endpoints, not JSON-RPC POST to / Fix test_api_endpoints.py to test /health, /rpc/head, /rpc/info, /rpc/supply - Remove dead test_rpc() function, add blockchain RPC to perf tests - All 4 services now pass: coordinator, exchange, wallet, blockchain_rpc - Integration-tests: check is-active before systemctl start to avoid spurious warnings for already-running services Hardhat compile (smart-contract-tests.yml, package-tests.yml): - Relax engines field from >=24.14.0 to >=18.0.0 (CI has v24.13.0) - Remove 2>/dev/null from hardhat compile/test so errors are visible - Remove 2>/dev/null from npm run build/test in package-tests JS section
75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
"""Test suite for AITBC Agent SDK"""
|
|
|
|
import pytest
|
|
from aitbc_agent.agent import AITBCAgent, Agent, AgentCapabilities, AgentIdentity
|
|
|
|
|
|
class TestAITBCAgent:
|
|
"""Test AITBC Agent high-level wrapper"""
|
|
|
|
def test_agent_initialization(self):
|
|
"""Test agent can be initialized"""
|
|
agent = AITBCAgent(agent_id="test-agent")
|
|
assert agent.agent_id == "test-agent"
|
|
assert agent.status == "initialized"
|
|
|
|
def test_agent_config_validation(self):
|
|
"""Test agent configuration validation"""
|
|
config = {
|
|
"agent_id": "test-agent",
|
|
"compute_type": "gpu",
|
|
"capabilities": ["inference", "training"],
|
|
}
|
|
agent = AITBCAgent(**config)
|
|
assert agent.compute_type == "gpu"
|
|
assert "inference" in agent.capabilities
|
|
|
|
|
|
class TestAgentCore:
|
|
"""Test core Agent class"""
|
|
|
|
def test_create_agent(self):
|
|
"""Test Agent.create factory"""
|
|
agent = Agent.create(
|
|
name="provider-1",
|
|
agent_type="compute_provider",
|
|
capabilities={"compute_type": "inference"},
|
|
)
|
|
assert agent.identity.name == "provider-1"
|
|
assert agent.capabilities.compute_type == "inference"
|
|
assert agent.registered is False
|
|
|
|
def test_agent_to_dict(self):
|
|
"""Test agent serialisation round-trip"""
|
|
agent = Agent.create(
|
|
name="worker",
|
|
agent_type="general",
|
|
capabilities={"compute_type": "processing"},
|
|
)
|
|
d = agent.to_dict()
|
|
assert "id" in d
|
|
assert d["capabilities"]["compute_type"] == "processing"
|
|
|
|
def test_capabilities_defaults(self):
|
|
"""Test AgentCapabilities default values"""
|
|
caps = AgentCapabilities(compute_type="inference")
|
|
assert caps.supported_models == []
|
|
assert caps.max_concurrent_jobs == 1
|
|
assert caps.gpu_memory is None
|
|
|
|
|
|
class TestImports:
|
|
"""Verify public API surface"""
|
|
|
|
def test_all_exports(self):
|
|
import aitbc_agent
|
|
for name in (
|
|
"Agent", "AITBCAgent", "ComputeProvider",
|
|
"ComputeConsumer", "PlatformBuilder", "SwarmCoordinator",
|
|
):
|
|
assert hasattr(aitbc_agent, name), f"Missing export: {name}"
|
|
|
|
|
|
if __name__ == "__main__":
|
|
pytest.main([__file__])
|