def test_get_driver_string_and_enum_notation(self): driver = get_driver(drivers=DRIVERS, provider=Provider.DUMMY) self.assertEqual(driver, DummyNodeDriver) driver = get_driver(drivers=DRIVERS, provider="dummy") self.assertEqual(driver, DummyNodeDriver) driver = get_driver(drivers=DRIVERS, provider="DUMMY") self.assertEqual(driver, DummyNodeDriver)
def test_get_driver(self): driver = get_driver(drivers=DRIVERS, provider=Provider.DUMMY) self.assertTrue(driver is not None) try: driver = get_driver(drivers=DRIVERS, provider='fooba') except AttributeError: pass else: self.fail('Invalid provider, but an exception was not thrown')
def get_driver_by_provider_name(drivers, providers, provider_name): """ Get a driver by provider name If the provider is unknown, will raise an exception. @param drivers: Dictionary containing valid providers. @param providers: object that contain supported providers. @type providers: L{libcloud.types.Provider} @param provider_name: String with a provider name (required) @type provider_name: str @return: L{NodeDriver} class """ provider_name = provider_name.upper() provider = getattr(providers, provider_name, None) try: Driver = get_driver(drivers, provider) except AttributeError: raise ProviderNotSupportedError(provider=provider_name) return Driver