Просмотр исходного кода

Added test case for authenticate method

Nuwan Goonasekera 9 лет назад
Родитель
Сommit
813823cb8a
1 измененных файлов с 26 добавлено и 0 удалено
  1. 26 0
      test/test_interface.py

+ 26 - 0
test/test_interface.py

@@ -1,6 +1,10 @@
+import unittest
 import cloudbridge
 from cloudbridge.cloud import interfaces
 from test.helpers import ProviderTestBase
+from cloudbridge.cloud.interfaces.resources import ProviderConnectionException
+from cloudbridge.cloud.interfaces import TestMockHelperMixin
+from cloudbridge.cloud.factory import CloudProviderFactory
 
 
 class CloudInterfaceTestCase(ProviderTestBase):
@@ -38,3 +42,25 @@ class CloudInterfaceTestCase(ProviderTestBase):
         """
         self.assertIsNotNone(cloudbridge.get_version(),
                              "Did not get library version.")
+
+    def test_authenticate_success(self):
+        self.assertTrue(self.provider.authenticate())
+
+    def test_authenticate_failure(self):
+        if isinstance(self.provider, TestMockHelperMixin):
+            raise unittest.SkipTest(
+                "Mock providers are not expected to"
+                " authenticate correctly")
+
+        cloned_provider = CloudProviderFactory().create_provider(
+            self.provider.PROVIDER_ID, self.provider.config)
+
+        with self.assertRaises(ProviderConnectionException):
+            # Mock up test by clearing credentials on a per provider basis
+            if cloned_provider.PROVIDER_ID == 'aws':
+                cloned_provider.a_key = "dummy_a_key"
+                cloned_provider.s_key = "dummy_s_key"
+            elif cloned_provider.PROVIDER_ID == 'openstack':
+                cloned_provider.username = "cb_dummy"
+                cloned_provider.password = "cb_dummy"
+            cloned_provider.authenticate()