Orchestrator / test_compute_provider_contract.py
evgeniy778's picture
Create test_compute_provider_contract.py
b804692 verified
Raw
History Blame Contribute Delete
3.63 kB
# =====================================================
# Apckeyl Framework
# Version 1.0
# test_compute_provider_contract.py
# =====================================================
"""
Tests for Compute Provider Contract.
Version 1.0
"""
from example_compute_provider import (
ExampleComputeProvider,
)
# =====================================================
# Test Provider Interface
# =====================================================
def test_provider_has_get_provider_info():
provider = ExampleComputeProvider()
assert callable(
provider.get_provider_info
)
def test_provider_has_health_check():
provider = ExampleComputeProvider()
assert callable(
provider.health_check
)
def test_provider_has_supports_task():
provider = ExampleComputeProvider()
assert callable(
provider.supports_task
)
def test_provider_has_execute():
provider = ExampleComputeProvider()
assert callable(
provider.execute
)
# =====================================================
# Test Provider Information Contract
# =====================================================
def test_provider_information_contract():
provider = ExampleComputeProvider()
info = provider.get_provider_info()
required_fields = [
"provider_id",
"provider_name",
"provider_version",
"status",
"supported_tasks",
]
for field in required_fields:
assert field in info
# =====================================================
# Test Health Contract
# =====================================================
def test_health_contract():
provider = ExampleComputeProvider()
health = provider.health_check()
assert "provider_id" in health
assert "status" in health
assert health["status"] == "healthy"
# =====================================================
# Test Task Support Contract
# =====================================================
def test_task_support_contract():
provider = ExampleComputeProvider()
assert provider.supports_task(
"example_task"
) is True
assert provider.supports_task(
"unknown_task"
) is False
# =====================================================
# Test Execution Contract
# =====================================================
def test_execution_contract():
provider = ExampleComputeProvider()
task = {
"task_id": "contract_test_001",
"task_type": "example_task",
"payload": {
"message": "contract test",
},
}
result = provider.execute(task)
required_fields = [
"task_id",
"status",
"result",
"error",
]
for field in required_fields:
assert field in result
assert result["task_id"] == (
"contract_test_001"
)
assert result["status"] == "completed"
assert result["error"] is None
# =====================================================
# Test Error Contract
# =====================================================
def test_error_contract():
provider = ExampleComputeProvider()
task = {
"task_id": "contract_test_002",
"task_type": "unknown_task",
"payload": {},
}
result = provider.execute(task)
assert result["task_id"] == (
"contract_test_002"
)
assert result["status"] == "error"
assert result["result"] is None
assert result["error"] is not None
# =====================================================
# End of File
# =====================================================