Orchestrator / test_compute_provider_selector.py
evgeniy778's picture
Create test_compute_provider_selector.py
eb4def8 verified
Raw
History Blame Contribute Delete
3.54 kB
# =====================================================
# Apckeyl Framework
# Version 1.0
# test_compute_provider_selector.py
# =====================================================
"""
Tests for Compute Provider Selector.
Version 1.0
"""
from compute_provider_selector import (
ComputeProviderSelector,
)
from compute_provider_registry import (
ComputeProviderRegistry,
)
from example_compute_provider import (
ExampleComputeProvider,
)
# =====================================================
# Test Selector Creation
# =====================================================
def test_selector_creation():
registry = ComputeProviderRegistry()
selector = ComputeProviderSelector(
registry
)
assert selector is not None
assert selector.registry is registry
# =====================================================
# Test Missing Registry
# =====================================================
def test_selector_requires_registry():
try:
ComputeProviderSelector(
None
)
assert False
except ValueError as error:
assert str(error) == (
"Registry is required"
)
# =====================================================
# Test Provider Selection
# =====================================================
def test_select_provider():
registry = ComputeProviderRegistry()
provider = ExampleComputeProvider()
registry.register(
provider
)
selector = ComputeProviderSelector(
registry
)
result = selector.select(
"example_task"
)
assert result is provider
# =====================================================
# Test Unknown Task
# =====================================================
def test_select_unknown_task():
registry = ComputeProviderRegistry()
provider = ExampleComputeProvider()
registry.register(
provider
)
selector = ComputeProviderSelector(
registry
)
result = selector.select(
"unknown_task"
)
assert result is None
# =====================================================
# Test Empty Task
# =====================================================
def test_select_empty_task():
registry = ComputeProviderRegistry()
provider = ExampleComputeProvider()
registry.register(
provider
)
selector = ComputeProviderSelector(
registry
)
assert selector.select(
""
) is None
assert selector.select(
None
) is None
# =====================================================
# Test Availability
# =====================================================
def test_is_available():
registry = ComputeProviderRegistry()
provider = ExampleComputeProvider()
registry.register(
provider
)
selector = ComputeProviderSelector(
registry
)
assert selector.is_available(
"example_task"
) is True
# =====================================================
# Test Unavailable Task
# =====================================================
def test_is_not_available():
registry = ComputeProviderRegistry()
provider = ExampleComputeProvider()
registry.register(
provider
)
selector = ComputeProviderSelector(
registry
)
assert selector.is_available(
"unknown_task"
) is False
# =====================================================
# End of File
# =====================================================