/
opt
/
imh-python
/
lib
/
python3.9
/
site-packages
/
IPython
/
core
/
tests
/
/opt/imh-python/lib/python3.9/site-packages/IPython/core/tests
mkdir
upload
Name
Size
Mode
Actions
daft_extension/
-
0755
rm
__pycache__/
-
0755
rm
2x2.jpg
331
0644
edit
dl
rm
2x2.png
71
0644
edit
dl
rm
bad_all.py
206
0644
edit
dl
rm
nonascii.py
135
0644
edit
dl
rm
nonascii2.py
155
0644
edit
dl
rm
print_argv.py
32
0644
edit
dl
rm
refbug.py
1494
0644
edit
dl
rm
simpleerr.py
583
0644
edit
dl
rm
tclass.py
921
0644
edit
dl
rm
test_alias.py
2007
0644
edit
dl
rm
test_application.py
2245
0644
edit
dl
rm
test_async_helpers.py
8647
0644
edit
dl
rm
test_autocall.py
1425
0644
edit
dl
rm
test_compilerop.py
2174
0644
edit
dl
rm
test_completer.py
60803
0644
edit
dl
rm
test_completerlib.py
6507
0644
edit
dl
rm
test_debugger.py
14501
0644
edit
dl
rm
test_display.py
15946
0644
edit
dl
rm
test_displayhook.py
3593
0644
edit
dl
rm
test_events.py
2287
0644
edit
dl
rm
test_exceptiongroup_tb.py
3599
0644
edit
dl
rm
test_extension.py
3026
0644
edit
dl
rm
test_formatters.py
14249
0644
edit
dl
rm
test_guarded_eval.py
15655
0644
edit
dl
rm
test_handlers.py
3286
0644
edit
dl
rm
test_history.py
11698
0644
edit
dl
rm
test_hooks.py
2316
0644
edit
dl
rm
test_imports.py
1153
0644
edit
dl
rm
test_inputsplitter.py
23213
0644
edit
dl
rm
test_inputtransformer.py
15755
0644
edit
dl
rm
test_inputtransformer2.py
11408
0644
edit
dl
rm
test_inputtransformer2_line.py
2971
0644
edit
dl
rm
test_interactiveshell.py
39660
0644
edit
dl
rm
test_iplib.py
6677
0644
edit
dl
rm
test_logger.py
776
0644
edit
dl
rm
test_magic.py
44359
0644
edit
dl
rm
test_magic_arguments.py
4778
0644
edit
dl
rm
test_magic_terminal.py
5996
0644
edit
dl
rm
test_oinspect.py
15674
0644
edit
dl
rm
test_page.py
772
0644
edit
dl
rm
test_paths.py
7081
0644
edit
dl
rm
test_prefilter.py
4214
0644
edit
dl
rm
test_profile.py
5064
0644
edit
dl
rm
test_prompts.py
845
0644
edit
dl
rm
test_pylabtools.py
7880
0644
edit
dl
rm
test_run.py
19369
0644
edit
dl
rm
test_shellapp.py
1892
0644
edit
dl
rm
test_splitinput.py
1227
0644
edit
dl
rm
test_ultratb.py
12026
0644
edit
dl
rm
__init__.py
0
0644
edit
dl
rm
Edit:
/opt/imh-python/lib/python3.9/site-packages/IPython/core/tests/test_exceptiongroup_tb.py
(3599B)
import unittest import re from IPython.utils.capture import capture_output import sys import pytest from tempfile import TemporaryDirectory from IPython.testing import tools as tt def _exceptiongroup_common( outer_chain: str, inner_chain: str, native: bool, ) -> None: pre_raise = "exceptiongroup." if not native else "" pre_catch = pre_raise if sys.version_info < (3, 11) else "" filestr = f""" {"import exceptiongroup" if not native else ""} import pytest def f(): raise ValueError("From f()") def g(): raise BaseException("From g()") def inner(inner_chain): excs = [] for callback in [f, g]: try: callback() except BaseException as err: excs.append(err) if excs: if inner_chain == "none": raise {pre_raise}BaseExceptionGroup("Oops", excs) try: raise SyntaxError() except SyntaxError as e: if inner_chain == "from": raise {pre_raise}BaseExceptionGroup("Oops", excs) from e else: raise {pre_raise}BaseExceptionGroup("Oops", excs) def outer(outer_chain, inner_chain): try: inner(inner_chain) except {pre_catch}BaseExceptionGroup as e: if outer_chain == "none": raise if outer_chain == "from": raise IndexError() from e else: raise IndexError outer("{outer_chain}", "{inner_chain}") """ with capture_output() as cap: ip.run_cell(filestr) match_lines = [] if inner_chain == "another": match_lines += [ "During handling of the above exception, another exception occurred:", ] elif inner_chain == "from": match_lines += [ "The above exception was the direct cause of the following exception:", ] match_lines += [ " + Exception Group Traceback (most recent call last):", f" | {pre_catch}BaseExceptionGroup: Oops (2 sub-exceptions)", " | ValueError: From f()", " | BaseException: From g()", ] if outer_chain == "another": match_lines += [ "During handling of the above exception, another exception occurred:", "IndexError", ] elif outer_chain == "from": match_lines += [ "The above exception was the direct cause of the following exception:", "IndexError", ] error_lines = cap.stderr.split("\n") err_index = match_index = 0 for expected in match_lines: for i, actual in enumerate(error_lines): if actual == expected: error_lines = error_lines[i + 1 :] break else: assert False, f"{expected} not found in cap.stderr" @pytest.mark.skipif( sys.version_info < (3, 11), reason="Native ExceptionGroup not implemented" ) @pytest.mark.parametrize("outer_chain", ["none", "from", "another"]) @pytest.mark.parametrize("inner_chain", ["none", "from", "another"]) def test_native_exceptiongroup(outer_chain, inner_chain) -> None: _exceptiongroup_common(outer_chain, inner_chain, native=True) @pytest.mark.parametrize("outer_chain", ["none", "from", "another"]) @pytest.mark.parametrize("inner_chain", ["none", "from", "another"]) def test_native_exceptiongroup(outer_chain, inner_chain) -> None: pytest.importorskip("exceptiongroup") _exceptiongroup_common(outer_chain, inner_chain, native=False)
Save
cmd:
run