Linux server1.dn-server.com 4.18.0-553.89.1.lve.el8.x86_64 #1 SMP Wed Dec 10 13:58:50 UTC 2025 x86_64
LiteSpeed
Server IP : 195.201.204.189 & Your IP : 216.73.216.198
Domains :
Cant Read [ /etc/named.conf ]
User : beriska1
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
python36 /
lib64 /
python3.6 /
test /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
audiodata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
capath
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
cjkencodings
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
data
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
decimaltestdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
dtracedata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
eintrdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
encoded_modules
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
imghdrdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
libregrtest
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
sndhdrdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
subprocessdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
support
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_asyncio
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_email
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_import
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_importlib
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_json
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_tools
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_warnings
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
tracedmodules
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
xmltestdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
Sine-1000Hz-300ms.aif
60.25
KB
-rw-r--r--
2021-09-04 08:19
__init__.py
47
B
-rw-r--r--
2024-04-17 20:49
__main__.py
41
B
-rw-r--r--
2024-04-17 20:49
_test_multiprocessing.py
140.44
KB
-rw-r--r--
2024-04-17 20:49
allsans.pem
4.92
KB
-rw-r--r--
2021-09-04 08:19
ann_module.py
953
B
-rw-r--r--
2024-04-17 20:49
ann_module2.py
519
B
-rw-r--r--
2024-04-17 20:49
ann_module3.py
448
B
-rw-r--r--
2024-04-17 20:49
audiotests.py
12.1
KB
-rw-r--r--
2024-04-17 20:49
autotest.py
209
B
-rw-r--r--
2024-04-17 20:49
bad_coding.py
24
B
-rw-r--r--
2024-04-17 20:49
bad_coding2.py
30
B
-rw-r--r--
2024-04-17 20:49
badcert.pem
1.88
KB
-rw-r--r--
2021-09-04 08:19
badkey.pem
2.11
KB
-rw-r--r--
2021-09-04 08:19
badsyntax_3131.py
32
B
-rw-r--r--
2024-04-17 20:49
badsyntax_future10.py
95
B
-rw-r--r--
2024-04-17 20:49
badsyntax_future3.py
172
B
-rw-r--r--
2024-04-17 20:49
badsyntax_future4.py
153
B
-rw-r--r--
2024-04-17 20:49
badsyntax_future5.py
184
B
-rw-r--r--
2024-04-17 20:49
badsyntax_future6.py
161
B
-rw-r--r--
2024-04-17 20:49
badsyntax_future7.py
196
B
-rw-r--r--
2024-04-17 20:49
badsyntax_future8.py
122
B
-rw-r--r--
2024-04-17 20:49
badsyntax_future9.py
142
B
-rw-r--r--
2024-04-17 20:49
badsyntax_pep3120.py
14
B
-rw-r--r--
2024-04-17 20:49
bisect.py
4.85
KB
-rwxr-xr-x
2024-04-17 20:49
bytecode_helper.py
1.56
KB
-rw-r--r--
2024-04-17 20:49
cfgparser.1
67
B
-rw-r--r--
2021-09-04 08:19
cfgparser.2
19.02
KB
-rw-r--r--
2021-09-04 08:19
cfgparser.3
1.55
KB
-rw-r--r--
2021-09-04 08:19
cmath_testcases.txt
141.05
KB
-rw-r--r--
2021-09-04 08:19
coding20731.py
18
B
-rw-r--r--
2024-04-17 20:49
curses_tests.py
1.22
KB
-rwxr-xr-x
2024-04-17 20:49
datetimetester.py
196.88
KB
-rw-r--r--
2024-04-17 20:49
dis_module.py
76
B
-rw-r--r--
2024-04-17 20:49
doctest_aliases.py
240
B
-rw-r--r--
2024-04-17 20:49
double_const.py
1.18
KB
-rw-r--r--
2024-04-17 20:49
empty.vbs
70
B
-rw-r--r--
2021-09-04 08:19
exception_hierarchy.txt
1.78
KB
-rw-r--r--
2021-09-04 08:19
ffdh3072.pem
2.16
KB
-rw-r--r--
2021-09-04 08:19
final_a.py
411
B
-rw-r--r--
2024-04-17 20:49
final_b.py
411
B
-rw-r--r--
2024-04-17 20:49
floating_points.txt
15.92
KB
-rw-r--r--
2021-09-04 08:19
fork_wait.py
2.56
KB
-rw-r--r--
2024-04-17 20:49
formatfloat_testcases.txt
7.45
KB
-rw-r--r--
2021-09-04 08:19
future_test1.py
229
B
-rw-r--r--
2024-04-17 20:49
future_test2.py
149
B
-rw-r--r--
2024-04-17 20:49
gdb_sample.py
153
B
-rw-r--r--
2024-04-17 20:49
ieee754.txt
3.21
KB
-rw-r--r--
2021-09-04 08:19
imp_dummy.py
63
B
-rw-r--r--
2024-04-17 20:49
inspect_fodder.py
1.24
KB
-rw-r--r--
2024-04-17 20:49
inspect_fodder2.py
1.77
KB
-rw-r--r--
2024-04-17 20:49
keycert.passwd.pem
4
KB
-rw-r--r--
2021-09-04 08:19
keycert.pem
3.96
KB
-rw-r--r--
2021-09-04 08:19
keycert2.pem
3.97
KB
-rw-r--r--
2021-09-04 08:19
keycert3.pem
9.22
KB
-rw-r--r--
2021-09-04 08:19
keycert4.pem
9.23
KB
-rw-r--r--
2021-09-04 08:19
list_tests.py
18.38
KB
-rw-r--r--
2024-04-17 20:49
lock_tests.py
28.2
KB
-rw-r--r--
2024-04-17 20:49
mailcap.txt
1.24
KB
-rw-r--r--
2021-09-04 08:19
make_ssl_certs.py
8.52
KB
-rw-r--r--
2024-04-17 20:49
mapping_tests.py
21.75
KB
-rw-r--r--
2024-04-17 20:49
math_testcases.txt
23.19
KB
-rw-r--r--
2021-09-04 08:19
memory_watchdog.py
859
B
-rw-r--r--
2024-04-17 20:49
mime.types
47.37
KB
-rw-r--r--
2021-09-04 08:19
mock_socket.py
3.53
KB
-rw-r--r--
2024-04-17 20:49
mod_generics_cache.py
1.13
KB
-rw-r--r--
2024-04-17 20:49
mp_fork_bomb.py
448
B
-rw-r--r--
2024-04-17 20:49
mp_preload.py
351
B
-rw-r--r--
2024-04-17 20:49
multibytecodec_support.py
14.03
KB
-rw-r--r--
2024-04-17 20:49
nokia.pem
1.88
KB
-rw-r--r--
2021-09-04 08:19
nullbytecert.pem
5.31
KB
-rw-r--r--
2021-09-04 08:19
nullcert.pem
0
B
-rw-r--r--
2021-09-04 08:19
outstanding_bugs.py
370
B
-rw-r--r--
2024-04-17 20:49
pickletester.py
101.05
KB
-rw-r--r--
2024-04-17 20:49
profilee.py
2.97
KB
-rw-r--r--
2024-04-17 20:49
pstats.pck
65.05
KB
-rw-r--r--
2021-09-04 08:19
pycacert.pem
5.52
KB
-rw-r--r--
2021-09-04 08:19
pycakey.pem
2.43
KB
-rw-r--r--
2021-09-04 08:19
pyclbr_input.py
648
B
-rw-r--r--
2024-04-17 20:49
pydoc_mod.py
713
B
-rw-r--r--
2024-04-17 20:49
pydocfodder.py
6.18
KB
-rw-r--r--
2024-04-17 20:49
pystone.py
7.56
KB
-rwxr-xr-x
2024-04-17 20:49
pythoninfo.py
16.1
KB
-rw-r--r--
2024-04-17 20:49
randv2_32.pck
7.34
KB
-rw-r--r--
2021-09-04 08:19
randv2_64.pck
7.19
KB
-rw-r--r--
2021-09-04 08:19
randv3.pck
7.82
KB
-rw-r--r--
2021-09-04 08:19
re_tests.py
31.06
KB
-rwxr-xr-x
2024-04-17 20:49
recursion.tar
516
B
-rw-r--r--
2021-09-04 08:19
regrtest.py
1.34
KB
-rwxr-xr-x
2024-04-17 20:49
relimport.py
27
B
-rw-r--r--
2024-04-17 20:49
reperf.py
538
B
-rw-r--r--
2024-04-17 20:49
revocation.crl
800
B
-rw-r--r--
2021-09-04 08:19
sample_doctest.py
1.02
KB
-rw-r--r--
2024-04-17 20:49
sample_doctest_no_docstrings.py
227
B
-rw-r--r--
2024-04-17 20:49
sample_doctest_no_doctests.py
269
B
-rw-r--r--
2024-04-17 20:49
selfsigned_pythontestdotnet.pem
2.08
KB
-rw-r--r--
2021-09-04 08:19
seq_tests.py
14.06
KB
-rw-r--r--
2024-04-17 20:49
sgml_input.html
8.1
KB
-rw-r--r--
2021-09-04 08:19
signalinterproctester.py
2.7
KB
-rw-r--r--
2024-04-17 20:49
sortperf.py
4.69
KB
-rw-r--r--
2024-04-17 20:49
ssl_cert.pem
1.53
KB
-rw-r--r--
2021-09-04 08:19
ssl_key.passwd.pem
2.47
KB
-rw-r--r--
2021-09-04 08:19
ssl_key.pem
2.43
KB
-rw-r--r--
2021-09-04 08:19
ssl_servers.py
7.08
KB
-rw-r--r--
2024-04-17 20:49
ssltests.py
1.03
KB
-rw-r--r--
2024-04-17 20:49
string_tests.py
63.91
KB
-rw-r--r--
2024-04-17 20:49
talos-2019-0758.pem
1.3
KB
-rw-r--r--
2021-09-04 08:19
test___all__.py
3.81
KB
-rw-r--r--
2024-04-17 20:49
test___future__.py
2.36
KB
-rw-r--r--
2024-04-17 20:49
test__locale.py
7.71
KB
-rw-r--r--
2024-04-17 20:49
test__opcode.py
850
B
-rw-r--r--
2024-04-17 20:49
test__osx_support.py
11.41
KB
-rw-r--r--
2024-04-17 20:49
test_abc.py
13.76
KB
-rw-r--r--
2024-04-17 20:49
test_abstract_numbers.py
1.49
KB
-rw-r--r--
2024-04-17 20:49
test_aifc.py
16.37
KB
-rw-r--r--
2024-04-17 20:49
test_argparse.py
162.61
KB
-rw-r--r--
2024-04-17 20:49
test_array.py
47.01
KB
-rw-r--r--
2024-04-17 20:49
test_asdl_parser.py
3.92
KB
-rw-r--r--
2024-04-17 20:49
test_ast.py
48.95
KB
-rw-r--r--
2024-04-17 20:49
test_asyncgen.py
29.32
KB
-rw-r--r--
2024-04-17 20:49
test_asynchat.py
10.09
KB
-rw-r--r--
2024-04-17 20:49
test_asyncore.py
26.28
KB
-rw-r--r--
2024-04-17 20:49
test_atexit.py
5.24
KB
-rw-r--r--
2024-04-17 20:49
test_audioop.py
28.24
KB
-rw-r--r--
2024-04-17 20:49
test_augassign.py
7.68
KB
-rw-r--r--
2024-04-17 20:49
test_base64.py
30.13
KB
-rw-r--r--
2024-04-17 20:49
test_baseexception.py
6.86
KB
-rw-r--r--
2024-04-17 20:49
test_bdb.py
41.21
KB
-rw-r--r--
2024-04-17 20:49
test_bigaddrspace.py
2.92
KB
-rw-r--r--
2024-04-17 20:49
test_bigmem.py
44.17
KB
-rw-r--r--
2024-04-17 20:49
test_binascii.py
14.94
KB
-rw-r--r--
2024-04-17 20:49
test_binhex.py
1.46
KB
-rw-r--r--
2024-04-17 20:49
test_binop.py
14.16
KB
-rw-r--r--
2024-04-17 20:49
test_bisect.py
13.63
KB
-rw-r--r--
2024-04-17 20:49
test_bool.py
12.4
KB
-rw-r--r--
2024-04-17 20:49
test_buffer.py
158.85
KB
-rw-r--r--
2024-04-17 20:49
test_bufio.py
2.54
KB
-rw-r--r--
2024-04-17 20:49
test_builtin.py
65.51
KB
-rw-r--r--
2024-04-17 20:49
test_bytes.py
68.2
KB
-rw-r--r--
2024-04-17 20:49
test_bz2.py
37.11
KB
-rw-r--r--
2024-04-17 20:49
test_calendar.py
43.99
KB
-rw-r--r--
2024-04-17 20:49
test_call.py
9.09
KB
-rw-r--r--
2024-04-17 20:49
test_capi.py
23.57
KB
-rw-r--r--
2024-04-17 20:49
test_cgi.py
21.85
KB
-rw-r--r--
2024-04-17 20:49
test_cgitb.py
2.5
KB
-rw-r--r--
2024-04-17 20:49
test_charmapcodec.py
1.68
KB
-rw-r--r--
2024-04-17 20:49
test_class.py
15.08
KB
-rw-r--r--
2024-04-17 20:49
test_cmath.py
24.28
KB
-rw-r--r--
2024-04-17 20:49
test_cmd.py
6.11
KB
-rw-r--r--
2024-04-17 20:49
test_cmd_line.py
20.71
KB
-rw-r--r--
2024-04-17 20:49
test_cmd_line_script.py
28.16
KB
-rw-r--r--
2024-04-17 20:49
test_code.py
10.4
KB
-rw-r--r--
2024-04-17 20:49
test_code_module.py
5.51
KB
-rw-r--r--
2024-04-17 20:49
test_codeccallbacks.py
42.8
KB
-rw-r--r--
2024-04-17 20:49
test_codecencodings_cn.py
3.86
KB
-rw-r--r--
2024-04-17 20:49
test_codecencodings_hk.py
701
B
-rw-r--r--
2024-04-17 20:49
test_codecencodings_iso2022.py
1.36
KB
-rw-r--r--
2024-04-17 20:49
test_codecencodings_jp.py
4.79
KB
-rw-r--r--
2024-04-17 20:49
test_codecencodings_kr.py
2.96
KB
-rw-r--r--
2024-04-17 20:49
test_codecencodings_tw.py
681
B
-rw-r--r--
2024-04-17 20:49
test_codecmaps_cn.py
746
B
-rw-r--r--
2024-04-17 20:49
test_codecmaps_hk.py
386
B
-rw-r--r--
2024-04-17 20:49
test_codecmaps_jp.py
1.7
KB
-rw-r--r--
2024-04-17 20:49
test_codecmaps_kr.py
1.17
KB
-rw-r--r--
2024-04-17 20:49
test_codecmaps_tw.py
705
B
-rw-r--r--
2024-04-17 20:49
test_codecs.py
125.37
KB
-rw-r--r--
2024-04-17 20:49
test_codeop.py
7.37
KB
-rw-r--r--
2024-04-17 20:49
test_collections.py
74.13
KB
-rw-r--r--
2024-04-17 20:49
test_colorsys.py
3.83
KB
-rw-r--r--
2024-04-17 20:49
test_compare.py
3.82
KB
-rw-r--r--
2024-04-17 20:49
test_compile.py
27.66
KB
-rw-r--r--
2024-04-17 20:49
test_compileall.py
22.84
KB
-rw-r--r--
2024-04-17 20:49
test_complex.py
29.63
KB
-rw-r--r--
2024-04-17 20:49
test_concurrent_futures.py
28.38
KB
-rw-r--r--
2024-04-17 20:49
test_configparser.py
83.01
KB
-rw-r--r--
2024-04-17 20:49
test_contains.py
3.49
KB
-rw-r--r--
2024-04-17 20:49
test_contextlib.py
30.75
KB
-rw-r--r--
2024-04-17 20:49
test_copy.py
25.79
KB
-rw-r--r--
2024-04-17 20:49
test_copyreg.py
4.39
KB
-rw-r--r--
2024-04-17 20:49
test_coroutines.py
57.83
KB
-rw-r--r--
2024-04-17 20:49
test_cprofile.py
5.72
KB
-rw-r--r--
2024-04-17 20:49
test_crashers.py
1.16
KB
-rw-r--r--
2024-04-17 20:49
test_crypt.py
1.5
KB
-rw-r--r--
2024-04-17 20:49
test_csv.py
47.06
KB
-rw-r--r--
2024-04-17 20:49
test_ctypes.py
184
B
-rw-r--r--
2024-04-17 20:49
test_curses.py
18.85
KB
-rw-r--r--
2024-04-17 20:49
test_datetime.py
2.15
KB
-rw-r--r--
2024-04-17 20:49
test_dbm.py
6.44
KB
-rw-r--r--
2024-04-17 20:49
test_dbm_dumb.py
10.17
KB
-rw-r--r--
2024-04-17 20:49
test_dbm_gnu.py
5.22
KB
-rw-r--r--
2024-04-17 20:49
test_dbm_ndbm.py
4.31
KB
-rw-r--r--
2024-04-17 20:49
test_decimal.py
206.51
KB
-rw-r--r--
2024-04-17 20:49
test_decorators.py
9.48
KB
-rw-r--r--
2024-04-17 20:49
test_defaultdict.py
5.89
KB
-rw-r--r--
2024-04-17 20:49
test_deque.py
33.86
KB
-rw-r--r--
2024-04-17 20:49
test_descr.py
182.6
KB
-rw-r--r--
2024-04-17 20:49
test_descrtut.py
11.53
KB
-rw-r--r--
2024-04-17 20:49
test_devpoll.py
4.51
KB
-rw-r--r--
2024-04-17 20:49
test_dict.py
38.3
KB
-rw-r--r--
2024-04-17 20:49
test_dict_version.py
5.87
KB
-rw-r--r--
2024-04-17 20:49
test_dictcomps.py
3.67
KB
-rw-r--r--
2024-04-17 20:49
test_dictviews.py
11.62
KB
-rw-r--r--
2024-04-17 20:49
test_difflib.py
19.36
KB
-rw-r--r--
2024-04-17 20:49
test_difflib_expect.html
100.85
KB
-rw-r--r--
2021-09-04 08:19
test_dis.py
43.37
KB
-rw-r--r--
2024-04-17 20:49
test_distutils.py
375
B
-rw-r--r--
2024-04-17 20:49
test_doctest.py
93.17
KB
-rw-r--r--
2024-04-17 20:49
test_doctest.txt
300
B
-rw-r--r--
2021-09-04 08:19
test_doctest2.py
2.3
KB
-rw-r--r--
2024-04-17 20:49
test_doctest2.txt
392
B
-rw-r--r--
2021-09-04 08:19
test_doctest3.txt
82
B
-rw-r--r--
2021-09-04 08:19
test_doctest4.txt
244
B
-rw-r--r--
2021-09-04 08:19
test_docxmlrpc.py
8.73
KB
-rw-r--r--
2024-04-17 20:49
test_dtrace.py
5.23
KB
-rw-r--r--
2024-04-17 20:49
test_dummy_thread.py
9.16
KB
-rw-r--r--
2024-04-17 20:49
test_dummy_threading.py
1.7
KB
-rw-r--r--
2024-04-17 20:49
test_dynamic.py
4.29
KB
-rw-r--r--
2024-04-17 20:49
test_dynamicclassattribute.py
9.57
KB
-rw-r--r--
2024-04-17 20:49
test_eintr.py
1.32
KB
-rw-r--r--
2024-04-17 20:49
test_ensurepip.py
9.69
KB
-rw-r--r--
2024-04-17 20:49
test_enum.py
92.62
KB
-rw-r--r--
2024-04-17 20:49
test_enumerate.py
7.9
KB
-rw-r--r--
2024-04-17 20:49
test_eof.py
803
B
-rw-r--r--
2024-04-17 20:49
test_epoll.py
8.99
KB
-rw-r--r--
2024-04-17 20:49
test_errno.py
1.04
KB
-rw-r--r--
2024-04-17 20:49
test_exception_hierarchy.py
7.23
KB
-rw-r--r--
2024-04-17 20:49
test_exception_variations.py
3.86
KB
-rw-r--r--
2024-04-17 20:49
test_exceptions.py
46.11
KB
-rw-r--r--
2024-04-17 20:49
test_extcall.py
12.09
KB
-rw-r--r--
2024-04-17 20:49
test_faulthandler.py
27.59
KB
-rw-r--r--
2024-04-17 20:49
test_fcntl.py
5.1
KB
-rw-r--r--
2024-04-17 20:49
test_file.py
10.61
KB
-rw-r--r--
2024-04-17 20:49
test_file_eintr.py
10.6
KB
-rw-r--r--
2024-04-17 20:49
test_filecmp.py
8.69
KB
-rw-r--r--
2024-04-17 20:49
test_fileinput.py
36.57
KB
-rw-r--r--
2024-04-17 20:49
test_fileio.py
19.19
KB
-rw-r--r--
2024-04-17 20:49
test_finalization.py
14.16
KB
-rw-r--r--
2024-04-17 20:49
test_float.py
62.89
KB
-rw-r--r--
2024-04-17 20:49
test_flufl.py
1.32
KB
-rw-r--r--
2024-04-17 20:49
test_fnmatch.py
4.69
KB
-rw-r--r--
2024-04-17 20:49
test_fork1.py
3.74
KB
-rw-r--r--
2024-04-17 20:49
test_format.py
22.84
KB
-rw-r--r--
2024-04-17 20:49
test_fractions.py
25.92
KB
-rw-r--r--
2024-04-17 20:49
test_frame.py
4.37
KB
-rw-r--r--
2024-04-17 20:49
test_fstring.py
40.23
KB
-rw-r--r--
2024-04-17 20:49
test_ftplib.py
39.63
KB
-rw-r--r--
2024-04-17 20:49
test_funcattrs.py
12.7
KB
-rw-r--r--
2024-04-17 20:49
test_functools.py
76.3
KB
-rw-r--r--
2024-04-17 20:49
test_future.py
3.74
KB
-rw-r--r--
2024-04-17 20:49
test_future3.py
490
B
-rw-r--r--
2024-04-17 20:49
test_future4.py
105
B
-rw-r--r--
2024-04-17 20:49
test_future5.py
510
B
-rw-r--r--
2024-04-17 20:49
test_gc.py
33.83
KB
-rw-r--r--
2024-04-17 20:49
test_gdb.py
39.84
KB
-rw-r--r--
2024-04-17 20:49
test_generator_stop.py
943
B
-rw-r--r--
2024-04-17 20:49
test_generators.py
59.2
KB
-rw-r--r--
2024-04-17 20:49
test_genericpath.py
20.54
KB
-rw-r--r--
2024-04-17 20:49
test_genexps.py
7.12
KB
-rw-r--r--
2024-04-17 20:49
test_getargs2.py
45.41
KB
-rw-r--r--
2024-04-17 20:49
test_getopt.py
6.75
KB
-rw-r--r--
2024-04-17 20:49
test_getpass.py
6.29
KB
-rw-r--r--
2024-04-17 20:49
test_gettext.py
32.96
KB
-rw-r--r--
2024-04-17 20:49
test_glob.py
12.39
KB
-rw-r--r--
2024-04-17 20:49
test_global.py
1.31
KB
-rw-r--r--
2024-04-17 20:49
test_grammar.py
46.85
KB
-rw-r--r--
2024-04-17 20:49
test_grp.py
3.54
KB
-rw-r--r--
2024-04-17 20:49
test_gzip.py
26.96
KB
-rw-r--r--
2024-04-17 20:49
test_hash.py
11.44
KB
-rw-r--r--
2024-04-17 20:49
test_hashlib.py
38.78
KB
-rw-r--r--
2024-04-17 20:49
test_heapq.py
15.66
KB
-rw-r--r--
2024-04-17 20:49
test_hmac.py
20.01
KB
-rw-r--r--
2024-04-17 20:49
test_html.py
4.23
KB
-rw-r--r--
2024-04-17 20:49
test_htmlparser.py
31.93
KB
-rw-r--r--
2024-04-17 20:49
test_http_cookiejar.py
75.15
KB
-rw-r--r--
2024-04-17 20:49
test_http_cookies.py
18.52
KB
-rw-r--r--
2024-04-17 20:49
test_httplib.py
74.01
KB
-rw-r--r--
2024-04-17 20:49
test_httpservers.py
40.06
KB
-rw-r--r--
2024-04-17 20:49
test_idle.py
941
B
-rw-r--r--
2024-04-17 20:49
test_imaplib.py
38.58
KB
-rw-r--r--
2024-04-17 20:49
test_imghdr.py
4.66
KB
-rw-r--r--
2024-04-17 20:49
test_imp.py
16.05
KB
-rw-r--r--
2024-04-17 20:49
test_index.py
8.37
KB
-rw-r--r--
2024-04-17 20:49
test_inspect.py
141.34
KB
-rw-r--r--
2024-04-17 20:49
test_int.py
19.21
KB
-rw-r--r--
2024-04-17 20:49
test_int_literal.py
6.89
KB
-rw-r--r--
2024-04-17 20:49
test_io.py
152.12
KB
-rw-r--r--
2024-04-17 20:49
test_ioctl.py
3.19
KB
-rw-r--r--
2024-04-17 20:49
test_ipaddress.py
87.04
KB
-rw-r--r--
2024-04-17 20:49
test_isinstance.py
9.77
KB
-rw-r--r--
2024-04-17 20:49
test_iter.py
31.51
KB
-rw-r--r--
2024-04-17 20:49
test_iterlen.py
7.1
KB
-rw-r--r--
2024-04-17 20:49
test_itertools.py
96.98
KB
-rw-r--r--
2024-04-17 20:49
test_keyword.py
5.7
KB
-rw-r--r--
2024-04-17 20:49
test_keywordonlyarg.py
7.05
KB
-rw-r--r--
2024-04-17 20:49
test_kqueue.py
8.81
KB
-rw-r--r--
2024-04-17 20:49
test_largefile.py
6.83
KB
-rw-r--r--
2024-04-17 20:49
test_lib2to3.py
101
B
-rw-r--r--
2024-04-17 20:49
test_linecache.py
7.79
KB
-rw-r--r--
2024-04-17 20:49
test_list.py
5.32
KB
-rw-r--r--
2024-04-17 20:49
test_listcomps.py
3.76
KB
-rw-r--r--
2024-04-17 20:49
test_locale.py
21.86
KB
-rw-r--r--
2024-04-17 20:49
test_logging.py
154.75
KB
-rw-r--r--
2024-04-17 20:49
test_long.py
51.75
KB
-rw-r--r--
2024-04-17 20:49
test_longexp.py
233
B
-rw-r--r--
2024-04-17 20:49
test_lzma.py
77.82
KB
-rw-r--r--
2024-04-17 20:49
test_macpath.py
6.03
KB
-rw-r--r--
2024-04-17 20:49
test_macurl2path.py
1.8
KB
-rw-r--r--
2024-04-17 20:49
test_mailbox.py
90.64
KB
-rw-r--r--
2024-04-17 20:49
test_mailcap.py
9.88
KB
-rw-r--r--
2024-04-17 20:49
test_marshal.py
19.47
KB
-rw-r--r--
2024-04-17 20:49
test_math.py
57.59
KB
-rw-r--r--
2024-04-17 20:49
test_memoryio.py
30.29
KB
-rw-r--r--
2024-04-17 20:49
test_memoryview.py
17.44
KB
-rw-r--r--
2024-04-17 20:49
test_metaclass.py
6.2
KB
-rw-r--r--
2024-04-17 20:49
test_mimetypes.py
4.19
KB
-rw-r--r--
2024-04-17 20:49
test_minidom.py
65.76
KB
-rw-r--r--
2024-04-17 20:49
test_mmap.py
27.76
KB
-rw-r--r--
2024-04-17 20:49
test_module.py
8.44
KB
-rw-r--r--
2024-04-17 20:49
test_modulefinder.py
9.05
KB
-rw-r--r--
2024-04-17 20:49
test_msilib.py
3.04
KB
-rw-r--r--
2024-04-17 20:49
test_multibytecodec.py
10.06
KB
-rw-r--r--
2024-04-17 20:49
test_multiprocessing_fork.py
477
B
-rw-r--r--
2024-04-17 20:49
test_multiprocessing_forkserver.py
392
B
-rw-r--r--
2024-04-17 20:49
test_multiprocessing_main_handling.py
11.37
KB
-rw-r--r--
2024-04-17 20:49
test_multiprocessing_spawn.py
277
B
-rw-r--r--
2024-04-17 20:49
test_netrc.py
4.63
KB
-rw-r--r--
2024-04-17 20:49
test_nis.py
1.13
KB
-rw-r--r--
2024-04-17 20:49
test_nntplib.py
61.72
KB
-rw-r--r--
2024-04-17 20:49
test_normalization.py
3.32
KB
-rw-r--r--
2024-04-17 20:49
test_ntpath.py
23.9
KB
-rw-r--r--
2024-04-17 20:49
test_numeric_tower.py
7.18
KB
-rw-r--r--
2024-04-17 20:49
test_opcodes.py
3.61
KB
-rw-r--r--
2024-04-17 20:49
test_openpty.py
600
B
-rw-r--r--
2024-04-17 20:49
test_operator.py
22.74
KB
-rw-r--r--
2024-04-17 20:49
test_optparse.py
61.02
KB
-rw-r--r--
2024-04-17 20:49
test_ordered_dict.py
28.94
KB
-rw-r--r--
2024-04-17 20:49
test_os.py
132.76
KB
-rw-r--r--
2024-04-17 20:49
test_ossaudiodev.py
7.05
KB
-rw-r--r--
2024-04-17 20:49
test_osx_env.py
1.3
KB
-rw-r--r--
2024-04-17 20:49
test_parser.py
32.38
KB
-rw-r--r--
2024-04-17 20:49
test_pathlib.py
88.34
KB
-rw-r--r--
2024-04-17 20:49
test_pdb.py
41.47
KB
-rw-r--r--
2024-04-17 20:49
test_peepholer.py
12.67
KB
-rw-r--r--
2024-04-17 20:49
test_pickle.py
18.58
KB
-rw-r--r--
2024-04-17 20:49
test_pickletools.py
4.12
KB
-rw-r--r--
2024-04-17 20:49
test_pipes.py
6.59
KB
-rw-r--r--
2024-04-17 20:49
test_pkg.py
9.59
KB
-rw-r--r--
2024-04-17 20:49
test_pkgimport.py
2.67
KB
-rw-r--r--
2024-04-17 20:49
test_pkgutil.py
17.27
KB
-rw-r--r--
2024-04-17 20:49
test_platform.py
16.66
KB
-rw-r--r--
2024-04-17 20:49
test_plistlib.py
37.17
KB
-rw-r--r--
2024-04-17 20:49
test_poll.py
7.35
KB
-rw-r--r--
2024-04-17 20:49
test_popen.py
1.98
KB
-rw-r--r--
2024-04-17 20:49
test_poplib.py
16.52
KB
-rw-r--r--
2024-04-17 20:49
test_posix.py
54.79
KB
-rw-r--r--
2024-04-17 20:49
test_posixpath.py
28.66
KB
-rw-r--r--
2024-04-17 20:49
test_pow.py
4.37
KB
-rw-r--r--
2024-04-17 20:49
test_pprint.py
43.49
KB
-rw-r--r--
2024-04-17 20:49
test_print.py
7.37
KB
-rw-r--r--
2024-04-17 20:49
test_profile.py
7.71
KB
-rw-r--r--
2024-04-17 20:49
test_property.py
8.77
KB
-rw-r--r--
2024-04-17 20:49
test_pstats.py
1.17
KB
-rw-r--r--
2024-04-17 20:49
test_pty.py
11.49
KB
-rw-r--r--
2024-04-17 20:49
test_pulldom.py
12.33
KB
-rw-r--r--
2024-04-17 20:49
test_pwd.py
4.53
KB
-rw-r--r--
2024-04-17 20:49
test_py_compile.py
5.23
KB
-rw-r--r--
2024-04-17 20:49
test_pyclbr.py
6.82
KB
-rw-r--r--
2024-04-17 20:49
test_pydoc.py
43.54
KB
-rw-r--r--
2024-04-17 20:49
test_pyexpat.py
26.52
KB
-rw-r--r--
2024-04-17 20:49
test_queue.py
12.87
KB
-rw-r--r--
2024-04-17 20:49
test_quopri.py
7.78
KB
-rw-r--r--
2024-04-17 20:49
test_raise.py
11.03
KB
-rw-r--r--
2024-04-17 20:49
test_random.py
40.08
KB
-rw-r--r--
2024-04-17 20:49
test_range.py
24.41
KB
-rw-r--r--
2024-04-17 20:49
test_re.py
96.54
KB
-rw-r--r--
2024-04-17 20:49
test_readline.py
12.26
KB
-rw-r--r--
2024-04-17 20:49
test_regrtest.py
39.44
KB
-rw-r--r--
2024-04-17 20:49
test_repl.py
2.25
KB
-rw-r--r--
2024-04-17 20:49
test_reprlib.py
15.12
KB
-rw-r--r--
2024-04-17 20:49
test_resource.py
6.84
KB
-rw-r--r--
2024-04-17 20:49
test_richcmp.py
11.91
KB
-rw-r--r--
2024-04-17 20:49
test_rlcompleter.py
6.3
KB
-rw-r--r--
2024-04-17 20:49
test_robotparser.py
10.09
KB
-rw-r--r--
2024-04-17 20:49
test_runpy.py
31.05
KB
-rw-r--r--
2024-04-17 20:49
test_sax.py
45.46
KB
-rw-r--r--
2024-04-17 20:49
test_sched.py
6.62
KB
-rw-r--r--
2024-04-17 20:49
test_scope.py
19.7
KB
-rw-r--r--
2024-04-17 20:49
test_script_helper.py
5.78
KB
-rw-r--r--
2024-04-17 20:49
test_secrets.py
4.28
KB
-rw-r--r--
2024-04-17 20:49
test_select.py
2.65
KB
-rw-r--r--
2024-04-17 20:49
test_selectors.py
16.66
KB
-rw-r--r--
2024-04-17 20:49
test_set.py
64.24
KB
-rw-r--r--
2024-04-17 20:49
test_setcomps.py
3.7
KB
-rw-r--r--
2024-04-17 20:49
test_shelve.py
6.24
KB
-rw-r--r--
2024-04-17 20:49
test_shlex.py
10.92
KB
-rw-r--r--
2024-04-17 20:49
test_shutil.py
75.45
KB
-rw-r--r--
2024-04-17 20:49
test_signal.py
37.51
KB
-rw-r--r--
2024-04-17 20:49
test_site.py
25.31
KB
-rw-r--r--
2024-04-17 20:49
test_slice.py
8.25
KB
-rw-r--r--
2024-04-17 20:49
test_smtpd.py
40.14
KB
-rw-r--r--
2024-04-17 20:49
test_smtplib.py
52.82
KB
-rw-r--r--
2024-04-17 20:49
test_smtpnet.py
2.7
KB
-rw-r--r--
2024-04-17 20:49
test_sndhdr.py
1.43
KB
-rw-r--r--
2024-04-17 20:49
test_socket.py
210.4
KB
-rw-r--r--
2024-04-17 20:49
test_socketserver.py
17.12
KB
-rw-r--r--
2024-04-17 20:49
test_sort.py
8.46
KB
-rw-r--r--
2024-04-17 20:49
test_source_encoding.py
7.88
KB
-rw-r--r--
2024-04-17 20:49
test_spwd.py
2.71
KB
-rw-r--r--
2024-04-17 20:49
test_sqlite.py
893
B
-rw-r--r--
2024-04-17 20:49
test_ssl.py
174.1
KB
-rw-r--r--
2024-04-17 20:49
test_startfile.py
1.17
KB
-rw-r--r--
2024-04-17 20:49
test_stat.py
8.09
KB
-rw-r--r--
2024-04-17 20:49
test_statistics.py
74.32
KB
-rw-r--r--
2024-04-17 20:49
test_strftime.py
7.54
KB
-rw-r--r--
2024-04-17 20:49
test_string.py
18.1
KB
-rw-r--r--
2024-04-17 20:49
test_string_literals.py
9.83
KB
-rw-r--r--
2024-04-17 20:49
test_stringprep.py
3.04
KB
-rw-r--r--
2024-04-17 20:49
test_strptime.py
31.57
KB
-rw-r--r--
2024-04-17 20:49
test_strtod.py
20.06
KB
-rw-r--r--
2024-04-17 20:49
test_struct.py
31.23
KB
-rw-r--r--
2024-04-17 20:49
test_structmembers.py
4.7
KB
-rw-r--r--
2024-04-17 20:49
test_structseq.py
3.87
KB
-rw-r--r--
2024-04-17 20:49
test_subclassinit.py
8.13
KB
-rw-r--r--
2024-04-17 20:49
test_subprocess.py
128.07
KB
-rw-r--r--
2024-04-17 20:49
test_sunau.py
4.52
KB
-rw-r--r--
2024-04-17 20:49
test_sundry.py
2.05
KB
-rw-r--r--
2024-04-17 20:49
test_super.py
10.66
KB
-rw-r--r--
2024-04-17 20:49
test_support.py
19.15
KB
-rw-r--r--
2024-04-17 20:49
test_symbol.py
1.84
KB
-rw-r--r--
2024-04-17 20:49
test_symtable.py
6.79
KB
-rw-r--r--
2024-04-17 20:49
test_syntax.py
18.57
KB
-rw-r--r--
2024-04-17 20:49
test_sys.py
47.59
KB
-rw-r--r--
2024-04-17 20:49
test_sys_setprofile.py
10.9
KB
-rw-r--r--
2024-04-17 20:49
test_sys_settrace.py
38.8
KB
-rw-r--r--
2024-04-17 20:49
test_sysconfig.py
18.44
KB
-rw-r--r--
2024-04-17 20:49
test_syslog.py
1.15
KB
-rw-r--r--
2024-04-17 20:49
test_tarfile.py
96.63
KB
-rw-r--r--
2024-04-17 20:49
test_tcl.py
28.94
KB
-rw-r--r--
2024-04-17 20:49
test_telnetlib.py
12.73
KB
-rw-r--r--
2024-04-17 20:49
test_tempfile.py
50.37
KB
-rw-r--r--
2024-04-17 20:49
test_textwrap.py
37.69
KB
-rw-r--r--
2024-04-17 20:49
test_thread.py
8.44
KB
-rw-r--r--
2024-04-17 20:49
test_threaded_import.py
8.58
KB
-rw-r--r--
2024-04-17 20:49
test_threadedtempfile.py
1.89
KB
-rw-r--r--
2024-04-17 20:49
test_threading.py
40.58
KB
-rw-r--r--
2024-04-17 20:49
test_threading_local.py
6.13
KB
-rw-r--r--
2024-04-17 20:49
test_threadsignals.py
10.08
KB
-rw-r--r--
2024-04-17 20:49
test_time.py
36.7
KB
-rw-r--r--
2024-04-17 20:49
test_timeit.py
14.42
KB
-rw-r--r--
2024-04-17 20:49
test_timeout.py
11.11
KB
-rw-r--r--
2024-04-17 20:49
test_tix.py
756
B
-rw-r--r--
2024-04-17 20:49
test_tk.py
362
B
-rw-r--r--
2024-04-17 20:49
test_tokenize.py
61.85
KB
-rw-r--r--
2024-04-17 20:49
test_trace.py
15.96
KB
-rw-r--r--
2024-04-17 20:49
test_traceback.py
43.48
KB
-rw-r--r--
2024-04-17 20:49
test_tracemalloc.py
35.4
KB
-rw-r--r--
2024-04-17 20:49
test_ttk_guionly.py
746
B
-rw-r--r--
2024-04-17 20:49
test_ttk_textonly.py
299
B
-rw-r--r--
2024-04-17 20:49
test_tuple.py
7.35
KB
-rw-r--r--
2024-04-17 20:49
test_turtle.py
12.36
KB
-rw-r--r--
2024-04-17 20:49
test_typechecks.py
2.55
KB
-rw-r--r--
2024-04-17 20:49
test_types.py
54.12
KB
-rw-r--r--
2024-04-17 20:49
test_typing.py
84.54
KB
-rw-r--r--
2024-04-17 20:49
test_ucn.py
9.35
KB
-rw-r--r--
2024-04-17 20:49
test_unary.py
1.63
KB
-rw-r--r--
2024-04-17 20:49
test_unicode.py
128.43
KB
-rw-r--r--
2024-04-17 20:49
test_unicode_file.py
5.73
KB
-rw-r--r--
2024-04-17 20:49
test_unicode_file_functions.py
6.84
KB
-rw-r--r--
2024-04-17 20:49
test_unicode_identifiers.py
902
B
-rw-r--r--
2024-04-17 20:49
test_unicodedata.py
12.6
KB
-rw-r--r--
2024-04-17 20:49
test_unittest.py
286
B
-rw-r--r--
2024-04-17 20:49
test_univnewlines.py
3.83
KB
-rw-r--r--
2024-04-17 20:49
test_unpack.py
3
KB
-rw-r--r--
2024-04-17 20:49
test_unpack_ex.py
8.72
KB
-rw-r--r--
2024-04-17 20:49
test_urllib.py
67.88
KB
-rw-r--r--
2024-04-17 20:49
test_urllib2.py
75.97
KB
-rw-r--r--
2024-04-17 20:49
test_urllib2_localnet.py
24.48
KB
-rw-r--r--
2024-04-17 20:49
test_urllib2net.py
12.41
KB
-rw-r--r--
2024-04-17 20:49
test_urllib_response.py
1.69
KB
-rw-r--r--
2024-04-17 20:49
test_urllibnet.py
8.83
KB
-rw-r--r--
2024-04-17 20:49
test_urlparse.py
60.52
KB
-rw-r--r--
2024-04-17 20:49
test_userdict.py
7.64
KB
-rw-r--r--
2024-04-17 20:49
test_userlist.py
1.81
KB
-rw-r--r--
2024-04-17 20:49
test_userstring.py
1.43
KB
-rw-r--r--
2024-04-17 20:49
test_utf8source.py
1.15
KB
-rw-r--r--
2024-04-17 20:49
test_uu.py
6.7
KB
-rw-r--r--
2024-04-17 20:49
test_uuid.py
23.15
KB
-rw-r--r--
2024-04-17 20:49
test_venv.py
17.78
KB
-rw-r--r--
2024-04-17 20:49
test_wait3.py
1.16
KB
-rw-r--r--
2024-04-17 20:49
test_wait4.py
1.15
KB
-rw-r--r--
2024-04-17 20:49
test_wave.py
4.09
KB
-rw-r--r--
2024-04-17 20:49
test_weakref.py
64.67
KB
-rw-r--r--
2024-04-17 20:49
test_weakset.py
14.95
KB
-rw-r--r--
2024-04-17 20:49
test_webbrowser.py
6.18
KB
-rw-r--r--
2024-04-17 20:49
test_winconsoleio.py
6.15
KB
-rw-r--r--
2024-04-17 20:49
test_winreg.py
21.2
KB
-rw-r--r--
2024-04-17 20:49
test_winsound.py
4.59
KB
-rw-r--r--
2024-04-17 20:49
test_with.py
25.84
KB
-rw-r--r--
2024-04-17 20:49
test_wsgiref.py
27.08
KB
-rw-r--r--
2024-04-17 20:49
test_xdrlib.py
2.17
KB
-rw-r--r--
2024-04-17 20:49
test_xml_dom_minicompat.py
4.18
KB
-rw-r--r--
2024-04-17 20:49
test_xml_etree.py
115.41
KB
-rw-r--r--
2024-04-17 20:49
test_xml_etree_c.py
6.7
KB
-rw-r--r--
2024-04-17 20:49
test_xmlrpc.py
53.99
KB
-rw-r--r--
2024-04-17 20:49
test_xmlrpc_net.py
1015
B
-rw-r--r--
2024-04-17 20:49
test_yield_from.py
30.01
KB
-rw-r--r--
2024-04-17 20:49
test_zipapp.py
13.74
KB
-rw-r--r--
2024-04-17 20:49
test_zipfile.py
88.89
KB
-rw-r--r--
2024-04-17 20:49
test_zipfile64.py
5.72
KB
-rw-r--r--
2024-04-17 20:49
test_zipimport.py
28.43
KB
-rw-r--r--
2024-04-17 20:49
test_zipimport_support.py
10.46
KB
-rw-r--r--
2024-04-17 20:49
test_zlib.py
34.03
KB
-rw-r--r--
2024-04-17 20:49
testcodec.py
1.02
KB
-rw-r--r--
2024-04-17 20:49
testtar.tar
425
KB
-rw-r--r--
2021-09-04 08:19
tf_inherit_check.py
714
B
-rw-r--r--
2024-04-17 20:49
threaded_import_hangers.py
1.45
KB
-rw-r--r--
2024-04-17 20:49
time_hashlib.py
2.83
KB
-rw-r--r--
2024-04-17 20:49
tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt
444
B
-rw-r--r--
2021-09-04 08:19
tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt
303
B
-rw-r--r--
2021-09-04 08:19
tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt
421
B
-rw-r--r--
2021-09-04 08:19
tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt
327
B
-rw-r--r--
2021-09-04 08:19
tokenize_tests.txt
2.65
KB
-rw-r--r--
2021-09-04 08:19
win_console_handler.py
1.38
KB
-rw-r--r--
2024-04-17 20:49
xmltests.py
499
B
-rw-r--r--
2024-04-17 20:49
zip_cp437_header.zip
270
B
-rw-r--r--
2021-09-04 08:19
zipdir.zip
374
B
-rw-r--r--
2021-09-04 08:19
Save
Rename
# A test suite for pdb; not very comprehensive at the moment. import doctest import os import pdb import sys import types import unittest import subprocess import textwrap from test import support # This little helper class is essential for testing pdb under doctest. from test.test_doctest import _FakeInput class PdbTestInput(object): """Context manager that makes testing Pdb in doctests easier.""" def __init__(self, input): self.input = input def __enter__(self): self.real_stdin = sys.stdin sys.stdin = _FakeInput(self.input) self.orig_trace = sys.gettrace() if hasattr(sys, 'gettrace') else None def __exit__(self, *exc): sys.stdin = self.real_stdin if self.orig_trace: sys.settrace(self.orig_trace) def test_pdb_displayhook(): """This tests the custom displayhook for pdb. >>> def test_function(foo, bar): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... pass >>> with PdbTestInput([ ... 'foo', ... 'bar', ... 'for i in range(5): print(i)', ... 'continue', ... ]): ... test_function(1, None) > <doctest test.test_pdb.test_pdb_displayhook[0]>(3)test_function() -> pass (Pdb) foo 1 (Pdb) bar (Pdb) for i in range(5): print(i) 0 1 2 3 4 (Pdb) continue """ def test_pdb_basic_commands(): """Test the basic commands of pdb. >>> def test_function_2(foo, bar='default'): ... print(foo) ... for i in range(5): ... print(i) ... print(bar) ... for i in range(10): ... never_executed ... print('after for') ... print('...') ... return foo.upper() >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... ret = test_function_2('baz') ... print(ret) >>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE ... 'step', # entering the function call ... 'args', # display function args ... 'list', # list function source ... 'bt', # display backtrace ... 'up', # step up to test_function() ... 'down', # step down to test_function_2() again ... 'next', # stepping to print(foo) ... 'next', # stepping to the for loop ... 'step', # stepping into the for loop ... 'until', # continuing until out of the for loop ... 'next', # executing the print(bar) ... 'jump 8', # jump over second for loop ... 'return', # return out of function ... 'retval', # display return value ... 'continue', ... ]): ... test_function() > <doctest test.test_pdb.test_pdb_basic_commands[1]>(3)test_function() -> ret = test_function_2('baz') (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_basic_commands[0]>(1)test_function_2() -> def test_function_2(foo, bar='default'): (Pdb) args foo = 'baz' bar = 'default' (Pdb) list 1 -> def test_function_2(foo, bar='default'): 2 print(foo) 3 for i in range(5): 4 print(i) 5 print(bar) 6 for i in range(10): 7 never_executed 8 print('after for') 9 print('...') 10 return foo.upper() [EOF] (Pdb) bt ... <doctest test.test_pdb.test_pdb_basic_commands[2]>(18)<module>() -> test_function() <doctest test.test_pdb.test_pdb_basic_commands[1]>(3)test_function() -> ret = test_function_2('baz') > <doctest test.test_pdb.test_pdb_basic_commands[0]>(1)test_function_2() -> def test_function_2(foo, bar='default'): (Pdb) up > <doctest test.test_pdb.test_pdb_basic_commands[1]>(3)test_function() -> ret = test_function_2('baz') (Pdb) down > <doctest test.test_pdb.test_pdb_basic_commands[0]>(1)test_function_2() -> def test_function_2(foo, bar='default'): (Pdb) next > <doctest test.test_pdb.test_pdb_basic_commands[0]>(2)test_function_2() -> print(foo) (Pdb) next baz > <doctest test.test_pdb.test_pdb_basic_commands[0]>(3)test_function_2() -> for i in range(5): (Pdb) step > <doctest test.test_pdb.test_pdb_basic_commands[0]>(4)test_function_2() -> print(i) (Pdb) until 0 1 2 3 4 > <doctest test.test_pdb.test_pdb_basic_commands[0]>(5)test_function_2() -> print(bar) (Pdb) next default > <doctest test.test_pdb.test_pdb_basic_commands[0]>(6)test_function_2() -> for i in range(10): (Pdb) jump 8 > <doctest test.test_pdb.test_pdb_basic_commands[0]>(8)test_function_2() -> print('after for') (Pdb) return after for ... --Return-- > <doctest test.test_pdb.test_pdb_basic_commands[0]>(10)test_function_2()->'BAZ' -> return foo.upper() (Pdb) retval 'BAZ' (Pdb) continue BAZ """ def test_pdb_breakpoint_commands(): """Test basic commands related to breakpoints. >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... print(1) ... print(2) ... print(3) ... print(4) First, need to clear bdb state that might be left over from previous tests. Otherwise, the new breakpoints might get assigned different numbers. >>> from bdb import Breakpoint >>> Breakpoint.next = 1 >>> Breakpoint.bplist = {} >>> Breakpoint.bpbynumber = [None] Now test the breakpoint commands. NORMALIZE_WHITESPACE is needed because the breakpoint list outputs a tab for the "stop only" and "ignore next" lines, which we don't want to put in here. >>> with PdbTestInput([ # doctest: +NORMALIZE_WHITESPACE ... 'break 3', ... 'disable 1', ... 'ignore 1 10', ... 'condition 1 1 < 2', ... 'break 4', ... 'break 4', ... 'break', ... 'clear 3', ... 'break', ... 'condition 1', ... 'enable 1', ... 'clear 1', ... 'commands 2', ... 'p "42"', ... 'print("42", 7*6)', # Issue 18764 (not about breakpoints) ... 'end', ... 'continue', # will stop at breakpoint 2 (line 4) ... 'clear', # clear all! ... 'y', ... 'tbreak 5', ... 'continue', # will stop at temporary breakpoint ... 'break', # make sure breakpoint is gone ... 'continue', ... ]): ... test_function() > <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>(3)test_function() -> print(1) (Pdb) break 3 Breakpoint 1 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3 (Pdb) disable 1 Disabled breakpoint 1 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3 (Pdb) ignore 1 10 Will ignore next 10 crossings of breakpoint 1. (Pdb) condition 1 1 < 2 New condition set for breakpoint 1. (Pdb) break 4 Breakpoint 2 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4 (Pdb) break 4 Breakpoint 3 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4 (Pdb) break Num Type Disp Enb Where 1 breakpoint keep no at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3 stop only if 1 < 2 ignore next 10 hits 2 breakpoint keep yes at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4 3 breakpoint keep yes at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4 (Pdb) clear 3 Deleted breakpoint 3 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4 (Pdb) break Num Type Disp Enb Where 1 breakpoint keep no at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3 stop only if 1 < 2 ignore next 10 hits 2 breakpoint keep yes at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4 (Pdb) condition 1 Breakpoint 1 is now unconditional. (Pdb) enable 1 Enabled breakpoint 1 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3 (Pdb) clear 1 Deleted breakpoint 1 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:3 (Pdb) commands 2 (com) p "42" (com) print("42", 7*6) (com) end (Pdb) continue 1 '42' 42 42 > <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>(4)test_function() -> print(2) (Pdb) clear Clear all breaks? y Deleted breakpoint 2 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:4 (Pdb) tbreak 5 Breakpoint 4 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:5 (Pdb) continue 2 Deleted breakpoint 4 at <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>:5 > <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>(5)test_function() -> print(3) (Pdb) break (Pdb) continue 3 4 """ def do_nothing(): pass def do_something(): print(42) def test_list_commands(): """Test the list and source commands of pdb. >>> def test_function_2(foo): ... import test.test_pdb ... test.test_pdb.do_nothing() ... 'some...' ... 'more...' ... 'code...' ... 'to...' ... 'make...' ... 'a...' ... 'long...' ... 'listing...' ... 'useful...' ... '...' ... '...' ... return foo >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... ret = test_function_2('baz') >>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE ... 'list', # list first function ... 'step', # step into second function ... 'list', # list second function ... 'list', # continue listing to EOF ... 'list 1,3', # list specific lines ... 'list x', # invalid argument ... 'next', # step to import ... 'next', # step over import ... 'step', # step into do_nothing ... 'longlist', # list all lines ... 'source do_something', # list all lines of function ... 'source fooxxx', # something that doesn't exit ... 'continue', ... ]): ... test_function() > <doctest test.test_pdb.test_list_commands[1]>(3)test_function() -> ret = test_function_2('baz') (Pdb) list 1 def test_function(): 2 import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() 3 -> ret = test_function_2('baz') [EOF] (Pdb) step --Call-- > <doctest test.test_pdb.test_list_commands[0]>(1)test_function_2() -> def test_function_2(foo): (Pdb) list 1 -> def test_function_2(foo): 2 import test.test_pdb 3 test.test_pdb.do_nothing() 4 'some...' 5 'more...' 6 'code...' 7 'to...' 8 'make...' 9 'a...' 10 'long...' 11 'listing...' (Pdb) list 12 'useful...' 13 '...' 14 '...' 15 return foo [EOF] (Pdb) list 1,3 1 -> def test_function_2(foo): 2 import test.test_pdb 3 test.test_pdb.do_nothing() (Pdb) list x *** ... (Pdb) next > <doctest test.test_pdb.test_list_commands[0]>(2)test_function_2() -> import test.test_pdb (Pdb) next > <doctest test.test_pdb.test_list_commands[0]>(3)test_function_2() -> test.test_pdb.do_nothing() (Pdb) step --Call-- > ...test_pdb.py(...)do_nothing() -> def do_nothing(): (Pdb) longlist ... -> def do_nothing(): ... pass (Pdb) source do_something ... def do_something(): ... print(42) (Pdb) source fooxxx *** ... (Pdb) continue """ def test_post_mortem(): """Test post mortem traceback debugging. >>> def test_function_2(): ... try: ... 1/0 ... finally: ... print('Exception!') >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... test_function_2() ... print('Not reached.') >>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE ... 'next', # step over exception-raising call ... 'bt', # get a backtrace ... 'list', # list code of test_function() ... 'down', # step into test_function_2() ... 'list', # list code of test_function_2() ... 'continue', ... ]): ... try: ... test_function() ... except ZeroDivisionError: ... print('Correctly reraised.') > <doctest test.test_pdb.test_post_mortem[1]>(3)test_function() -> test_function_2() (Pdb) next Exception! ZeroDivisionError: division by zero > <doctest test.test_pdb.test_post_mortem[1]>(3)test_function() -> test_function_2() (Pdb) bt ... <doctest test.test_pdb.test_post_mortem[2]>(10)<module>() -> test_function() > <doctest test.test_pdb.test_post_mortem[1]>(3)test_function() -> test_function_2() <doctest test.test_pdb.test_post_mortem[0]>(3)test_function_2() -> 1/0 (Pdb) list 1 def test_function(): 2 import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() 3 -> test_function_2() 4 print('Not reached.') [EOF] (Pdb) down > <doctest test.test_pdb.test_post_mortem[0]>(3)test_function_2() -> 1/0 (Pdb) list 1 def test_function_2(): 2 try: 3 >> 1/0 4 finally: 5 -> print('Exception!') [EOF] (Pdb) continue Correctly reraised. """ def test_pdb_skip_modules(): """This illustrates the simple case of module skipping. >>> def skip_module(): ... import string ... import pdb; pdb.Pdb(skip=['stri*'], nosigint=True, readrc=False).set_trace() ... string.capwords('FOO') >>> with PdbTestInput([ ... 'step', ... 'continue', ... ]): ... skip_module() > <doctest test.test_pdb.test_pdb_skip_modules[0]>(4)skip_module() -> string.capwords('FOO') (Pdb) step --Return-- > <doctest test.test_pdb.test_pdb_skip_modules[0]>(4)skip_module()->None -> string.capwords('FOO') (Pdb) continue """ # Module for testing skipping of module that makes a callback mod = types.ModuleType('module_to_skip') exec('def foo_pony(callback): x = 1; callback(); return None', mod.__dict__) def test_pdb_skip_modules_with_callback(): """This illustrates skipping of modules that call into other code. >>> def skip_module(): ... def callback(): ... return None ... import pdb; pdb.Pdb(skip=['module_to_skip*'], nosigint=True, readrc=False).set_trace() ... mod.foo_pony(callback) >>> with PdbTestInput([ ... 'step', ... 'step', ... 'step', ... 'step', ... 'step', ... 'continue', ... ]): ... skip_module() ... pass # provides something to "step" to > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(5)skip_module() -> mod.foo_pony(callback) (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(2)callback() -> def callback(): (Pdb) step > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(3)callback() -> return None (Pdb) step --Return-- > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(3)callback()->None -> return None (Pdb) step --Return-- > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[0]>(5)skip_module()->None -> mod.foo_pony(callback) (Pdb) step > <doctest test.test_pdb.test_pdb_skip_modules_with_callback[1]>(10)<module>() -> pass # provides something to "step" to (Pdb) continue """ def test_pdb_continue_in_bottomframe(): """Test that "continue" and "next" work properly in bottom frame (issue #5294). >>> def test_function(): ... import pdb, sys; inst = pdb.Pdb(nosigint=True, readrc=False) ... inst.set_trace() ... inst.botframe = sys._getframe() # hackery to get the right botframe ... print(1) ... print(2) ... print(3) ... print(4) >>> with PdbTestInput([ # doctest: +ELLIPSIS ... 'next', ... 'break 7', ... 'continue', ... 'next', ... 'continue', ... 'continue', ... ]): ... test_function() > <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>(4)test_function() -> inst.botframe = sys._getframe() # hackery to get the right botframe (Pdb) next > <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>(5)test_function() -> print(1) (Pdb) break 7 Breakpoint ... at <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>:7 (Pdb) continue 1 2 > <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>(7)test_function() -> print(3) (Pdb) next 3 > <doctest test.test_pdb.test_pdb_continue_in_bottomframe[0]>(8)test_function() -> print(4) (Pdb) continue 4 """ def pdb_invoke(method, arg): """Run pdb.method(arg).""" getattr(pdb.Pdb(nosigint=True, readrc=False), method)(arg) def test_pdb_run_with_incorrect_argument(): """Testing run and runeval with incorrect first argument. >>> pti = PdbTestInput(['continue',]) >>> with pti: ... pdb_invoke('run', lambda x: x) Traceback (most recent call last): TypeError: exec() arg 1 must be a string, bytes or code object >>> with pti: ... pdb_invoke('runeval', lambda x: x) Traceback (most recent call last): TypeError: eval() arg 1 must be a string, bytes or code object """ def test_pdb_run_with_code_object(): """Testing run and runeval with code object as a first argument. >>> with PdbTestInput(['step','x', 'continue']): # doctest: +ELLIPSIS ... pdb_invoke('run', compile('x=1', '<string>', 'exec')) > <string>(1)<module>()... (Pdb) step --Return-- > <string>(1)<module>()->None (Pdb) x 1 (Pdb) continue >>> with PdbTestInput(['x', 'continue']): ... x=0 ... pdb_invoke('runeval', compile('x+1', '<string>', 'eval')) > <string>(1)<module>()->None (Pdb) x 1 (Pdb) continue """ def test_next_until_return_at_return_event(): """Test that pdb stops after a next/until/return issued at a return debug event. >>> def test_function_2(): ... x = 1 ... x = 2 >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... test_function_2() ... test_function_2() ... test_function_2() ... end = 1 >>> from bdb import Breakpoint >>> Breakpoint.next = 1 >>> with PdbTestInput(['break test_function_2', ... 'continue', ... 'return', ... 'next', ... 'continue', ... 'return', ... 'until', ... 'continue', ... 'return', ... 'return', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_next_until_return_at_return_event[1]>(3)test_function() -> test_function_2() (Pdb) break test_function_2 Breakpoint 1 at <doctest test.test_pdb.test_next_until_return_at_return_event[0]>:1 (Pdb) continue > <doctest test.test_pdb.test_next_until_return_at_return_event[0]>(2)test_function_2() -> x = 1 (Pdb) return --Return-- > <doctest test.test_pdb.test_next_until_return_at_return_event[0]>(3)test_function_2()->None -> x = 2 (Pdb) next > <doctest test.test_pdb.test_next_until_return_at_return_event[1]>(4)test_function() -> test_function_2() (Pdb) continue > <doctest test.test_pdb.test_next_until_return_at_return_event[0]>(2)test_function_2() -> x = 1 (Pdb) return --Return-- > <doctest test.test_pdb.test_next_until_return_at_return_event[0]>(3)test_function_2()->None -> x = 2 (Pdb) until > <doctest test.test_pdb.test_next_until_return_at_return_event[1]>(5)test_function() -> test_function_2() (Pdb) continue > <doctest test.test_pdb.test_next_until_return_at_return_event[0]>(2)test_function_2() -> x = 1 (Pdb) return --Return-- > <doctest test.test_pdb.test_next_until_return_at_return_event[0]>(3)test_function_2()->None -> x = 2 (Pdb) return > <doctest test.test_pdb.test_next_until_return_at_return_event[1]>(6)test_function() -> end = 1 (Pdb) continue """ def test_pdb_next_command_for_generator(): """Testing skip unwindng stack on yield for generators for "next" command >>> def test_gen(): ... yield 0 ... return 1 ... yield 2 >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... it = test_gen() ... try: ... if next(it) != 0: ... raise AssertionError ... next(it) ... except StopIteration as ex: ... if ex.value != 1: ... raise AssertionError ... print("finished") >>> with PdbTestInput(['step', ... 'step', ... 'step', ... 'next', ... 'next', ... 'step', ... 'step', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_next_command_for_generator[1]>(3)test_function() -> it = test_gen() (Pdb) step > <doctest test.test_pdb.test_pdb_next_command_for_generator[1]>(4)test_function() -> try: (Pdb) step > <doctest test.test_pdb.test_pdb_next_command_for_generator[1]>(5)test_function() -> if next(it) != 0: (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_next_command_for_generator[0]>(1)test_gen() -> def test_gen(): (Pdb) next > <doctest test.test_pdb.test_pdb_next_command_for_generator[0]>(2)test_gen() -> yield 0 (Pdb) next > <doctest test.test_pdb.test_pdb_next_command_for_generator[0]>(3)test_gen() -> return 1 (Pdb) step --Return-- > <doctest test.test_pdb.test_pdb_next_command_for_generator[0]>(3)test_gen()->1 -> return 1 (Pdb) step StopIteration: 1 > <doctest test.test_pdb.test_pdb_next_command_for_generator[1]>(7)test_function() -> next(it) (Pdb) continue finished """ def test_pdb_next_command_for_coroutine(): """Testing skip unwindng stack on yield for coroutines for "next" command >>> import asyncio >>> async def test_coro(): ... await asyncio.sleep(0) ... await asyncio.sleep(0) ... await asyncio.sleep(0) >>> async def test_main(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... await test_coro() >>> def test_function(): ... loop = asyncio.new_event_loop() ... loop.run_until_complete(test_main()) ... loop.close() ... print("finished") >>> with PdbTestInput(['step', ... 'step', ... 'next', ... 'next', ... 'next', ... 'step', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_next_command_for_coroutine[2]>(3)test_main() -> await test_coro() (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_next_command_for_coroutine[1]>(1)test_coro() -> async def test_coro(): (Pdb) step > <doctest test.test_pdb.test_pdb_next_command_for_coroutine[1]>(2)test_coro() -> await asyncio.sleep(0) (Pdb) next > <doctest test.test_pdb.test_pdb_next_command_for_coroutine[1]>(3)test_coro() -> await asyncio.sleep(0) (Pdb) next > <doctest test.test_pdb.test_pdb_next_command_for_coroutine[1]>(4)test_coro() -> await asyncio.sleep(0) (Pdb) next Internal StopIteration > <doctest test.test_pdb.test_pdb_next_command_for_coroutine[2]>(3)test_main() -> await test_coro() (Pdb) step --Return-- > <doctest test.test_pdb.test_pdb_next_command_for_coroutine[2]>(3)test_main()->None -> await test_coro() (Pdb) continue finished """ def test_pdb_next_command_for_asyncgen(): """Testing skip unwindng stack on yield for coroutines for "next" command >>> import asyncio >>> async def agen(): ... yield 1 ... await asyncio.sleep(0) ... yield 2 >>> async def test_coro(): ... async for x in agen(): ... print(x) >>> async def test_main(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... await test_coro() >>> def test_function(): ... loop = asyncio.new_event_loop() ... loop.run_until_complete(test_main()) ... loop.close() ... print("finished") >>> with PdbTestInput(['step', ... 'step', ... 'next', ... 'next', ... 'step', ... 'next', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_next_command_for_asyncgen[3]>(3)test_main() -> await test_coro() (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_next_command_for_asyncgen[2]>(1)test_coro() -> async def test_coro(): (Pdb) step > <doctest test.test_pdb.test_pdb_next_command_for_asyncgen[2]>(2)test_coro() -> async for x in agen(): (Pdb) next > <doctest test.test_pdb.test_pdb_next_command_for_asyncgen[2]>(3)test_coro() -> print(x) (Pdb) next 1 > <doctest test.test_pdb.test_pdb_next_command_for_asyncgen[2]>(2)test_coro() -> async for x in agen(): (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_next_command_for_asyncgen[1]>(2)agen() -> yield 1 (Pdb) next > <doctest test.test_pdb.test_pdb_next_command_for_asyncgen[1]>(3)agen() -> await asyncio.sleep(0) (Pdb) continue 2 finished """ def test_pdb_return_command_for_generator(): """Testing no unwindng stack on yield for generators for "return" command >>> def test_gen(): ... yield 0 ... return 1 ... yield 2 >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... it = test_gen() ... try: ... if next(it) != 0: ... raise AssertionError ... next(it) ... except StopIteration as ex: ... if ex.value != 1: ... raise AssertionError ... print("finished") >>> with PdbTestInput(['step', ... 'step', ... 'step', ... 'return', ... 'step', ... 'step', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_return_command_for_generator[1]>(3)test_function() -> it = test_gen() (Pdb) step > <doctest test.test_pdb.test_pdb_return_command_for_generator[1]>(4)test_function() -> try: (Pdb) step > <doctest test.test_pdb.test_pdb_return_command_for_generator[1]>(5)test_function() -> if next(it) != 0: (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_return_command_for_generator[0]>(1)test_gen() -> def test_gen(): (Pdb) return StopIteration: 1 > <doctest test.test_pdb.test_pdb_return_command_for_generator[1]>(7)test_function() -> next(it) (Pdb) step > <doctest test.test_pdb.test_pdb_return_command_for_generator[1]>(8)test_function() -> except StopIteration as ex: (Pdb) step > <doctest test.test_pdb.test_pdb_return_command_for_generator[1]>(9)test_function() -> if ex.value != 1: (Pdb) continue finished """ def test_pdb_return_command_for_coroutine(): """Testing no unwindng stack on yield for coroutines for "return" command >>> import asyncio >>> async def test_coro(): ... await asyncio.sleep(0) ... await asyncio.sleep(0) ... await asyncio.sleep(0) >>> async def test_main(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... await test_coro() >>> def test_function(): ... loop = asyncio.new_event_loop() ... loop.run_until_complete(test_main()) ... loop.close() ... print("finished") >>> with PdbTestInput(['step', ... 'step', ... 'next', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_return_command_for_coroutine[2]>(3)test_main() -> await test_coro() (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_return_command_for_coroutine[1]>(1)test_coro() -> async def test_coro(): (Pdb) step > <doctest test.test_pdb.test_pdb_return_command_for_coroutine[1]>(2)test_coro() -> await asyncio.sleep(0) (Pdb) next > <doctest test.test_pdb.test_pdb_return_command_for_coroutine[1]>(3)test_coro() -> await asyncio.sleep(0) (Pdb) continue finished """ def test_pdb_until_command_for_generator(): """Testing no unwindng stack on yield for generators for "until" command if target breakpoing is not reached >>> def test_gen(): ... yield 0 ... yield 1 ... yield 2 >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... for i in test_gen(): ... print(i) ... print("finished") >>> with PdbTestInput(['step', ... 'until 4', ... 'step', ... 'step', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_until_command_for_generator[1]>(3)test_function() -> for i in test_gen(): (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_until_command_for_generator[0]>(1)test_gen() -> def test_gen(): (Pdb) until 4 0 1 > <doctest test.test_pdb.test_pdb_until_command_for_generator[0]>(4)test_gen() -> yield 2 (Pdb) step --Return-- > <doctest test.test_pdb.test_pdb_until_command_for_generator[0]>(4)test_gen()->2 -> yield 2 (Pdb) step > <doctest test.test_pdb.test_pdb_until_command_for_generator[1]>(4)test_function() -> print(i) (Pdb) continue 2 finished """ def test_pdb_until_command_for_coroutine(): """Testing no unwindng stack for coroutines for "until" command if target breakpoing is not reached >>> import asyncio >>> async def test_coro(): ... print(0) ... await asyncio.sleep(0) ... print(1) ... await asyncio.sleep(0) ... print(2) ... await asyncio.sleep(0) ... print(3) >>> async def test_main(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... await test_coro() >>> def test_function(): ... loop = asyncio.new_event_loop() ... loop.run_until_complete(test_main()) ... loop.close() ... print("finished") >>> with PdbTestInput(['step', ... 'until 8', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_until_command_for_coroutine[2]>(3)test_main() -> await test_coro() (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_until_command_for_coroutine[1]>(1)test_coro() -> async def test_coro(): (Pdb) until 8 0 1 2 > <doctest test.test_pdb.test_pdb_until_command_for_coroutine[1]>(8)test_coro() -> print(3) (Pdb) continue 3 finished """ def test_pdb_next_command_in_generator_for_loop(): """The next command on returning from a generator controlled by a for loop. >>> def test_gen(): ... yield 0 ... return 1 >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... for i in test_gen(): ... print('value', i) ... x = 123 >>> with PdbTestInput(['break test_gen', ... 'continue', ... 'next', ... 'next', ... 'next', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[1]>(3)test_function() -> for i in test_gen(): (Pdb) break test_gen Breakpoint 6 at <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>:1 (Pdb) continue > <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>(2)test_gen() -> yield 0 (Pdb) next value 0 > <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>(3)test_gen() -> return 1 (Pdb) next Internal StopIteration: 1 > <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[1]>(3)test_function() -> for i in test_gen(): (Pdb) next > <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[1]>(5)test_function() -> x = 123 (Pdb) continue """ def test_pdb_next_command_subiterator(): """The next command in a generator with a subiterator. >>> def test_subgenerator(): ... yield 0 ... return 1 >>> def test_gen(): ... x = yield from test_subgenerator() ... return x >>> def test_function(): ... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace() ... for i in test_gen(): ... print('value', i) ... x = 123 >>> with PdbTestInput(['step', ... 'step', ... 'next', ... 'next', ... 'next', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_next_command_subiterator[2]>(3)test_function() -> for i in test_gen(): (Pdb) step --Call-- > <doctest test.test_pdb.test_pdb_next_command_subiterator[1]>(1)test_gen() -> def test_gen(): (Pdb) step > <doctest test.test_pdb.test_pdb_next_command_subiterator[1]>(2)test_gen() -> x = yield from test_subgenerator() (Pdb) next value 0 > <doctest test.test_pdb.test_pdb_next_command_subiterator[1]>(3)test_gen() -> return x (Pdb) next Internal StopIteration: 1 > <doctest test.test_pdb.test_pdb_next_command_subiterator[2]>(3)test_function() -> for i in test_gen(): (Pdb) next > <doctest test.test_pdb.test_pdb_next_command_subiterator[2]>(5)test_function() -> x = 123 (Pdb) continue """ def test_pdb_issue_20766(): """Test for reference leaks when the SIGINT handler is set. >>> def test_function(): ... i = 1 ... while i <= 2: ... sess = pdb.Pdb() ... sess.set_trace(sys._getframe()) ... print('pdb %d: %s' % (i, sess._previous_sigint_handler)) ... i += 1 >>> with PdbTestInput(['continue', ... 'continue']): ... test_function() > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function() -> print('pdb %d: %s' % (i, sess._previous_sigint_handler)) (Pdb) continue pdb 1: <built-in function default_int_handler> > <doctest test.test_pdb.test_pdb_issue_20766[0]>(5)test_function() -> sess.set_trace(sys._getframe()) (Pdb) continue pdb 2: <built-in function default_int_handler> """ class PdbTestCase(unittest.TestCase): def run_pdb(self, script, commands): """Run 'script' lines with pdb and the pdb 'commands'.""" filename = 'main.py' with open(filename, 'w') as f: f.write(textwrap.dedent(script)) self.addCleanup(support.unlink, filename) self.addCleanup(support.rmtree, '__pycache__') cmd = [sys.executable, '-m', 'pdb', filename] stdout = stderr = None with subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, ) as proc: stdout, stderr = proc.communicate(str.encode(commands)) stdout = stdout and bytes.decode(stdout) stderr = stderr and bytes.decode(stderr) return stdout, stderr def _assert_find_function(self, file_content, func_name, expected): file_content = textwrap.dedent(file_content) with open(support.TESTFN, 'w') as f: f.write(file_content) expected = None if not expected else ( expected[0], support.TESTFN, expected[1]) self.assertEqual( expected, pdb.find_function(func_name, support.TESTFN)) def test_find_function_empty_file(self): self._assert_find_function('', 'foo', None) def test_find_function_found(self): self._assert_find_function( """\ def foo(): pass def bar(): pass def quux(): pass """, 'bar', ('bar', 4), ) def test_issue7964(self): # open the file as binary so we can force \r\n newline with open(support.TESTFN, 'wb') as f: f.write(b'print("testing my pdb")\r\n') cmd = [sys.executable, '-m', 'pdb', support.TESTFN] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, ) self.addCleanup(proc.stdout.close) stdout, stderr = proc.communicate(b'quit\n') self.assertNotIn(b'SyntaxError', stdout, "Got a syntax error running test script under PDB") def test_issue13183(self): script = """ from bar import bar def foo(): bar() def nope(): pass def foobar(): foo() nope() foobar() """ commands = """ from bar import bar break bar continue step step quit """ bar = """ def bar(): pass """ with open('bar.py', 'w') as f: f.write(textwrap.dedent(bar)) self.addCleanup(support.unlink, 'bar.py') stdout, stderr = self.run_pdb(script, commands) self.assertTrue( any('main.py(5)foo()->None' in l for l in stdout.splitlines()), 'Fail to step into the caller after a return') def test_issue13210(self): # invoking "continue" on a non-main thread triggered an exception # inside signal.signal # raises SkipTest if python was built without threads support.import_module('threading') with open(support.TESTFN, 'wb') as f: f.write(textwrap.dedent(""" import threading import pdb def start_pdb(): pdb.Pdb(readrc=False).set_trace() x = 1 y = 1 t = threading.Thread(target=start_pdb) t.start()""").encode('ascii')) cmd = [sys.executable, '-u', support.TESTFN] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, ) self.addCleanup(proc.stdout.close) stdout, stderr = proc.communicate(b'cont\n') self.assertNotIn('Error', stdout.decode(), "Got an error running test script under PDB") def test_issue16180(self): # A syntax error in the debuggee. script = "def f: pass\n" commands = '' expected = "SyntaxError:" stdout, stderr = self.run_pdb(script, commands) self.assertIn(expected, stdout, '\n\nExpected:\n{}\nGot:\n{}\n' 'Fail to handle a syntax error in the debuggee.' .format(expected, stdout)) def test_readrc_kwarg(self): script = textwrap.dedent(""" import pdb; pdb.Pdb(readrc=False).set_trace() print('hello') """) save_home = os.environ.pop('HOME', None) try: with support.temp_cwd(): with open('.pdbrc', 'w') as f: f.write("invalid\n") with open('main.py', 'w') as f: f.write(script) cmd = [sys.executable, 'main.py'] proc = subprocess.Popen( cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, ) with proc: stdout, stderr = proc.communicate(b'q\n') self.assertNotIn("NameError: name 'invalid' is not defined", stdout.decode()) finally: if save_home is not None: os.environ['HOME'] = save_home def tearDown(self): support.unlink(support.TESTFN) def load_tests(*args): from test import test_pdb suites = [unittest.makeSuite(PdbTestCase), doctest.DocTestSuite(test_pdb)] return unittest.TestSuite(suites) if __name__ == '__main__': unittest.main()