def test_chain_simple(self): try: raise SomeOtherException('A') except SomeOtherException as err: ex1 = err err = _chain_exceptions([ex1, ex1]) self.assertEqual(err, ex1) self.assertIsNone(err.__context__) with self.assertRaises(SomeOtherException): raise err
def test_chain_dups_nested(self): try: raise SomeOtherException('A') except SomeOtherException as err: ex1 = err try: raise SomeOtherException('B') except SomeOtherException as err: ex2 = err err = _chain_exceptions([ex1, ex2, ex1, ex2]) self.assertEqual(err, ex2) self.assertEqual(err.__context__, ex1) self.assertIsNone(err.__context__.__context__) with self.assertRaises(SomeOtherException): raise err