diff options
| author | Irit Katriel <1055913+iritkatriel@users.noreply.github.com> | 2022-01-02 23:22:42 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-02 23:22:42 (GMT) |
| commit | 65e7c1f90e9136fc61f4af029b065d9f6c5664c3 (patch) | |
| tree | bf322965684bd0eeef7c220c5d1cb8307933cbb7 /Lib/test/test_except_star.py | |
| parent | 8e75c6b49b7cb8515b917f01b32ece8c8ea2c0a0 (diff) | |
| download | cpython-65e7c1f90e9136fc61f4af029b065d9f6c5664c3.zip cpython-65e7c1f90e9136fc61f4af029b065d9f6c5664c3.tar.gz cpython-65e7c1f90e9136fc61f4af029b065d9f6c5664c3.tar.bz2 | |
bpo-46219, 46221: simplify except* implementation following exc_info changes. Move helpers to exceptions.c. Do not assume that exception groups are truthy. (GH-30289)
Diffstat (limited to 'Lib/test/test_except_star.py')
| -rw-r--r-- | Lib/test/test_except_star.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Lib/test/test_except_star.py b/Lib/test/test_except_star.py index b03de9c..490b159 100644 --- a/Lib/test/test_except_star.py +++ b/Lib/test/test_except_star.py @@ -952,6 +952,34 @@ class TestExceptStarExceptionGroupSubclass(ExceptStarTest): self.assertEqual(teg.code, 42) self.assertEqual(teg.exceptions[0].code, 101) + def test_falsy_exception_group_subclass(self): + class FalsyEG(ExceptionGroup): + def __bool__(self): + return False + + def derive(self, excs): + return FalsyEG(self.message, excs) + + try: + try: + raise FalsyEG("eg", [TypeError(1), ValueError(2)]) + except *TypeError as e: + tes = e + raise + except *ValueError as e: + ves = e + pass + except Exception as e: + exc = e + + for e in [tes, ves, exc]: + self.assertFalse(e) + self.assertIsInstance(e, FalsyEG) + + self.assertExceptionIsLike(exc, FalsyEG("eg", [TypeError(1)])) + self.assertExceptionIsLike(tes, FalsyEG("eg", [TypeError(1)])) + self.assertExceptionIsLike(ves, FalsyEG("eg", [ValueError(2)])) + class TestExceptStarCleanup(ExceptStarTest): def test_exc_info_restored(self): |
