summaryrefslogtreecommitdiff
path: root/oslo_vmware/tests/test_exceptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_vmware/tests/test_exceptions.py')
-rw-r--r--oslo_vmware/tests/test_exceptions.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/oslo_vmware/tests/test_exceptions.py b/oslo_vmware/tests/test_exceptions.py
index 2ef24a7..d70756b 100644
--- a/oslo_vmware/tests/test_exceptions.py
+++ b/oslo_vmware/tests/test_exceptions.py
@@ -16,6 +16,8 @@
"""
Unit tests for exceptions module.
"""
+import mock
+
from oslo_vmware._i18n import _
from oslo_vmware import exceptions
from oslo_vmware.tests import base
@@ -119,3 +121,30 @@ class ExceptionsTest(base.TestCase):
exceptions.get_fault_class("ManagedObjectNotFound"))
# Test unknown fault.
self.assertIsNone(exceptions.get_fault_class("NotAFile"))
+
+ def test_translate_fault(self):
+
+ def fake_task(fault_class_name, error_msg=None):
+ task_info = mock.Mock()
+ task_info.localizedMessage = error_msg
+ if fault_class_name:
+ error_fault = mock.Mock()
+ error_fault.__class__.__name__ = fault_class_name
+ task_info.fault = error_fault
+ return task_info
+
+ error_msg = "OUCH"
+ task = fake_task(exceptions.FILE_LOCKED, error_msg)
+ actual = exceptions.translate_fault(task)
+
+ expected = exceptions.FileLockedException(error_msg)
+ self.assertEqual(expected.__class__, actual.__class__)
+ self.assertEqual(expected.message, actual.message)
+
+ error_msg = "Oopsie"
+ task = fake_task(None, error_msg)
+ actual = exceptions.translate_fault(task)
+ expected = exceptions.VimFaultException(['Mock'], message=error_msg)
+ self.assertEqual(expected.__class__, actual.__class__)
+ self.assertEqual(expected.message, actual.message)
+ self.assertEqual(expected.fault_list, actual.fault_list)