Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 3.148.192.220
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
panel /
pyenv /
lib /
python3.12 /
test /
[ HOME SHELL ]
Name
Size
Permission
Action
audiodata
[ DIR ]
drwxr-xr-x
certdata
[ DIR ]
drwxr-xr-x
cjkencodings
[ DIR ]
drwxr-xr-x
configdata
[ DIR ]
drwxr-xr-x
crashers
[ DIR ]
drwxr-xr-x
data
[ DIR ]
drwxr-xr-x
decimaltestdata
[ DIR ]
drwxr-xr-x
dtracedata
[ DIR ]
drwxr-xr-x
encoded_modules
[ DIR ]
drwxr-xr-x
imghdrdata
[ DIR ]
drwxr-xr-x
leakers
[ DIR ]
drwxr-xr-x
libregrtest
[ DIR ]
drwxr-xr-x
regrtestdata
[ DIR ]
drwxr-xr-x
sndhdrdata
[ DIR ]
drwxr-xr-x
subprocessdata
[ DIR ]
drwxr-xr-x
support
[ DIR ]
drwxr-xr-x
test_asyncio
[ DIR ]
drwxr-xr-x
test_capi
[ DIR ]
drwxr-xr-x
test_concurrent_futures
[ DIR ]
drwxr-xr-x
test_cppext
[ DIR ]
drwxr-xr-x
test_ctypes
[ DIR ]
drwxr-xr-x
test_dataclasses
[ DIR ]
drwxr-xr-x
test_doctest
[ DIR ]
drwxr-xr-x
test_email
[ DIR ]
drwxr-xr-x
test_future_stmt
[ DIR ]
drwxr-xr-x
test_gdb
[ DIR ]
drwxr-xr-x
test_import
[ DIR ]
drwxr-xr-x
test_importlib
[ DIR ]
drwxr-xr-x
test_inspect
[ DIR ]
drwxr-xr-x
test_json
[ DIR ]
drwxr-xr-x
test_lib2to3
[ DIR ]
drwxr-xr-x
test_module
[ DIR ]
drwxr-xr-x
test_multiprocessing_fork
[ DIR ]
drwxr-xr-x
test_multiprocessing_forkserve...
[ DIR ]
drwxr-xr-x
test_multiprocessing_spawn
[ DIR ]
drwxr-xr-x
test_peg_generator
[ DIR ]
drwxr-xr-x
test_pydoc
[ DIR ]
drwxr-xr-x
test_sqlite3
[ DIR ]
drwxr-xr-x
test_tkinter
[ DIR ]
drwxr-xr-x
test_tomllib
[ DIR ]
drwxr-xr-x
test_tools
[ DIR ]
drwxr-xr-x
test_ttk
[ DIR ]
drwxr-xr-x
test_unittest
[ DIR ]
drwxr-xr-x
test_warnings
[ DIR ]
drwxr-xr-x
test_zipfile
[ DIR ]
drwxr-xr-x
test_zoneinfo
[ DIR ]
drwxr-xr-x
tokenizedata
[ DIR ]
drwxr-xr-x
tracedmodules
[ DIR ]
drwxr-xr-x
typinganndata
[ DIR ]
drwxr-xr-x
wheeldata
[ DIR ]
drwxr-xr-x
xmltestdata
[ DIR ]
drwxr-xr-x
ziptestdata
[ DIR ]
drwxr-xr-x
Sine-1000Hz-300ms.aif
60.25
KB
-rw-r--r--
__init__.py
47
B
-rw-r--r--
__main__.py
67
B
-rw-r--r--
_test_atexit.py
3.61
KB
-rw-r--r--
_test_eintr.py
17.75
KB
-rw-r--r--
_test_embed_set_config.py
8.64
KB
-rw-r--r--
_test_embed_structseq.py
1.99
KB
-rw-r--r--
_test_multiprocessing.py
206.66
KB
-rw-r--r--
_test_venv_multiprocessing.py
796
B
-rw-r--r--
archiver_tests.py
6.1
KB
-rw-r--r--
audiotest.au
27.48
KB
-rw-r--r--
audiotests.py
12.13
KB
-rw-r--r--
audit-tests.py
13.19
KB
-rw-r--r--
autotest.py
214
B
-rw-r--r--
badsyntax_pep3120.py
14
B
-rw-r--r--
bisect_cmd.py
5.34
KB
-rwxr-xr-x
clinic.test.c
138.59
KB
-rw-r--r--
cmath_testcases.txt
141.2
KB
-rw-r--r--
curses_tests.py
1.21
KB
-rwxr-xr-x
datetimetester.py
260.28
KB
-rw-r--r--
dis_module.py
76
B
-rw-r--r--
empty.vbs
70
B
-rw-r--r--
exception_hierarchy.txt
2.33
KB
-rw-r--r--
floating_points.txt
15.92
KB
-rw-r--r--
fork_wait.py
2.29
KB
-rw-r--r--
formatfloat_testcases.txt
7.45
KB
-rw-r--r--
ieee754.txt
3.15
KB
-rw-r--r--
levenshtein_examples.json
406.44
KB
-rw-r--r--
list_tests.py
16.64
KB
-rw-r--r--
lock_tests.py
35.48
KB
-rw-r--r--
mailcap.txt
1.24
KB
-rw-r--r--
mapping_tests.py
21.87
KB
-rw-r--r--
math_testcases.txt
23.19
KB
-rw-r--r--
memory_watchdog.py
711
B
-rw-r--r--
mime.types
47.37
KB
-rw-r--r--
mock_socket.py
3.69
KB
-rw-r--r--
mp_fork_bomb.py
448
B
-rw-r--r--
mp_preload.py
351
B
-rw-r--r--
multibytecodec_support.py
14.19
KB
-rw-r--r--
pickletester.py
143.84
KB
-rw-r--r--
profilee.py
2.97
KB
-rw-r--r--
pstats.pck
65.05
KB
-rw-r--r--
pyclbr_input.py
648
B
-rw-r--r--
pythoninfo.py
28.32
KB
-rw-r--r--
randv2_32.pck
7.34
KB
-rw-r--r--
randv2_64.pck
7.19
KB
-rw-r--r--
randv3.pck
7.82
KB
-rw-r--r--
re_tests.py
25.93
KB
-rwxr-xr-x
recursion.tar
516
B
-rw-r--r--
regrtest.py
1.27
KB
-rwxr-xr-x
relimport.py
27
B
-rw-r--r--
reperf.py
538
B
-rw-r--r--
seq_tests.py
14.96
KB
-rw-r--r--
signalinterproctester.py
3.12
KB
-rw-r--r--
ssl_servers.py
7.12
KB
-rw-r--r--
ssltests.py
1.03
KB
-rw-r--r--
string_tests.py
71.24
KB
-rw-r--r--
test___all__.py
5.04
KB
-rw-r--r--
test__locale.py
8.09
KB
-rw-r--r--
test__opcode.py
4.14
KB
-rw-r--r--
test__osx_support.py
13.62
KB
-rw-r--r--
test__xxinterpchannels.py
52.19
KB
-rw-r--r--
test__xxsubinterpreters.py
27.5
KB
-rw-r--r--
test_abc.py
23.81
KB
-rw-r--r--
test_abstract_numbers.py
5.81
KB
-rw-r--r--
test_aifc.py
17.84
KB
-rw-r--r--
test_argparse.py
189
KB
-rw-r--r--
test_array.py
55.27
KB
-rwxr-xr-x
test_asdl_parser.py
4.44
KB
-rw-r--r--
test_ast.py
140.71
KB
-rw-r--r--
test_asyncgen.py
47.39
KB
-rw-r--r--
test_atexit.py
3.2
KB
-rw-r--r--
test_audioop.py
28.32
KB
-rw-r--r--
test_audit.py
8.6
KB
-rw-r--r--
test_augassign.py
7.68
KB
-rw-r--r--
test_base64.py
35.05
KB
-rw-r--r--
test_baseexception.py
7.77
KB
-rw-r--r--
test_bdb.py
43.75
KB
-rw-r--r--
test_bigaddrspace.py
2.83
KB
-rw-r--r--
test_bigmem.py
45.01
KB
-rw-r--r--
test_binascii.py
19.35
KB
-rw-r--r--
test_binop.py
14.14
KB
-rw-r--r--
test_bisect.py
16.63
KB
-rw-r--r--
test_bool.py
14.25
KB
-rw-r--r--
test_buffer.py
171.31
KB
-rw-r--r--
test_bufio.py
2.56
KB
-rw-r--r--
test_builtin.py
95.14
KB
-rw-r--r--
test_bytes.py
80.57
KB
-rw-r--r--
test_bz2.py
42.61
KB
-rw-r--r--
test_c_locale_coercion.py
20.99
KB
-rw-r--r--
test_calendar.py
51.25
KB
-rw-r--r--
test_call.py
35.21
KB
-rw-r--r--
test_cgi.py
22.27
KB
-rw-r--r--
test_cgitb.py
2.62
KB
-rw-r--r--
test_charmapcodec.py
1.77
KB
-rw-r--r--
test_class.py
19.77
KB
-rw-r--r--
test_clinic.py
83.96
KB
-rw-r--r--
test_cmath.py
23.55
KB
-rw-r--r--
test_cmd.py
6.49
KB
-rw-r--r--
test_cmd_line.py
39.51
KB
-rw-r--r--
test_cmd_line_script.py
34.93
KB
-rw-r--r--
test_code.py
25.7
KB
-rw-r--r--
test_code_module.py
5.53
KB
-rw-r--r--
test_codeccallbacks.py
47.43
KB
-rw-r--r--
test_codecencodings_cn.py
3.86
KB
-rw-r--r--
test_codecencodings_hk.py
701
B
-rw-r--r--
test_codecencodings_iso2022.py
3.65
KB
-rw-r--r--
test_codecencodings_jp.py
4.79
KB
-rw-r--r--
test_codecencodings_kr.py
2.96
KB
-rw-r--r--
test_codecencodings_tw.py
681
B
-rw-r--r--
test_codecmaps_cn.py
746
B
-rw-r--r--
test_codecmaps_hk.py
386
B
-rw-r--r--
test_codecmaps_jp.py
1.7
KB
-rw-r--r--
test_codecmaps_kr.py
1.16
KB
-rw-r--r--
test_codecmaps_tw.py
705
B
-rw-r--r--
test_codecs.py
136.12
KB
-rw-r--r--
test_codeop.py
8.68
KB
-rw-r--r--
test_collections.py
93.47
KB
-rw-r--r--
test_colorsys.py
4.27
KB
-rw-r--r--
test_compare.py
17.46
KB
-rw-r--r--
test_compile.py
78.68
KB
-rw-r--r--
test_compileall.py
48.27
KB
-rw-r--r--
test_compiler_assemble.py
2.46
KB
-rw-r--r--
test_compiler_codegen.py
1.69
KB
-rw-r--r--
test_complex.py
35.37
KB
-rw-r--r--
test_configparser.py
85.34
KB
-rw-r--r--
test_contains.py
3.35
KB
-rw-r--r--
test_context.py
30.78
KB
-rw-r--r--
test_contextlib.py
43.12
KB
-rw-r--r--
test_contextlib_async.py
23.99
KB
-rw-r--r--
test_copy.py
26.52
KB
-rw-r--r--
test_copyreg.py
4.36
KB
-rw-r--r--
test_coroutines.py
67.47
KB
-rw-r--r--
test_cprofile.py
7.36
KB
-rw-r--r--
test_crashers.py
1.17
KB
-rw-r--r--
test_crypt.py
4.19
KB
-rw-r--r--
test_csv.py
61.27
KB
-rw-r--r--
test_curses.py
49.54
KB
-rw-r--r--
test_datetime.py
2.53
KB
-rw-r--r--
test_dbm.py
6.83
KB
-rw-r--r--
test_dbm_dumb.py
11.08
KB
-rw-r--r--
test_dbm_gnu.py
7.24
KB
-rw-r--r--
test_dbm_ndbm.py
5.91
KB
-rw-r--r--
test_decimal.py
216.13
KB
-rw-r--r--
test_decorators.py
14.63
KB
-rw-r--r--
test_defaultdict.py
6.1
KB
-rw-r--r--
test_deque.py
33.16
KB
-rw-r--r--
test_descr.py
196.13
KB
-rw-r--r--
test_descrtut.py
10.98
KB
-rw-r--r--
test_devpoll.py
4.44
KB
-rw-r--r--
test_dict.py
50.92
KB
-rw-r--r--
test_dict_version.py
6.1
KB
-rw-r--r--
test_dictcomps.py
5.15
KB
-rw-r--r--
test_dictviews.py
14.82
KB
-rw-r--r--
test_difflib.py
21.47
KB
-rw-r--r--
test_difflib_expect.html
100.85
KB
-rw-r--r--
test_dis.py
83
KB
-rw-r--r--
test_docxmlrpc.py
9.1
KB
-rw-r--r--
test_dtrace.py
7.98
KB
-rw-r--r--
test_dynamic.py
6
KB
-rw-r--r--
test_dynamicclassattribute.py
9.57
KB
-rw-r--r--
test_eintr.py
627
B
-rw-r--r--
test_embed.py
69.41
KB
-rw-r--r--
test_ensurepip.py
11.49
KB
-rw-r--r--
test_enum.py
186.78
KB
-rw-r--r--
test_enumerate.py
9.14
KB
-rw-r--r--
test_eof.py
3.1
KB
-rw-r--r--
test_epoll.py
9.4
KB
-rw-r--r--
test_errno.py
1.04
KB
-rw-r--r--
test_except_star.py
38.25
KB
-rw-r--r--
test_exception_group.py
34.03
KB
-rw-r--r--
test_exception_hierarchy.py
7.54
KB
-rw-r--r--
test_exception_variations.py
13.74
KB
-rw-r--r--
test_exceptions.py
76.46
KB
-rw-r--r--
test_extcall.py
14.69
KB
-rw-r--r--
test_faulthandler.py
30.31
KB
-rw-r--r--
test_fcntl.py
7.76
KB
-rw-r--r--
test_file.py
11.78
KB
-rw-r--r--
test_file_eintr.py
10.74
KB
-rw-r--r--
test_filecmp.py
10.33
KB
-rw-r--r--
test_fileinput.py
37.85
KB
-rw-r--r--
test_fileio.py
19.98
KB
-rw-r--r--
test_fileutils.py
951
B
-rw-r--r--
test_finalization.py
14.66
KB
-rw-r--r--
test_float.py
64.76
KB
-rw-r--r--
test_flufl.py
1.53
KB
-rw-r--r--
test_fnmatch.py
10.68
KB
-rw-r--r--
test_fork1.py
3.3
KB
-rw-r--r--
test_format.py
28.44
KB
-rw-r--r--
test_fractions.py
52.53
KB
-rw-r--r--
test_frame.py
14.04
KB
-rw-r--r--
test_frozen.py
2.2
KB
-rw-r--r--
test_fstring.py
64.71
KB
-rw-r--r--
test_ftplib.py
41.94
KB
-rw-r--r--
test_funcattrs.py
15.57
KB
-rw-r--r--
test_functools.py
109.31
KB
-rw-r--r--
test_gc.py
47.71
KB
-rw-r--r--
test_generator_stop.py
943
B
-rw-r--r--
test_generators.py
66.13
KB
-rw-r--r--
test_genericalias.py
17.78
KB
-rw-r--r--
test_genericclass.py
9.44
KB
-rw-r--r--
test_genericpath.py
22.29
KB
-rw-r--r--
test_genexps.py
7.3
KB
-rw-r--r--
test_getopt.py
6.6
KB
-rw-r--r--
test_getpass.py
6.37
KB
-rw-r--r--
test_getpath.py
44.36
KB
-rw-r--r--
test_gettext.py
35.67
KB
-rw-r--r--
test_glob.py
17.19
KB
-rw-r--r--
test_global.py
1.2
KB
-rw-r--r--
test_grammar.py
65.97
KB
-rw-r--r--
test_graphlib.py
8.31
KB
-rw-r--r--
test_grp.py
3.67
KB
-rw-r--r--
test_gzip.py
40.94
KB
-rw-r--r--
test_hash.py
12.11
KB
-rw-r--r--
test_hashlib.py
46.71
KB
-rw-r--r--
test_heapq.py
16.42
KB
-rw-r--r--
test_hmac.py
26.06
KB
-rw-r--r--
test_html.py
4.23
KB
-rw-r--r--
test_htmlparser.py
33.37
KB
-rw-r--r--
test_http_cookiejar.py
81.57
KB
-rw-r--r--
test_http_cookies.py
18.7
KB
-rw-r--r--
test_httplib.py
96.14
KB
-rw-r--r--
test_httpservers.py
56.43
KB
-rw-r--r--
test_idle.py
831
B
-rw-r--r--
test_imaplib.py
41.69
KB
-rw-r--r--
test_imghdr.py
4.81
KB
-rw-r--r--
test_index.py
8.37
KB
-rw-r--r--
test_int.py
33.34
KB
-rw-r--r--
test_int_literal.py
6.89
KB
-rw-r--r--
test_interpreters.py
32.11
KB
-rw-r--r--
test_io.py
182.76
KB
-rw-r--r--
test_ioctl.py
3.24
KB
-rw-r--r--
test_ipaddress.py
119.17
KB
-rw-r--r--
test_isinstance.py
12.95
KB
-rw-r--r--
test_iter.py
36.77
KB
-rw-r--r--
test_iterlen.py
7.1
KB
-rw-r--r--
test_itertools.py
106.61
KB
-rw-r--r--
test_keyword.py
2
KB
-rw-r--r--
test_keywordonlyarg.py
6.89
KB
-rw-r--r--
test_kqueue.py
9.36
KB
-rw-r--r--
test_largefile.py
10.17
KB
-rw-r--r--
test_launcher.py
27.23
KB
-rw-r--r--
test_linecache.py
11.04
KB
-rw-r--r--
test_list.py
8.93
KB
-rw-r--r--
test_listcomps.py
20.71
KB
-rw-r--r--
test_lltrace.py
3.71
KB
-rw-r--r--
test_locale.py
24.43
KB
-rw-r--r--
test_logging.py
241.62
KB
-rw-r--r--
test_long.py
63.33
KB
-rw-r--r--
test_longexp.py
233
B
-rw-r--r--
test_lzma.py
92.65
KB
-rw-r--r--
test_mailbox.py
93.91
KB
-rw-r--r--
test_mailcap.py
11.48
KB
-rw-r--r--
test_marshal.py
23.15
KB
-rw-r--r--
test_math.py
107.6
KB
-rw-r--r--
test_math_property.py
1.15
KB
-rw-r--r--
test_memoryio.py
32.65
KB
-rw-r--r--
test_memoryview.py
21.76
KB
-rw-r--r--
test_metaclass.py
6.19
KB
-rw-r--r--
test_mimetypes.py
15.28
KB
-rw-r--r--
test_minidom.py
68.42
KB
-rw-r--r--
test_mmap.py
38.56
KB
-rw-r--r--
test_modulefinder.py
12.21
KB
-rw-r--r--
test_monitoring.py
55.76
KB
-rw-r--r--
test_msilib.py
5.52
KB
-rw-r--r--
test_multibytecodec.py
15.79
KB
-rw-r--r--
test_multiprocessing_main_hand...
11.48
KB
-rw-r--r--
test_named_expressions.py
29.62
KB
-rw-r--r--
test_netrc.py
11.86
KB
-rw-r--r--
test_nis.py
1.25
KB
-rw-r--r--
test_nntplib.py
62.7
KB
-rw-r--r--
test_ntpath.py
52.48
KB
-rw-r--r--
test_numeric_tower.py
8
KB
-rw-r--r--
test_opcache.py
10.89
KB
-rw-r--r--
test_opcodes.py
3.62
KB
-rw-r--r--
test_openpty.py
600
B
-rw-r--r--
test_operator.py
26.72
KB
-rw-r--r--
test_optparse.py
61.02
KB
-rw-r--r--
test_ordered_dict.py
35.62
KB
-rw-r--r--
test_os.py
179.95
KB
-rw-r--r--
test_ossaudiodev.py
7.27
KB
-rw-r--r--
test_osx_env.py
1.31
KB
-rw-r--r--
test_pathlib.py
137.81
KB
-rw-r--r--
test_patma.py
86.03
KB
-rw-r--r--
test_pdb.py
86.53
KB
-rw-r--r--
test_peepholer.py
40.6
KB
-rw-r--r--
test_pep646_syntax.py
7.79
KB
-rw-r--r--
test_perf_profiler.py
11.27
KB
-rw-r--r--
test_perfmaps.py
685
B
-rw-r--r--
test_pickle.py
20.75
KB
-rw-r--r--
test_picklebuffer.py
4.99
KB
-rw-r--r--
test_pickletools.py
4.13
KB
-rw-r--r--
test_pipes.py
6.79
KB
-rw-r--r--
test_pkg.py
9.59
KB
-rw-r--r--
test_pkgutil.py
22.36
KB
-rw-r--r--
test_platform.py
21.59
KB
-rw-r--r--
test_plistlib.py
41.25
KB
-rw-r--r--
test_poll.py
7.39
KB
-rw-r--r--
test_popen.py
2.11
KB
-rw-r--r--
test_poplib.py
17.05
KB
-rw-r--r--
test_positional_only_arg.py
18.44
KB
-rw-r--r--
test_posix.py
95.07
KB
-rw-r--r--
test_posixpath.py
33.75
KB
-rw-r--r--
test_pow.py
6.38
KB
-rw-r--r--
test_pprint.py
50.59
KB
-rw-r--r--
test_print.py
7.72
KB
-rw-r--r--
test_profile.py
8.69
KB
-rw-r--r--
test_property.py
18.03
KB
-rw-r--r--
test_pstats.py
4.31
KB
-rw-r--r--
test_pty.py
16.18
KB
-rw-r--r--
test_pulldom.py
12.33
KB
-rw-r--r--
test_pwd.py
4.32
KB
-rw-r--r--
test_py_compile.py
11.93
KB
-rw-r--r--
test_pyclbr.py
10.15
KB
-rw-r--r--
test_pyexpat.py
29.35
KB
-rw-r--r--
test_queue.py
20.61
KB
-rw-r--r--
test_quopri.py
7.87
KB
-rw-r--r--
test_raise.py
13.44
KB
-rw-r--r--
test_random.py
56.69
KB
-rw-r--r--
test_range.py
26.53
KB
-rw-r--r--
test_re.py
131.37
KB
-rw-r--r--
test_readline.py
12.76
KB
-rw-r--r--
test_regrtest.py
90.02
KB
-rw-r--r--
test_repl.py
4.99
KB
-rw-r--r--
test_reprlib.py
27.77
KB
-rw-r--r--
test_resource.py
7.12
KB
-rw-r--r--
test_richcmp.py
11.95
KB
-rw-r--r--
test_rlcompleter.py
7.4
KB
-rw-r--r--
test_robotparser.py
11.02
KB
-rw-r--r--
test_runpy.py
33.95
KB
-rw-r--r--
test_sax.py
54.63
KB
-rw-r--r--
test_sched.py
7.38
KB
-rw-r--r--
test_scope.py
21.21
KB
-rw-r--r--
test_script_helper.py
5.82
KB
-rw-r--r--
test_secrets.py
4.28
KB
-rw-r--r--
test_select.py
3.42
KB
-rw-r--r--
test_selectors.py
19.64
KB
-rw-r--r--
test_set.py
71.31
KB
-rw-r--r--
test_setcomps.py
3.8
KB
-rw-r--r--
test_shelve.py
6.42
KB
-rw-r--r--
test_shlex.py
13.39
KB
-rw-r--r--
test_shutil.py
126.96
KB
-rw-r--r--
test_signal.py
52.42
KB
-rw-r--r--
test_site.py
29.79
KB
-rw-r--r--
test_slice.py
9.46
KB
-rw-r--r--
test_smtplib.py
60.02
KB
-rw-r--r--
test_smtpnet.py
3.03
KB
-rw-r--r--
test_sndhdr.py
1.51
KB
-rw-r--r--
test_socket.py
254.72
KB
-rw-r--r--
test_socketserver.py
17.39
KB
-rw-r--r--
test_sort.py
13.59
KB
-rw-r--r--
test_source_encoding.py
12.65
KB
-rw-r--r--
test_spwd.py
2.83
KB
-rw-r--r--
test_ssl.py
215.24
KB
-rw-r--r--
test_stable_abi_ctypes.py
24.75
KB
-rw-r--r--
test_startfile.py
1.7
KB
-rw-r--r--
test_stat.py
8.92
KB
-rw-r--r--
test_statistics.py
120.02
KB
-rw-r--r--
test_strftime.py
7.4
KB
-rw-r--r--
test_string.py
21.86
KB
-rw-r--r--
test_string_literals.py
13.07
KB
-rw-r--r--
test_stringprep.py
3.04
KB
-rw-r--r--
test_strptime.py
36.48
KB
-rw-r--r--
test_strtod.py
20.06
KB
-rw-r--r--
test_struct.py
38.45
KB
-rw-r--r--
test_structseq.py
7.23
KB
-rw-r--r--
test_subclassinit.py
8.04
KB
-rw-r--r--
test_subprocess.py
162.29
KB
-rw-r--r--
test_sunau.py
6.09
KB
-rw-r--r--
test_sundry.py
1.02
KB
-rw-r--r--
test_super.py
13.9
KB
-rw-r--r--
test_support.py
27.05
KB
-rw-r--r--
test_symtable.py
11.05
KB
-rw-r--r--
test_syntax.py
71.87
KB
-rw-r--r--
test_sys.py
65.64
KB
-rw-r--r--
test_sys_setprofile.py
13.71
KB
-rw-r--r--
test_sys_settrace.py
84.56
KB
-rw-r--r--
test_sysconfig.py
22.45
KB
-rw-r--r--
test_syslog.py
4.7
KB
-rw-r--r--
test_tabnanny.py
13.89
KB
-rw-r--r--
test_tarfile.py
159.67
KB
-rw-r--r--
test_tcl.py
27.22
KB
-rw-r--r--
test_telnetlib.py
12.85
KB
-rw-r--r--
test_tempfile.py
73.86
KB
-rw-r--r--
test_termios.py
10.95
KB
-rw-r--r--
test_textwrap.py
41.89
KB
-rw-r--r--
test_thread.py
8.87
KB
-rw-r--r--
test_threadedtempfile.py
1.93
KB
-rw-r--r--
test_threading.py
73
KB
-rw-r--r--
test_threading_local.py
6.58
KB
-rw-r--r--
test_threadsignals.py
9.87
KB
-rw-r--r--
test_time.py
42.44
KB
-rw-r--r--
test_timeit.py
15.2
KB
-rw-r--r--
test_timeout.py
10.74
KB
-rw-r--r--
test_tix.py
1.05
KB
-rw-r--r--
test_tokenize.py
115.33
KB
-rw-r--r--
test_trace.py
20.58
KB
-rw-r--r--
test_traceback.py
142.96
KB
-rw-r--r--
test_tracemalloc.py
39.54
KB
-rw-r--r--
test_ttk_textonly.py
16.69
KB
-rw-r--r--
test_tty.py
3.63
KB
-rw-r--r--
test_tuple.py
19.8
KB
-rw-r--r--
test_turtle.py
14.04
KB
-rw-r--r--
test_type_aliases.py
11.65
KB
-rw-r--r--
test_type_annotations.py
6.23
KB
-rw-r--r--
test_type_cache.py
6.6
KB
-rw-r--r--
test_type_comments.py
10.5
KB
-rw-r--r--
test_type_params.py
34.24
KB
-rw-r--r--
test_typechecks.py
2.55
KB
-rw-r--r--
test_types.py
80.76
KB
-rw-r--r--
test_typing.py
334.07
KB
-rw-r--r--
test_ucn.py
9.52
KB
-rw-r--r--
test_unary.py
1.52
KB
-rw-r--r--
test_unicode.py
124.82
KB
-rw-r--r--
test_unicode_file.py
5.72
KB
-rw-r--r--
test_unicode_file_functions.py
6.91
KB
-rw-r--r--
test_unicode_identifiers.py
997
B
-rw-r--r--
test_unicodedata.py
17.01
KB
-rw-r--r--
test_univnewlines.py
3.85
KB
-rw-r--r--
test_unpack.py
3.51
KB
-rw-r--r--
test_unpack_ex.py
9.89
KB
-rw-r--r--
test_unparse.py
27.75
KB
-rw-r--r--
test_urllib.py
70.17
KB
-rw-r--r--
test_urllib2.py
80.73
KB
-rw-r--r--
test_urllib2_localnet.py
25.59
KB
-rw-r--r--
test_urllib2net.py
13.96
KB
-rw-r--r--
test_urllib_response.py
2
KB
-rw-r--r--
test_urllibnet.py
9.41
KB
-rw-r--r--
test_urlparse.py
73.73
KB
-rw-r--r--
test_userdict.py
7.56
KB
-rw-r--r--
test_userlist.py
1.97
KB
-rw-r--r--
test_userstring.py
2.52
KB
-rw-r--r--
test_utf8_mode.py
10.31
KB
-rw-r--r--
test_utf8source.py
1.15
KB
-rw-r--r--
test_uu.py
9.2
KB
-rw-r--r--
test_uuid.py
44.26
KB
-rwxr-xr-x
test_venv.py
32.42
KB
-rw-r--r--
test_wait3.py
1.74
KB
-rw-r--r--
test_wait4.py
1.14
KB
-rw-r--r--
test_wave.py
7.64
KB
-rw-r--r--
test_weakref.py
74.32
KB
-rw-r--r--
test_weakset.py
16.3
KB
-rw-r--r--
test_webbrowser.py
10.5
KB
-rw-r--r--
test_winconsoleio.py
6.69
KB
-rw-r--r--
test_winreg.py
22.48
KB
-rw-r--r--
test_winsound.py
5.32
KB
-rw-r--r--
test_with.py
26.02
KB
-rw-r--r--
test_wmi.py
2.89
KB
-rw-r--r--
test_wsgiref.py
29.32
KB
-rw-r--r--
test_xdrlib.py
2.25
KB
-rw-r--r--
test_xml_dom_minicompat.py
4.18
KB
-rw-r--r--
test_xml_etree.py
160.22
KB
-rw-r--r--
test_xml_etree_c.py
9.34
KB
-rw-r--r--
test_xmlrpc.py
58.08
KB
-rw-r--r--
test_xmlrpc_net.py
954
B
-rw-r--r--
test_xxlimited.py
2.46
KB
-rw-r--r--
test_xxtestfuzz.py
690
B
-rw-r--r--
test_yield_from.py
50.23
KB
-rw-r--r--
test_zipapp.py
16.6
KB
-rw-r--r--
test_zipfile64.py
5.78
KB
-rw-r--r--
test_zipimport.py
32.97
KB
-rw-r--r--
test_zipimport_support.py
10.57
KB
-rw-r--r--
test_zlib.py
41.47
KB
-rw-r--r--
testcodec.py
1.02
KB
-rw-r--r--
testtar.tar
425
KB
-rw-r--r--
testtar.tar.xz
172
B
-rw-r--r--
tf_inherit_check.py
714
B
-rw-r--r--
time_hashlib.py
2.87
KB
-rw-r--r--
win_console_handler.py
1.38
KB
-rw-r--r--
xmltests.py
499
B
-rw-r--r--
zip_cp437_header.zip
270
B
-rw-r--r--
zipdir.zip
374
B
-rw-r--r--
zipdir_backslash.zip
192
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : test_except_star.py
import sys import unittest import textwrap from test.support.testcase import ExceptionIsLikeMixin class TestInvalidExceptStar(unittest.TestCase): def test_mixed_except_and_except_star_is_syntax_error(self): errors = [ "try: pass\nexcept ValueError: pass\nexcept* TypeError: pass\n", "try: pass\nexcept* ValueError: pass\nexcept TypeError: pass\n", "try: pass\nexcept ValueError as e: pass\nexcept* TypeError: pass\n", "try: pass\nexcept* ValueError as e: pass\nexcept TypeError: pass\n", "try: pass\nexcept ValueError: pass\nexcept* TypeError as e: pass\n", "try: pass\nexcept* ValueError: pass\nexcept TypeError as e: pass\n", "try: pass\nexcept ValueError: pass\nexcept*: pass\n", "try: pass\nexcept* ValueError: pass\nexcept: pass\n", ] for err in errors: with self.assertRaises(SyntaxError): compile(err, "<string>", "exec") def test_except_star_ExceptionGroup_is_runtime_error_single(self): with self.assertRaises(TypeError): try: raise OSError("blah") except* ExceptionGroup as e: pass def test_except_star_ExceptionGroup_is_runtime_error_tuple(self): with self.assertRaises(TypeError): try: raise ExceptionGroup("eg", [ValueError(42)]) except* (TypeError, ExceptionGroup): pass def test_except_star_invalid_exception_type(self): with self.assertRaises(TypeError): try: raise ValueError except* 42: pass with self.assertRaises(TypeError): try: raise ValueError except* (ValueError, 42): pass class TestBreakContinueReturnInExceptStarBlock(unittest.TestCase): MSG = (r"'break', 'continue' and 'return'" r" cannot appear in an except\* block") def check_invalid(self, src): with self.assertRaisesRegex(SyntaxError, self.MSG): compile(textwrap.dedent(src), "<string>", "exec") def test_break_in_except_star(self): self.check_invalid( """ try: raise ValueError except* Exception as e: break """) self.check_invalid( """ for i in range(5): try: pass except* Exception as e: if i == 2: break """) self.check_invalid( """ for i in range(5): try: pass except* Exception as e: if i == 2: break finally: return 0 """) def test_continue_in_except_star_block_invalid(self): self.check_invalid( """ for i in range(5): try: raise ValueError except* Exception as e: continue """) self.check_invalid( """ for i in range(5): try: pass except* Exception as e: if i == 2: continue """) self.check_invalid( """ for i in range(5): try: pass except* Exception as e: if i == 2: continue finally: return 0 """) def test_return_in_except_star_block_invalid(self): self.check_invalid( """ def f(): try: raise ValueError except* Exception as e: return 42 """) self.check_invalid( """ def f(): try: pass except* Exception as e: return 42 finally: finished = True """) def test_break_continue_in_except_star_block_valid(self): try: raise ValueError(42) except* Exception as e: count = 0 for i in range(5): if i == 0: continue if i == 4: break count += 1 self.assertEqual(count, 3) self.assertEqual(i, 4) exc = e self.assertIsInstance(exc, ExceptionGroup) def test_return_in_except_star_block_valid(self): try: raise ValueError(42) except* Exception as e: def f(x): return 2*x r = f(3) exc = e self.assertEqual(r, 6) self.assertIsInstance(exc, ExceptionGroup) class ExceptStarTest(ExceptionIsLikeMixin, unittest.TestCase): def assertMetadataEqual(self, e1, e2): if e1 is None or e2 is None: self.assertTrue(e1 is None and e2 is None) else: self.assertEqual(e1.__context__, e2.__context__) self.assertEqual(e1.__cause__, e2.__cause__) self.assertEqual(e1.__traceback__, e2.__traceback__) def assertMetadataNotEqual(self, e1, e2): if e1 is None or e2 is None: self.assertNotEqual(e1, e2) else: return not (e1.__context__ == e2.__context__ and e1.__cause__ == e2.__cause__ and e1.__traceback__ == e2.__traceback__) class TestExceptStarSplitSemantics(ExceptStarTest): def doSplitTestNamed(self, exc, T, match_template, rest_template): initial_sys_exception = sys.exception() sys_exception = match = rest = None try: try: raise exc except* T as e: sys_exception = sys.exception() match = e except BaseException as e: rest = e self.assertEqual(sys_exception, match) self.assertExceptionIsLike(match, match_template) self.assertExceptionIsLike(rest, rest_template) self.assertEqual(sys.exception(), initial_sys_exception) def doSplitTestUnnamed(self, exc, T, match_template, rest_template): initial_sys_exception = sys.exception() sys_exception = match = rest = None try: try: raise exc except* T: sys_exception = match = sys.exception() else: if rest_template: self.fail("Exception not raised") except BaseException as e: rest = e self.assertExceptionIsLike(match, match_template) self.assertExceptionIsLike(rest, rest_template) self.assertEqual(sys.exception(), initial_sys_exception) def doSplitTestInExceptHandler(self, exc, T, match_template, rest_template): try: raise ExceptionGroup('eg', [TypeError(1), ValueError(2)]) except Exception: self.doSplitTestNamed(exc, T, match_template, rest_template) self.doSplitTestUnnamed(exc, T, match_template, rest_template) def doSplitTestInExceptStarHandler(self, exc, T, match_template, rest_template): try: raise ExceptionGroup('eg', [TypeError(1), ValueError(2)]) except* Exception: self.doSplitTestNamed(exc, T, match_template, rest_template) self.doSplitTestUnnamed(exc, T, match_template, rest_template) def doSplitTest(self, exc, T, match_template, rest_template): self.doSplitTestNamed(exc, T, match_template, rest_template) self.doSplitTestUnnamed(exc, T, match_template, rest_template) self.doSplitTestInExceptHandler(exc, T, match_template, rest_template) self.doSplitTestInExceptStarHandler(exc, T, match_template, rest_template) def test_no_match_single_type(self): self.doSplitTest( ExceptionGroup("test1", [ValueError("V"), TypeError("T")]), SyntaxError, None, ExceptionGroup("test1", [ValueError("V"), TypeError("T")])) def test_match_single_type(self): self.doSplitTest( ExceptionGroup("test2", [ValueError("V1"), ValueError("V2")]), ValueError, ExceptionGroup("test2", [ValueError("V1"), ValueError("V2")]), None) def test_match_single_type_partial_match(self): self.doSplitTest( ExceptionGroup( "test3", [ValueError("V1"), OSError("OS"), ValueError("V2")]), ValueError, ExceptionGroup("test3", [ValueError("V1"), ValueError("V2")]), ExceptionGroup("test3", [OSError("OS")])) def test_match_single_type_nested(self): self.doSplitTest( ExceptionGroup( "g1", [ ValueError("V1"), OSError("OS1"), ExceptionGroup( "g2", [ OSError("OS2"), ValueError("V2"), TypeError("T")])]), ValueError, ExceptionGroup( "g1", [ ValueError("V1"), ExceptionGroup("g2", [ValueError("V2")])]), ExceptionGroup("g1", [ OSError("OS1"), ExceptionGroup("g2", [ OSError("OS2"), TypeError("T")])])) def test_match_type_tuple_nested(self): self.doSplitTest( ExceptionGroup( "h1", [ ValueError("V1"), OSError("OS1"), ExceptionGroup( "h2", [OSError("OS2"), ValueError("V2"), TypeError("T")])]), (ValueError, TypeError), ExceptionGroup( "h1", [ ValueError("V1"), ExceptionGroup("h2", [ValueError("V2"), TypeError("T")])]), ExceptionGroup( "h1", [ OSError("OS1"), ExceptionGroup("h2", [OSError("OS2")])])) def test_empty_groups_removed(self): self.doSplitTest( ExceptionGroup( "eg", [ ExceptionGroup("i1", [ValueError("V1")]), ExceptionGroup("i2", [ValueError("V2"), TypeError("T1")]), ExceptionGroup("i3", [TypeError("T2")])]), TypeError, ExceptionGroup("eg", [ ExceptionGroup("i2", [TypeError("T1")]), ExceptionGroup("i3", [TypeError("T2")])]), ExceptionGroup("eg", [ ExceptionGroup("i1", [ValueError("V1")]), ExceptionGroup("i2", [ValueError("V2")])])) def test_singleton_groups_are_kept(self): self.doSplitTest( ExceptionGroup("j1", [ ExceptionGroup("j2", [ ExceptionGroup("j3", [ValueError("V1")]), ExceptionGroup("j4", [TypeError("T")])])]), TypeError, ExceptionGroup( "j1", [ExceptionGroup("j2", [ExceptionGroup("j4", [TypeError("T")])])]), ExceptionGroup( "j1", [ExceptionGroup("j2", [ExceptionGroup("j3", [ValueError("V1")])])])) def test_naked_exception_matched_wrapped1(self): self.doSplitTest( ValueError("V"), ValueError, ExceptionGroup("", [ValueError("V")]), None) def test_naked_exception_matched_wrapped2(self): self.doSplitTest( ValueError("V"), Exception, ExceptionGroup("", [ValueError("V")]), None) def test_exception_group_except_star_Exception_not_wrapped(self): self.doSplitTest( ExceptionGroup("eg", [ValueError("V")]), Exception, ExceptionGroup("eg", [ValueError("V")]), None) def test_plain_exception_not_matched(self): self.doSplitTest( ValueError("V"), TypeError, None, ValueError("V")) def test_match__supertype(self): self.doSplitTest( ExceptionGroup("st", [BlockingIOError("io"), TypeError("T")]), OSError, ExceptionGroup("st", [BlockingIOError("io")]), ExceptionGroup("st", [TypeError("T")])) def test_multiple_matches_named(self): try: raise ExceptionGroup("mmn", [OSError("os"), BlockingIOError("io")]) except* BlockingIOError as e: self.assertExceptionIsLike(e, ExceptionGroup("mmn", [BlockingIOError("io")])) except* OSError as e: self.assertExceptionIsLike(e, ExceptionGroup("mmn", [OSError("os")])) else: self.fail("Exception not raised") def test_multiple_matches_unnamed(self): try: raise ExceptionGroup("mmu", [OSError("os"), BlockingIOError("io")]) except* BlockingIOError: e = sys.exception() self.assertExceptionIsLike(e, ExceptionGroup("mmu", [BlockingIOError("io")])) except* OSError: e = sys.exception() self.assertExceptionIsLike(e, ExceptionGroup("mmu", [OSError("os")])) else: self.fail("Exception not raised") def test_first_match_wins_named(self): try: raise ExceptionGroup("fst", [BlockingIOError("io")]) except* OSError as e: self.assertExceptionIsLike(e, ExceptionGroup("fst", [BlockingIOError("io")])) except* BlockingIOError: self.fail("Should have been matched as OSError") else: self.fail("Exception not raised") def test_first_match_wins_unnamed(self): try: raise ExceptionGroup("fstu", [BlockingIOError("io")]) except* OSError: e = sys.exception() self.assertExceptionIsLike(e, ExceptionGroup("fstu", [BlockingIOError("io")])) except* BlockingIOError: pass else: self.fail("Exception not raised") def test_nested_except_stars(self): try: raise ExceptionGroup("n", [BlockingIOError("io")]) except* BlockingIOError: try: raise ExceptionGroup("n", [ValueError("io")]) except* ValueError: pass else: self.fail("Exception not raised") e = sys.exception() self.assertExceptionIsLike(e, ExceptionGroup("n", [BlockingIOError("io")])) else: self.fail("Exception not raised") def test_nested_in_loop(self): for _ in range(2): try: raise ExceptionGroup("nl", [BlockingIOError("io")]) except* BlockingIOError: pass else: self.fail("Exception not raised") class TestExceptStarReraise(ExceptStarTest): def test_reraise_all_named(self): try: try: raise ExceptionGroup( "eg", [TypeError(1), ValueError(2), OSError(3)]) except* TypeError as e: raise except* ValueError as e: raise # OSError not handled except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("eg", [TypeError(1), ValueError(2), OSError(3)])) def test_reraise_all_unnamed(self): try: try: raise ExceptionGroup( "eg", [TypeError(1), ValueError(2), OSError(3)]) except* TypeError: raise except* ValueError: raise # OSError not handled except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("eg", [TypeError(1), ValueError(2), OSError(3)])) def test_reraise_some_handle_all_named(self): try: try: raise ExceptionGroup( "eg", [TypeError(1), ValueError(2), OSError(3)]) except* TypeError as e: raise except* ValueError as e: pass # OSError not handled except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("eg", [TypeError(1), OSError(3)])) def test_reraise_partial_handle_all_unnamed(self): try: try: raise ExceptionGroup( "eg", [TypeError(1), ValueError(2)]) except* TypeError: raise except* ValueError: pass except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("eg", [TypeError(1)])) def test_reraise_partial_handle_some_named(self): try: try: raise ExceptionGroup( "eg", [TypeError(1), ValueError(2), OSError(3)]) except* TypeError as e: raise except* ValueError as e: pass # OSError not handled except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("eg", [TypeError(1), OSError(3)])) def test_reraise_partial_handle_some_unnamed(self): try: try: raise ExceptionGroup( "eg", [TypeError(1), ValueError(2), OSError(3)]) except* TypeError: raise except* ValueError: pass except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("eg", [TypeError(1), OSError(3)])) def test_reraise_plain_exception_named(self): try: try: raise ValueError(42) except* ValueError as e: raise except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("", [ValueError(42)])) def test_reraise_plain_exception_unnamed(self): try: try: raise ValueError(42) except* ValueError: raise except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("", [ValueError(42)])) class TestExceptStarRaise(ExceptStarTest): def test_raise_named(self): orig = ExceptionGroup("eg", [ValueError(1), OSError(2)]) try: try: raise orig except* OSError as e: raise TypeError(3) except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup( "", [TypeError(3), ExceptionGroup("eg", [ValueError(1)])])) self.assertExceptionIsLike( exc.exceptions[0].__context__, ExceptionGroup("eg", [OSError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.exceptions[0].__context__) def test_raise_unnamed(self): orig = ExceptionGroup("eg", [ValueError(1), OSError(2)]) try: try: raise orig except* OSError: raise TypeError(3) except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup( "", [TypeError(3), ExceptionGroup("eg", [ValueError(1)])])) self.assertExceptionIsLike( exc.exceptions[0].__context__, ExceptionGroup("eg", [OSError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.exceptions[0].__context__) def test_raise_handle_all_raise_one_named(self): orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)]) try: try: raise orig except* (TypeError, ValueError) as e: raise SyntaxError(3) except SyntaxError as e: exc = e self.assertExceptionIsLike(exc, SyntaxError(3)) self.assertExceptionIsLike( exc.__context__, ExceptionGroup("eg", [TypeError(1), ValueError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.__context__) def test_raise_handle_all_raise_one_unnamed(self): orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)]) try: try: raise orig except* (TypeError, ValueError) as e: raise SyntaxError(3) except SyntaxError as e: exc = e self.assertExceptionIsLike(exc, SyntaxError(3)) self.assertExceptionIsLike( exc.__context__, ExceptionGroup("eg", [TypeError(1), ValueError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.__context__) def test_raise_handle_all_raise_two_named(self): orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)]) try: try: raise orig except* TypeError as e: raise SyntaxError(3) except* ValueError as e: raise SyntaxError(4) except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("", [SyntaxError(3), SyntaxError(4)])) self.assertExceptionIsLike( exc.exceptions[0].__context__, ExceptionGroup("eg", [TypeError(1)])) self.assertExceptionIsLike( exc.exceptions[1].__context__, ExceptionGroup("eg", [ValueError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.exceptions[0].__context__) self.assertMetadataEqual(orig, exc.exceptions[1].__context__) def test_raise_handle_all_raise_two_unnamed(self): orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)]) try: try: raise orig except* TypeError: raise SyntaxError(3) except* ValueError: raise SyntaxError(4) except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("", [SyntaxError(3), SyntaxError(4)])) self.assertExceptionIsLike( exc.exceptions[0].__context__, ExceptionGroup("eg", [TypeError(1)])) self.assertExceptionIsLike( exc.exceptions[1].__context__, ExceptionGroup("eg", [ValueError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.exceptions[0].__context__) self.assertMetadataEqual(orig, exc.exceptions[1].__context__) class TestExceptStarRaiseFrom(ExceptStarTest): def test_raise_named(self): orig = ExceptionGroup("eg", [ValueError(1), OSError(2)]) try: try: raise orig except* OSError as e: raise TypeError(3) from e except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup( "", [TypeError(3), ExceptionGroup("eg", [ValueError(1)])])) self.assertExceptionIsLike( exc.exceptions[0].__context__, ExceptionGroup("eg", [OSError(2)])) self.assertExceptionIsLike( exc.exceptions[0].__cause__, ExceptionGroup("eg", [OSError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.exceptions[0].__context__) self.assertMetadataEqual(orig, exc.exceptions[0].__cause__) self.assertMetadataNotEqual(orig, exc.exceptions[1].__context__) self.assertMetadataNotEqual(orig, exc.exceptions[1].__cause__) def test_raise_unnamed(self): orig = ExceptionGroup("eg", [ValueError(1), OSError(2)]) try: try: raise orig except* OSError: e = sys.exception() raise TypeError(3) from e except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup( "", [TypeError(3), ExceptionGroup("eg", [ValueError(1)])])) self.assertExceptionIsLike( exc.exceptions[0].__context__, ExceptionGroup("eg", [OSError(2)])) self.assertExceptionIsLike( exc.exceptions[0].__cause__, ExceptionGroup("eg", [OSError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.exceptions[0].__context__) self.assertMetadataEqual(orig, exc.exceptions[0].__cause__) self.assertMetadataNotEqual(orig, exc.exceptions[1].__context__) self.assertMetadataNotEqual(orig, exc.exceptions[1].__cause__) def test_raise_handle_all_raise_one_named(self): orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)]) try: try: raise orig except* (TypeError, ValueError) as e: raise SyntaxError(3) from e except SyntaxError as e: exc = e self.assertExceptionIsLike(exc, SyntaxError(3)) self.assertExceptionIsLike( exc.__context__, ExceptionGroup("eg", [TypeError(1), ValueError(2)])) self.assertExceptionIsLike( exc.__cause__, ExceptionGroup("eg", [TypeError(1), ValueError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.__context__) self.assertMetadataEqual(orig, exc.__cause__) def test_raise_handle_all_raise_one_unnamed(self): orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)]) try: try: raise orig except* (TypeError, ValueError) as e: e = sys.exception() raise SyntaxError(3) from e except SyntaxError as e: exc = e self.assertExceptionIsLike(exc, SyntaxError(3)) self.assertExceptionIsLike( exc.__context__, ExceptionGroup("eg", [TypeError(1), ValueError(2)])) self.assertExceptionIsLike( exc.__cause__, ExceptionGroup("eg", [TypeError(1), ValueError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.__context__) self.assertMetadataEqual(orig, exc.__cause__) def test_raise_handle_all_raise_two_named(self): orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)]) try: try: raise orig except* TypeError as e: raise SyntaxError(3) from e except* ValueError as e: raise SyntaxError(4) from e except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("", [SyntaxError(3), SyntaxError(4)])) self.assertExceptionIsLike( exc.exceptions[0].__context__, ExceptionGroup("eg", [TypeError(1)])) self.assertExceptionIsLike( exc.exceptions[0].__cause__, ExceptionGroup("eg", [TypeError(1)])) self.assertExceptionIsLike( exc.exceptions[1].__context__, ExceptionGroup("eg", [ValueError(2)])) self.assertExceptionIsLike( exc.exceptions[1].__cause__, ExceptionGroup("eg", [ValueError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.exceptions[0].__context__) self.assertMetadataEqual(orig, exc.exceptions[0].__cause__) def test_raise_handle_all_raise_two_unnamed(self): orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)]) try: try: raise orig except* TypeError: e = sys.exception() raise SyntaxError(3) from e except* ValueError: e = sys.exception() raise SyntaxError(4) from e except ExceptionGroup as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("", [SyntaxError(3), SyntaxError(4)])) self.assertExceptionIsLike( exc.exceptions[0].__context__, ExceptionGroup("eg", [TypeError(1)])) self.assertExceptionIsLike( exc.exceptions[0].__cause__, ExceptionGroup("eg", [TypeError(1)])) self.assertExceptionIsLike( exc.exceptions[1].__context__, ExceptionGroup("eg", [ValueError(2)])) self.assertExceptionIsLike( exc.exceptions[1].__cause__, ExceptionGroup("eg", [ValueError(2)])) self.assertMetadataNotEqual(orig, exc) self.assertMetadataEqual(orig, exc.exceptions[0].__context__) self.assertMetadataEqual(orig, exc.exceptions[0].__cause__) self.assertMetadataEqual(orig, exc.exceptions[1].__context__) self.assertMetadataEqual(orig, exc.exceptions[1].__cause__) class TestExceptStarExceptionGroupSubclass(ExceptStarTest): def test_except_star_EG_subclass(self): class EG(ExceptionGroup): def __new__(cls, message, excs, code): obj = super().__new__(cls, message, excs) obj.code = code return obj def derive(self, excs): return EG(self.message, excs, self.code) try: try: try: try: raise TypeError(2) except TypeError as te: raise EG("nested", [te], 101) from None except EG as nested: try: raise ValueError(1) except ValueError as ve: raise EG("eg", [ve, nested], 42) except* ValueError as eg: veg = eg except EG as eg: teg = eg self.assertIsInstance(veg, EG) self.assertIsInstance(teg, EG) self.assertIsInstance(teg.exceptions[0], EG) self.assertMetadataEqual(veg, teg) self.assertEqual(veg.code, 42) 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_sys_exception_restored(self): try: try: raise ValueError(42) except: try: raise TypeError(int) except* Exception: pass 1/0 except Exception as e: exc = e self.assertExceptionIsLike(exc, ZeroDivisionError('division by zero')) self.assertExceptionIsLike(exc.__context__, ValueError(42)) self.assertEqual(sys.exception(), None) class TestExceptStar_WeirdLeafExceptions(ExceptStarTest): # Test that except* works when leaf exceptions are # unhashable or have a bad custom __eq__ class UnhashableExc(ValueError): __hash__ = None class AlwaysEqualExc(ValueError): def __eq__(self, other): return True class NeverEqualExc(ValueError): def __eq__(self, other): return False class BrokenEqualExc(ValueError): def __eq__(self, other): raise RuntimeError() def setUp(self): self.bad_types = [self.UnhashableExc, self.AlwaysEqualExc, self.NeverEqualExc, self.BrokenEqualExc] def except_type(self, eg, type): match, rest = None, None try: try: raise eg except* type as e: match = e except Exception as e: rest = e return match, rest def test_catch_unhashable_leaf_exception(self): for Bad in self.bad_types: with self.subTest(Bad): eg = ExceptionGroup("eg", [TypeError(1), Bad(2)]) match, rest = self.except_type(eg, Bad) self.assertExceptionIsLike( match, ExceptionGroup("eg", [Bad(2)])) self.assertExceptionIsLike( rest, ExceptionGroup("eg", [TypeError(1)])) def test_propagate_unhashable_leaf(self): for Bad in self.bad_types: with self.subTest(Bad): eg = ExceptionGroup("eg", [TypeError(1), Bad(2)]) match, rest = self.except_type(eg, TypeError) self.assertExceptionIsLike( match, ExceptionGroup("eg", [TypeError(1)])) self.assertExceptionIsLike( rest, ExceptionGroup("eg", [Bad(2)])) def test_catch_nothing_unhashable_leaf(self): for Bad in self.bad_types: with self.subTest(Bad): eg = ExceptionGroup("eg", [TypeError(1), Bad(2)]) match, rest = self.except_type(eg, OSError) self.assertIsNone(match) self.assertExceptionIsLike(rest, eg) def test_catch_everything_unhashable_leaf(self): for Bad in self.bad_types: with self.subTest(Bad): eg = ExceptionGroup("eg", [TypeError(1), Bad(2)]) match, rest = self.except_type(eg, Exception) self.assertExceptionIsLike(match, eg) self.assertIsNone(rest) def test_reraise_unhashable_leaf(self): for Bad in self.bad_types: with self.subTest(Bad): eg = ExceptionGroup( "eg", [TypeError(1), Bad(2), ValueError(3)]) try: try: raise eg except* TypeError: pass except* Bad: raise except Exception as e: exc = e self.assertExceptionIsLike( exc, ExceptionGroup("eg", [Bad(2), ValueError(3)])) class TestExceptStar_WeirdExceptionGroupSubclass(ExceptStarTest): # Test that except* works with exception groups that are # unhashable or have a bad custom __eq__ class UnhashableEG(ExceptionGroup): __hash__ = None def derive(self, excs): return type(self)(self.message, excs) class AlwaysEqualEG(ExceptionGroup): def __eq__(self, other): return True def derive(self, excs): return type(self)(self.message, excs) class NeverEqualEG(ExceptionGroup): def __eq__(self, other): return False def derive(self, excs): return type(self)(self.message, excs) class BrokenEqualEG(ExceptionGroup): def __eq__(self, other): raise RuntimeError() def derive(self, excs): return type(self)(self.message, excs) def setUp(self): self.bad_types = [self.UnhashableEG, self.AlwaysEqualEG, self.NeverEqualEG, self.BrokenEqualEG] def except_type(self, eg, type): match, rest = None, None try: try: raise eg except* type as e: match = e except Exception as e: rest = e return match, rest def test_catch_some_unhashable_exception_group_subclass(self): for BadEG in self.bad_types: with self.subTest(BadEG): eg = BadEG("eg", [TypeError(1), BadEG("nested", [ValueError(2)])]) match, rest = self.except_type(eg, TypeError) self.assertExceptionIsLike(match, BadEG("eg", [TypeError(1)])) self.assertExceptionIsLike(rest, BadEG("eg", [BadEG("nested", [ValueError(2)])])) def test_catch_none_unhashable_exception_group_subclass(self): for BadEG in self.bad_types: with self.subTest(BadEG): eg = BadEG("eg", [TypeError(1), BadEG("nested", [ValueError(2)])]) match, rest = self.except_type(eg, OSError) self.assertIsNone(match) self.assertExceptionIsLike(rest, eg) def test_catch_all_unhashable_exception_group_subclass(self): for BadEG in self.bad_types: with self.subTest(BadEG): eg = BadEG("eg", [TypeError(1), BadEG("nested", [ValueError(2)])]) match, rest = self.except_type(eg, Exception) self.assertExceptionIsLike(match, eg) self.assertIsNone(rest) def test_reraise_unhashable_eg(self): for BadEG in self.bad_types: with self.subTest(BadEG): eg = BadEG("eg", [TypeError(1), ValueError(2), BadEG("nested", [ValueError(3), OSError(4)])]) try: try: raise eg except* ValueError: pass except* OSError: raise except Exception as e: exc = e self.assertExceptionIsLike( exc, BadEG("eg", [TypeError(1), BadEG("nested", [OSError(4)])])) if __name__ == '__main__': unittest.main()
Close