Repository: libcloud
Updated Branches:
  refs/heads/trunk 2a2b20080 -> e3bb83801


Multiple improvements to the Dimension Data tests

- Use libcloud.test.unittest instead of the system unittest to ensure
  that newer unittest features are available in older version of Python

- Update all other Dimension Data test cases to use self.assertRaises
  instead of try...except blocks so that, should a regression happen,
  the tests will provide a more helpful message than 'False is not True'


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/7b5bf4f2
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/7b5bf4f2
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/7b5bf4f2

Branch: refs/heads/trunk
Commit: 7b5bf4f27436294f3db8534feff393d0a6f51200
Parents: 2a2b200
Author: Mark S. Maglana <mmagl...@gmail.com>
Authored: Thu Jan 7 09:36:53 2016 -0800
Committer: anthony-shaw <anthony.p.s...@gmail.com>
Committed: Sat Jan 9 16:46:27 2016 +1100

----------------------------------------------------------------------
 libcloud/test/backup/test_dimensiondata.py      | 13 ++---
 libcloud/test/compute/test_dimensiondata.py     | 50 +++++++++-----------
 .../test/loadbalancer/test_dimensiondata.py     | 13 ++---
 3 files changed, 28 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/7b5bf4f2/libcloud/test/backup/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/backup/test_dimensiondata.py 
b/libcloud/test/backup/test_dimensiondata.py
index 0c81a7f..5121d8b 100644
--- a/libcloud/test/backup/test_dimensiondata.py
+++ b/libcloud/test/backup/test_dimensiondata.py
@@ -14,13 +14,12 @@
 # limitations under the License.
 
 import sys
-import unittest
 from libcloud.utils.py3 import httplib
 
 from libcloud.common.types import InvalidCredsError
 from libcloud.backup.drivers.dimensiondata import DimensionDataBackupDriver as 
DimensionData
 
-from libcloud.test import MockHttp
+from libcloud.test import MockHttp, unittest
 from libcloud.test.backup import TestCaseMixin
 from libcloud.test.file_fixtures import BackupFileFixtures
 
@@ -35,19 +34,13 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         self.driver = DimensionData(*DIMENSIONDATA_PARAMS)
 
     def test_invalid_region(self):
-        try:
+        with self.assertRaises(ValueError):
             self.driver = DimensionData(*DIMENSIONDATA_PARAMS, region='blah')
-        except ValueError:
-            pass
 
     def test_invalid_creds(self):
         DimensionDataMockHttp.type = 'UNAUTHORIZED'
-        try:
+        with self.assertRaises(InvalidCredsError):
             self.driver.list_targets()
-            self.assertTrue(
-                False)  # Above command should have thrown an 
InvalidCredsException
-        except InvalidCredsError:
-            pass
 
     def test_list_targets(self):
         targets = self.driver.list_targets()

http://git-wip-us.apache.org/repos/asf/libcloud/blob/7b5bf4f2/libcloud/test/compute/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata.py 
b/libcloud/test/compute/test_dimensiondata.py
index d819334..efe8a25 100644
--- a/libcloud/test/compute/test_dimensiondata.py
+++ b/libcloud/test/compute/test_dimensiondata.py
@@ -19,7 +19,6 @@ except ImportError:
     from xml.etree import ElementTree as ET
 
 import sys
-import unittest
 from libcloud.utils.py3 import httplib
 
 from libcloud.common.types import InvalidCredsError
@@ -28,10 +27,9 @@ from libcloud.common.dimensiondata import 
DimensionDataServerCpuSpecification
 from libcloud.compute.drivers.dimensiondata import DimensionDataNodeDriver as 
DimensionData
 from libcloud.compute.base import Node, NodeAuthPassword, NodeLocation
 
-from libcloud.test import MockHttp
+from libcloud.test import MockHttp, unittest
 from libcloud.test.compute import TestCaseMixin
 from libcloud.test.file_fixtures import ComputeFileFixtures
-
 from libcloud.test.secrets import DIMENSIONDATA_PARAMS
 
 
@@ -43,14 +41,13 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         self.driver = DimensionData(*DIMENSIONDATA_PARAMS)
 
     def test_invalid_region(self):
-        self.assertRaises(ValueError,
-                          DimensionData,
-                          *DIMENSIONDATA_PARAMS,
-                          region='blah')
+        with self.assertRaises(ValueError):
+            DimensionData(*DIMENSIONDATA_PARAMS, region='blah')
 
     def test_invalid_creds(self):
         DimensionDataMockHttp.type = 'UNAUTHORIZED'
-        self.assertRaises(InvalidCredsError, self.driver.list_nodes)
+        with self.assertRaises(InvalidCredsError):
+            self.driver.list_nodes()
 
     def test_list_locations_response(self):
         DimensionDataMockHttp.type = None
@@ -83,7 +80,8 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         DimensionDataMockHttp.type = 'INPROGRESS'
         node = Node(id='11', name=None, state=None,
                     public_ips=None, private_ips=None, driver=self.driver)
-        self.assertRaises(DimensionDataAPIException, node.reboot)
+        with self.assertRaises(DimensionDataAPIException):
+            node.reboot()
 
     def test_destroy_node_response(self):
         node = Node(id='11', name=None, state=None,
@@ -95,7 +93,8 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         DimensionDataMockHttp.type = 'INPROGRESS'
         node = Node(id='11', name=None, state=None,
                     public_ips=None, private_ips=None, driver=self.driver)
-        self.assertRaises(DimensionDataAPIException, node.destroy)
+        with self.assertRaises(DimensionDataAPIException):
+            node.destroy()
 
     def test_list_images(self):
         images = self.driver.list_images()
@@ -148,15 +147,13 @@ class DimensionDataTests(unittest.TestCase, 
TestCaseMixin):
     def test_create_node_no_network(self):
         rootPw = NodeAuthPassword('pass123')
         image = self.driver.list_images()[0]
-        self.assertRaises(
-            ValueError,
-            self.driver.create_node,
-            name='test2',
-            image=image,
-            auth=rootPw,
-            ex_description='test2 node',
-            ex_network=None,
-            ex_isStarted=False)
+        with self.assertRaises(ValueError):
+            self.driver.create_node(name='test2',
+                                    image=image,
+                                    auth=rootPw,
+                                    ex_description='test2 node',
+                                    ex_network=None,
+                                    ex_isStarted=False)
 
     def test_ex_shutdown_graceful(self):
         node = Node(id='11', name=None, state=None,
@@ -168,9 +165,8 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         DimensionDataMockHttp.type = 'INPROGRESS'
         node = Node(id='11', name=None, state=None,
                     public_ips=None, private_ips=None, driver=self.driver)
-        self.assertRaises(DimensionDataAPIException,
-                          self.driver.ex_shutdown_graceful,
-                          node)
+        with self.assertRaises(DimensionDataAPIException):
+            self.driver.ex_shutdown_graceful(node)
 
     def test_ex_start_node(self):
         node = Node(id='11', name=None, state=None,
@@ -182,9 +178,8 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         DimensionDataMockHttp.type = 'INPROGRESS'
         node = Node(id='11', name=None, state=None,
                     public_ips=None, private_ips=None, driver=self.driver)
-        self.assertRaises(DimensionDataAPIException,
-                          self.driver.ex_start_node,
-                          node)
+        with self.assertRaises(DimensionDataAPIException):
+            self.driver.ex_start_node(node)
 
     def test_ex_power_off(self):
         node = Node(id='11', name=None, state=None,
@@ -202,9 +197,8 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         DimensionDataMockHttp.type = 'INPROGRESS'
         node = Node(id='11', name=None, state=None,
                     public_ips=None, private_ips=None, driver=self.driver)
-        self.assertRaises(DimensionDataAPIException,
-                          self.driver.ex_power_off,
-                          node)
+        with self.assertRaises(DimensionDataAPIException):
+            self.driver.ex_power_off(node)
 
     def test_ex_reset(self):
         node = Node(id='11', name=None, state=None,

http://git-wip-us.apache.org/repos/asf/libcloud/blob/7b5bf4f2/libcloud/test/loadbalancer/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_dimensiondata.py 
b/libcloud/test/loadbalancer/test_dimensiondata.py
index 86b3a8b..2b6a1f9 100644
--- a/libcloud/test/loadbalancer/test_dimensiondata.py
+++ b/libcloud/test/loadbalancer/test_dimensiondata.py
@@ -13,7 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 import sys
-import unittest
 from libcloud.utils.py3 import httplib
 
 from libcloud.common.types import InvalidCredsError
@@ -24,7 +23,7 @@ from libcloud.loadbalancer.drivers.dimensiondata \
     import DimensionDataLBDriver as DimensionData
 from libcloud.loadbalancer.types import State
 
-from libcloud.test import MockHttp
+from libcloud.test import MockHttp, unittest
 from libcloud.test.file_fixtures import LoadBalancerFileFixtures
 
 from libcloud.test.secrets import DIMENSIONDATA_PARAMS
@@ -38,19 +37,13 @@ class DimensionDataTests(unittest.TestCase):
         self.driver = DimensionData(*DIMENSIONDATA_PARAMS)
 
     def test_invalid_region(self):
-        try:
+        with self.assertRaises(ValueError):
             self.driver = DimensionData(*DIMENSIONDATA_PARAMS, region='blah')
-        except ValueError:
-            pass
 
     def test_invalid_creds(self):
         DimensionDataMockHttp.type = 'UNAUTHORIZED'
-        try:
+        with self.assertRaises(InvalidCredsError):
             self.driver.list_balancers()
-            self.assertTrue(False)
-            # Above command should have thrown an InvalidCredsException
-        except InvalidCredsError:
-            pass
 
     def test_create_balancer(self):
         self.driver.ex_set_current_network_domain('1234')

Reply via email to