summaryrefslogtreecommitdiff
path: root/oslo_utils/tests/test_excutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_utils/tests/test_excutils.py')
-rw-r--r--oslo_utils/tests/test_excutils.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/oslo_utils/tests/test_excutils.py b/oslo_utils/tests/test_excutils.py
index c2626a4..60f752d 100644
--- a/oslo_utils/tests/test_excutils.py
+++ b/oslo_utils/tests/test_excutils.py
@@ -25,6 +25,41 @@ from oslo_utils import excutils
mox = moxstubout.mox
+class Fail1(excutils.CausedByException):
+ pass
+
+
+class Fail2(excutils.CausedByException):
+ pass
+
+
+class CausedByTest(test_base.BaseTestCase):
+
+ def test_caused_by_explicit(self):
+ e = self.assertRaises(Fail1,
+ excutils.raise_with_cause,
+ Fail1, "I was broken",
+ cause=Fail2("I have been broken"))
+ self.assertIsInstance(e.cause, Fail2)
+ e_p = e.pformat()
+ self.assertIn("I have been broken", e_p)
+ self.assertIn("Fail2", e_p)
+
+ def test_caused_by_implicit(self):
+
+ def raises_chained():
+ try:
+ raise Fail2("I have been broken")
+ except Fail2:
+ excutils.raise_with_cause(Fail1, "I was broken")
+
+ e = self.assertRaises(Fail1, raises_chained)
+ self.assertIsInstance(e.cause, Fail2)
+ e_p = e.pformat()
+ self.assertIn("I have been broken", e_p)
+ self.assertIn("Fail2", e_p)
+
+
class SaveAndReraiseTest(test_base.BaseTestCase):
def test_save_and_reraise_exception(self):