# ===================================================== # Apckeyl Framework # Version 1.0 # test_compute_provider_manager.py # ===================================================== """ Tests for Compute Provider Manager. Version 1.0 """ from compute_provider_manager import ( ComputeProviderManager, ) from compute_provider_registry import ( ComputeProviderRegistry, ) from example_compute_provider import ( ExampleComputeProvider, ) # ===================================================== # Test Manager Creation # ===================================================== def test_manager_creation(): registry = ComputeProviderRegistry() manager = ComputeProviderManager( registry ) assert manager is not None assert manager.factory is not None assert manager.selector is not None # ===================================================== # Test Missing Registry # ===================================================== def test_manager_requires_registry(): try: ComputeProviderManager( None ) assert False except ValueError as error: assert str(error) == ( "Registry is required" ) # ===================================================== # Test Register Provider # ===================================================== def test_register_provider(): registry = ComputeProviderRegistry() manager = ComputeProviderManager( registry ) provider = ExampleComputeProvider() result = manager.register_provider( provider ) assert result is provider assert manager.get_provider( "example_compute_provider" ) is provider # ===================================================== # Test Get Provider # ===================================================== def test_get_provider(): registry = ComputeProviderRegistry() manager = ComputeProviderManager( registry ) provider = ExampleComputeProvider() manager.register_provider( provider ) result = manager.get_provider( "example_compute_provider" ) assert result is provider # ===================================================== # Test Unknown Provider # ===================================================== def test_get_unknown_provider(): registry = ComputeProviderRegistry() manager = ComputeProviderManager( registry ) assert manager.get_provider( "unknown_provider" ) is None # ===================================================== # Test Select Provider # ===================================================== def test_select_provider(): registry = ComputeProviderRegistry() manager = ComputeProviderManager( registry ) provider = ExampleComputeProvider() manager.register_provider( provider ) result = manager.select_provider( "example_task" ) assert result is provider # ===================================================== # Test Unsupported Task # ===================================================== def test_select_unsupported_task(): registry = ComputeProviderRegistry() manager = ComputeProviderManager( registry ) provider = ExampleComputeProvider() manager.register_provider( provider ) result = manager.select_provider( "unknown_task" ) assert result is None # ===================================================== # Test Availability # ===================================================== def test_provider_availability(): registry = ComputeProviderRegistry() manager = ComputeProviderManager( registry ) provider = ExampleComputeProvider() manager.register_provider( provider ) assert manager.is_available( "example_task" ) is True # ===================================================== # Test Unavailable Task # ===================================================== def test_provider_unavailable(): registry = ComputeProviderRegistry() manager = ComputeProviderManager( registry ) provider = ExampleComputeProvider() manager.register_provider( provider ) assert manager.is_available( "unknown_task" ) is False # ===================================================== # End of File # =====================================================