|
@@ -2,10 +2,11 @@ import unittest
|
|
|
|
|
|
|
|
from cloudbridge.cloud import factory
|
|
from cloudbridge.cloud import factory
|
|
|
from cloudbridge.cloud import interfaces
|
|
from cloudbridge.cloud import interfaces
|
|
|
-from cloudbridge.cloud.base.helpers import TestMockHelperMixin
|
|
|
|
|
from cloudbridge.cloud.factory import CloudProviderFactory
|
|
from cloudbridge.cloud.factory import CloudProviderFactory
|
|
|
|
|
+from cloudbridge.cloud.interfaces import TestMockHelperMixin
|
|
|
from cloudbridge.cloud.interfaces.provider import CloudProvider
|
|
from cloudbridge.cloud.interfaces.provider import CloudProvider
|
|
|
from cloudbridge.cloud.providers.aws import AWSCloudProvider
|
|
from cloudbridge.cloud.providers.aws import AWSCloudProvider
|
|
|
|
|
+from cloudbridge.cloud.providers.aws.provider import MockAWSCloudProvider
|
|
|
import test.helpers as helpers
|
|
import test.helpers as helpers
|
|
|
|
|
|
|
|
|
|
|
|
@@ -65,36 +66,53 @@ class CloudFactoryTestCase(unittest.TestCase):
|
|
|
"""
|
|
"""
|
|
|
self.assertIsNone(CloudProviderFactory().get_provider_class("aws1"))
|
|
self.assertIsNone(CloudProviderFactory().get_provider_class("aws1"))
|
|
|
|
|
|
|
|
- def test_register_test_class_invalid(self):
|
|
|
|
|
|
|
+ def test_register_provider_class_invalid(self):
|
|
|
"""
|
|
"""
|
|
|
Attempting to register an invalid test class should be ignored
|
|
Attempting to register an invalid test class should be ignored
|
|
|
"""
|
|
"""
|
|
|
class DummyClass(object):
|
|
class DummyClass(object):
|
|
|
- SHORT_NAME = 'aws'
|
|
|
|
|
|
|
+ PROVIDER_ID = 'aws'
|
|
|
|
|
|
|
|
factory = CloudProviderFactory()
|
|
factory = CloudProviderFactory()
|
|
|
factory.register_provider_class(DummyClass)
|
|
factory.register_provider_class(DummyClass)
|
|
|
self.assertTrue(DummyClass not in
|
|
self.assertTrue(DummyClass not in
|
|
|
factory.get_all_provider_classes(get_mock=False))
|
|
factory.get_all_provider_classes(get_mock=False))
|
|
|
|
|
|
|
|
- def test_register_test_class_double(self):
|
|
|
|
|
|
|
+ def test_register_provider_class_double(self):
|
|
|
"""
|
|
"""
|
|
|
Attempting to register the same class twice should register second
|
|
Attempting to register the same class twice should register second
|
|
|
instance
|
|
instance
|
|
|
"""
|
|
"""
|
|
|
class DummyClass(CloudProvider):
|
|
class DummyClass(CloudProvider):
|
|
|
- SHORT_NAME = 'aws'
|
|
|
|
|
|
|
+ PROVIDER_ID = 'aws'
|
|
|
|
|
|
|
|
factory = CloudProviderFactory()
|
|
factory = CloudProviderFactory()
|
|
|
|
|
+ factory.list_providers()
|
|
|
factory.register_provider_class(DummyClass)
|
|
factory.register_provider_class(DummyClass)
|
|
|
self.assertTrue(DummyClass in
|
|
self.assertTrue(DummyClass in
|
|
|
factory.get_all_provider_classes(get_mock=False))
|
|
factory.get_all_provider_classes(get_mock=False))
|
|
|
self.assertTrue(AWSCloudProvider not in
|
|
self.assertTrue(AWSCloudProvider not in
|
|
|
factory.get_all_provider_classes(get_mock=False))
|
|
factory.get_all_provider_classes(get_mock=False))
|
|
|
|
|
|
|
|
- def test_register_test_class_without_shortname(self):
|
|
|
|
|
|
|
+ def test_register_mock_provider_class_double(self):
|
|
|
"""
|
|
"""
|
|
|
- Attempting to register a class without a SHORT_NAME attribute
|
|
|
|
|
|
|
+ Attempting to register the same mock provider twice should register
|
|
|
|
|
+ only the second instance
|
|
|
|
|
+ """
|
|
|
|
|
+ class DummyClass(CloudProvider, TestMockHelperMixin):
|
|
|
|
|
+ PROVIDER_ID = 'aws'
|
|
|
|
|
+
|
|
|
|
|
+ factory = CloudProviderFactory()
|
|
|
|
|
+ factory.list_providers()
|
|
|
|
|
+ factory.register_provider_class(DummyClass)
|
|
|
|
|
+ self.assertTrue(DummyClass in
|
|
|
|
|
+ factory.get_all_provider_classes(get_mock=True))
|
|
|
|
|
+ self.assertTrue(MockAWSCloudProvider not in
|
|
|
|
|
+ factory.get_all_provider_classes(get_mock=True))
|
|
|
|
|
+
|
|
|
|
|
+ def test_register_provider_class_without_id(self):
|
|
|
|
|
+ """
|
|
|
|
|
+ Attempting to register a class without a PROVIDER_ID attribute
|
|
|
should be ignored.
|
|
should be ignored.
|
|
|
"""
|
|
"""
|
|
|
class DummyClass(CloudProvider):
|
|
class DummyClass(CloudProvider):
|