test_provider_factory.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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(factory.ProviderList.EC2, {}, version=1),
  12. interfaces.CloudProvider,
  13. "create_provider did not return a valid instance type")
  14. def test_create_provider_invalid(self):
  15. """
  16. Creating a provider with an invalid name should raise a NotImplementedError
  17. """
  18. with self.assertRaises(NotImplementedError):
  19. CloudProviderFactory().create_provider("ec23", {})
  20. with self.assertRaises(NotImplementedError):
  21. CloudProviderFactory().create_provider(factory.ProviderList.EC2, {}, version=100)
  22. def test_find_provider_impl_valid(self):
  23. """
  24. Searching for a provider with a known name or version should return a valid implementation
  25. """
  26. self.assertTrue(CloudProviderFactory().find_provider_impl(factory.ProviderList.EC2))
  27. self.assertEquals(CloudProviderFactory().find_provider_impl(factory.ProviderList.EC2, version=1),
  28. "cloudbridge.providers.ec2.EC2CloudProviderV1")
  29. def test_find_provider_impl_invalid(self):
  30. """
  31. Searching for a provider with an invalid name or version should return None
  32. """
  33. self.assertIsNone(CloudProviderFactory().find_provider_impl("openstack1"))
  34. self.assertIsNone(CloudProviderFactory().find_provider_impl(
  35. factory.ProviderList.EC2, version=100))