diff options
Diffstat (limited to 'oslo_utils/tests/test_excutils.py')
-rw-r--r-- | oslo_utils/tests/test_excutils.py | 35 |
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): |