# ===================================================== # 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 # =====================================================