(self, exc1, exc2)
| 409 | self.assertEqual(args1, args2) |
| 410 | |
| 411 | def assert_exc_equal(self, exc1, exc2): |
| 412 | self.assertIs(type(exc1), type(exc2)) |
| 413 | |
| 414 | if type(exc1).__eq__ is not object.__eq__: |
| 415 | self.assertEqual(exc1, exc2) |
| 416 | |
| 417 | self.assert_exc_args_equal(exc1, exc2) |
| 418 | # XXX For now we do not preserve tracebacks. |
| 419 | if exc1.__traceback__ is not None: |
| 420 | self.assertEqual(exc1.__traceback__, exc2.__traceback__) |
| 421 | self.assertEqual( |
| 422 | getattr(exc1, '__notes__', None), |
| 423 | getattr(exc2, '__notes__', None), |
| 424 | ) |
| 425 | # We assume there are no cycles. |
| 426 | if exc1.__cause__ is None: |
| 427 | self.assertIs(exc1.__cause__, exc2.__cause__) |
| 428 | else: |
| 429 | self.assert_exc_equal(exc1.__cause__, exc2.__cause__) |
| 430 | if exc1.__context__ is None: |
| 431 | self.assertIs(exc1.__context__, exc2.__context__) |
| 432 | else: |
| 433 | self.assert_exc_equal(exc1.__context__, exc2.__context__) |
| 434 | |
| 435 | def assert_equal_or_equalish(self, obj, expected): |
| 436 | cls = type(expected) |
no test coverage detected