Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.122
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
local /
lib /
python3.10 /
test /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
audiodata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
capath
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
cjkencodings
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
data
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
decimaltestdata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
dtracedata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
encoded_modules
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
imghdrdata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
libregrtest
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
sndhdrdata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
subprocessdata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
support
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_asyncio
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_email
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_import
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_importlib
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_json
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_peg_generator
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_tools
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_warnings
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
test_zoneinfo
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
tracedmodules
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
typinganndata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
xmltestdata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
ziptestdata
[ DIR ]
drwxr-sr-x
2025-06-04 09:23
Sine-1000Hz-300ms.aif
60.25
KB
-rw-r--r--
2025-06-04 09:23
__init__.py
47
B
-rw-r--r--
2025-06-04 09:23
__main__.py
41
B
-rw-r--r--
2025-06-04 09:23
_test_atexit.py
3.61
KB
-rw-r--r--
2025-06-04 09:23
_test_eintr.py
17.65
KB
-rw-r--r--
2025-06-04 09:23
_test_embed_set_config.py
8.55
KB
-rw-r--r--
2025-06-04 09:23
_test_multiprocessing.py
193.64
KB
-rw-r--r--
2025-06-04 09:23
_typed_dict_helper.py
494
B
-rw-r--r--
2025-06-04 09:23
allsans.pem
9.87
KB
-rw-r--r--
2025-06-04 09:23
ann_module.py
1.09
KB
-rw-r--r--
2025-06-04 09:23
ann_module2.py
519
B
-rw-r--r--
2025-06-04 09:23
ann_module3.py
448
B
-rw-r--r--
2025-06-04 09:23
ann_module4.py
81
B
-rw-r--r--
2025-06-04 09:23
ann_module5.py
202
B
-rw-r--r--
2025-06-04 09:23
ann_module6.py
138
B
-rw-r--r--
2025-06-04 09:23
ann_module7.py
295
B
-rw-r--r--
2025-06-04 09:23
audiotest.au
27.48
KB
-rw-r--r--
2025-06-04 09:23
audiotests.py
12.13
KB
-rw-r--r--
2025-06-04 09:23
audit-tests.py
11.35
KB
-rw-r--r--
2025-06-04 09:23
autotest.py
209
B
-rw-r--r--
2025-06-04 09:23
bad_coding.py
24
B
-rw-r--r--
2025-06-04 09:23
bad_coding2.py
30
B
-rw-r--r--
2025-06-04 09:23
bad_getattr.py
61
B
-rw-r--r--
2025-06-04 09:23
bad_getattr2.py
77
B
-rw-r--r--
2025-06-04 09:23
bad_getattr3.py
139
B
-rw-r--r--
2025-06-04 09:23
badcert.pem
1.88
KB
-rw-r--r--
2025-06-04 09:23
badkey.pem
2.11
KB
-rw-r--r--
2025-06-04 09:23
badsyntax_3131.py
32
B
-rw-r--r--
2025-06-04 09:23
badsyntax_future10.py
95
B
-rw-r--r--
2025-06-04 09:23
badsyntax_future3.py
172
B
-rw-r--r--
2025-06-04 09:23
badsyntax_future4.py
153
B
-rw-r--r--
2025-06-04 09:23
badsyntax_future5.py
184
B
-rw-r--r--
2025-06-04 09:23
badsyntax_future6.py
161
B
-rw-r--r--
2025-06-04 09:23
badsyntax_future7.py
196
B
-rw-r--r--
2025-06-04 09:23
badsyntax_future8.py
122
B
-rw-r--r--
2025-06-04 09:23
badsyntax_future9.py
142
B
-rw-r--r--
2025-06-04 09:23
badsyntax_pep3120.py
14
B
-rw-r--r--
2025-06-04 09:23
bisect_cmd.py
5.21
KB
-rwxr-xr-x
2025-06-04 09:23
cfgparser.1
67
B
-rw-r--r--
2025-06-04 09:23
cfgparser.2
19.02
KB
-rw-r--r--
2025-06-04 09:23
cfgparser.3
1.55
KB
-rw-r--r--
2025-06-04 09:23
clinic.test
94.05
KB
-rw-r--r--
2025-06-04 09:23
cmath_testcases.txt
141.05
KB
-rw-r--r--
2025-06-04 09:23
coding20731.py
22
B
-rw-r--r--
2025-06-04 09:23
curses_tests.py
1.21
KB
-rwxr-xr-x
2025-06-04 09:23
dataclass_module_1.py
837
B
-rw-r--r--
2025-06-04 09:23
dataclass_module_1_str.py
835
B
-rw-r--r--
2025-06-04 09:23
dataclass_module_2.py
756
B
-rw-r--r--
2025-06-04 09:23
dataclass_module_2_str.py
754
B
-rw-r--r--
2025-06-04 09:23
dataclass_textanno.py
126
B
-rw-r--r--
2025-06-04 09:23
datetimetester.py
245.16
KB
-rw-r--r--
2025-06-04 09:23
dis_module.py
76
B
-rw-r--r--
2025-06-04 09:23
doctest_aliases.py
240
B
-rw-r--r--
2025-06-04 09:23
doctest_lineno.py
914
B
-rw-r--r--
2025-06-04 09:23
double_const.py
1.18
KB
-rw-r--r--
2025-06-04 09:23
empty.vbs
70
B
-rw-r--r--
2025-06-04 09:23
exception_hierarchy.txt
1.81
KB
-rw-r--r--
2025-06-04 09:23
ffdh3072.pem
2.16
KB
-rw-r--r--
2025-06-04 09:23
final_a.py
411
B
-rw-r--r--
2025-06-04 09:23
final_b.py
411
B
-rw-r--r--
2025-06-04 09:23
floating_points.txt
15.92
KB
-rw-r--r--
2025-06-04 09:23
fork_wait.py
2.23
KB
-rw-r--r--
2025-06-04 09:23
formatfloat_testcases.txt
7.45
KB
-rw-r--r--
2025-06-04 09:23
future_test1.py
229
B
-rw-r--r--
2025-06-04 09:23
future_test2.py
149
B
-rw-r--r--
2025-06-04 09:23
gdb_sample.py
153
B
-rw-r--r--
2025-06-04 09:23
good_getattr.py
198
B
-rw-r--r--
2025-06-04 09:23
idnsans.pem
9.71
KB
-rw-r--r--
2025-06-04 09:23
ieee754.txt
3.21
KB
-rw-r--r--
2025-06-04 09:23
imp_dummy.py
63
B
-rw-r--r--
2025-06-04 09:23
inspect_fodder.py
1.88
KB
-rw-r--r--
2025-06-04 09:23
inspect_fodder2.py
3.69
KB
-rw-r--r--
2025-06-04 09:23
inspect_stock_annotations.py
509
B
-rw-r--r--
2025-06-04 09:23
inspect_stringized_annotations.py
612
B
-rw-r--r--
2025-06-04 09:23
inspect_stringized_annotations_2.py
60
B
-rw-r--r--
2025-06-04 09:23
keycert.passwd.pem
4.13
KB
-rw-r--r--
2025-06-04 09:23
keycert.pem
3.96
KB
-rw-r--r--
2025-06-04 09:23
keycert2.pem
3.98
KB
-rw-r--r--
2025-06-04 09:23
keycert3.pem
9.23
KB
-rw-r--r--
2025-06-04 09:23
keycert4.pem
9.24
KB
-rw-r--r--
2025-06-04 09:23
keycertecc.pem
5.5
KB
-rw-r--r--
2025-06-04 09:23
list_tests.py
16.65
KB
-rw-r--r--
2025-06-04 09:23
lock_tests.py
30.15
KB
-rw-r--r--
2025-06-04 09:23
mailcap.txt
1.24
KB
-rw-r--r--
2025-06-04 09:23
make_ssl_certs.py
9.25
KB
-rw-r--r--
2025-06-04 09:23
mapping_tests.py
21.83
KB
-rw-r--r--
2025-06-04 09:23
math_testcases.txt
23.19
KB
-rw-r--r--
2025-06-04 09:23
memory_watchdog.py
859
B
-rw-r--r--
2025-06-04 09:23
mime.types
47.37
KB
-rw-r--r--
2025-06-04 09:23
mock_socket.py
3.7
KB
-rw-r--r--
2025-06-04 09:23
mod_generics_cache.py
1.13
KB
-rw-r--r--
2025-06-04 09:23
mp_fork_bomb.py
448
B
-rw-r--r--
2025-06-04 09:23
mp_preload.py
351
B
-rw-r--r--
2025-06-04 09:23
multibytecodec_support.py
14.19
KB
-rw-r--r--
2025-06-04 09:23
nokia.pem
1.88
KB
-rw-r--r--
2025-06-04 09:23
nosan.pem
7.54
KB
-rw-r--r--
2025-06-04 09:23
nullbytecert.pem
5.31
KB
-rw-r--r--
2025-06-04 09:23
nullcert.pem
0
B
-rw-r--r--
2025-06-04 09:23
pickletester.py
141.12
KB
-rw-r--r--
2025-06-04 09:23
profilee.py
2.97
KB
-rw-r--r--
2025-06-04 09:23
pstats.pck
65.05
KB
-rw-r--r--
2025-06-04 09:23
pycacert.pem
5.53
KB
-rw-r--r--
2025-06-04 09:23
pycakey.pem
2.43
KB
-rw-r--r--
2025-06-04 09:23
pyclbr_input.py
648
B
-rw-r--r--
2025-06-04 09:23
pydoc_mod.py
961
B
-rw-r--r--
2025-06-04 09:23
pydocfodder.py
6.18
KB
-rw-r--r--
2025-06-04 09:23
pythoninfo.py
23.52
KB
-rw-r--r--
2025-06-04 09:23
randv2_32.pck
7.34
KB
-rw-r--r--
2025-06-04 09:23
randv2_64.pck
7.19
KB
-rw-r--r--
2025-06-04 09:23
randv3.pck
7.82
KB
-rw-r--r--
2025-06-04 09:23
re_tests.py
25.93
KB
-rwxr-xr-x
2025-06-04 09:23
recursion.tar
516
B
-rw-r--r--
2025-06-04 09:23
regrtest.py
1.26
KB
-rwxr-xr-x
2025-06-04 09:23
relimport.py
27
B
-rw-r--r--
2025-06-04 09:23
reperf.py
538
B
-rw-r--r--
2025-06-04 09:23
revocation.crl
800
B
-rw-r--r--
2025-06-04 09:23
sample_doctest.py
1.02
KB
-rw-r--r--
2025-06-04 09:23
sample_doctest_no_docstrings.py
227
B
-rw-r--r--
2025-06-04 09:23
sample_doctest_no_doctests.py
269
B
-rw-r--r--
2025-06-04 09:23
secp384r1.pem
256
B
-rw-r--r--
2025-06-04 09:23
selfsigned_pythontestdotnet.pem
2.08
KB
-rw-r--r--
2025-06-04 09:23
seq_tests.py
14.87
KB
-rw-r--r--
2025-06-04 09:23
sgml_input.html
8.1
KB
-rw-r--r--
2025-06-04 09:23
signalinterproctester.py
2.74
KB
-rw-r--r--
2025-06-04 09:23
sortperf.py
4.69
KB
-rw-r--r--
2025-06-04 09:23
ssl_cert.pem
1.53
KB
-rw-r--r--
2025-06-04 09:23
ssl_key.passwd.pem
2.59
KB
-rw-r--r--
2025-06-04 09:23
ssl_key.pem
2.43
KB
-rw-r--r--
2025-06-04 09:23
ssl_servers.py
7.11
KB
-rw-r--r--
2025-06-04 09:23
ssltests.py
1.03
KB
-rw-r--r--
2025-06-04 09:23
string_tests.py
68.03
KB
-rw-r--r--
2025-06-04 09:23
talos-2019-0758.pem
1.3
KB
-rw-r--r--
2025-06-04 09:23
test___all__.py
4.54
KB
-rw-r--r--
2025-06-04 09:23
test___future__.py
2.36
KB
-rw-r--r--
2025-06-04 09:23
test__locale.py
7.83
KB
-rw-r--r--
2025-06-04 09:23
test__opcode.py
3.05
KB
-rw-r--r--
2025-06-04 09:23
test__osx_support.py
13.64
KB
-rw-r--r--
2025-06-04 09:23
test__xxsubinterpreters.py
78.94
KB
-rw-r--r--
2025-06-04 09:23
test_abc.py
23.19
KB
-rw-r--r--
2025-06-04 09:23
test_abstract_numbers.py
1.49
KB
-rw-r--r--
2025-06-04 09:23
test_aifc.py
17.77
KB
-rw-r--r--
2025-06-04 09:23
test_argparse.py
181.08
KB
-rw-r--r--
2025-06-04 09:23
test_array.py
55.21
KB
-rwxr-xr-x
2025-06-04 09:23
test_asdl_parser.py
4.44
KB
-rw-r--r--
2025-06-04 09:23
test_ast.py
107.27
KB
-rw-r--r--
2025-06-04 09:23
test_asyncgen.py
46.8
KB
-rw-r--r--
2025-06-04 09:23
test_asynchat.py
9.4
KB
-rw-r--r--
2025-06-04 09:23
test_asyncore.py
26.13
KB
-rw-r--r--
2025-06-04 09:23
test_atexit.py
3.14
KB
-rw-r--r--
2025-06-04 09:23
test_audioop.py
28.24
KB
-rw-r--r--
2025-06-04 09:23
test_audit.py
6.46
KB
-rw-r--r--
2025-06-04 09:23
test_augassign.py
7.68
KB
-rw-r--r--
2025-06-04 09:23
test_base64.py
34.51
KB
-rw-r--r--
2025-06-04 09:23
test_baseexception.py
7.77
KB
-rw-r--r--
2025-06-04 09:23
test_bdb.py
43.63
KB
-rw-r--r--
2025-06-04 09:23
test_bigaddrspace.py
2.83
KB
-rw-r--r--
2025-06-04 09:23
test_bigmem.py
44.78
KB
-rw-r--r--
2025-06-04 09:23
test_binascii.py
19.27
KB
-rw-r--r--
2025-06-04 09:23
test_binhex.py
2.1
KB
-rw-r--r--
2025-06-04 09:23
test_binop.py
14.14
KB
-rw-r--r--
2025-06-04 09:23
test_bisect.py
15.71
KB
-rw-r--r--
2025-06-04 09:23
test_bool.py
12.73
KB
-rw-r--r--
2025-06-04 09:23
test_buffer.py
160.31
KB
-rw-r--r--
2025-06-04 09:23
test_bufio.py
2.58
KB
-rw-r--r--
2025-06-04 09:23
test_builtin.py
85.98
KB
-rw-r--r--
2025-06-04 09:23
test_bytes.py
76.03
KB
-rw-r--r--
2025-06-04 09:23
test_bz2.py
37.23
KB
-rw-r--r--
2025-06-04 09:23
test_c_locale_coercion.py
18.92
KB
-rw-r--r--
2025-06-04 09:23
test_calendar.py
51.02
KB
-rw-r--r--
2025-06-04 09:23
test_call.py
26.23
KB
-rw-r--r--
2025-06-04 09:23
test_cgi.py
22.26
KB
-rw-r--r--
2025-06-04 09:23
test_cgitb.py
2.54
KB
-rw-r--r--
2025-06-04 09:23
test_charmapcodec.py
1.77
KB
-rw-r--r--
2025-06-04 09:23
test_check_c_globals.py
1.02
KB
-rw-r--r--
2025-06-04 09:23
test_class.py
17.41
KB
-rw-r--r--
2025-06-04 09:23
test_clinic.py
43.03
KB
-rw-r--r--
2025-06-04 09:23
test_cmath.py
24.08
KB
-rw-r--r--
2025-06-04 09:23
test_cmd.py
6.1
KB
-rw-r--r--
2025-06-04 09:23
test_cmd_line.py
37.59
KB
-rw-r--r--
2025-06-04 09:23
test_cmd_line_script.py
33.43
KB
-rw-r--r--
2025-06-04 09:23
test_code.py
12.67
KB
-rw-r--r--
2025-06-04 09:23
test_code_module.py
5.53
KB
-rw-r--r--
2025-06-04 09:23
test_codeccallbacks.py
47.43
KB
-rw-r--r--
2025-06-04 09:23
test_codecencodings_cn.py
3.86
KB
-rw-r--r--
2025-06-04 09:23
test_codecencodings_hk.py
701
B
-rw-r--r--
2025-06-04 09:23
test_codecencodings_iso2022.py
3.65
KB
-rw-r--r--
2025-06-04 09:23
test_codecencodings_jp.py
4.79
KB
-rw-r--r--
2025-06-04 09:23
test_codecencodings_kr.py
2.96
KB
-rw-r--r--
2025-06-04 09:23
test_codecencodings_tw.py
681
B
-rw-r--r--
2025-06-04 09:23
test_codecmaps_cn.py
746
B
-rw-r--r--
2025-06-04 09:23
test_codecmaps_hk.py
386
B
-rw-r--r--
2025-06-04 09:23
test_codecmaps_jp.py
1.7
KB
-rw-r--r--
2025-06-04 09:23
test_codecmaps_kr.py
1.16
KB
-rw-r--r--
2025-06-04 09:23
test_codecmaps_tw.py
705
B
-rw-r--r--
2025-06-04 09:23
test_codecs.py
133.35
KB
-rw-r--r--
2025-06-04 09:23
test_codeop.py
9.18
KB
-rw-r--r--
2025-06-04 09:23
test_collections.py
92.15
KB
-rw-r--r--
2025-06-04 09:23
test_colorsys.py
3.83
KB
-rw-r--r--
2025-06-04 09:23
test_compare.py
3.74
KB
-rw-r--r--
2025-06-04 09:23
test_compile.py
46.33
KB
-rw-r--r--
2025-06-04 09:23
test_compileall.py
47.55
KB
-rw-r--r--
2025-06-04 09:23
test_complex.py
32.54
KB
-rw-r--r--
2025-06-04 09:23
test_concurrent_futures.py
56.63
KB
-rw-r--r--
2025-06-04 09:23
test_configparser.py
85.4
KB
-rw-r--r--
2025-06-04 09:23
test_contains.py
3.35
KB
-rw-r--r--
2025-06-04 09:23
test_context.py
30.63
KB
-rw-r--r--
2025-06-04 09:23
test_contextlib.py
36.9
KB
-rw-r--r--
2025-06-04 09:23
test_contextlib_async.py
20.67
KB
-rw-r--r--
2025-06-04 09:23
test_copy.py
26.63
KB
-rw-r--r--
2025-06-04 09:23
test_copyreg.py
4.39
KB
-rw-r--r--
2025-06-04 09:23
test_coroutines.py
63.79
KB
-rw-r--r--
2025-06-04 09:23
test_cprofile.py
6.33
KB
-rw-r--r--
2025-06-04 09:23
test_crashers.py
1.17
KB
-rw-r--r--
2025-06-04 09:23
test_crypt.py
4.14
KB
-rw-r--r--
2025-06-04 09:23
test_csv.py
52.99
KB
-rw-r--r--
2025-06-04 09:23
test_ctypes.py
199
B
-rw-r--r--
2025-06-04 09:23
test_curses.py
46.58
KB
-rw-r--r--
2025-06-04 09:23
test_dataclasses.py
126.75
KB
-rw-r--r--
2025-06-04 09:23
test_datetime.py
2.31
KB
-rw-r--r--
2025-06-04 09:23
test_dbm.py
6.11
KB
-rw-r--r--
2025-06-04 09:23
test_dbm_dumb.py
10.68
KB
-rw-r--r--
2025-06-04 09:23
test_dbm_gnu.py
6.51
KB
-rw-r--r--
2025-06-04 09:23
test_dbm_ndbm.py
5.12
KB
-rw-r--r--
2025-06-04 09:23
test_decimal.py
209.81
KB
-rw-r--r--
2025-06-04 09:23
test_decorators.py
14.42
KB
-rw-r--r--
2025-06-04 09:23
test_defaultdict.py
6.13
KB
-rw-r--r--
2025-06-04 09:23
test_deque.py
33.63
KB
-rw-r--r--
2025-06-04 09:23
test_descr.py
192.65
KB
-rw-r--r--
2025-06-04 09:23
test_descrtut.py
11.57
KB
-rw-r--r--
2025-06-04 09:23
test_devpoll.py
4.44
KB
-rw-r--r--
2025-06-04 09:23
test_dict.py
50.72
KB
-rw-r--r--
2025-06-04 09:23
test_dict_version.py
6.1
KB
-rw-r--r--
2025-06-04 09:23
test_dictcomps.py
5.15
KB
-rw-r--r--
2025-06-04 09:23
test_dictviews.py
13.69
KB
-rw-r--r--
2025-06-04 09:23
test_difflib.py
21.47
KB
-rw-r--r--
2025-06-04 09:23
test_difflib_expect.html
100.85
KB
-rw-r--r--
2025-06-04 09:23
test_dis.py
56.47
KB
-rw-r--r--
2025-06-04 09:23
test_distutils.py
587
B
-rw-r--r--
2025-06-04 09:23
test_doctest.py
101.1
KB
-rw-r--r--
2025-06-04 09:23
test_doctest.txt
300
B
-rw-r--r--
2025-06-04 09:23
test_doctest2.py
2.36
KB
-rw-r--r--
2025-06-04 09:23
test_doctest2.txt
392
B
-rw-r--r--
2025-06-04 09:23
test_doctest3.txt
82
B
-rw-r--r--
2025-06-04 09:23
test_doctest4.txt
244
B
-rw-r--r--
2025-06-04 09:23
test_docxmlrpc.py
8.67
KB
-rw-r--r--
2025-06-04 09:23
test_dtrace.py
5.14
KB
-rw-r--r--
2025-06-04 09:23
test_dynamic.py
4.29
KB
-rw-r--r--
2025-06-04 09:23
test_dynamicclassattribute.py
9.57
KB
-rw-r--r--
2025-06-04 09:23
test_eintr.py
584
B
-rw-r--r--
2025-06-04 09:23
test_embed.py
55.88
KB
-rw-r--r--
2025-06-04 09:23
test_ensurepip.py
12.2
KB
-rw-r--r--
2025-06-04 09:23
test_enum.py
121.13
KB
-rw-r--r--
2025-06-04 09:23
test_enumerate.py
8.46
KB
-rw-r--r--
2025-06-04 09:23
test_eof.py
3.02
KB
-rw-r--r--
2025-06-04 09:23
test_epoll.py
9.14
KB
-rw-r--r--
2025-06-04 09:23
test_errno.py
1.04
KB
-rw-r--r--
2025-06-04 09:23
test_exception_hierarchy.py
7.43
KB
-rw-r--r--
2025-06-04 09:23
test_exception_variations.py
3.86
KB
-rw-r--r--
2025-06-04 09:23
test_exceptions.py
90.94
KB
-rw-r--r--
2025-06-04 09:23
test_extcall.py
14.05
KB
-rw-r--r--
2025-06-04 09:23
test_faulthandler.py
30.11
KB
-rw-r--r--
2025-06-04 09:23
test_fcntl.py
7.43
KB
-rw-r--r--
2025-06-04 09:23
test_file.py
11.78
KB
-rw-r--r--
2025-06-04 09:23
test_file_eintr.py
10.61
KB
-rw-r--r--
2025-06-04 09:23
test_filecmp.py
10.33
KB
-rw-r--r--
2025-06-04 09:23
test_fileinput.py
40.18
KB
-rw-r--r--
2025-06-04 09:23
test_fileio.py
19.93
KB
-rw-r--r--
2025-06-04 09:23
test_finalization.py
14.66
KB
-rw-r--r--
2025-06-04 09:23
test_float.py
66.39
KB
-rw-r--r--
2025-06-04 09:23
test_flufl.py
1.55
KB
-rw-r--r--
2025-06-04 09:23
test_fnmatch.py
11.1
KB
-rw-r--r--
2025-06-04 09:23
test_fork1.py
3.24
KB
-rw-r--r--
2025-06-04 09:23
test_format.py
23.91
KB
-rw-r--r--
2025-06-04 09:23
test_fractions.py
29.7
KB
-rw-r--r--
2025-06-04 09:23
test_frame.py
6.22
KB
-rw-r--r--
2025-06-04 09:23
test_frozen.py
943
B
-rw-r--r--
2025-06-04 09:23
test_fstring.py
52.54
KB
-rw-r--r--
2025-06-04 09:23
test_ftplib.py
41.99
KB
-rw-r--r--
2025-06-04 09:23
test_funcattrs.py
14.86
KB
-rw-r--r--
2025-06-04 09:23
test_functools.py
102.67
KB
-rw-r--r--
2025-06-04 09:23
test_future.py
14.88
KB
-rw-r--r--
2025-06-04 09:23
test_future3.py
490
B
-rw-r--r--
2025-06-04 09:23
test_future4.py
222
B
-rw-r--r--
2025-06-04 09:23
test_future5.py
510
B
-rw-r--r--
2025-06-04 09:23
test_gc.py
45.92
KB
-rw-r--r--
2025-06-04 09:23
test_gdb.py
41.71
KB
-rw-r--r--
2025-06-04 09:23
test_generator_stop.py
943
B
-rw-r--r--
2025-06-04 09:23
test_generators.py
63.77
KB
-rw-r--r--
2025-06-04 09:23
test_genericalias.py
12.77
KB
-rw-r--r--
2025-06-04 09:23
test_genericclass.py
9.28
KB
-rw-r--r--
2025-06-04 09:23
test_genericpath.py
21.84
KB
-rw-r--r--
2025-06-04 09:23
test_genexps.py
7.63
KB
-rw-r--r--
2025-06-04 09:23
test_getopt.py
6.78
KB
-rw-r--r--
2025-06-04 09:23
test_getpass.py
6.29
KB
-rw-r--r--
2025-06-04 09:23
test_gettext.py
41.42
KB
-rw-r--r--
2025-06-04 09:23
test_glob.py
15.35
KB
-rw-r--r--
2025-06-04 09:23
test_global.py
1.38
KB
-rw-r--r--
2025-06-04 09:23
test_grammar.py
63.22
KB
-rw-r--r--
2025-06-04 09:23
test_graphlib.py
8.34
KB
-rw-r--r--
2025-06-04 09:23
test_grp.py
3.67
KB
-rw-r--r--
2025-06-04 09:23
test_gzip.py
30.63
KB
-rw-r--r--
2025-06-04 09:23
test_hash.py
11.45
KB
-rw-r--r--
2025-06-04 09:23
test_hashlib.py
44.92
KB
-rw-r--r--
2025-06-04 09:23
test_heapq.py
16.45
KB
-rw-r--r--
2025-06-04 09:23
test_hmac.py
25.41
KB
-rw-r--r--
2025-06-04 09:23
test_html.py
4.23
KB
-rw-r--r--
2025-06-04 09:23
test_htmlparser.py
32.93
KB
-rw-r--r--
2025-06-04 09:23
test_http_cookiejar.py
78.4
KB
-rw-r--r--
2025-06-04 09:23
test_http_cookies.py
18.71
KB
-rw-r--r--
2025-06-04 09:23
test_httplib.py
79.14
KB
-rw-r--r--
2025-06-04 09:23
test_httpservers.py
55.11
KB
-rw-r--r--
2025-06-04 09:23
test_idle.py
1014
B
-rw-r--r--
2025-06-04 09:23
test_imaplib.py
42.13
KB
-rw-r--r--
2025-06-04 09:23
test_imghdr.py
4.69
KB
-rw-r--r--
2025-06-04 09:23
test_imp.py
18.93
KB
-rw-r--r--
2025-06-04 09:23
test_index.py
8.37
KB
-rw-r--r--
2025-06-04 09:23
test_inspect.py
172.66
KB
-rw-r--r--
2025-06-04 09:23
test_int.py
28.32
KB
-rw-r--r--
2025-06-04 09:23
test_int_literal.py
6.89
KB
-rw-r--r--
2025-06-04 09:23
test_interpreters.py
22.48
KB
-rw-r--r--
2025-06-04 09:23
test_io.py
171.42
KB
-rw-r--r--
2025-06-04 09:23
test_ioctl.py
3.24
KB
-rw-r--r--
2025-06-04 09:23
test_ipaddress.py
116.78
KB
-rw-r--r--
2025-06-04 09:23
test_isinstance.py
12.96
KB
-rw-r--r--
2025-06-04 09:23
test_iter.py
36.76
KB
-rw-r--r--
2025-06-04 09:23
test_iterlen.py
7.1
KB
-rw-r--r--
2025-06-04 09:23
test_itertools.py
108.43
KB
-rw-r--r--
2025-06-04 09:23
test_keyword.py
1.97
KB
-rw-r--r--
2025-06-04 09:23
test_keywordonlyarg.py
6.89
KB
-rw-r--r--
2025-06-04 09:23
test_kqueue.py
8.76
KB
-rw-r--r--
2025-06-04 09:23
test_largefile.py
9.98
KB
-rw-r--r--
2025-06-04 09:23
test_lib2to3.py
318
B
-rw-r--r--
2025-06-04 09:23
test_linecache.py
9.64
KB
-rw-r--r--
2025-06-04 09:23
test_list.py
7.98
KB
-rw-r--r--
2025-06-04 09:23
test_listcomps.py
4.17
KB
-rw-r--r--
2025-06-04 09:23
test_lltrace.py
3.13
KB
-rw-r--r--
2025-06-04 09:23
test_locale.py
24.64
KB
-rw-r--r--
2025-06-04 09:23
test_logging.py
196.58
KB
-rw-r--r--
2025-06-04 09:23
test_long.py
54.55
KB
-rw-r--r--
2025-06-04 09:23
test_longexp.py
233
B
-rw-r--r--
2025-06-04 09:23
test_lzma.py
88.18
KB
-rw-r--r--
2025-06-04 09:23
test_mailbox.py
91.79
KB
-rw-r--r--
2025-06-04 09:23
test_mailcap.py
10.16
KB
-rw-r--r--
2025-06-04 09:23
test_marshal.py
20.46
KB
-rw-r--r--
2025-06-04 09:23
test_math.py
90.7
KB
-rw-r--r--
2025-06-04 09:23
test_memoryio.py
31.48
KB
-rw-r--r--
2025-06-04 09:23
test_memoryview.py
21.37
KB
-rw-r--r--
2025-06-04 09:23
test_metaclass.py
6.21
KB
-rw-r--r--
2025-06-04 09:23
test_mimetypes.py
13.85
KB
-rw-r--r--
2025-06-04 09:23
test_minidom.py
68.81
KB
-rw-r--r--
2025-06-04 09:23
test_mmap.py
31.06
KB
-rw-r--r--
2025-06-04 09:23
test_module.py
12.37
KB
-rw-r--r--
2025-06-04 09:23
test_modulefinder.py
12.2
KB
-rw-r--r--
2025-06-04 09:23
test_msilib.py
5.41
KB
-rw-r--r--
2025-06-04 09:23
test_multibytecodec.py
15.76
KB
-rw-r--r--
2025-06-04 09:23
test_multiprocessing_fork.py
477
B
-rw-r--r--
2025-06-04 09:23
test_multiprocessing_forkserver.py
392
B
-rw-r--r--
2025-06-04 09:23
test_multiprocessing_main_handling.py
11.57
KB
-rw-r--r--
2025-06-04 09:23
test_multiprocessing_spawn.py
277
B
-rw-r--r--
2025-06-04 09:23
test_named_expressions.py
20.62
KB
-rw-r--r--
2025-06-04 09:23
test_netrc.py
6.01
KB
-rw-r--r--
2025-06-04 09:23
test_nis.py
1.17
KB
-rw-r--r--
2025-06-04 09:23
test_nntplib.py
62.68
KB
-rw-r--r--
2025-06-04 09:23
test_ntpath.py
38.67
KB
-rw-r--r--
2025-06-04 09:23
test_numeric_tower.py
8
KB
-rw-r--r--
2025-06-04 09:23
test_opcache.py
529
B
-rw-r--r--
2025-06-04 09:23
test_opcodes.py
3.59
KB
-rw-r--r--
2025-06-04 09:23
test_openpty.py
600
B
-rw-r--r--
2025-06-04 09:23
test_operator.py
24.05
KB
-rw-r--r--
2025-06-04 09:23
test_optparse.py
61.02
KB
-rw-r--r--
2025-06-04 09:23
test_ordered_dict.py
31.61
KB
-rw-r--r--
2025-06-04 09:23
test_os.py
167.95
KB
-rw-r--r--
2025-06-04 09:23
test_ossaudiodev.py
7.07
KB
-rw-r--r--
2025-06-04 09:23
test_osx_env.py
1.31
KB
-rw-r--r--
2025-06-04 09:23
test_pathlib.py
109.86
KB
-rw-r--r--
2025-06-04 09:23
test_patma.py
84.78
KB
-rw-r--r--
2025-06-04 09:23
test_pdb.py
68.89
KB
-rw-r--r--
2025-06-04 09:23
test_peepholer.py
19.77
KB
-rw-r--r--
2025-06-04 09:23
test_pickle.py
19.71
KB
-rw-r--r--
2025-06-04 09:23
test_picklebuffer.py
4.99
KB
-rw-r--r--
2025-06-04 09:23
test_pickletools.py
4.13
KB
-rw-r--r--
2025-06-04 09:23
test_pipes.py
6.71
KB
-rw-r--r--
2025-06-04 09:23
test_pkg.py
9.59
KB
-rw-r--r--
2025-06-04 09:23
test_pkgutil.py
21.21
KB
-rw-r--r--
2025-06-04 09:23
test_platform.py
19.98
KB
-rw-r--r--
2025-06-04 09:23
test_plistlib.py
38.73
KB
-rw-r--r--
2025-06-04 09:23
test_poll.py
7.27
KB
-rw-r--r--
2025-06-04 09:23
test_popen.py
2.08
KB
-rw-r--r--
2025-06-04 09:23
test_poplib.py
17.54
KB
-rw-r--r--
2025-06-04 09:23
test_positional_only_arg.py
17.77
KB
-rw-r--r--
2025-06-04 09:23
test_posix.py
87.32
KB
-rw-r--r--
2025-06-04 09:23
test_posixpath.py
32.11
KB
-rw-r--r--
2025-06-04 09:23
test_pow.py
5.43
KB
-rw-r--r--
2025-06-04 09:23
test_pprint.py
50.31
KB
-rw-r--r--
2025-06-04 09:23
test_print.py
7.72
KB
-rw-r--r--
2025-06-04 09:23
test_profile.py
8.69
KB
-rw-r--r--
2025-06-04 09:23
test_property.py
11.35
KB
-rw-r--r--
2025-06-04 09:23
test_pstats.py
3.31
KB
-rw-r--r--
2025-06-04 09:23
test_pty.py
16.84
KB
-rw-r--r--
2025-06-04 09:23
test_pulldom.py
12.66
KB
-rw-r--r--
2025-06-04 09:23
test_pwd.py
4.29
KB
-rw-r--r--
2025-06-04 09:23
test_py_compile.py
11.44
KB
-rw-r--r--
2025-06-04 09:23
test_pyclbr.py
9.84
KB
-rw-r--r--
2025-06-04 09:23
test_pydoc.py
60.53
KB
-rw-r--r--
2025-06-04 09:23
test_pyexpat.py
28.42
KB
-rw-r--r--
2025-06-04 09:23
test_queue.py
20.51
KB
-rw-r--r--
2025-06-04 09:23
test_quopri.py
7.78
KB
-rw-r--r--
2025-06-04 09:23
test_raise.py
13.44
KB
-rw-r--r--
2025-06-04 09:23
test_random.py
55.18
KB
-rw-r--r--
2025-06-04 09:23
test_range.py
24.64
KB
-rw-r--r--
2025-06-04 09:23
test_re.py
112.86
KB
-rw-r--r--
2025-06-04 09:23
test_readline.py
14.24
KB
-rw-r--r--
2025-06-04 09:23
test_regrtest.py
49.5
KB
-rw-r--r--
2025-06-04 09:23
test_repl.py
3.96
KB
-rw-r--r--
2025-06-04 09:23
test_reprlib.py
15.13
KB
-rw-r--r--
2025-06-04 09:23
test_resource.py
7.04
KB
-rw-r--r--
2025-06-04 09:23
test_richcmp.py
11.91
KB
-rw-r--r--
2025-06-04 09:23
test_rlcompleter.py
7.1
KB
-rw-r--r--
2025-06-04 09:23
test_robotparser.py
10.88
KB
-rw-r--r--
2025-06-04 09:23
test_runpy.py
33.86
KB
-rw-r--r--
2025-06-04 09:23
test_sax.py
54.6
KB
-rw-r--r--
2025-06-04 09:23
test_sched.py
7.28
KB
-rw-r--r--
2025-06-04 09:23
test_scope.py
19.83
KB
-rw-r--r--
2025-06-04 09:23
test_script_helper.py
5.78
KB
-rw-r--r--
2025-06-04 09:23
test_secrets.py
4.28
KB
-rw-r--r--
2025-06-04 09:23
test_select.py
3.32
KB
-rw-r--r--
2025-06-04 09:23
test_selectors.py
18.27
KB
-rw-r--r--
2025-06-04 09:23
test_set.py
69.09
KB
-rw-r--r--
2025-06-04 09:23
test_setcomps.py
4.15
KB
-rw-r--r--
2025-06-04 09:23
test_shelve.py
6.02
KB
-rw-r--r--
2025-06-04 09:23
test_shlex.py
13.48
KB
-rw-r--r--
2025-06-04 09:23
test_shutil.py
105.72
KB
-rw-r--r--
2025-06-04 09:23
test_signal.py
48.8
KB
-rw-r--r--
2025-06-04 09:23
test_site.py
27.8
KB
-rw-r--r--
2025-06-04 09:23
test_slice.py
9.23
KB
-rw-r--r--
2025-06-04 09:23
test_smtpd.py
40.65
KB
-rw-r--r--
2025-06-04 09:23
test_smtplib.py
60.05
KB
-rw-r--r--
2025-06-04 09:23
test_smtpnet.py
2.99
KB
-rw-r--r--
2025-06-04 09:23
test_sndhdr.py
1.43
KB
-rw-r--r--
2025-06-04 09:23
test_socket.py
246.76
KB
-rw-r--r--
2025-06-04 09:23
test_socketserver.py
17.89
KB
-rw-r--r--
2025-06-04 09:23
test_sort.py
13.42
KB
-rw-r--r--
2025-06-04 09:23
test_source_encoding.py
9.03
KB
-rw-r--r--
2025-06-04 09:23
test_spwd.py
2.73
KB
-rw-r--r--
2025-06-04 09:23
test_sqlite.py
988
B
-rw-r--r--
2025-06-04 09:23
test_ssl.py
217.26
KB
-rw-r--r--
2025-06-04 09:23
test_startfile.py
1.7
KB
-rw-r--r--
2025-06-04 09:23
test_stat.py
8.58
KB
-rw-r--r--
2025-06-04 09:23
test_statistics.py
113.22
KB
-rw-r--r--
2025-06-04 09:23
test_strftime.py
7.54
KB
-rw-r--r--
2025-06-04 09:23
test_string.py
19.8
KB
-rw-r--r--
2025-06-04 09:23
test_string_literals.py
10.2
KB
-rw-r--r--
2025-06-04 09:23
test_stringprep.py
3.04
KB
-rw-r--r--
2025-06-04 09:23
test_strptime.py
34.42
KB
-rw-r--r--
2025-06-04 09:23
test_strtod.py
20.06
KB
-rw-r--r--
2025-06-04 09:23
test_struct.py
36.19
KB
-rw-r--r--
2025-06-04 09:23
test_structseq.py
4.42
KB
-rw-r--r--
2025-06-04 09:23
test_subclassinit.py
8.12
KB
-rw-r--r--
2025-06-04 09:23
test_subprocess.py
156.33
KB
-rw-r--r--
2025-06-04 09:23
test_sunau.py
5.98
KB
-rw-r--r--
2025-06-04 09:23
test_sundry.py
2.1
KB
-rw-r--r--
2025-06-04 09:23
test_super.py
9.6
KB
-rw-r--r--
2025-06-04 09:23
test_support.py
25.33
KB
-rw-r--r--
2025-06-04 09:23
test_symtable.py
9.36
KB
-rw-r--r--
2025-06-04 09:23
test_syntax.py
52.33
KB
-rw-r--r--
2025-06-04 09:23
test_sys.py
58.56
KB
-rw-r--r--
2025-06-04 09:23
test_sys_setprofile.py
13.19
KB
-rw-r--r--
2025-06-04 09:23
test_sys_settrace.py
62.72
KB
-rw-r--r--
2025-06-04 09:23
test_sysconfig.py
18.92
KB
-rw-r--r--
2025-06-04 09:23
test_syslog.py
2.71
KB
-rw-r--r--
2025-06-04 09:23
test_tabnanny.py
13.44
KB
-rw-r--r--
2025-06-04 09:23
test_tarfile.py
152.06
KB
-rw-r--r--
2025-06-04 09:23
test_tcl.py
31.54
KB
-rw-r--r--
2025-06-04 09:23
test_telnetlib.py
12.74
KB
-rw-r--r--
2025-06-04 09:23
test_tempfile.py
65.97
KB
-rw-r--r--
2025-06-04 09:23
test_textwrap.py
41.89
KB
-rw-r--r--
2025-06-04 09:23
test_thread.py
8.54
KB
-rw-r--r--
2025-06-04 09:23
test_threadedtempfile.py
1.87
KB
-rw-r--r--
2025-06-04 09:23
test_threading.py
59.46
KB
-rw-r--r--
2025-06-04 09:23
test_threading_local.py
6.66
KB
-rw-r--r--
2025-06-04 09:23
test_threadsignals.py
10.11
KB
-rw-r--r--
2025-06-04 09:23
test_time.py
39.93
KB
-rw-r--r--
2025-06-04 09:23
test_timeit.py
15.2
KB
-rw-r--r--
2025-06-04 09:23
test_timeout.py
11
KB
-rw-r--r--
2025-06-04 09:23
test_tix.py
1.05
KB
-rw-r--r--
2025-06-04 09:23
test_tk.py
546
B
-rw-r--r--
2025-06-04 09:23
test_tokenize.py
64.51
KB
-rw-r--r--
2025-06-04 09:23
test_trace.py
20.4
KB
-rw-r--r--
2025-06-04 09:23
test_traceback.py
54.55
KB
-rw-r--r--
2025-06-04 09:23
test_tracemalloc.py
39.17
KB
-rw-r--r--
2025-06-04 09:23
test_ttk_guionly.py
986
B
-rw-r--r--
2025-06-04 09:23
test_ttk_textonly.py
16.69
KB
-rw-r--r--
2025-06-04 09:23
test_tuple.py
18.85
KB
-rw-r--r--
2025-06-04 09:23
test_turtle.py
12.75
KB
-rw-r--r--
2025-06-04 09:23
test_type_annotations.py
3.7
KB
-rw-r--r--
2025-06-04 09:23
test_type_comments.py
10.54
KB
-rw-r--r--
2025-06-04 09:23
test_typechecks.py
2.55
KB
-rw-r--r--
2025-06-04 09:23
test_types.py
75.67
KB
-rw-r--r--
2025-06-04 09:23
test_typing.py
179.66
KB
-rw-r--r--
2025-06-04 09:23
test_ucn.py
9.52
KB
-rw-r--r--
2025-06-04 09:23
test_unary.py
1.63
KB
-rw-r--r--
2025-06-04 09:23
test_unicode.py
120.59
KB
-rw-r--r--
2025-06-04 09:23
test_unicode_file.py
5.71
KB
-rw-r--r--
2025-06-04 09:23
test_unicode_file_functions.py
6.74
KB
-rw-r--r--
2025-06-04 09:23
test_unicode_identifiers.py
984
B
-rw-r--r--
2025-06-04 09:23
test_unicodedata.py
16.21
KB
-rw-r--r--
2025-06-04 09:23
test_unittest.py
226
B
-rw-r--r--
2025-06-04 09:23
test_univnewlines.py
3.88
KB
-rw-r--r--
2025-06-04 09:23
test_unpack.py
3.01
KB
-rw-r--r--
2025-06-04 09:23
test_unpack_ex.py
9.91
KB
-rw-r--r--
2025-06-04 09:23
test_unparse.py
18.59
KB
-rw-r--r--
2025-06-04 09:23
test_urllib.py
70.08
KB
-rw-r--r--
2025-06-04 09:23
test_urllib2.py
78.97
KB
-rw-r--r--
2025-06-04 09:23
test_urllib2_localnet.py
25.5
KB
-rw-r--r--
2025-06-04 09:23
test_urllib2net.py
14.07
KB
-rw-r--r--
2025-06-04 09:23
test_urllib_response.py
1.89
KB
-rw-r--r--
2025-06-04 09:23
test_urllibnet.py
9.32
KB
-rw-r--r--
2025-06-04 09:23
test_urlparse.py
67.31
KB
-rw-r--r--
2025-06-04 09:23
test_userdict.py
7.56
KB
-rw-r--r--
2025-06-04 09:23
test_userlist.py
1.97
KB
-rw-r--r--
2025-06-04 09:23
test_userstring.py
2.4
KB
-rw-r--r--
2025-06-04 09:23
test_utf8_mode.py
10.29
KB
-rw-r--r--
2025-06-04 09:23
test_utf8source.py
1.15
KB
-rw-r--r--
2025-06-04 09:23
test_uu.py
8.92
KB
-rw-r--r--
2025-06-04 09:23
test_uuid.py
40
KB
-rwxr-xr-x
2025-06-04 09:23
test_venv.py
22.63
KB
-rw-r--r--
2025-06-04 09:23
test_wait3.py
1.81
KB
-rw-r--r--
2025-06-04 09:23
test_wait4.py
1.16
KB
-rw-r--r--
2025-06-04 09:23
test_wave.py
6.5
KB
-rw-r--r--
2025-06-04 09:23
test_weakref.py
73.74
KB
-rw-r--r--
2025-06-04 09:23
test_weakset.py
15.42
KB
-rw-r--r--
2025-06-04 09:23
test_webbrowser.py
10.6
KB
-rw-r--r--
2025-06-04 09:23
test_winconsoleio.py
6.57
KB
-rw-r--r--
2025-06-04 09:23
test_winreg.py
22.2
KB
-rw-r--r--
2025-06-04 09:23
test_winsound.py
4.61
KB
-rw-r--r--
2025-06-04 09:23
test_with.py
25.99
KB
-rw-r--r--
2025-06-04 09:23
test_wsgiref.py
30.2
KB
-rw-r--r--
2025-06-04 09:23
test_xdrlib.py
2.17
KB
-rw-r--r--
2025-06-04 09:23
test_xml_dom_minicompat.py
4.18
KB
-rw-r--r--
2025-06-04 09:23
test_xml_etree.py
160.6
KB
-rw-r--r--
2025-06-04 09:23
test_xml_etree_c.py
8.48
KB
-rw-r--r--
2025-06-04 09:23
test_xmlrpc.py
57.66
KB
-rw-r--r--
2025-06-04 09:23
test_xmlrpc_net.py
954
B
-rw-r--r--
2025-06-04 09:23
test_xxlimited.py
2.13
KB
-rw-r--r--
2025-06-04 09:23
test_xxtestfuzz.py
690
B
-rw-r--r--
2025-06-04 09:23
test_yield_from.py
30.09
KB
-rw-r--r--
2025-06-04 09:23
test_zipapp.py
15.92
KB
-rw-r--r--
2025-06-04 09:23
test_zipfile.py
131.16
KB
-rw-r--r--
2025-06-04 09:23
test_zipfile64.py
5.86
KB
-rw-r--r--
2025-06-04 09:23
test_zipimport.py
33.56
KB
-rw-r--r--
2025-06-04 09:23
test_zipimport_support.py
10.46
KB
-rw-r--r--
2025-06-04 09:23
test_zlib.py
34.31
KB
-rw-r--r--
2025-06-04 09:23
testcodec.py
1.02
KB
-rw-r--r--
2025-06-04 09:23
testtar.tar
425
KB
-rw-r--r--
2025-06-04 09:23
testtar.tar.xz
172
B
-rw-r--r--
2025-06-04 09:23
tf_inherit_check.py
714
B
-rw-r--r--
2025-06-04 09:23
time_hashlib.py
2.87
KB
-rw-r--r--
2025-06-04 09:23
tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt
443
B
-rw-r--r--
2025-06-04 09:23
tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt
302
B
-rw-r--r--
2025-06-04 09:23
tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt
421
B
-rw-r--r--
2025-06-04 09:23
tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt
326
B
-rw-r--r--
2025-06-04 09:23
tokenize_tests.txt
2.65
KB
-rw-r--r--
2025-06-04 09:23
win_console_handler.py
1.38
KB
-rw-r--r--
2025-06-04 09:23
xmltests.py
499
B
-rw-r--r--
2025-06-04 09:23
zip_cp437_header.zip
270
B
-rw-r--r--
2025-06-04 09:23
zipdir.zip
374
B
-rw-r--r--
2025-06-04 09:23
Save
Rename
# Tests invocation of the interpreter with various command line arguments # Most tests are executed with environment variables ignored # See test_cmd_line_script.py for testing of script execution import os import subprocess import sys import tempfile import textwrap import unittest from test import support from test.support import os_helper from test.support.script_helper import ( spawn_python, kill_python, assert_python_ok, assert_python_failure, interpreter_requires_environment ) # Debug build? Py_DEBUG = hasattr(sys, "gettotalrefcount") # XXX (ncoghlan): Move to script_helper and make consistent with run_python def _kill_python_and_exit_code(p): data = kill_python(p) returncode = p.wait() return data, returncode class CmdLineTest(unittest.TestCase): def test_directories(self): assert_python_failure('.') assert_python_failure('< .') def verify_valid_flag(self, cmd_line): rc, out, err = assert_python_ok(*cmd_line) self.assertTrue(out == b'' or out.endswith(b'\n')) self.assertNotIn(b'Traceback', out) self.assertNotIn(b'Traceback', err) def test_optimize(self): self.verify_valid_flag('-O') self.verify_valid_flag('-OO') def test_site_flag(self): self.verify_valid_flag('-S') def test_usage(self): rc, out, err = assert_python_ok('-h') lines = out.splitlines() self.assertIn(b'usage', lines[0]) # The first line contains the program name, # but the rest should be ASCII-only b''.join(lines[1:]).decode('ascii') def test_version(self): version = ('Python %d.%d' % sys.version_info[:2]).encode("ascii") for switch in '-V', '--version', '-VV': rc, out, err = assert_python_ok(switch) self.assertFalse(err.startswith(version)) self.assertTrue(out.startswith(version)) def test_verbose(self): # -v causes imports to write to stderr. If the write to # stderr itself causes an import to happen (for the output # codec), a recursion loop can occur. rc, out, err = assert_python_ok('-v') self.assertNotIn(b'stack overflow', err) rc, out, err = assert_python_ok('-vv') self.assertNotIn(b'stack overflow', err) @unittest.skipIf(interpreter_requires_environment(), 'Cannot run -E tests when PYTHON env vars are required.') def test_xoptions(self): def get_xoptions(*args): # use subprocess module directly because test.support.script_helper adds # "-X faulthandler" to the command line args = (sys.executable, '-E') + args args += ('-c', 'import sys; print(sys._xoptions)') out = subprocess.check_output(args) opts = eval(out.splitlines()[0]) return opts opts = get_xoptions() self.assertEqual(opts, {}) opts = get_xoptions('-Xa', '-Xb=c,d=e') self.assertEqual(opts, {'a': True, 'b': 'c,d=e'}) def test_showrefcount(self): def run_python(*args): # this is similar to assert_python_ok but doesn't strip # the refcount from stderr. It can be replaced once # assert_python_ok stops doing that. cmd = [sys.executable] cmd.extend(args) PIPE = subprocess.PIPE p = subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE) out, err = p.communicate() p.stdout.close() p.stderr.close() rc = p.returncode self.assertEqual(rc, 0) return rc, out, err code = 'import sys; print(sys._xoptions)' # normally the refcount is hidden rc, out, err = run_python('-c', code) self.assertEqual(out.rstrip(), b'{}') self.assertEqual(err, b'') # "-X showrefcount" shows the refcount, but only in debug builds rc, out, err = run_python('-X', 'showrefcount', '-c', code) self.assertEqual(out.rstrip(), b"{'showrefcount': True}") if Py_DEBUG: self.assertRegex(err, br'^\[\d+ refs, \d+ blocks\]') else: self.assertEqual(err, b'') def test_run_module(self): # Test expected operation of the '-m' switch # Switch needs an argument assert_python_failure('-m') # Check we get an error for a nonexistent module assert_python_failure('-m', 'fnord43520xyz') # Check the runpy module also gives an error for # a nonexistent module assert_python_failure('-m', 'runpy', 'fnord43520xyz') # All good if module is located and run successfully assert_python_ok('-m', 'timeit', '-n', '1') def test_run_module_bug1764407(self): # -m and -i need to play well together # Runs the timeit module and checks the __main__ # namespace has been populated appropriately p = spawn_python('-i', '-m', 'timeit', '-n', '1') p.stdin.write(b'Timer\n') p.stdin.write(b'exit()\n') data = kill_python(p) self.assertTrue(data.find(b'1 loop') != -1) self.assertTrue(data.find(b'__main__.Timer') != -1) def test_relativedir_bug46421(self): # Test `python -m unittest` with a relative directory beginning with ./ # Note: We have to switch to the project's top module's directory, as per # the python unittest wiki. We will switch back when we are done. defaultwd = os.getcwd() projectlibpath = os.path.dirname(__file__).removesuffix("test") with os_helper.change_cwd(projectlibpath): # Testing with and without ./ assert_python_ok('-m', 'unittest', "test/test_longexp.py") assert_python_ok('-m', 'unittest', "./test/test_longexp.py") def test_run_code(self): # Test expected operation of the '-c' switch # Switch needs an argument assert_python_failure('-c') # Check we get an error for an uncaught exception assert_python_failure('-c', 'raise Exception') # All good if execution is successful assert_python_ok('-c', 'pass') @unittest.skipUnless(os_helper.FS_NONASCII, 'need os_helper.FS_NONASCII') def test_non_ascii(self): # Test handling of non-ascii data command = ("assert(ord(%r) == %s)" % (os_helper.FS_NONASCII, ord(os_helper.FS_NONASCII))) assert_python_ok('-c', command) @unittest.skipUnless(os_helper.FS_NONASCII, 'need os_helper.FS_NONASCII') def test_coding(self): # bpo-32381: the -c command ignores the coding cookie ch = os_helper.FS_NONASCII cmd = f"# coding: latin1\nprint(ascii('{ch}'))" res = assert_python_ok('-c', cmd) self.assertEqual(res.out.rstrip(), ascii(ch).encode('ascii')) # On Windows, pass bytes to subprocess doesn't test how Python decodes the # command line, but how subprocess does decode bytes to unicode. Python # doesn't decode the command line because Windows provides directly the # arguments as unicode (using wmain() instead of main()). @unittest.skipIf(sys.platform == 'win32', 'Windows has a native unicode API') def test_undecodable_code(self): undecodable = b"\xff" env = os.environ.copy() # Use C locale to get ascii for the locale encoding env['LC_ALL'] = 'C' env['PYTHONCOERCECLOCALE'] = '0' code = ( b'import locale; ' b'print(ascii("' + undecodable + b'"), ' b'locale.getpreferredencoding())') p = subprocess.Popen( [sys.executable, "-c", code], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=env) stdout, stderr = p.communicate() if p.returncode == 1: # _Py_char2wchar() decoded b'\xff' as '\udcff' (b'\xff' is not # decodable from ASCII) and run_command() failed on # PyUnicode_AsUTF8String(). This is the expected behaviour on # Linux. pattern = b"Unable to decode the command from the command line:" elif p.returncode == 0: # _Py_char2wchar() decoded b'\xff' as '\xff' even if the locale is # C and the locale encoding is ASCII. It occurs on FreeBSD, Solaris # and Mac OS X. pattern = b"'\\xff' " # The output is followed by the encoding name, an alias to ASCII. # Examples: "US-ASCII" or "646" (ISO 646, on Solaris). else: raise AssertionError("Unknown exit code: %s, output=%a" % (p.returncode, stdout)) if not stdout.startswith(pattern): raise AssertionError("%a doesn't start with %a" % (stdout, pattern)) @unittest.skipIf(sys.platform == 'win32', 'Windows has a native unicode API') def test_invalid_utf8_arg(self): # bpo-35883: Py_DecodeLocale() must escape b'\xfd\xbf\xbf\xbb\xba\xba' # byte sequence with surrogateescape rather than decoding it as the # U+7fffbeba character which is outside the [U+0000; U+10ffff] range of # Python Unicode characters. # # Test with default config, in the C locale, in the Python UTF-8 Mode. code = 'import sys, os; s=os.fsencode(sys.argv[1]); print(ascii(s))' base_cmd = [sys.executable, '-c', code] def run_default(arg): cmd = [sys.executable, '-c', code, arg] return subprocess.run(cmd, stdout=subprocess.PIPE, text=True) def run_c_locale(arg): cmd = [sys.executable, '-c', code, arg] env = dict(os.environ) env['LC_ALL'] = 'C' return subprocess.run(cmd, stdout=subprocess.PIPE, text=True, env=env) def run_utf8_mode(arg): cmd = [sys.executable, '-X', 'utf8', '-c', code, arg] return subprocess.run(cmd, stdout=subprocess.PIPE, text=True) valid_utf8 = 'e:\xe9, euro:\u20ac, non-bmp:\U0010ffff'.encode('utf-8') # invalid UTF-8 byte sequences with a valid UTF-8 sequence # in the middle. invalid_utf8 = ( b'\xff' # invalid byte b'\xc3\xff' # invalid byte sequence b'\xc3\xa9' # valid utf-8: U+00E9 character b'\xed\xa0\x80' # lone surrogate character (invalid) b'\xfd\xbf\xbf\xbb\xba\xba' # character outside [U+0000; U+10ffff] ) test_args = [valid_utf8, invalid_utf8] for run_cmd in (run_default, run_c_locale, run_utf8_mode): with self.subTest(run_cmd=run_cmd): for arg in test_args: proc = run_cmd(arg) self.assertEqual(proc.stdout.rstrip(), ascii(arg)) @unittest.skipUnless((sys.platform == 'darwin' or support.is_android), 'test specific to Mac OS X and Android') def test_osx_android_utf8(self): text = 'e:\xe9, euro:\u20ac, non-bmp:\U0010ffff'.encode('utf-8') code = "import sys; print(ascii(sys.argv[1]))" decoded = text.decode('utf-8', 'surrogateescape') expected = ascii(decoded).encode('ascii') + b'\n' env = os.environ.copy() # C locale gives ASCII locale encoding, but Python uses UTF-8 # to parse the command line arguments on Mac OS X and Android. env['LC_ALL'] = 'C' p = subprocess.Popen( (sys.executable, "-c", code, text), stdout=subprocess.PIPE, env=env) stdout, stderr = p.communicate() self.assertEqual(stdout, expected) self.assertEqual(p.returncode, 0) def test_non_interactive_output_buffering(self): code = textwrap.dedent(""" import sys out = sys.stdout print(out.isatty(), out.write_through, out.line_buffering) err = sys.stderr print(err.isatty(), err.write_through, err.line_buffering) """) args = [sys.executable, '-c', code] proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True) self.assertEqual(proc.stdout, 'False False False\n' 'False False True\n') def test_unbuffered_output(self): # Test expected operation of the '-u' switch for stream in ('stdout', 'stderr'): # Binary is unbuffered code = ("import os, sys; sys.%s.buffer.write(b'x'); os._exit(0)" % stream) rc, out, err = assert_python_ok('-u', '-c', code) data = err if stream == 'stderr' else out self.assertEqual(data, b'x', "binary %s not unbuffered" % stream) # Text is unbuffered code = ("import os, sys; sys.%s.write('x'); os._exit(0)" % stream) rc, out, err = assert_python_ok('-u', '-c', code) data = err if stream == 'stderr' else out self.assertEqual(data, b'x', "text %s not unbuffered" % stream) def test_unbuffered_input(self): # sys.stdin still works with '-u' code = ("import sys; sys.stdout.write(sys.stdin.read(1))") p = spawn_python('-u', '-c', code) p.stdin.write(b'x') p.stdin.flush() data, rc = _kill_python_and_exit_code(p) self.assertEqual(rc, 0) self.assertTrue(data.startswith(b'x'), data) def test_large_PYTHONPATH(self): path1 = "ABCDE" * 100 path2 = "FGHIJ" * 100 path = path1 + os.pathsep + path2 code = """if 1: import sys path = ":".join(sys.path) path = path.encode("ascii", "backslashreplace") sys.stdout.buffer.write(path)""" rc, out, err = assert_python_ok('-S', '-c', code, PYTHONPATH=path) self.assertIn(path1.encode('ascii'), out) self.assertIn(path2.encode('ascii'), out) def test_empty_PYTHONPATH_issue16309(self): # On Posix, it is documented that setting PATH to the # empty string is equivalent to not setting PATH at all, # which is an exception to the rule that in a string like # "/bin::/usr/bin" the empty string in the middle gets # interpreted as '.' code = """if 1: import sys path = ":".join(sys.path) path = path.encode("ascii", "backslashreplace") sys.stdout.buffer.write(path)""" rc1, out1, err1 = assert_python_ok('-c', code, PYTHONPATH="") rc2, out2, err2 = assert_python_ok('-c', code, __isolated=False) # regarding to Posix specification, outputs should be equal # for empty and unset PYTHONPATH self.assertEqual(out1, out2) def test_displayhook_unencodable(self): for encoding in ('ascii', 'latin-1', 'utf-8'): env = os.environ.copy() env['PYTHONIOENCODING'] = encoding p = subprocess.Popen( [sys.executable, '-i'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=env) # non-ascii, surrogate, non-BMP printable, non-BMP unprintable text = "a=\xe9 b=\uDC80 c=\U00010000 d=\U0010FFFF" p.stdin.write(ascii(text).encode('ascii') + b"\n") p.stdin.write(b'exit()\n') data = kill_python(p) escaped = repr(text).encode(encoding, 'backslashreplace') self.assertIn(escaped, data) def check_input(self, code, expected): with tempfile.NamedTemporaryFile("wb+") as stdin: sep = os.linesep.encode('ASCII') stdin.write(sep.join((b'abc', b'def'))) stdin.flush() stdin.seek(0) with subprocess.Popen( (sys.executable, "-c", code), stdin=stdin, stdout=subprocess.PIPE) as proc: stdout, stderr = proc.communicate() self.assertEqual(stdout.rstrip(), expected) def test_stdin_readline(self): # Issue #11272: check that sys.stdin.readline() replaces '\r\n' by '\n' # on Windows (sys.stdin is opened in binary mode) self.check_input( "import sys; print(repr(sys.stdin.readline()))", b"'abc\\n'") def test_builtin_input(self): # Issue #11272: check that input() strips newlines ('\n' or '\r\n') self.check_input( "print(repr(input()))", b"'abc'") def test_output_newline(self): # Issue 13119 Newline for print() should be \r\n on Windows. code = """if 1: import sys print(1) print(2) print(3, file=sys.stderr) print(4, file=sys.stderr)""" rc, out, err = assert_python_ok('-c', code) if sys.platform == 'win32': self.assertEqual(b'1\r\n2\r\n', out) self.assertEqual(b'3\r\n4\r\n', err) else: self.assertEqual(b'1\n2\n', out) self.assertEqual(b'3\n4\n', err) def test_unmached_quote(self): # Issue #10206: python program starting with unmatched quote # spewed spaces to stdout rc, out, err = assert_python_failure('-c', "'") self.assertRegex(err.decode('ascii', 'ignore'), 'SyntaxError') self.assertEqual(b'', out) def test_stdout_flush_at_shutdown(self): # Issue #5319: if stdout.flush() fails at shutdown, an error should # be printed out. code = """if 1: import os, sys, test.support test.support.SuppressCrashReport().__enter__() sys.stdout.write('x') os.close(sys.stdout.fileno())""" rc, out, err = assert_python_failure('-c', code) self.assertEqual(b'', out) self.assertEqual(120, rc) self.assertRegex(err.decode('ascii', 'ignore'), 'Exception ignored in.*\nOSError: .*') def test_closed_stdout(self): # Issue #13444: if stdout has been explicitly closed, we should # not attempt to flush it at shutdown. code = "import sys; sys.stdout.close()" rc, out, err = assert_python_ok('-c', code) self.assertEqual(b'', err) # Issue #7111: Python should work without standard streams @unittest.skipIf(os.name != 'posix', "test needs POSIX semantics") @unittest.skipIf(sys.platform == "vxworks", "test needs preexec support in subprocess.Popen") def _test_no_stdio(self, streams): code = """if 1: import os, sys for i, s in enumerate({streams}): if getattr(sys, s) is not None: os._exit(i + 1) os._exit(42)""".format(streams=streams) def preexec(): if 'stdin' in streams: os.close(0) if 'stdout' in streams: os.close(1) if 'stderr' in streams: os.close(2) p = subprocess.Popen( [sys.executable, "-E", "-c", code], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, preexec_fn=preexec) out, err = p.communicate() self.assertEqual(err, b'') self.assertEqual(p.returncode, 42) def test_no_stdin(self): self._test_no_stdio(['stdin']) def test_no_stdout(self): self._test_no_stdio(['stdout']) def test_no_stderr(self): self._test_no_stdio(['stderr']) def test_no_std_streams(self): self._test_no_stdio(['stdin', 'stdout', 'stderr']) def test_hash_randomization(self): # Verify that -R enables hash randomization: self.verify_valid_flag('-R') hashes = [] if os.environ.get('PYTHONHASHSEED', 'random') != 'random': env = dict(os.environ) # copy # We need to test that it is enabled by default without # the environment variable enabling it for us. del env['PYTHONHASHSEED'] env['__cleanenv'] = '1' # consumed by assert_python_ok() else: env = {} for i in range(3): code = 'print(hash("spam"))' rc, out, err = assert_python_ok('-c', code, **env) self.assertEqual(rc, 0) hashes.append(out) hashes = sorted(set(hashes)) # uniq # Rare chance of failure due to 3 random seeds honestly being equal. self.assertGreater(len(hashes), 1, msg='3 runs produced an identical random hash ' ' for "spam": {}'.format(hashes)) # Verify that sys.flags contains hash_randomization code = 'import sys; print("random is", sys.flags.hash_randomization)' rc, out, err = assert_python_ok('-c', code, PYTHONHASHSEED='') self.assertIn(b'random is 1', out) rc, out, err = assert_python_ok('-c', code, PYTHONHASHSEED='random') self.assertIn(b'random is 1', out) rc, out, err = assert_python_ok('-c', code, PYTHONHASHSEED='0') self.assertIn(b'random is 0', out) rc, out, err = assert_python_ok('-R', '-c', code, PYTHONHASHSEED='0') self.assertIn(b'random is 1', out) def test_del___main__(self): # Issue #15001: PyRun_SimpleFileExFlags() did crash because it kept a # borrowed reference to the dict of __main__ module and later modify # the dict whereas the module was destroyed filename = os_helper.TESTFN self.addCleanup(os_helper.unlink, filename) with open(filename, "w", encoding="utf-8") as script: print("import sys", file=script) print("del sys.modules['__main__']", file=script) assert_python_ok(filename) def test_unknown_options(self): rc, out, err = assert_python_failure('-E', '-z') self.assertIn(b'Unknown option: -z', err) self.assertEqual(err.splitlines().count(b'Unknown option: -z'), 1) self.assertEqual(b'', out) # Add "without='-E'" to prevent _assert_python to append -E # to env_vars and change the output of stderr rc, out, err = assert_python_failure('-z', without='-E') self.assertIn(b'Unknown option: -z', err) self.assertEqual(err.splitlines().count(b'Unknown option: -z'), 1) self.assertEqual(b'', out) rc, out, err = assert_python_failure('-a', '-z', without='-E') self.assertIn(b'Unknown option: -a', err) # only the first unknown option is reported self.assertNotIn(b'Unknown option: -z', err) self.assertEqual(err.splitlines().count(b'Unknown option: -a'), 1) self.assertEqual(b'', out) @unittest.skipIf(interpreter_requires_environment(), 'Cannot run -I tests when PYTHON env vars are required.') def test_isolatedmode(self): self.verify_valid_flag('-I') self.verify_valid_flag('-IEs') rc, out, err = assert_python_ok('-I', '-c', 'from sys import flags as f; ' 'print(f.no_user_site, f.ignore_environment, f.isolated)', # dummyvar to prevent extraneous -E dummyvar="") self.assertEqual(out.strip(), b'1 1 1') with os_helper.temp_cwd() as tmpdir: fake = os.path.join(tmpdir, "uuid.py") main = os.path.join(tmpdir, "main.py") with open(fake, "w", encoding="utf-8") as f: f.write("raise RuntimeError('isolated mode test')\n") with open(main, "w", encoding="utf-8") as f: f.write("import uuid\n") f.write("print('ok')\n") self.assertRaises(subprocess.CalledProcessError, subprocess.check_output, [sys.executable, main], cwd=tmpdir, stderr=subprocess.DEVNULL) out = subprocess.check_output([sys.executable, "-I", main], cwd=tmpdir) self.assertEqual(out.strip(), b"ok") def test_sys_flags_set(self): # Issue 31845: a startup refactoring broke reading flags from env vars for value, expected in (("", 0), ("1", 1), ("text", 1), ("2", 2)): env_vars = dict( PYTHONDEBUG=value, PYTHONOPTIMIZE=value, PYTHONDONTWRITEBYTECODE=value, PYTHONVERBOSE=value, ) dont_write_bytecode = int(bool(value)) code = ( "import sys; " "sys.stderr.write(str(sys.flags)); " f"""sys.exit(not ( sys.flags.debug == sys.flags.optimize == sys.flags.verbose == {expected} and sys.flags.dont_write_bytecode == {dont_write_bytecode} ))""" ) with self.subTest(envar_value=value): assert_python_ok('-c', code, **env_vars) def test_set_pycache_prefix(self): # sys.pycache_prefix can be set from either -X pycache_prefix or # PYTHONPYCACHEPREFIX env var, with the former taking precedence. NO_VALUE = object() # `-X pycache_prefix` with no `=PATH` cases = [ # (PYTHONPYCACHEPREFIX, -X pycache_prefix, sys.pycache_prefix) (None, None, None), ('foo', None, 'foo'), (None, 'bar', 'bar'), ('foo', 'bar', 'bar'), ('foo', '', None), ('foo', NO_VALUE, None), ] for envval, opt, expected in cases: exp_clause = "is None" if expected is None else f'== "{expected}"' code = f"import sys; sys.exit(not sys.pycache_prefix {exp_clause})" args = ['-c', code] env = {} if envval is None else {'PYTHONPYCACHEPREFIX': envval} if opt is NO_VALUE: args[:0] = ['-X', 'pycache_prefix'] elif opt is not None: args[:0] = ['-X', f'pycache_prefix={opt}'] with self.subTest(envval=envval, opt=opt): with os_helper.temp_cwd(): assert_python_ok(*args, **env) def run_xdev(self, *args, check_exitcode=True, xdev=True): env = dict(os.environ) env.pop('PYTHONWARNINGS', None) env.pop('PYTHONDEVMODE', None) env.pop('PYTHONMALLOC', None) if xdev: args = (sys.executable, '-X', 'dev', *args) else: args = (sys.executable, *args) proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, env=env) if check_exitcode: self.assertEqual(proc.returncode, 0, proc) return proc.stdout.rstrip() def test_xdev(self): # sys.flags.dev_mode code = "import sys; print(sys.flags.dev_mode)" out = self.run_xdev("-c", code, xdev=False) self.assertEqual(out, "False") out = self.run_xdev("-c", code) self.assertEqual(out, "True") # Warnings code = ("import warnings; " "print(' '.join('%s::%s' % (f[0], f[2].__name__) " "for f in warnings.filters))") if Py_DEBUG: expected_filters = "default::Warning" else: expected_filters = ("default::Warning " "default::DeprecationWarning " "ignore::DeprecationWarning " "ignore::PendingDeprecationWarning " "ignore::ImportWarning " "ignore::ResourceWarning") out = self.run_xdev("-c", code) self.assertEqual(out, expected_filters) out = self.run_xdev("-b", "-c", code) self.assertEqual(out, f"default::BytesWarning {expected_filters}") out = self.run_xdev("-bb", "-c", code) self.assertEqual(out, f"error::BytesWarning {expected_filters}") out = self.run_xdev("-Werror", "-c", code) self.assertEqual(out, f"error::Warning {expected_filters}") # Memory allocator debug hooks try: import _testcapi except ImportError: pass else: code = "import _testcapi; print(_testcapi.pymem_getallocatorsname())" with support.SuppressCrashReport(): out = self.run_xdev("-c", code, check_exitcode=False) if support.with_pymalloc(): alloc_name = "pymalloc_debug" else: alloc_name = "malloc_debug" self.assertEqual(out, alloc_name) # Faulthandler try: import faulthandler except ImportError: pass else: code = "import faulthandler; print(faulthandler.is_enabled())" out = self.run_xdev("-c", code) self.assertEqual(out, "True") def check_warnings_filters(self, cmdline_option, envvar, use_pywarning=False): if use_pywarning: code = ("import sys; from test.support.import_helper import " "import_fresh_module; " "warnings = import_fresh_module('warnings', blocked=['_warnings']); ") else: code = "import sys, warnings; " code += ("print(' '.join('%s::%s' % (f[0], f[2].__name__) " "for f in warnings.filters))") args = (sys.executable, '-W', cmdline_option, '-bb', '-c', code) env = dict(os.environ) env.pop('PYTHONDEVMODE', None) env["PYTHONWARNINGS"] = envvar proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, env=env) self.assertEqual(proc.returncode, 0, proc) return proc.stdout.rstrip() def test_warnings_filter_precedence(self): expected_filters = ("error::BytesWarning " "once::UserWarning " "always::UserWarning") if not Py_DEBUG: expected_filters += (" " "default::DeprecationWarning " "ignore::DeprecationWarning " "ignore::PendingDeprecationWarning " "ignore::ImportWarning " "ignore::ResourceWarning") out = self.check_warnings_filters("once::UserWarning", "always::UserWarning") self.assertEqual(out, expected_filters) out = self.check_warnings_filters("once::UserWarning", "always::UserWarning", use_pywarning=True) self.assertEqual(out, expected_filters) def check_pythonmalloc(self, env_var, name): code = 'import _testcapi; print(_testcapi.pymem_getallocatorsname())' env = dict(os.environ) env.pop('PYTHONDEVMODE', None) if env_var is not None: env['PYTHONMALLOC'] = env_var else: env.pop('PYTHONMALLOC', None) args = (sys.executable, '-c', code) proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, env=env) self.assertEqual(proc.stdout.rstrip(), name) self.assertEqual(proc.returncode, 0) def test_pythonmalloc(self): # Test the PYTHONMALLOC environment variable pymalloc = support.with_pymalloc() if pymalloc: default_name = 'pymalloc_debug' if Py_DEBUG else 'pymalloc' default_name_debug = 'pymalloc_debug' else: default_name = 'malloc_debug' if Py_DEBUG else 'malloc' default_name_debug = 'malloc_debug' tests = [ (None, default_name), ('debug', default_name_debug), ('malloc', 'malloc'), ('malloc_debug', 'malloc_debug'), ] if pymalloc: tests.extend(( ('pymalloc', 'pymalloc'), ('pymalloc_debug', 'pymalloc_debug'), )) for env_var, name in tests: with self.subTest(env_var=env_var, name=name): self.check_pythonmalloc(env_var, name) def test_pythondevmode_env(self): # Test the PYTHONDEVMODE environment variable code = "import sys; print(sys.flags.dev_mode)" env = dict(os.environ) env.pop('PYTHONDEVMODE', None) args = (sys.executable, '-c', code) proc = subprocess.run(args, stdout=subprocess.PIPE, universal_newlines=True, env=env) self.assertEqual(proc.stdout.rstrip(), 'False') self.assertEqual(proc.returncode, 0, proc) env['PYTHONDEVMODE'] = '1' proc = subprocess.run(args, stdout=subprocess.PIPE, universal_newlines=True, env=env) self.assertEqual(proc.stdout.rstrip(), 'True') self.assertEqual(proc.returncode, 0, proc) @unittest.skipUnless(sys.platform == 'win32', 'bpo-32457 only applies on Windows') def test_argv0_normalization(self): args = sys.executable, '-c', 'print(0)' prefix, exe = os.path.split(sys.executable) executable = prefix + '\\.\\.\\.\\' + exe proc = subprocess.run(args, stdout=subprocess.PIPE, executable=executable) self.assertEqual(proc.returncode, 0, proc) self.assertEqual(proc.stdout.strip(), b'0') def test_parsing_error(self): args = [sys.executable, '-I', '--unknown-option'] proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) err_msg = "unknown option --unknown-option\nusage: " self.assertTrue(proc.stderr.startswith(err_msg), proc.stderr) self.assertNotEqual(proc.returncode, 0) def test_int_max_str_digits(self): code = "import sys; print(sys.flags.int_max_str_digits, sys.get_int_max_str_digits())" assert_python_failure('-X', 'int_max_str_digits', '-c', code) assert_python_failure('-X', 'int_max_str_digits=foo', '-c', code) assert_python_failure('-X', 'int_max_str_digits=100', '-c', code) assert_python_failure('-X', 'int_max_str_digits', '-c', code, PYTHONINTMAXSTRDIGITS='4000') assert_python_failure('-c', code, PYTHONINTMAXSTRDIGITS='foo') assert_python_failure('-c', code, PYTHONINTMAXSTRDIGITS='100') def res2int(res): out = res.out.strip().decode("utf-8") return tuple(int(i) for i in out.split()) res = assert_python_ok('-c', code) self.assertEqual(res2int(res), (-1, sys.get_int_max_str_digits())) res = assert_python_ok('-X', 'int_max_str_digits=0', '-c', code) self.assertEqual(res2int(res), (0, 0)) res = assert_python_ok('-X', 'int_max_str_digits=4000', '-c', code) self.assertEqual(res2int(res), (4000, 4000)) res = assert_python_ok('-X', 'int_max_str_digits=100000', '-c', code) self.assertEqual(res2int(res), (100000, 100000)) res = assert_python_ok('-c', code, PYTHONINTMAXSTRDIGITS='0') self.assertEqual(res2int(res), (0, 0)) res = assert_python_ok('-c', code, PYTHONINTMAXSTRDIGITS='4000') self.assertEqual(res2int(res), (4000, 4000)) res = assert_python_ok( '-X', 'int_max_str_digits=6000', '-c', code, PYTHONINTMAXSTRDIGITS='4000' ) self.assertEqual(res2int(res), (6000, 6000)) @unittest.skipIf(interpreter_requires_environment(), 'Cannot run -I tests when PYTHON env vars are required.') class IgnoreEnvironmentTest(unittest.TestCase): def run_ignoring_vars(self, predicate, **env_vars): # Runs a subprocess with -E set, even though we're passing # specific environment variables # Logical inversion to match predicate check to a zero return # code indicating success code = "import sys; sys.stderr.write(str(sys.flags)); sys.exit(not ({}))".format(predicate) return assert_python_ok('-E', '-c', code, **env_vars) def test_ignore_PYTHONPATH(self): path = "should_be_ignored" self.run_ignoring_vars("'{}' not in sys.path".format(path), PYTHONPATH=path) def test_ignore_PYTHONHASHSEED(self): self.run_ignoring_vars("sys.flags.hash_randomization == 1", PYTHONHASHSEED="0") def test_sys_flags_not_set(self): # Issue 31845: a startup refactoring broke reading flags from env vars expected_outcome = """ (sys.flags.debug == sys.flags.optimize == sys.flags.dont_write_bytecode == sys.flags.verbose == 0) """ self.run_ignoring_vars( expected_outcome, PYTHONDEBUG="1", PYTHONOPTIMIZE="1", PYTHONDONTWRITEBYTECODE="1", PYTHONVERBOSE="1", ) class SyntaxErrorTests(unittest.TestCase): def check_string(self, code): proc = subprocess.run([sys.executable, "-"], input=code, stdout=subprocess.PIPE, stderr=subprocess.PIPE) self.assertNotEqual(proc.returncode, 0) self.assertNotEqual(proc.stderr, None) self.assertIn(b"\nSyntaxError", proc.stderr) def test_tokenizer_error_with_stdin(self): self.check_string(b"(1+2+3") def test_decoding_error_at_the_end_of_the_line(self): self.check_string(br"'\u1f'") def tearDownModule(): support.reap_children() if __name__ == "__main__": unittest.main()