Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
: 172.16.0.66 | : 172.16.0.254
Cant Read [ /etc/named.conf ]
7.3.25
SYSTEM
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
[ A ]
[ C ]
[ D ]
C: /
laragon /
bin /
python /
python-3.10 /
Lib /
test /
[ HOME SHELL ]
Name
Size
Permission
Action
__pycache__
[ DIR ]
drwxrwxrwx
audiodata
[ DIR ]
drwxrwxrwx
capath
[ DIR ]
drwxrwxrwx
cjkencodings
[ DIR ]
drwxrwxrwx
crashers
[ DIR ]
drwxrwxrwx
data
[ DIR ]
drwxrwxrwx
decimaltestdata
[ DIR ]
drwxrwxrwx
dtracedata
[ DIR ]
drwxrwxrwx
encoded_modules
[ DIR ]
drwxrwxrwx
imghdrdata
[ DIR ]
drwxrwxrwx
leakers
[ DIR ]
drwxrwxrwx
libregrtest
[ DIR ]
drwxrwxrwx
sndhdrdata
[ DIR ]
drwxrwxrwx
subprocessdata
[ DIR ]
drwxrwxrwx
support
[ DIR ]
drwxrwxrwx
test_asyncio
[ DIR ]
drwxrwxrwx
test_email
[ DIR ]
drwxrwxrwx
test_import
[ DIR ]
drwxrwxrwx
test_importlib
[ DIR ]
drwxrwxrwx
test_json
[ DIR ]
drwxrwxrwx
test_peg_generator
[ DIR ]
drwxrwxrwx
test_tools
[ DIR ]
drwxrwxrwx
test_warnings
[ DIR ]
drwxrwxrwx
test_zoneinfo
[ DIR ]
drwxrwxrwx
tracedmodules
[ DIR ]
drwxrwxrwx
xmltestdata
[ DIR ]
drwxrwxrwx
ziptestdata
[ DIR ]
drwxrwxrwx
Sine-1000Hz-300ms.aif
60.25
KB
-rw-rw-rw-
__init__.py
48
B
-rw-rw-rw-
__main__.py
43
B
-rw-rw-rw-
_test_atexit.py
3.75
KB
-rw-rw-rw-
_test_eintr.py
18.17
KB
-rw-rw-rw-
_test_embed_set_config.py
8.81
KB
-rw-rw-rw-
_test_multiprocessing.py
199.1
KB
-rw-rw-rw-
_typed_dict_helper.py
512
B
-rw-rw-rw-
allsans.pem
10.03
KB
-rw-rw-rw-
ann_module.py
1.15
KB
-rw-rw-rw-
ann_module2.py
555
B
-rw-rw-rw-
ann_module3.py
466
B
-rw-rw-rw-
ann_module4.py
86
B
-rw-rw-rw-
ann_module5.py
212
B
-rw-rw-rw-
ann_module6.py
145
B
-rw-rw-rw-
ann_module7.py
306
B
-rw-rw-rw-
audiotest.au
27.48
KB
-rw-rw-rw-
audiotests.py
12.46
KB
-rw-rw-rw-
audit-tests.py
11.09
KB
-rw-rw-rw-
autotest.py
214
B
-rw-rw-rw-
bad_coding.py
25
B
-rw-rw-rw-
bad_coding2.py
32
B
-rw-rw-rw-
bad_getattr.py
65
B
-rw-rw-rw-
bad_getattr2.py
84
B
-rw-rw-rw-
bad_getattr3.py
144
B
-rw-rw-rw-
badcert.pem
1.92
KB
-rw-rw-rw-
badkey.pem
2.15
KB
-rw-rw-rw-
badsyntax_3131.py
34
B
-rw-rw-rw-
badsyntax_future10.py
98
B
-rw-rw-rw-
badsyntax_future3.py
182
B
-rw-rw-rw-
badsyntax_future4.py
163
B
-rw-rw-rw-
badsyntax_future5.py
196
B
-rw-rw-rw-
badsyntax_future6.py
171
B
-rw-rw-rw-
badsyntax_future7.py
207
B
-rw-rw-rw-
badsyntax_future8.py
132
B
-rw-rw-rw-
badsyntax_future9.py
152
B
-rw-rw-rw-
badsyntax_pep3120.py
15
B
-rw-rw-rw-
bisect_cmd.py
5.39
KB
-rw-rw-rw-
cfgparser.1
70
B
-rw-rw-rw-
cfgparser.2
19.54
KB
-rw-rw-rw-
cfgparser.3
1.62
KB
-rw-rw-rw-
clinic.test
97.34
KB
-rw-rw-rw-
cmath_testcases.txt
143.5
KB
-rw-rw-rw-
coding20731.py
22
B
-rw-rw-rw-
curses_tests.py
1.26
KB
-rw-rw-rw-
dataclass_module_1.py
869
B
-rw-rw-rw-
dataclass_module_1_str.py
867
B
-rw-rw-rw-
dataclass_module_2.py
788
B
-rw-rw-rw-
dataclass_module_2_str.py
786
B
-rw-rw-rw-
dataclass_textanno.py
138
B
-rw-rw-rw-
datetimetester.py
251.38
KB
-rw-rw-rw-
dis_module.py
81
B
-rw-rw-rw-
doctest_aliases.py
253
B
-rw-rw-rw-
doctest_lineno.py
964
B
-rw-rw-rw-
double_const.py
1.21
KB
-rw-rw-rw-
empty.vbs
70
B
-rw-rw-rw-
exception_hierarchy.txt
1.87
KB
-rw-rw-rw-
ffdh3072.pem
2.2
KB
-rw-rw-rw-
final_a.py
430
B
-rw-rw-rw-
final_b.py
430
B
-rw-rw-rw-
floating_points.txt
16.92
KB
-rw-rw-rw-
fork_wait.py
2.31
KB
-rw-rw-rw-
formatfloat_testcases.txt
7.8
KB
-rw-rw-rw-
future_test1.py
240
B
-rw-rw-rw-
future_test2.py
159
B
-rw-rw-rw-
gdb_sample.py
165
B
-rw-rw-rw-
good_getattr.py
209
B
-rw-rw-rw-
idnsans.pem
9.88
KB
-rw-rw-rw-
ieee754.txt
3.39
KB
-rw-rw-rw-
imp_dummy.py
66
B
-rw-rw-rw-
inspect_fodder.py
1.99
KB
-rw-rw-rw-
inspect_fodder2.py
3.64
KB
-rw-rw-rw-
inspect_stock_annotations.py
537
B
-rw-rw-rw-
inspect_stringized_annotations...
646
B
-rw-rw-rw-
inspect_stringized_annotations...
63
B
-rw-rw-rw-
keycert.passwd.pem
4.19
KB
-rw-rw-rw-
keycert.pem
4.03
KB
-rw-rw-rw-
keycert2.pem
4.05
KB
-rw-rw-rw-
keycert3.pem
9.39
KB
-rw-rw-rw-
keycert4.pem
9.4
KB
-rw-rw-rw-
keycertecc.pem
5.61
KB
-rw-rw-rw-
list_tests.py
17.2
KB
-rw-rw-rw-
lock_tests.py
31.14
KB
-rw-rw-rw-
mailcap.txt
1.28
KB
-rw-rw-rw-
make_ssl_certs.py
9.55
KB
-rw-rw-rw-
mapping_tests.py
22.49
KB
-rw-rw-rw-
math_testcases.txt
23.8
KB
-rw-rw-rw-
memory_watchdog.py
887
B
-rw-rw-rw-
mime.types
48.78
KB
-rw-rw-rw-
mock_socket.py
3.86
KB
-rw-rw-rw-
mod_generics_cache.py
1.18
KB
-rw-rw-rw-
mp_fork_bomb.py
466
B
-rw-rw-rw-
mp_preload.py
369
B
-rw-rw-rw-
multibytecodec_support.py
14.56
KB
-rw-rw-rw-
nokia.pem
1.91
KB
-rw-rw-rw-
nosan.pem
7.67
KB
-rw-rw-rw-
nullbytecert.pem
5.4
KB
-rw-rw-rw-
nullcert.pem
0
B
-rw-rw-rw-
pickletester.py
142.98
KB
-rw-rw-rw-
profilee.py
3.08
KB
-rw-rw-rw-
pstats.pck
65.05
KB
-rw-rw-rw-
pycacert.pem
5.63
KB
-rw-rw-rw-
pycakey.pem
2.46
KB
-rw-rw-rw-
pyclbr_input.py
681
B
-rw-rw-rw-
pydoc_mod.py
1010
B
-rw-rw-rw-
pydocfodder.py
6.39
KB
-rw-rw-rw-
pythoninfo.py
24.41
KB
-rw-rw-rw-
randv2_32.pck
7.34
KB
-rw-rw-rw-
randv2_64.pck
7.19
KB
-rw-rw-rw-
randv3.pck
7.82
KB
-rw-rw-rw-
re_tests.py
26.48
KB
-rw-rw-rw-
recursion.tar
516
B
-rw-rw-rw-
regrtest.py
1.31
KB
-rw-rw-rw-
relimport.py
28
B
-rw-rw-rw-
reperf.py
561
B
-rw-rw-rw-
revocation.crl
814
B
-rw-rw-rw-
sample_doctest.py
1.09
KB
-rw-rw-rw-
sample_doctest_no_docstrings.p...
239
B
-rw-rw-rw-
sample_doctest_no_doctests.py
284
B
-rw-rw-rw-
secp384r1.pem
263
B
-rw-rw-rw-
selfsigned_pythontestdotnet.pe...
2.11
KB
-rw-rw-rw-
seq_tests.py
15.29
KB
-rw-rw-rw-
sgml_input.html
8.31
KB
-rw-rw-rw-
signalinterproctester.py
2.82
KB
-rw-rw-rw-
sortperf.py
4.86
KB
-rw-rw-rw-
ssl_cert.pem
1.56
KB
-rw-rw-rw-
ssl_key.passwd.pem
2.63
KB
-rw-rw-rw-
ssl_key.pem
2.47
KB
-rw-rw-rw-
ssl_servers.py
7.31
KB
-rw-rw-rw-
ssltests.py
1.06
KB
-rw-rw-rw-
string_tests.py
69.47
KB
-rw-rw-rw-
talos-2019-0758.pem
1.32
KB
-rw-rw-rw-
test___all__.py
4.66
KB
-rw-rw-rw-
test___future__.py
2.42
KB
-rw-rw-rw-
test__locale.py
8.02
KB
-rw-rw-rw-
test__opcode.py
3.11
KB
-rw-rw-rw-
test__osx_support.py
13.96
KB
-rw-rw-rw-
test__xxsubinterpreters.py
81.21
KB
-rw-rw-rw-
test_abc.py
23.85
KB
-rw-rw-rw-
test_abstract_numbers.py
1.54
KB
-rw-rw-rw-
test_aifc.py
18.2
KB
-rw-rw-rw-
test_argparse.py
185.85
KB
-rw-rw-rw-
test_array.py
56.79
KB
-rw-rw-rw-
test_asdl_parser.py
4.57
KB
-rw-rw-rw-
test_ast.py
107.34
KB
-rw-rw-rw-
test_asyncgen.py
48.43
KB
-rw-rw-rw-
test_asynchat.py
9.68
KB
-rw-rw-rw-
test_asyncore.py
26.95
KB
-rw-rw-rw-
test_atexit.py
3.25
KB
-rw-rw-rw-
test_audioop.py
28.79
KB
-rw-rw-rw-
test_audit.py
5.56
KB
-rw-rw-rw-
test_augassign.py
8
KB
-rw-rw-rw-
test_base64.py
35.28
KB
-rw-rw-rw-
test_baseexception.py
7.05
KB
-rw-rw-rw-
test_bdb.py
44.64
KB
-rw-rw-rw-
test_bigaddrspace.py
2.93
KB
-rw-rw-rw-
test_bigmem.py
46.01
KB
-rw-rw-rw-
test_binascii.py
19.72
KB
-rw-rw-rw-
test_binhex.py
2.17
KB
-rw-rw-rw-
test_binop.py
14.57
KB
-rw-rw-rw-
test_bisect.py
16.09
KB
-rw-rw-rw-
test_bool.py
12.89
KB
-rw-rw-rw-
test_buffer.py
164.64
KB
-rw-rw-rw-
test_bufio.py
2.65
KB
-rw-rw-rw-
test_builtin.py
87.93
KB
-rw-rw-rw-
test_bytes.py
78.01
KB
-rw-rw-rw-
test_bz2.py
38.22
KB
-rw-rw-rw-
test_c_locale_coercion.py
19.35
KB
-rw-rw-rw-
test_calendar.py
51.76
KB
-rw-rw-rw-
test_call.py
26.95
KB
-rw-rw-rw-
test_capi.py
41.78
KB
-rw-rw-rw-
test_cgi.py
22.89
KB
-rw-rw-rw-
test_cgitb.py
2.61
KB
-rw-rw-rw-
test_charmapcodec.py
1.83
KB
-rw-rw-rw-
test_check_c_globals.py
773
B
-rw-rw-rw-
test_class.py
18.07
KB
-rw-rw-rw-
test_clinic.py
22.35
KB
-rw-rw-rw-
test_cmath.py
24.71
KB
-rw-rw-rw-
test_cmd.py
6.34
KB
-rw-rw-rw-
test_cmd_line.py
36.79
KB
-rw-rw-rw-
test_cmd_line_script.py
33.44
KB
-rw-rw-rw-
test_code.py
13.11
KB
-rw-rw-rw-
test_code_module.py
5.69
KB
-rw-rw-rw-
test_codeccallbacks.py
48.64
KB
-rw-rw-rw-
test_codecencodings_cn.py
3.95
KB
-rw-rw-rw-
test_codecencodings_hk.py
723
B
-rw-rw-rw-
test_codecencodings_iso2022.py
1.4
KB
-rw-rw-rw-
test_codecencodings_jp.py
4.92
KB
-rw-rw-rw-
test_codecencodings_kr.py
3.02
KB
-rw-rw-rw-
test_codecencodings_tw.py
703
B
-rw-rw-rw-
test_codecmaps_cn.py
772
B
-rw-rw-rw-
test_codecmaps_hk.py
401
B
-rw-rw-rw-
test_codecmaps_jp.py
1.76
KB
-rw-rw-rw-
test_codecmaps_kr.py
1.2
KB
-rw-rw-rw-
test_codecmaps_tw.py
732
B
-rw-rw-rw-
test_codecs.py
136.49
KB
-rw-rw-rw-
test_codeop.py
8.65
KB
-rw-rw-rw-
test_collections.py
94.1
KB
-rw-rw-rw-
test_colorsys.py
3.93
KB
-rw-rw-rw-
test_compare.py
3.85
KB
-rw-rw-rw-
test_compile.py
45.9
KB
-rw-rw-rw-
test_compileall.py
47.1
KB
-rw-rw-rw-
test_complex.py
33.54
KB
-rw-rw-rw-
test_concurrent_futures.py
57.2
KB
-rw-rw-rw-
test_configparser.py
87.49
KB
-rw-rw-rw-
test_contains.py
3.46
KB
-rw-rw-rw-
test_context.py
31.7
KB
-rw-rw-rw-
test_contextlib.py
36.33
KB
-rw-rw-rw-
test_contextlib_async.py
19.36
KB
-rw-rw-rw-
test_copy.py
27.28
KB
-rw-rw-rw-
test_copyreg.py
4.52
KB
-rw-rw-rw-
test_coroutines.py
65.27
KB
-rw-rw-rw-
test_cprofile.py
6.45
KB
-rw-rw-rw-
test_crashers.py
1.21
KB
-rw-rw-rw-
test_crypt.py
4.25
KB
-rw-rw-rw-
test_csv.py
52.95
KB
-rw-rw-rw-
test_ctypes.py
209
B
-rw-rw-rw-
test_curses.py
47.87
KB
-rw-rw-rw-
test_dataclasses.py
129.65
KB
-rw-rw-rw-
test_datetime.py
2.37
KB
-rw-rw-rw-
test_dbm.py
6.3
KB
-rw-rw-rw-
test_dbm_dumb.py
10.97
KB
-rw-rw-rw-
test_dbm_gnu.py
6.68
KB
-rw-rw-rw-
test_dbm_ndbm.py
5.24
KB
-rw-rw-rw-
test_decimal.py
214.93
KB
-rw-rw-rw-
test_decorators.py
14.87
KB
-rw-rw-rw-
test_defaultdict.py
6.31
KB
-rw-rw-rw-
test_deque.py
34.67
KB
-rw-rw-rw-
test_descr.py
198.27
KB
-rw-rw-rw-
test_descrtut.py
12.03
KB
-rw-rw-rw-
test_devpoll.py
4.58
KB
-rw-rw-rw-
test_dict.py
52.3
KB
-rw-rw-rw-
test_dict_version.py
6.28
KB
-rw-rw-rw-
test_dictcomps.py
5.28
KB
-rw-rw-rw-
test_dictviews.py
13.81
KB
-rw-rw-rw-
test_difflib.py
22.02
KB
-rw-rw-rw-
test_difflib_expect.html
101.36
KB
-rw-rw-rw-
test_dis.py
57.74
KB
-rw-rw-rw-
test_distutils.py
615
B
-rw-rw-rw-
test_doctest.py
104.21
KB
-rw-rw-rw-
test_doctest.txt
317
B
-rw-rw-rw-
test_doctest2.py
2.48
KB
-rw-rw-rw-
test_doctest2.txt
406
B
-rw-rw-rw-
test_doctest3.txt
87
B
-rw-rw-rw-
test_doctest4.txt
255
B
-rw-rw-rw-
test_docxmlrpc.py
8.88
KB
-rw-rw-rw-
test_dtrace.py
5.31
KB
-rw-rw-rw-
test_dynamic.py
4.43
KB
-rw-rw-rw-
test_dynamicclassattribute.py
9.86
KB
-rw-rw-rw-
test_eintr.py
604
B
-rw-rw-rw-
test_embed.py
57.38
KB
-rw-rw-rw-
test_ensurepip.py
12.55
KB
-rw-rw-rw-
test_enum.py
124.47
KB
-rw-rw-rw-
test_enumerate.py
8.74
KB
-rw-rw-rw-
test_eof.py
3.1
KB
-rw-rw-rw-
test_epoll.py
9.39
KB
-rw-rw-rw-
test_errno.py
1.08
KB
-rw-rw-rw-
test_exception_hierarchy.py
7.63
KB
-rw-rw-rw-
test_exception_variations.py
4.03
KB
-rw-rw-rw-
test_exceptions.py
93.28
KB
-rw-rw-rw-
test_extcall.py
14.57
KB
-rw-rw-rw-
test_faulthandler.py
30.98
KB
-rw-rw-rw-
test_fcntl.py
7.64
KB
-rw-rw-rw-
test_file.py
12.12
KB
-rw-rw-rw-
test_file_eintr.py
10.86
KB
-rw-rw-rw-
test_filecmp.py
10.57
KB
-rw-rw-rw-
test_fileinput.py
40.5
KB
-rw-rw-rw-
test_fileio.py
20.53
KB
-rw-rw-rw-
test_finalization.py
15.18
KB
-rw-rw-rw-
test_float.py
67.75
KB
-rw-rw-rw-
test_flufl.py
1.59
KB
-rw-rw-rw-
test_fnmatch.py
11.38
KB
-rw-rw-rw-
test_fork1.py
3.34
KB
-rw-rw-rw-
test_format.py
24.42
KB
-rw-rw-rw-
test_fractions.py
30.41
KB
-rw-rw-rw-
test_frame.py
6.44
KB
-rw-rw-rw-
test_frozen.py
972
B
-rw-rw-rw-
test_fstring.py
53.85
KB
-rw-rw-rw-
test_ftplib.py
43.12
KB
-rw-rw-rw-
test_funcattrs.py
15.29
KB
-rw-rw-rw-
test_functools.py
105.51
KB
-rw-rw-rw-
test_future.py
15.27
KB
-rw-rw-rw-
test_future3.py
516
B
-rw-rw-rw-
test_future4.py
233
B
-rw-rw-rw-
test_future5.py
531
B
-rw-rw-rw-
test_gc.py
47.3
KB
-rw-rw-rw-
test_gdb.py
42.7
KB
-rw-rw-rw-
test_generator_stop.py
977
B
-rw-rw-rw-
test_generators.py
66.11
KB
-rw-rw-rw-
test_genericalias.py
13.1
KB
-rw-rw-rw-
test_genericclass.py
9.56
KB
-rw-rw-rw-
test_genericpath.py
22.4
KB
-rw-rw-rw-
test_genexps.py
7.92
KB
-rw-rw-rw-
test_getargs2.py
55.19
KB
-rw-rw-rw-
test_getopt.py
6.96
KB
-rw-rw-rw-
test_getpass.py
6.45
KB
-rw-rw-rw-
test_gettext.py
42.36
KB
-rw-rw-rw-
test_glob.py
15.72
KB
-rw-rw-rw-
test_global.py
1.44
KB
-rw-rw-rw-
test_grammar.py
64.47
KB
-rw-rw-rw-
test_graphlib.py
8.59
KB
-rw-rw-rw-
test_grp.py
3.65
KB
-rw-rw-rw-
test_gzip.py
31.45
KB
-rw-rw-rw-
test_hash.py
11.79
KB
-rw-rw-rw-
test_hashlib.py
45.59
KB
-rw-rw-rw-
test_heapq.py
16.91
KB
-rw-rw-rw-
test_hmac.py
26.05
KB
-rw-rw-rw-
test_html.py
4.33
KB
-rw-rw-rw-
test_htmlparser.py
33.7
KB
-rw-rw-rw-
test_http_cookiejar.py
80.28
KB
-rw-rw-rw-
test_http_cookies.py
19.18
KB
-rw-rw-rw-
test_httplib.py
81.2
KB
-rw-rw-rw-
test_httpservers.py
54.65
KB
-rw-rw-rw-
test_idle.py
1.02
KB
-rw-rw-rw-
test_imaplib.py
43.19
KB
-rw-rw-rw-
test_imghdr.py
4.83
KB
-rw-rw-rw-
test_imp.py
18.38
KB
-rw-rw-rw-
test_index.py
8.64
KB
-rw-rw-rw-
test_inspect.py
175.5
KB
-rw-rw-rw-
test_int.py
21.27
KB
-rw-rw-rw-
test_int_literal.py
7.03
KB
-rw-rw-rw-
test_interpreters.py
23.21
KB
-rw-rw-rw-
test_io.py
175.17
KB
-rw-rw-rw-
test_ioctl.py
3.33
KB
-rw-rw-rw-
test_ipaddress.py
119.32
KB
-rw-rw-rw-
test_isinstance.py
13.31
KB
-rw-rw-rw-
test_iter.py
33.93
KB
-rw-rw-rw-
test_iterlen.py
7.32
KB
-rw-rw-rw-
test_itertools.py
108.41
KB
-rw-rw-rw-
test_keyword.py
1.27
KB
-rw-rw-rw-
test_keywordonlyarg.py
7.07
KB
-rw-rw-rw-
test_kqueue.py
9.01
KB
-rw-rw-rw-
test_largefile.py
10.26
KB
-rw-rw-rw-
test_lib2to3.py
327
B
-rw-rw-rw-
test_linecache.py
9.92
KB
-rw-rw-rw-
test_list.py
7.76
KB
-rw-rw-rw-
test_listcomps.py
4.33
KB
-rw-rw-rw-
test_lltrace.py
3.22
KB
-rw-rw-rw-
test_locale.py
25.29
KB
-rw-rw-rw-
test_logging.py
200.75
KB
-rw-rw-rw-
test_long.py
55.19
KB
-rw-rw-rw-
test_longexp.py
243
B
-rw-rw-rw-
test_lzma.py
90.07
KB
-rw-rw-rw-
test_mailbox.py
94.04
KB
-rw-rw-rw-
test_mailcap.py
10.25
KB
-rw-rw-rw-
test_marshal.py
21.04
KB
-rw-rw-rw-
test_math.py
92.69
KB
-rw-rw-rw-
test_memoryio.py
32.33
KB
-rw-rw-rw-
test_memoryview.py
22.01
KB
-rw-rw-rw-
test_metaclass.py
6.47
KB
-rw-rw-rw-
test_mimetypes.py
14.17
KB
-rw-rw-rw-
test_minidom.py
69.82
KB
-rw-rw-rw-
test_mmap.py
31.71
KB
-rw-rw-rw-
test_module.py
12.71
KB
-rw-rw-rw-
test_modulefinder.py
12.63
KB
-rw-rw-rw-
test_msilib.py
5.57
KB
-rw-rw-rw-
test_multibytecodec.py
16.15
KB
-rw-rw-rw-
test_multiprocessing_fork.py
496
B
-rw-rw-rw-
test_multiprocessing_forkserve...
408
B
-rw-rw-rw-
test_multiprocessing_main_hand...
11.86
KB
-rw-rw-rw-
test_multiprocessing_spawn.py
289
B
-rw-rw-rw-
test_named_expressions.py
21.21
KB
-rw-rw-rw-
test_netrc.py
6.17
KB
-rw-rw-rw-
test_nis.py
1.21
KB
-rw-rw-rw-
test_nntplib.py
64.29
KB
-rw-rw-rw-
test_ntpath.py
39.52
KB
-rw-rw-rw-
test_numeric_tower.py
7.38
KB
-rw-rw-rw-
test_opcache.py
552
B
-rw-rw-rw-
test_opcodes.py
3.72
KB
-rw-rw-rw-
test_openpty.py
621
B
-rw-rw-rw-
test_operator.py
24.67
KB
-rw-rw-rw-
test_optparse.py
62.64
KB
-rw-rw-rw-
test_ordered_dict.py
32.49
KB
-rw-rw-rw-
test_os.py
171.84
KB
-rw-rw-rw-
test_ossaudiodev.py
7.27
KB
-rw-rw-rw-
test_osx_env.py
1.34
KB
-rw-rw-rw-
test_pathlib.py
112.53
KB
-rw-rw-rw-
test_patma.py
87.9
KB
-rw-rw-rw-
test_pdb.py
64.45
KB
-rw-rw-rw-
test_peepholer.py
20.29
KB
-rw-rw-rw-
test_pickle.py
20.25
KB
-rw-rw-rw-
test_picklebuffer.py
5.14
KB
-rw-rw-rw-
test_pickletools.py
4.23
KB
-rw-rw-rw-
test_pipes.py
6.91
KB
-rw-rw-rw-
test_pkg.py
9.88
KB
-rw-rw-rw-
test_pkgutil.py
21.79
KB
-rw-rw-rw-
test_platform.py
20.25
KB
-rw-rw-rw-
test_plistlib.py
39.71
KB
-rw-rw-rw-
test_poll.py
7.5
KB
-rw-rw-rw-
test_popen.py
2.14
KB
-rw-rw-rw-
test_poplib.py
18.07
KB
-rw-rw-rw-
test_positional_only_arg.py
18.2
KB
-rw-rw-rw-
test_posix.py
88.67
KB
-rw-rw-rw-
test_posixpath.py
32.73
KB
-rw-rw-rw-
test_pow.py
5.58
KB
-rw-rw-rw-
test_pprint.py
51.51
KB
-rw-rw-rw-
test_print.py
7.94
KB
-rw-rw-rw-
test_profile.py
8.9
KB
-rw-rw-rw-
test_property.py
11.15
KB
-rw-rw-rw-
test_pstats.py
3.4
KB
-rw-rw-rw-
test_pty.py
17.29
KB
-rw-rw-rw-
test_pulldom.py
13.01
KB
-rw-rw-rw-
test_pwd.py
4.3
KB
-rw-rw-rw-
test_py_compile.py
11.72
KB
-rw-rw-rw-
test_pyclbr.py
10.09
KB
-rw-rw-rw-
test_pydoc.py
62.14
KB
-rw-rw-rw-
test_pyexpat.py
27.41
KB
-rw-rw-rw-
test_queue.py
21.15
KB
-rw-rw-rw-
test_quopri.py
7.98
KB
-rw-rw-rw-
test_raise.py
13.94
KB
-rw-rw-rw-
test_random.py
56.48
KB
-rw-rw-rw-
test_range.py
25.32
KB
-rw-rw-rw-
test_re.py
115.07
KB
-rw-rw-rw-
test_readline.py
14.59
KB
-rw-rw-rw-
test_regrtest.py
50.82
KB
-rw-rw-rw-
test_repl.py
4.06
KB
-rw-rw-rw-
test_reprlib.py
15.53
KB
-rw-rw-rw-
test_resource.py
7.21
KB
-rw-rw-rw-
test_richcmp.py
12.26
KB
-rw-rw-rw-
test_rlcompleter.py
7.26
KB
-rw-rw-rw-
test_robotparser.py
11.26
KB
-rw-rw-rw-
test_runpy.py
34.68
KB
-rw-rw-rw-
test_sax.py
54.48
KB
-rw-rw-rw-
test_sched.py
7.04
KB
-rw-rw-rw-
test_scope.py
20.58
KB
-rw-rw-rw-
test_script_helper.py
5.9
KB
-rw-rw-rw-
test_secrets.py
4.4
KB
-rw-rw-rw-
test_select.py
3.42
KB
-rw-rw-rw-
test_selectors.py
18.83
KB
-rw-rw-rw-
test_set.py
71.11
KB
-rw-rw-rw-
test_setcomps.py
4.31
KB
-rw-rw-rw-
test_shelve.py
6.23
KB
-rw-rw-rw-
test_shlex.py
13.84
KB
-rw-rw-rw-
test_shutil.py
107.56
KB
-rw-rw-rw-
test_signal.py
49.74
KB
-rw-rw-rw-
test_site.py
26.96
KB
-rw-rw-rw-
test_slice.py
8.5
KB
-rw-rw-rw-
test_smtpd.py
41.65
KB
-rw-rw-rw-
test_smtplib.py
61.57
KB
-rw-rw-rw-
test_smtpnet.py
3.07
KB
-rw-rw-rw-
test_sndhdr.py
1.46
KB
-rw-rw-rw-
test_socket.py
252.04
KB
-rw-rw-rw-
test_socketserver.py
18.4
KB
-rw-rw-rw-
test_sort.py
13.8
KB
-rw-rw-rw-
test_source_encoding.py
8.87
KB
-rw-rw-rw-
test_spwd.py
2.8
KB
-rw-rw-rw-
test_sqlite.py
1014
B
-rw-rw-rw-
test_ssl.py
210.65
KB
-rw-rw-rw-
test_startfile.py
1.74
KB
-rw-rw-rw-
test_stat.py
8.82
KB
-rw-rw-rw-
test_statistics.py
115.88
KB
-rw-rw-rw-
test_strftime.py
7.74
KB
-rw-rw-rw-
test_string.py
20.27
KB
-rw-rw-rw-
test_string_literals.py
10.11
KB
-rw-rw-rw-
test_stringprep.py
3.13
KB
-rw-rw-rw-
test_strptime.py
35.14
KB
-rw-rw-rw-
test_strtod.py
20.48
KB
-rw-rw-rw-
test_struct.py
37.06
KB
-rw-rw-rw-
test_structmembers.py
4.95
KB
-rw-rw-rw-
test_structseq.py
4.55
KB
-rw-rw-rw-
test_subclassinit.py
8.39
KB
-rw-rw-rw-
test_subprocess.py
159.59
KB
-rw-rw-rw-
test_sunau.py
6.14
KB
-rw-rw-rw-
test_sundry.py
2.16
KB
-rw-rw-rw-
test_super.py
9.91
KB
-rw-rw-rw-
test_support.py
26.03
KB
-rw-rw-rw-
test_symtable.py
9.61
KB
-rw-rw-rw-
test_syntax.py
53.26
KB
-rw-rw-rw-
test_sys.py
59.63
KB
-rw-rw-rw-
test_sys_setprofile.py
13.63
KB
-rw-rw-rw-
test_sys_settrace.py
64.46
KB
-rw-rw-rw-
test_sysconfig.py
19.37
KB
-rw-rw-rw-
test_syslog.py
1.21
KB
-rw-rw-rw-
test_tabnanny.py
13.78
KB
-rw-rw-rw-
test_tarfile.py
109.76
KB
-rw-rw-rw-
test_tcl.py
32.33
KB
-rw-rw-rw-
test_telnetlib.py
13.14
KB
-rw-rw-rw-
test_tempfile.py
62.68
KB
-rw-rw-rw-
test_textwrap.py
42.94
KB
-rw-rw-rw-
test_thread.py
8.81
KB
-rw-rw-rw-
test_threadedtempfile.py
1.94
KB
-rw-rw-rw-
test_threading.py
61.15
KB
-rw-rw-rw-
test_threading_local.py
6.5
KB
-rw-rw-rw-
test_threadsignals.py
10.35
KB
-rw-rw-rw-
test_time.py
40.99
KB
-rw-rw-rw-
test_timeit.py
15.59
KB
-rw-rw-rw-
test_timeout.py
11.29
KB
-rw-rw-rw-
test_tix.py
1.09
KB
-rw-rw-rw-
test_tk.py
566
B
-rw-rw-rw-
test_tokenize.py
65.47
KB
-rw-rw-rw-
test_trace.py
20.52
KB
-rw-rw-rw-
test_traceback.py
55.98
KB
-rw-rw-rw-
test_tracemalloc.py
40.23
KB
-rw-rw-rw-
test_ttk_guionly.py
1
KB
-rw-rw-rw-
test_ttk_textonly.py
17.15
KB
-rw-rw-rw-
test_tuple.py
19.33
KB
-rw-rw-rw-
test_turtle.py
13.18
KB
-rw-rw-rw-
test_type_annotations.py
3.8
KB
-rw-rw-rw-
test_type_comments.py
10.94
KB
-rw-rw-rw-
test_typechecks.py
2.62
KB
-rw-rw-rw-
test_types.py
77.73
KB
-rw-rw-rw-
test_typing.py
180.27
KB
-rw-rw-rw-
test_ucn.py
9.75
KB
-rw-rw-rw-
test_unary.py
1.68
KB
-rw-rw-rw-
test_unicode.py
137.87
KB
-rw-rw-rw-
test_unicode_file.py
5.84
KB
-rw-rw-rw-
test_unicode_file_functions.py
6.92
KB
-rw-rw-rw-
test_unicode_identifiers.py
1016
B
-rw-rw-rw-
test_unicodedata.py
16.3
KB
-rw-rw-rw-
test_unittest.py
242
B
-rw-rw-rw-
test_univnewlines.py
4
KB
-rw-rw-rw-
test_unpack.py
3.16
KB
-rw-rw-rw-
test_unpack_ex.py
10.3
KB
-rw-rw-rw-
test_unparse.py
18.82
KB
-rw-rw-rw-
test_urllib.py
71.74
KB
-rw-rw-rw-
test_urllib2.py
79.4
KB
-rw-rw-rw-
test_urllib2_localnet.py
26.18
KB
-rw-rw-rw-
test_urllib2net.py
14.44
KB
-rw-rw-rw-
test_urllib_response.py
1.95
KB
-rw-rw-rw-
test_urllibnet.py
9.55
KB
-rw-rw-rw-
test_urlparse.py
65.64
KB
-rw-rw-rw-
test_userdict.py
7.78
KB
-rw-rw-rw-
test_userlist.py
2.04
KB
-rw-rw-rw-
test_userstring.py
2.47
KB
-rw-rw-rw-
test_utf8_mode.py
10.56
KB
-rw-rw-rw-
test_utf8source.py
1.19
KB
-rw-rw-rw-
test_uu.py
8.35
KB
-rw-rw-rw-
test_uuid.py
40.87
KB
-rw-rw-rw-
test_venv.py
23.15
KB
-rw-rw-rw-
test_wait3.py
1.86
KB
-rw-rw-rw-
test_wait4.py
1.2
KB
-rw-rw-rw-
test_wave.py
6.67
KB
-rw-rw-rw-
test_weakref.py
76.97
KB
-rw-rw-rw-
test_weakset.py
15.86
KB
-rw-rw-rw-
test_webbrowser.py
10.92
KB
-rw-rw-rw-
test_winconsoleio.py
6.77
KB
-rw-rw-rw-
test_winreg.py
21.77
KB
-rw-rw-rw-
test_winsound.py
4.76
KB
-rw-rw-rw-
test_with.py
26.73
KB
-rw-rw-rw-
test_wsgiref.py
31.04
KB
-rw-rw-rw-
test_xdrlib.py
2.25
KB
-rw-rw-rw-
test_xml_dom_minicompat.py
4.32
KB
-rw-rw-rw-
test_xml_etree.py
163.5
KB
-rw-rw-rw-
test_xml_etree_c.py
8.72
KB
-rw-rw-rw-
test_xmlrpc.py
58.75
KB
-rw-rw-rw-
test_xmlrpc_net.py
985
B
-rw-rw-rw-
test_xxlimited.py
2.21
KB
-rw-rw-rw-
test_xxtestfuzz.py
715
B
-rw-rw-rw-
test_yield_from.py
31.12
KB
-rw-rw-rw-
test_zipapp.py
16.32
KB
-rw-rw-rw-
test_zipfile.py
125.43
KB
-rw-rw-rw-
test_zipfile64.py
6
KB
-rw-rw-rw-
test_zipimport.py
34.41
KB
-rw-rw-rw-
test_zipimport_support.py
10.7
KB
-rw-rw-rw-
test_zlib.py
35.2
KB
-rw-rw-rw-
testcodec.py
1.07
KB
-rw-rw-rw-
testtar.tar
425
KB
-rw-rw-rw-
testtar.tar.xz
172
B
-rw-rw-rw-
tf_inherit_check.py
741
B
-rw-rw-rw-
time_hashlib.py
2.96
KB
-rw-rw-rw-
tokenize_tests-latin1-coding-c...
456
B
-rw-rw-rw-
tokenize_tests-no-coding-cooki...
313
B
-rw-rw-rw-
tokenize_tests-utf8-coding-coo...
434
B
-rw-rw-rw-
tokenize_tests-utf8-coding-coo...
338
B
-rw-rw-rw-
tokenize_tests.txt
2.84
KB
-rw-rw-rw-
win_console_handler.py
1.43
KB
-rw-rw-rw-
xmltests.py
520
B
-rw-rw-rw-
zip_cp437_header.zip
270
B
-rw-rw-rw-
zipdir.zip
374
B
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : test_call.py
import unittest from test.support import cpython_only try: import _testcapi except ImportError: _testcapi = None import struct import collections import itertools import gc import contextlib class BadStr(str): def __eq__(self, other): return True def __hash__(self): # Guaranteed different hash return str.__hash__(self) ^ 3 class FunctionCalls(unittest.TestCase): def test_kwargs_order(self): # bpo-34320: **kwargs should preserve order of passed OrderedDict od = collections.OrderedDict([('a', 1), ('b', 2)]) od.move_to_end('a') expected = list(od.items()) def fn(**kw): return kw res = fn(**od) self.assertIsInstance(res, dict) self.assertEqual(list(res.items()), expected) @cpython_only class CFunctionCallsErrorMessages(unittest.TestCase): def test_varargs0(self): msg = r"__contains__\(\) takes exactly one argument \(0 given\)" self.assertRaisesRegex(TypeError, msg, {}.__contains__) def test_varargs2(self): msg = r"__contains__\(\) takes exactly one argument \(2 given\)" self.assertRaisesRegex(TypeError, msg, {}.__contains__, 0, 1) def test_varargs3(self): msg = r"^from_bytes\(\) takes exactly 2 positional arguments \(3 given\)" self.assertRaisesRegex(TypeError, msg, int.from_bytes, b'a', 'little', False) def test_varargs1min(self): msg = r"get expected at least 1 argument, got 0" self.assertRaisesRegex(TypeError, msg, {}.get) msg = r"expected 1 argument, got 0" self.assertRaisesRegex(TypeError, msg, {}.__delattr__) def test_varargs2min(self): msg = r"getattr expected at least 2 arguments, got 0" self.assertRaisesRegex(TypeError, msg, getattr) def test_varargs1max(self): msg = r"input expected at most 1 argument, got 2" self.assertRaisesRegex(TypeError, msg, input, 1, 2) def test_varargs2max(self): msg = r"get expected at most 2 arguments, got 3" self.assertRaisesRegex(TypeError, msg, {}.get, 1, 2, 3) def test_varargs1_kw(self): msg = r"__contains__\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, {}.__contains__, x=2) def test_varargs2_kw(self): msg = r"__contains__\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, {}.__contains__, x=2, y=2) def test_varargs3_kw(self): msg = r"bool\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, bool, x=2) def test_varargs4_kw(self): msg = r"^list[.]index\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, [].index, x=2) def test_varargs5_kw(self): msg = r"^hasattr\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, hasattr, x=2) def test_varargs6_kw(self): msg = r"^getattr\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, getattr, x=2) def test_varargs7_kw(self): msg = r"^next\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, next, x=2) def test_varargs8_kw(self): msg = r"^_struct[.]pack\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, struct.pack, x=2) def test_varargs9_kw(self): msg = r"^_struct[.]pack_into\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, struct.pack_into, x=2) def test_varargs10_kw(self): msg = r"^deque[.]index\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, collections.deque().index, x=2) def test_varargs11_kw(self): msg = r"^Struct[.]pack\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, struct.Struct.pack, struct.Struct(""), x=2) def test_varargs12_kw(self): msg = r"^staticmethod\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, staticmethod, func=id) def test_varargs13_kw(self): msg = r"^classmethod\(\) takes no keyword arguments$" self.assertRaisesRegex(TypeError, msg, classmethod, func=id) def test_varargs14_kw(self): msg = r"^product\(\) takes at most 1 keyword argument \(2 given\)$" self.assertRaisesRegex(TypeError, msg, itertools.product, 0, repeat=1, foo=2) def test_varargs15_kw(self): msg = r"^ImportError\(\) takes at most 2 keyword arguments \(3 given\)$" self.assertRaisesRegex(TypeError, msg, ImportError, 0, name=1, path=2, foo=3) def test_varargs16_kw(self): msg = r"^min\(\) takes at most 2 keyword arguments \(3 given\)$" self.assertRaisesRegex(TypeError, msg, min, 0, default=1, key=2, foo=3) def test_varargs17_kw(self): msg = r"^print\(\) takes at most 4 keyword arguments \(5 given\)$" self.assertRaisesRegex(TypeError, msg, print, 0, sep=1, end=2, file=3, flush=4, foo=5) def test_varargs18_kw(self): # _PyArg_UnpackKeywordsWithVararg() msg = r"invalid keyword argument for print\(\)$" with self.assertRaisesRegex(TypeError, msg): print(0, 1, **{BadStr('foo'): ','}) def test_varargs19_kw(self): # _PyArg_UnpackKeywords() msg = r"invalid keyword argument for round\(\)$" with self.assertRaisesRegex(TypeError, msg): round(1.75, **{BadStr('foo'): 1}) def test_oldargs0_1(self): msg = r"keys\(\) takes no arguments \(1 given\)" self.assertRaisesRegex(TypeError, msg, {}.keys, 0) def test_oldargs0_2(self): msg = r"keys\(\) takes no arguments \(2 given\)" self.assertRaisesRegex(TypeError, msg, {}.keys, 0, 1) def test_oldargs0_1_kw(self): msg = r"keys\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, {}.keys, x=2) def test_oldargs0_2_kw(self): msg = r"keys\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, {}.keys, x=2, y=2) def test_oldargs1_0(self): msg = r"count\(\) takes exactly one argument \(0 given\)" self.assertRaisesRegex(TypeError, msg, [].count) def test_oldargs1_2(self): msg = r"count\(\) takes exactly one argument \(2 given\)" self.assertRaisesRegex(TypeError, msg, [].count, 1, 2) def test_oldargs1_0_kw(self): msg = r"count\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, [].count, x=2) def test_oldargs1_1_kw(self): msg = r"count\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, [].count, {}, x=2) def test_oldargs1_2_kw(self): msg = r"count\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, [].count, x=2, y=2) class TestCallingConventions(unittest.TestCase): """Test calling using various C calling conventions (METH_*) from Python Subclasses test several kinds of functions (module-level, methods, class methods static methods) using these attributes: obj: the object that contains tested functions (as attributes) expected_self: expected "self" argument to the C function The base class tests module-level functions. """ def setUp(self): self.obj = self.expected_self = _testcapi def test_varargs(self): self.assertEqual( self.obj.meth_varargs(1, 2, 3), (self.expected_self, (1, 2, 3)), ) def test_varargs_ext(self): self.assertEqual( self.obj.meth_varargs(*(1, 2, 3)), (self.expected_self, (1, 2, 3)), ) def test_varargs_error_kw(self): msg = r"meth_varargs\(\) takes no keyword arguments" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_varargs(k=1), ) def test_varargs_keywords(self): self.assertEqual( self.obj.meth_varargs_keywords(1, 2, a=3, b=4), (self.expected_self, (1, 2), {'a': 3, 'b': 4}) ) def test_varargs_keywords_ext(self): self.assertEqual( self.obj.meth_varargs_keywords(*[1, 2], **{'a': 3, 'b': 4}), (self.expected_self, (1, 2), {'a': 3, 'b': 4}) ) def test_o(self): self.assertEqual(self.obj.meth_o(1), (self.expected_self, 1)) def test_o_ext(self): self.assertEqual(self.obj.meth_o(*[1]), (self.expected_self, 1)) def test_o_error_no_arg(self): msg = r"meth_o\(\) takes exactly one argument \(0 given\)" self.assertRaisesRegex(TypeError, msg, self.obj.meth_o) def test_o_error_two_args(self): msg = r"meth_o\(\) takes exactly one argument \(2 given\)" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_o(1, 2), ) def test_o_error_ext(self): msg = r"meth_o\(\) takes exactly one argument \(3 given\)" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_o(*(1, 2, 3)), ) def test_o_error_kw(self): msg = r"meth_o\(\) takes no keyword arguments" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_o(k=1), ) def test_o_error_arg_kw(self): msg = r"meth_o\(\) takes no keyword arguments" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_o(k=1), ) def test_noargs(self): self.assertEqual(self.obj.meth_noargs(), self.expected_self) def test_noargs_ext(self): self.assertEqual(self.obj.meth_noargs(*[]), self.expected_self) def test_noargs_error_arg(self): msg = r"meth_noargs\(\) takes no arguments \(1 given\)" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_noargs(1), ) def test_noargs_error_arg2(self): msg = r"meth_noargs\(\) takes no arguments \(2 given\)" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_noargs(1, 2), ) def test_noargs_error_ext(self): msg = r"meth_noargs\(\) takes no arguments \(3 given\)" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_noargs(*(1, 2, 3)), ) def test_noargs_error_kw(self): msg = r"meth_noargs\(\) takes no keyword arguments" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_noargs(k=1), ) def test_fastcall(self): self.assertEqual( self.obj.meth_fastcall(1, 2, 3), (self.expected_self, (1, 2, 3)), ) def test_fastcall_ext(self): self.assertEqual( self.obj.meth_fastcall(*(1, 2, 3)), (self.expected_self, (1, 2, 3)), ) def test_fastcall_error_kw(self): msg = r"meth_fastcall\(\) takes no keyword arguments" self.assertRaisesRegex( TypeError, msg, lambda: self.obj.meth_fastcall(k=1), ) def test_fastcall_keywords(self): self.assertEqual( self.obj.meth_fastcall_keywords(1, 2, a=3, b=4), (self.expected_self, (1, 2), {'a': 3, 'b': 4}) ) def test_fastcall_keywords_ext(self): self.assertEqual( self.obj.meth_fastcall_keywords(*(1, 2), **{'a': 3, 'b': 4}), (self.expected_self, (1, 2), {'a': 3, 'b': 4}) ) class TestCallingConventionsInstance(TestCallingConventions): """Test calling instance methods using various calling conventions""" def setUp(self): self.obj = self.expected_self = _testcapi.MethInstance() class TestCallingConventionsClass(TestCallingConventions): """Test calling class methods using various calling conventions""" def setUp(self): self.obj = self.expected_self = _testcapi.MethClass class TestCallingConventionsClassInstance(TestCallingConventions): """Test calling class methods on instance""" def setUp(self): self.obj = _testcapi.MethClass() self.expected_self = _testcapi.MethClass class TestCallingConventionsStatic(TestCallingConventions): """Test calling static methods using various calling conventions""" def setUp(self): self.obj = _testcapi.MethStatic() self.expected_self = None def pyfunc(arg1, arg2): return [arg1, arg2] def pyfunc_noarg(): return "noarg" class PythonClass: def method(self, arg1, arg2): return [arg1, arg2] def method_noarg(self): return "noarg" @classmethod def class_method(cls): return "classmethod" @staticmethod def static_method(): return "staticmethod" PYTHON_INSTANCE = PythonClass() NULL_OR_EMPTY = object() class FastCallTests(unittest.TestCase): """Test calling using various callables from C """ # Test calls with positional arguments CALLS_POSARGS = [ # (func, args: tuple, result) # Python function with 2 arguments (pyfunc, (1, 2), [1, 2]), # Python function without argument (pyfunc_noarg, (), "noarg"), # Python class methods (PythonClass.class_method, (), "classmethod"), (PythonClass.static_method, (), "staticmethod"), # Python instance methods (PYTHON_INSTANCE.method, (1, 2), [1, 2]), (PYTHON_INSTANCE.method_noarg, (), "noarg"), (PYTHON_INSTANCE.class_method, (), "classmethod"), (PYTHON_INSTANCE.static_method, (), "staticmethod"), # C callables are added later ] # Test calls with positional and keyword arguments CALLS_KWARGS = [ # (func, args: tuple, kwargs: dict, result) # Python function with 2 arguments (pyfunc, (1,), {'arg2': 2}, [1, 2]), (pyfunc, (), {'arg1': 1, 'arg2': 2}, [1, 2]), # Python instance methods (PYTHON_INSTANCE.method, (1,), {'arg2': 2}, [1, 2]), (PYTHON_INSTANCE.method, (), {'arg1': 1, 'arg2': 2}, [1, 2]), # C callables are added later ] # Add all the calling conventions and variants of C callables _instance = _testcapi.MethInstance() for obj, expected_self in ( (_testcapi, _testcapi), # module-level function (_instance, _instance), # bound method (_testcapi.MethClass, _testcapi.MethClass), # class method on class (_testcapi.MethClass(), _testcapi.MethClass), # class method on inst. (_testcapi.MethStatic, None), # static method ): CALLS_POSARGS.extend([ (obj.meth_varargs, (1, 2), (expected_self, (1, 2))), (obj.meth_varargs_keywords, (1, 2), (expected_self, (1, 2), NULL_OR_EMPTY)), (obj.meth_fastcall, (1, 2), (expected_self, (1, 2))), (obj.meth_fastcall, (), (expected_self, ())), (obj.meth_fastcall_keywords, (1, 2), (expected_self, (1, 2), NULL_OR_EMPTY)), (obj.meth_fastcall_keywords, (), (expected_self, (), NULL_OR_EMPTY)), (obj.meth_noargs, (), expected_self), (obj.meth_o, (123, ), (expected_self, 123)), ]) CALLS_KWARGS.extend([ (obj.meth_varargs_keywords, (1, 2), {'x': 'y'}, (expected_self, (1, 2), {'x': 'y'})), (obj.meth_varargs_keywords, (), {'x': 'y'}, (expected_self, (), {'x': 'y'})), (obj.meth_varargs_keywords, (1, 2), {}, (expected_self, (1, 2), NULL_OR_EMPTY)), (obj.meth_fastcall_keywords, (1, 2), {'x': 'y'}, (expected_self, (1, 2), {'x': 'y'})), (obj.meth_fastcall_keywords, (), {'x': 'y'}, (expected_self, (), {'x': 'y'})), (obj.meth_fastcall_keywords, (1, 2), {}, (expected_self, (1, 2), NULL_OR_EMPTY)), ]) def check_result(self, result, expected): if isinstance(expected, tuple) and expected[-1] is NULL_OR_EMPTY: if result[-1] in ({}, None): expected = (*expected[:-1], result[-1]) self.assertEqual(result, expected) def test_fastcall(self): # Test _PyObject_FastCall() for func, args, expected in self.CALLS_POSARGS: with self.subTest(func=func, args=args): result = _testcapi.pyobject_fastcall(func, args) self.check_result(result, expected) if not args: # args=NULL, nargs=0 result = _testcapi.pyobject_fastcall(func, None) self.check_result(result, expected) def test_vectorcall_dict(self): # Test PyObject_VectorcallDict() for func, args, expected in self.CALLS_POSARGS: with self.subTest(func=func, args=args): # kwargs=NULL result = _testcapi.pyobject_fastcalldict(func, args, None) self.check_result(result, expected) if not args: # args=NULL, nargs=0, kwargs=NULL result = _testcapi.pyobject_fastcalldict(func, None, None) self.check_result(result, expected) for func, args, kwargs, expected in self.CALLS_KWARGS: with self.subTest(func=func, args=args, kwargs=kwargs): result = _testcapi.pyobject_fastcalldict(func, args, kwargs) self.check_result(result, expected) def test_vectorcall(self): # Test PyObject_Vectorcall() for func, args, expected in self.CALLS_POSARGS: with self.subTest(func=func, args=args): # kwnames=NULL result = _testcapi.pyobject_vectorcall(func, args, None) self.check_result(result, expected) # kwnames=() result = _testcapi.pyobject_vectorcall(func, args, ()) self.check_result(result, expected) if not args: # kwnames=NULL result = _testcapi.pyobject_vectorcall(func, None, None) self.check_result(result, expected) # kwnames=() result = _testcapi.pyobject_vectorcall(func, None, ()) self.check_result(result, expected) for func, args, kwargs, expected in self.CALLS_KWARGS: with self.subTest(func=func, args=args, kwargs=kwargs): kwnames = tuple(kwargs.keys()) args = args + tuple(kwargs.values()) result = _testcapi.pyobject_vectorcall(func, args, kwnames) self.check_result(result, expected) def test_fastcall_clearing_dict(self): # Test bpo-36907: the point of the test is just checking that this # does not crash. class IntWithDict: __slots__ = ["kwargs"] def __init__(self, **kwargs): self.kwargs = kwargs def __index__(self): self.kwargs.clear() gc.collect() return 0 x = IntWithDict(dont_inherit=IntWithDict()) # We test the argument handling of "compile" here, the compilation # itself is not relevant. When we pass flags=x below, x.__index__() is # called, which changes the keywords dict. compile("pass", "", "exec", x, **x.kwargs) Py_TPFLAGS_HAVE_VECTORCALL = 1 << 11 Py_TPFLAGS_METHOD_DESCRIPTOR = 1 << 17 def testfunction(self): """some doc""" return self def testfunction_kw(self, *, kw): """some doc""" return self class TestPEP590(unittest.TestCase): def test_method_descriptor_flag(self): import functools cached = functools.lru_cache(1)(testfunction) self.assertFalse(type(repr).__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) self.assertTrue(type(list.append).__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) self.assertTrue(type(list.__add__).__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) self.assertTrue(type(testfunction).__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) self.assertTrue(type(cached).__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) self.assertTrue(_testcapi.MethodDescriptorBase.__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) self.assertTrue(_testcapi.MethodDescriptorDerived.__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) self.assertFalse(_testcapi.MethodDescriptorNopGet.__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) # Heap type should not inherit Py_TPFLAGS_METHOD_DESCRIPTOR class MethodDescriptorHeap(_testcapi.MethodDescriptorBase): pass self.assertFalse(MethodDescriptorHeap.__flags__ & Py_TPFLAGS_METHOD_DESCRIPTOR) def test_vectorcall_flag(self): self.assertTrue(_testcapi.MethodDescriptorBase.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) self.assertTrue(_testcapi.MethodDescriptorDerived.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) self.assertFalse(_testcapi.MethodDescriptorNopGet.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) self.assertTrue(_testcapi.MethodDescriptor2.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) # Heap type should not inherit Py_TPFLAGS_HAVE_VECTORCALL class MethodDescriptorHeap(_testcapi.MethodDescriptorBase): pass self.assertFalse(MethodDescriptorHeap.__flags__ & Py_TPFLAGS_HAVE_VECTORCALL) def test_vectorcall_override(self): # Check that tp_call can correctly override vectorcall. # MethodDescriptorNopGet implements tp_call but it inherits from # MethodDescriptorBase, which implements vectorcall. Since # MethodDescriptorNopGet returns the args tuple when called, we check # additionally that no new tuple is created for this call. args = tuple(range(5)) f = _testcapi.MethodDescriptorNopGet() self.assertIs(f(*args), args) def test_vectorcall(self): # Test a bunch of different ways to call objects: # 1. vectorcall using PyVectorcall_Call() # (only for objects that support vectorcall directly) # 2. normal call # 3. vectorcall using PyObject_Vectorcall() # 4. call as bound method # 5. call using functools.partial # A list of (function, args, kwargs, result) calls to test calls = [(len, (range(42),), {}, 42), (list.append, ([], 0), {}, None), ([].append, (0,), {}, None), (sum, ([36],), {"start":6}, 42), (testfunction, (42,), {}, 42), (testfunction_kw, (42,), {"kw":None}, 42), (_testcapi.MethodDescriptorBase(), (0,), {}, True), (_testcapi.MethodDescriptorDerived(), (0,), {}, True), (_testcapi.MethodDescriptor2(), (0,), {}, False)] from _testcapi import pyobject_vectorcall, pyvectorcall_call from types import MethodType from functools import partial def vectorcall(func, args, kwargs): args = *args, *kwargs.values() kwnames = tuple(kwargs) return pyobject_vectorcall(func, args, kwnames) for (func, args, kwargs, expected) in calls: with self.subTest(str(func)): if not kwargs: self.assertEqual(expected, pyvectorcall_call(func, args)) self.assertEqual(expected, pyvectorcall_call(func, args, kwargs)) # Add derived classes (which do not support vectorcall directly, # but do support all other ways of calling). class MethodDescriptorHeap(_testcapi.MethodDescriptorBase): pass class MethodDescriptorOverridden(_testcapi.MethodDescriptorBase): def __call__(self, n): return 'new' class SuperBase: def __call__(self, *args): return super().__call__(*args) class MethodDescriptorSuper(SuperBase, _testcapi.MethodDescriptorBase): def __call__(self, *args): return super().__call__(*args) calls += [ (dict.update, ({},), {"key":True}, None), ({}.update, ({},), {"key":True}, None), (MethodDescriptorHeap(), (0,), {}, True), (MethodDescriptorOverridden(), (0,), {}, 'new'), (MethodDescriptorSuper(), (0,), {}, True), ] for (func, args, kwargs, expected) in calls: with self.subTest(str(func)): args1 = args[1:] meth = MethodType(func, args[0]) wrapped = partial(func) if not kwargs: self.assertEqual(expected, func(*args)) self.assertEqual(expected, pyobject_vectorcall(func, args, None)) self.assertEqual(expected, meth(*args1)) self.assertEqual(expected, wrapped(*args)) self.assertEqual(expected, func(*args, **kwargs)) self.assertEqual(expected, vectorcall(func, args, kwargs)) self.assertEqual(expected, meth(*args1, **kwargs)) self.assertEqual(expected, wrapped(*args, **kwargs)) class A: def method_two_args(self, x, y): pass @staticmethod def static_no_args(): pass @staticmethod def positional_only(arg, /): pass @cpython_only class TestErrorMessagesUseQualifiedName(unittest.TestCase): @contextlib.contextmanager def check_raises_type_error(self, message): with self.assertRaises(TypeError) as cm: yield self.assertEqual(str(cm.exception), message) def test_missing_arguments(self): msg = "A.method_two_args() missing 1 required positional argument: 'y'" with self.check_raises_type_error(msg): A().method_two_args("x") def test_too_many_positional(self): msg = "A.static_no_args() takes 0 positional arguments but 1 was given" with self.check_raises_type_error(msg): A.static_no_args("oops it's an arg") def test_positional_only_passed_as_keyword(self): msg = "A.positional_only() got some positional-only arguments passed as keyword arguments: 'arg'" with self.check_raises_type_error(msg): A.positional_only(arg="x") def test_unexpected_keyword(self): msg = "A.method_two_args() got an unexpected keyword argument 'bad'" with self.check_raises_type_error(msg): A().method_two_args(bad="x") def test_multiple_values(self): msg = "A.method_two_args() got multiple values for argument 'x'" with self.check_raises_type_error(msg): A().method_two_args("x", "y", x="oops") if __name__ == "__main__": unittest.main()
Close