diff options
author | Irit Katriel <1055913+iritkatriel@users.noreply.github.com> | 2022-02-22 18:28:58 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-22 18:28:58 +0000 |
commit | 38b5acf8673ce42a401263a2528202e44d6ae60a (patch) | |
tree | 268428aef9ba81cf2d28a6b4e5b62cc2fe99cf40 /Lib/test/test_exception_group.py | |
parent | bba8008f99d615a02984422a3825082bb5621f5a (diff) | |
download | cpython-38b5acf8673ce42a401263a2528202e44d6ae60a.tar.gz cpython-38b5acf8673ce42a401263a2528202e44d6ae60a.zip |
bpo-46729: add number of sub-exceptions in str() of BaseExceptionGroup (GH-31294)
Diffstat (limited to 'Lib/test/test_exception_group.py')
-rw-r--r-- | Lib/test/test_exception_group.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Lib/test/test_exception_group.py b/Lib/test/test_exception_group.py index b7b53bb2f0e..8a55c826b83 100644 --- a/Lib/test/test_exception_group.py +++ b/Lib/test/test_exception_group.py @@ -102,6 +102,71 @@ class InstanceCreation(unittest.TestCase): MyBEG) +class StrAndReprTests(unittest.TestCase): + def test_ExceptionGroup(self): + eg = BaseExceptionGroup( + 'flat', [ValueError(1), TypeError(2)]) + + self.assertEqual(str(eg), "flat (2 sub-exceptions)") + self.assertEqual(repr(eg), + "ExceptionGroup('flat', [ValueError(1), TypeError(2)])") + + eg = BaseExceptionGroup( + 'nested', [eg, ValueError(1), eg, TypeError(2)]) + + self.assertEqual(str(eg), "nested (4 sub-exceptions)") + self.assertEqual(repr(eg), + "ExceptionGroup('nested', " + "[ExceptionGroup('flat', " + "[ValueError(1), TypeError(2)]), " + "ValueError(1), " + "ExceptionGroup('flat', " + "[ValueError(1), TypeError(2)]), TypeError(2)])") + + def test_BaseExceptionGroup(self): + eg = BaseExceptionGroup( + 'flat', [ValueError(1), KeyboardInterrupt(2)]) + + self.assertEqual(str(eg), "flat (2 sub-exceptions)") + self.assertEqual(repr(eg), + "BaseExceptionGroup(" + "'flat', " + "[ValueError(1), KeyboardInterrupt(2)])") + + eg = BaseExceptionGroup( + 'nested', [eg, ValueError(1), eg]) + + self.assertEqual(str(eg), "nested (3 sub-exceptions)") + self.assertEqual(repr(eg), + "BaseExceptionGroup('nested', " + "[BaseExceptionGroup('flat', " + "[ValueError(1), KeyboardInterrupt(2)]), " + "ValueError(1), " + "BaseExceptionGroup('flat', " + "[ValueError(1), KeyboardInterrupt(2)])])") + + def test_custom_exception(self): + class MyEG(ExceptionGroup): + pass + + eg = MyEG( + 'flat', [ValueError(1), TypeError(2)]) + + self.assertEqual(str(eg), "flat (2 sub-exceptions)") + self.assertEqual(repr(eg), "MyEG('flat', [ValueError(1), TypeError(2)])") + + eg = MyEG( + 'nested', [eg, ValueError(1), eg, TypeError(2)]) + + self.assertEqual(str(eg), "nested (4 sub-exceptions)") + self.assertEqual(repr(eg), ( + "MyEG('nested', " + "[MyEG('flat', [ValueError(1), TypeError(2)]), " + "ValueError(1), " + "MyEG('flat', [ValueError(1), TypeError(2)]), " + "TypeError(2)])")) + + def create_simple_eg(): excs = [] try: |