test_provider_factory.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import unittest
  2. from cloudbridge.providers import factory
  3. from cloudbridge.providers import interfaces
  4. from cloudbridge.providers.factory import CloudProviderFactory
  5. class ProviderFactoryTestCase(unittest.TestCase):
  6. def test_create_provider_valid(self):
  7. """
  8. Creating a provider with a known name should return
  9. a valid implementation
  10. """
  11. self.assertIsInstance(CloudProviderFactory().create_provider(
  12. factory.ProviderList.AWS, {}, version=1),
  13. interfaces.CloudProvider,
  14. "create_provider did not return a valid instance type")
  15. def test_create_provider_invalid(self):
  16. """
  17. Creating a provider with an invalid name should raise a
  18. NotImplementedError
  19. """
  20. with self.assertRaises(NotImplementedError):
  21. CloudProviderFactory().create_provider("ec23", {})
  22. with self.assertRaises(NotImplementedError):
  23. CloudProviderFactory().create_provider(
  24. factory.ProviderList.AWS,
  25. {},
  26. version=100)
  27. def test_find_provider_impl_valid(self):
  28. """
  29. Searching for a provider with a known name or version should return a
  30. valid implementation
  31. """
  32. self.assertTrue(
  33. CloudProviderFactory().find_provider_impl(
  34. factory.ProviderList.AWS))
  35. self.assertEqual(CloudProviderFactory().find_provider_impl(
  36. factory.ProviderList.AWS, version=1),
  37. "cloudbridge.providers.aws.AWSCloudProviderV1")
  38. def test_find_provider_impl_invalid(self):
  39. """
  40. Searching for a provider with an invalid name or version should return
  41. None
  42. """
  43. self.assertIsNone(
  44. CloudProviderFactory().find_provider_impl("openstack1"))
  45. self.assertIsNone(CloudProviderFactory().find_provider_impl(
  46. factory.ProviderList.AWS, version=100))