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