Files
aitbc/packages/py/aitbc-agent-sdk/tests/test_agent_sdk.py
aitbc1 8b8d639bf7
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
fix: resolve CI failures across all workflows
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
2026-03-29 13:20:58 +02:00

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__])