Spaces:
Running on Zero
Running on Zero
| # ===================================================== | |
| # 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 | |
| # ===================================================== |