Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
: 172.16.0.66 | : 172.16.0.254
Cant Read [ /etc/named.conf ]
7.3.25
SYSTEM
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
[ A ]
[ C ]
[ D ]
C: /
laragon /
bin /
python /
python-3.10 /
Lib /
test /
[ HOME SHELL ]
Name
Size
Permission
Action
__pycache__
[ DIR ]
drwxrwxrwx
audiodata
[ DIR ]
drwxrwxrwx
capath
[ DIR ]
drwxrwxrwx
cjkencodings
[ DIR ]
drwxrwxrwx
crashers
[ DIR ]
drwxrwxrwx
data
[ DIR ]
drwxrwxrwx
decimaltestdata
[ DIR ]
drwxrwxrwx
dtracedata
[ DIR ]
drwxrwxrwx
encoded_modules
[ DIR ]
drwxrwxrwx
imghdrdata
[ DIR ]
drwxrwxrwx
leakers
[ DIR ]
drwxrwxrwx
libregrtest
[ DIR ]
drwxrwxrwx
sndhdrdata
[ DIR ]
drwxrwxrwx
subprocessdata
[ DIR ]
drwxrwxrwx
support
[ DIR ]
drwxrwxrwx
test_asyncio
[ DIR ]
drwxrwxrwx
test_email
[ DIR ]
drwxrwxrwx
test_import
[ DIR ]
drwxrwxrwx
test_importlib
[ DIR ]
drwxrwxrwx
test_json
[ DIR ]
drwxrwxrwx
test_peg_generator
[ DIR ]
drwxrwxrwx
test_tools
[ DIR ]
drwxrwxrwx
test_warnings
[ DIR ]
drwxrwxrwx
test_zoneinfo
[ DIR ]
drwxrwxrwx
tracedmodules
[ DIR ]
drwxrwxrwx
xmltestdata
[ DIR ]
drwxrwxrwx
ziptestdata
[ DIR ]
drwxrwxrwx
Sine-1000Hz-300ms.aif
60.25
KB
-rw-rw-rw-
__init__.py
48
B
-rw-rw-rw-
__main__.py
43
B
-rw-rw-rw-
_test_atexit.py
3.75
KB
-rw-rw-rw-
_test_eintr.py
18.17
KB
-rw-rw-rw-
_test_embed_set_config.py
8.81
KB
-rw-rw-rw-
_test_multiprocessing.py
199.1
KB
-rw-rw-rw-
_typed_dict_helper.py
512
B
-rw-rw-rw-
allsans.pem
10.03
KB
-rw-rw-rw-
ann_module.py
1.15
KB
-rw-rw-rw-
ann_module2.py
555
B
-rw-rw-rw-
ann_module3.py
466
B
-rw-rw-rw-
ann_module4.py
86
B
-rw-rw-rw-
ann_module5.py
212
B
-rw-rw-rw-
ann_module6.py
145
B
-rw-rw-rw-
ann_module7.py
306
B
-rw-rw-rw-
audiotest.au
27.48
KB
-rw-rw-rw-
audiotests.py
12.46
KB
-rw-rw-rw-
audit-tests.py
11.09
KB
-rw-rw-rw-
autotest.py
214
B
-rw-rw-rw-
bad_coding.py
25
B
-rw-rw-rw-
bad_coding2.py
32
B
-rw-rw-rw-
bad_getattr.py
65
B
-rw-rw-rw-
bad_getattr2.py
84
B
-rw-rw-rw-
bad_getattr3.py
144
B
-rw-rw-rw-
badcert.pem
1.92
KB
-rw-rw-rw-
badkey.pem
2.15
KB
-rw-rw-rw-
badsyntax_3131.py
34
B
-rw-rw-rw-
badsyntax_future10.py
98
B
-rw-rw-rw-
badsyntax_future3.py
182
B
-rw-rw-rw-
badsyntax_future4.py
163
B
-rw-rw-rw-
badsyntax_future5.py
196
B
-rw-rw-rw-
badsyntax_future6.py
171
B
-rw-rw-rw-
badsyntax_future7.py
207
B
-rw-rw-rw-
badsyntax_future8.py
132
B
-rw-rw-rw-
badsyntax_future9.py
152
B
-rw-rw-rw-
badsyntax_pep3120.py
15
B
-rw-rw-rw-
bisect_cmd.py
5.39
KB
-rw-rw-rw-
cfgparser.1
70
B
-rw-rw-rw-
cfgparser.2
19.54
KB
-rw-rw-rw-
cfgparser.3
1.62
KB
-rw-rw-rw-
clinic.test
97.34
KB
-rw-rw-rw-
cmath_testcases.txt
143.5
KB
-rw-rw-rw-
coding20731.py
22
B
-rw-rw-rw-
curses_tests.py
1.26
KB
-rw-rw-rw-
dataclass_module_1.py
869
B
-rw-rw-rw-
dataclass_module_1_str.py
867
B
-rw-rw-rw-
dataclass_module_2.py
788
B
-rw-rw-rw-
dataclass_module_2_str.py
786
B
-rw-rw-rw-
dataclass_textanno.py
138
B
-rw-rw-rw-
datetimetester.py
251.38
KB
-rw-rw-rw-
dis_module.py
81
B
-rw-rw-rw-
doctest_aliases.py
253
B
-rw-rw-rw-
doctest_lineno.py
964
B
-rw-rw-rw-
double_const.py
1.21
KB
-rw-rw-rw-
empty.vbs
70
B
-rw-rw-rw-
exception_hierarchy.txt
1.87
KB
-rw-rw-rw-
ffdh3072.pem
2.2
KB
-rw-rw-rw-
final_a.py
430
B
-rw-rw-rw-
final_b.py
430
B
-rw-rw-rw-
floating_points.txt
16.92
KB
-rw-rw-rw-
fork_wait.py
2.31
KB
-rw-rw-rw-
formatfloat_testcases.txt
7.8
KB
-rw-rw-rw-
future_test1.py
240
B
-rw-rw-rw-
future_test2.py
159
B
-rw-rw-rw-
gdb_sample.py
165
B
-rw-rw-rw-
good_getattr.py
209
B
-rw-rw-rw-
idnsans.pem
9.88
KB
-rw-rw-rw-
ieee754.txt
3.39
KB
-rw-rw-rw-
imp_dummy.py
66
B
-rw-rw-rw-
inspect_fodder.py
1.99
KB
-rw-rw-rw-
inspect_fodder2.py
3.64
KB
-rw-rw-rw-
inspect_stock_annotations.py
537
B
-rw-rw-rw-
inspect_stringized_annotations...
646
B
-rw-rw-rw-
inspect_stringized_annotations...
63
B
-rw-rw-rw-
keycert.passwd.pem
4.19
KB
-rw-rw-rw-
keycert.pem
4.03
KB
-rw-rw-rw-
keycert2.pem
4.05
KB
-rw-rw-rw-
keycert3.pem
9.39
KB
-rw-rw-rw-
keycert4.pem
9.4
KB
-rw-rw-rw-
keycertecc.pem
5.61
KB
-rw-rw-rw-
list_tests.py
17.2
KB
-rw-rw-rw-
lock_tests.py
31.14
KB
-rw-rw-rw-
mailcap.txt
1.28
KB
-rw-rw-rw-
make_ssl_certs.py
9.55
KB
-rw-rw-rw-
mapping_tests.py
22.49
KB
-rw-rw-rw-
math_testcases.txt
23.8
KB
-rw-rw-rw-
memory_watchdog.py
887
B
-rw-rw-rw-
mime.types
48.78
KB
-rw-rw-rw-
mock_socket.py
3.86
KB
-rw-rw-rw-
mod_generics_cache.py
1.18
KB
-rw-rw-rw-
mp_fork_bomb.py
466
B
-rw-rw-rw-
mp_preload.py
369
B
-rw-rw-rw-
multibytecodec_support.py
14.56
KB
-rw-rw-rw-
nokia.pem
1.91
KB
-rw-rw-rw-
nosan.pem
7.67
KB
-rw-rw-rw-
nullbytecert.pem
5.4
KB
-rw-rw-rw-
nullcert.pem
0
B
-rw-rw-rw-
pickletester.py
142.98
KB
-rw-rw-rw-
profilee.py
3.08
KB
-rw-rw-rw-
pstats.pck
65.05
KB
-rw-rw-rw-
pycacert.pem
5.63
KB
-rw-rw-rw-
pycakey.pem
2.46
KB
-rw-rw-rw-
pyclbr_input.py
681
B
-rw-rw-rw-
pydoc_mod.py
1010
B
-rw-rw-rw-
pydocfodder.py
6.39
KB
-rw-rw-rw-
pythoninfo.py
24.41
KB
-rw-rw-rw-
randv2_32.pck
7.34
KB
-rw-rw-rw-
randv2_64.pck
7.19
KB
-rw-rw-rw-
randv3.pck
7.82
KB
-rw-rw-rw-
re_tests.py
26.48
KB
-rw-rw-rw-
recursion.tar
516
B
-rw-rw-rw-
regrtest.py
1.31
KB
-rw-rw-rw-
relimport.py
28
B
-rw-rw-rw-
reperf.py
561
B
-rw-rw-rw-
revocation.crl
814
B
-rw-rw-rw-
sample_doctest.py
1.09
KB
-rw-rw-rw-
sample_doctest_no_docstrings.p...
239
B
-rw-rw-rw-
sample_doctest_no_doctests.py
284
B
-rw-rw-rw-
secp384r1.pem
263
B
-rw-rw-rw-
selfsigned_pythontestdotnet.pe...
2.11
KB
-rw-rw-rw-
seq_tests.py
15.29
KB
-rw-rw-rw-
sgml_input.html
8.31
KB
-rw-rw-rw-
signalinterproctester.py
2.82
KB
-rw-rw-rw-
sortperf.py
4.86
KB
-rw-rw-rw-
ssl_cert.pem
1.56
KB
-rw-rw-rw-
ssl_key.passwd.pem
2.63
KB
-rw-rw-rw-
ssl_key.pem
2.47
KB
-rw-rw-rw-
ssl_servers.py
7.31
KB
-rw-rw-rw-
ssltests.py
1.06
KB
-rw-rw-rw-
string_tests.py
69.47
KB
-rw-rw-rw-
talos-2019-0758.pem
1.32
KB
-rw-rw-rw-
test___all__.py
4.66
KB
-rw-rw-rw-
test___future__.py
2.42
KB
-rw-rw-rw-
test__locale.py
8.02
KB
-rw-rw-rw-
test__opcode.py
3.11
KB
-rw-rw-rw-
test__osx_support.py
13.96
KB
-rw-rw-rw-
test__xxsubinterpreters.py
81.21
KB
-rw-rw-rw-
test_abc.py
23.85
KB
-rw-rw-rw-
test_abstract_numbers.py
1.54
KB
-rw-rw-rw-
test_aifc.py
18.2
KB
-rw-rw-rw-
test_argparse.py
185.85
KB
-rw-rw-rw-
test_array.py
56.79
KB
-rw-rw-rw-
test_asdl_parser.py
4.57
KB
-rw-rw-rw-
test_ast.py
107.34
KB
-rw-rw-rw-
test_asyncgen.py
48.43
KB
-rw-rw-rw-
test_asynchat.py
9.68
KB
-rw-rw-rw-
test_asyncore.py
26.95
KB
-rw-rw-rw-
test_atexit.py
3.25
KB
-rw-rw-rw-
test_audioop.py
28.79
KB
-rw-rw-rw-
test_audit.py
5.56
KB
-rw-rw-rw-
test_augassign.py
8
KB
-rw-rw-rw-
test_base64.py
35.28
KB
-rw-rw-rw-
test_baseexception.py
7.05
KB
-rw-rw-rw-
test_bdb.py
44.64
KB
-rw-rw-rw-
test_bigaddrspace.py
2.93
KB
-rw-rw-rw-
test_bigmem.py
46.01
KB
-rw-rw-rw-
test_binascii.py
19.72
KB
-rw-rw-rw-
test_binhex.py
2.17
KB
-rw-rw-rw-
test_binop.py
14.57
KB
-rw-rw-rw-
test_bisect.py
16.09
KB
-rw-rw-rw-
test_bool.py
12.89
KB
-rw-rw-rw-
test_buffer.py
164.64
KB
-rw-rw-rw-
test_bufio.py
2.65
KB
-rw-rw-rw-
test_builtin.py
87.93
KB
-rw-rw-rw-
test_bytes.py
78.01
KB
-rw-rw-rw-
test_bz2.py
38.22
KB
-rw-rw-rw-
test_c_locale_coercion.py
19.35
KB
-rw-rw-rw-
test_calendar.py
51.76
KB
-rw-rw-rw-
test_call.py
26.95
KB
-rw-rw-rw-
test_capi.py
41.78
KB
-rw-rw-rw-
test_cgi.py
22.89
KB
-rw-rw-rw-
test_cgitb.py
2.61
KB
-rw-rw-rw-
test_charmapcodec.py
1.83
KB
-rw-rw-rw-
test_check_c_globals.py
773
B
-rw-rw-rw-
test_class.py
18.07
KB
-rw-rw-rw-
test_clinic.py
22.35
KB
-rw-rw-rw-
test_cmath.py
24.71
KB
-rw-rw-rw-
test_cmd.py
6.34
KB
-rw-rw-rw-
test_cmd_line.py
36.79
KB
-rw-rw-rw-
test_cmd_line_script.py
33.44
KB
-rw-rw-rw-
test_code.py
13.11
KB
-rw-rw-rw-
test_code_module.py
5.69
KB
-rw-rw-rw-
test_codeccallbacks.py
48.64
KB
-rw-rw-rw-
test_codecencodings_cn.py
3.95
KB
-rw-rw-rw-
test_codecencodings_hk.py
723
B
-rw-rw-rw-
test_codecencodings_iso2022.py
1.4
KB
-rw-rw-rw-
test_codecencodings_jp.py
4.92
KB
-rw-rw-rw-
test_codecencodings_kr.py
3.02
KB
-rw-rw-rw-
test_codecencodings_tw.py
703
B
-rw-rw-rw-
test_codecmaps_cn.py
772
B
-rw-rw-rw-
test_codecmaps_hk.py
401
B
-rw-rw-rw-
test_codecmaps_jp.py
1.76
KB
-rw-rw-rw-
test_codecmaps_kr.py
1.2
KB
-rw-rw-rw-
test_codecmaps_tw.py
732
B
-rw-rw-rw-
test_codecs.py
136.49
KB
-rw-rw-rw-
test_codeop.py
8.65
KB
-rw-rw-rw-
test_collections.py
94.1
KB
-rw-rw-rw-
test_colorsys.py
3.93
KB
-rw-rw-rw-
test_compare.py
3.85
KB
-rw-rw-rw-
test_compile.py
45.9
KB
-rw-rw-rw-
test_compileall.py
47.1
KB
-rw-rw-rw-
test_complex.py
33.54
KB
-rw-rw-rw-
test_concurrent_futures.py
57.2
KB
-rw-rw-rw-
test_configparser.py
87.49
KB
-rw-rw-rw-
test_contains.py
3.46
KB
-rw-rw-rw-
test_context.py
31.7
KB
-rw-rw-rw-
test_contextlib.py
36.33
KB
-rw-rw-rw-
test_contextlib_async.py
19.36
KB
-rw-rw-rw-
test_copy.py
27.28
KB
-rw-rw-rw-
test_copyreg.py
4.52
KB
-rw-rw-rw-
test_coroutines.py
65.27
KB
-rw-rw-rw-
test_cprofile.py
6.45
KB
-rw-rw-rw-
test_crashers.py
1.21
KB
-rw-rw-rw-
test_crypt.py
4.25
KB
-rw-rw-rw-
test_csv.py
52.95
KB
-rw-rw-rw-
test_ctypes.py
209
B
-rw-rw-rw-
test_curses.py
47.87
KB
-rw-rw-rw-
test_dataclasses.py
129.65
KB
-rw-rw-rw-
test_datetime.py
2.37
KB
-rw-rw-rw-
test_dbm.py
6.3
KB
-rw-rw-rw-
test_dbm_dumb.py
10.97
KB
-rw-rw-rw-
test_dbm_gnu.py
6.68
KB
-rw-rw-rw-
test_dbm_ndbm.py
5.24
KB
-rw-rw-rw-
test_decimal.py
214.93
KB
-rw-rw-rw-
test_decorators.py
14.87
KB
-rw-rw-rw-
test_defaultdict.py
6.31
KB
-rw-rw-rw-
test_deque.py
34.67
KB
-rw-rw-rw-
test_descr.py
198.27
KB
-rw-rw-rw-
test_descrtut.py
12.03
KB
-rw-rw-rw-
test_devpoll.py
4.58
KB
-rw-rw-rw-
test_dict.py
52.3
KB
-rw-rw-rw-
test_dict_version.py
6.28
KB
-rw-rw-rw-
test_dictcomps.py
5.28
KB
-rw-rw-rw-
test_dictviews.py
13.81
KB
-rw-rw-rw-
test_difflib.py
22.02
KB
-rw-rw-rw-
test_difflib_expect.html
101.36
KB
-rw-rw-rw-
test_dis.py
57.74
KB
-rw-rw-rw-
test_distutils.py
615
B
-rw-rw-rw-
test_doctest.py
104.21
KB
-rw-rw-rw-
test_doctest.txt
317
B
-rw-rw-rw-
test_doctest2.py
2.48
KB
-rw-rw-rw-
test_doctest2.txt
406
B
-rw-rw-rw-
test_doctest3.txt
87
B
-rw-rw-rw-
test_doctest4.txt
255
B
-rw-rw-rw-
test_docxmlrpc.py
8.88
KB
-rw-rw-rw-
test_dtrace.py
5.31
KB
-rw-rw-rw-
test_dynamic.py
4.43
KB
-rw-rw-rw-
test_dynamicclassattribute.py
9.86
KB
-rw-rw-rw-
test_eintr.py
604
B
-rw-rw-rw-
test_embed.py
57.38
KB
-rw-rw-rw-
test_ensurepip.py
12.55
KB
-rw-rw-rw-
test_enum.py
124.47
KB
-rw-rw-rw-
test_enumerate.py
8.74
KB
-rw-rw-rw-
test_eof.py
3.1
KB
-rw-rw-rw-
test_epoll.py
9.39
KB
-rw-rw-rw-
test_errno.py
1.08
KB
-rw-rw-rw-
test_exception_hierarchy.py
7.63
KB
-rw-rw-rw-
test_exception_variations.py
4.03
KB
-rw-rw-rw-
test_exceptions.py
93.28
KB
-rw-rw-rw-
test_extcall.py
14.57
KB
-rw-rw-rw-
test_faulthandler.py
30.98
KB
-rw-rw-rw-
test_fcntl.py
7.64
KB
-rw-rw-rw-
test_file.py
12.12
KB
-rw-rw-rw-
test_file_eintr.py
10.86
KB
-rw-rw-rw-
test_filecmp.py
10.57
KB
-rw-rw-rw-
test_fileinput.py
40.5
KB
-rw-rw-rw-
test_fileio.py
20.53
KB
-rw-rw-rw-
test_finalization.py
15.18
KB
-rw-rw-rw-
test_float.py
67.75
KB
-rw-rw-rw-
test_flufl.py
1.59
KB
-rw-rw-rw-
test_fnmatch.py
11.38
KB
-rw-rw-rw-
test_fork1.py
3.34
KB
-rw-rw-rw-
test_format.py
24.42
KB
-rw-rw-rw-
test_fractions.py
30.41
KB
-rw-rw-rw-
test_frame.py
6.44
KB
-rw-rw-rw-
test_frozen.py
972
B
-rw-rw-rw-
test_fstring.py
53.85
KB
-rw-rw-rw-
test_ftplib.py
43.12
KB
-rw-rw-rw-
test_funcattrs.py
15.29
KB
-rw-rw-rw-
test_functools.py
105.51
KB
-rw-rw-rw-
test_future.py
15.27
KB
-rw-rw-rw-
test_future3.py
516
B
-rw-rw-rw-
test_future4.py
233
B
-rw-rw-rw-
test_future5.py
531
B
-rw-rw-rw-
test_gc.py
47.3
KB
-rw-rw-rw-
test_gdb.py
42.7
KB
-rw-rw-rw-
test_generator_stop.py
977
B
-rw-rw-rw-
test_generators.py
66.11
KB
-rw-rw-rw-
test_genericalias.py
13.1
KB
-rw-rw-rw-
test_genericclass.py
9.56
KB
-rw-rw-rw-
test_genericpath.py
22.4
KB
-rw-rw-rw-
test_genexps.py
7.92
KB
-rw-rw-rw-
test_getargs2.py
55.19
KB
-rw-rw-rw-
test_getopt.py
6.96
KB
-rw-rw-rw-
test_getpass.py
6.45
KB
-rw-rw-rw-
test_gettext.py
42.36
KB
-rw-rw-rw-
test_glob.py
15.72
KB
-rw-rw-rw-
test_global.py
1.44
KB
-rw-rw-rw-
test_grammar.py
64.47
KB
-rw-rw-rw-
test_graphlib.py
8.59
KB
-rw-rw-rw-
test_grp.py
3.65
KB
-rw-rw-rw-
test_gzip.py
31.45
KB
-rw-rw-rw-
test_hash.py
11.79
KB
-rw-rw-rw-
test_hashlib.py
45.59
KB
-rw-rw-rw-
test_heapq.py
16.91
KB
-rw-rw-rw-
test_hmac.py
26.05
KB
-rw-rw-rw-
test_html.py
4.33
KB
-rw-rw-rw-
test_htmlparser.py
33.7
KB
-rw-rw-rw-
test_http_cookiejar.py
80.28
KB
-rw-rw-rw-
test_http_cookies.py
19.18
KB
-rw-rw-rw-
test_httplib.py
81.2
KB
-rw-rw-rw-
test_httpservers.py
54.65
KB
-rw-rw-rw-
test_idle.py
1.02
KB
-rw-rw-rw-
test_imaplib.py
43.19
KB
-rw-rw-rw-
test_imghdr.py
4.83
KB
-rw-rw-rw-
test_imp.py
18.38
KB
-rw-rw-rw-
test_index.py
8.64
KB
-rw-rw-rw-
test_inspect.py
175.5
KB
-rw-rw-rw-
test_int.py
21.27
KB
-rw-rw-rw-
test_int_literal.py
7.03
KB
-rw-rw-rw-
test_interpreters.py
23.21
KB
-rw-rw-rw-
test_io.py
175.17
KB
-rw-rw-rw-
test_ioctl.py
3.33
KB
-rw-rw-rw-
test_ipaddress.py
119.32
KB
-rw-rw-rw-
test_isinstance.py
13.31
KB
-rw-rw-rw-
test_iter.py
33.93
KB
-rw-rw-rw-
test_iterlen.py
7.32
KB
-rw-rw-rw-
test_itertools.py
108.41
KB
-rw-rw-rw-
test_keyword.py
1.27
KB
-rw-rw-rw-
test_keywordonlyarg.py
7.07
KB
-rw-rw-rw-
test_kqueue.py
9.01
KB
-rw-rw-rw-
test_largefile.py
10.26
KB
-rw-rw-rw-
test_lib2to3.py
327
B
-rw-rw-rw-
test_linecache.py
9.92
KB
-rw-rw-rw-
test_list.py
7.76
KB
-rw-rw-rw-
test_listcomps.py
4.33
KB
-rw-rw-rw-
test_lltrace.py
3.22
KB
-rw-rw-rw-
test_locale.py
25.29
KB
-rw-rw-rw-
test_logging.py
200.75
KB
-rw-rw-rw-
test_long.py
55.19
KB
-rw-rw-rw-
test_longexp.py
243
B
-rw-rw-rw-
test_lzma.py
90.07
KB
-rw-rw-rw-
test_mailbox.py
94.04
KB
-rw-rw-rw-
test_mailcap.py
10.25
KB
-rw-rw-rw-
test_marshal.py
21.04
KB
-rw-rw-rw-
test_math.py
92.69
KB
-rw-rw-rw-
test_memoryio.py
32.33
KB
-rw-rw-rw-
test_memoryview.py
22.01
KB
-rw-rw-rw-
test_metaclass.py
6.47
KB
-rw-rw-rw-
test_mimetypes.py
14.17
KB
-rw-rw-rw-
test_minidom.py
69.82
KB
-rw-rw-rw-
test_mmap.py
31.71
KB
-rw-rw-rw-
test_module.py
12.71
KB
-rw-rw-rw-
test_modulefinder.py
12.63
KB
-rw-rw-rw-
test_msilib.py
5.57
KB
-rw-rw-rw-
test_multibytecodec.py
16.15
KB
-rw-rw-rw-
test_multiprocessing_fork.py
496
B
-rw-rw-rw-
test_multiprocessing_forkserve...
408
B
-rw-rw-rw-
test_multiprocessing_main_hand...
11.86
KB
-rw-rw-rw-
test_multiprocessing_spawn.py
289
B
-rw-rw-rw-
test_named_expressions.py
21.21
KB
-rw-rw-rw-
test_netrc.py
6.17
KB
-rw-rw-rw-
test_nis.py
1.21
KB
-rw-rw-rw-
test_nntplib.py
64.29
KB
-rw-rw-rw-
test_ntpath.py
39.52
KB
-rw-rw-rw-
test_numeric_tower.py
7.38
KB
-rw-rw-rw-
test_opcache.py
552
B
-rw-rw-rw-
test_opcodes.py
3.72
KB
-rw-rw-rw-
test_openpty.py
621
B
-rw-rw-rw-
test_operator.py
24.67
KB
-rw-rw-rw-
test_optparse.py
62.64
KB
-rw-rw-rw-
test_ordered_dict.py
32.49
KB
-rw-rw-rw-
test_os.py
171.84
KB
-rw-rw-rw-
test_ossaudiodev.py
7.27
KB
-rw-rw-rw-
test_osx_env.py
1.34
KB
-rw-rw-rw-
test_pathlib.py
112.53
KB
-rw-rw-rw-
test_patma.py
87.9
KB
-rw-rw-rw-
test_pdb.py
64.45
KB
-rw-rw-rw-
test_peepholer.py
20.29
KB
-rw-rw-rw-
test_pickle.py
20.25
KB
-rw-rw-rw-
test_picklebuffer.py
5.14
KB
-rw-rw-rw-
test_pickletools.py
4.23
KB
-rw-rw-rw-
test_pipes.py
6.91
KB
-rw-rw-rw-
test_pkg.py
9.88
KB
-rw-rw-rw-
test_pkgutil.py
21.79
KB
-rw-rw-rw-
test_platform.py
20.25
KB
-rw-rw-rw-
test_plistlib.py
39.71
KB
-rw-rw-rw-
test_poll.py
7.5
KB
-rw-rw-rw-
test_popen.py
2.14
KB
-rw-rw-rw-
test_poplib.py
18.07
KB
-rw-rw-rw-
test_positional_only_arg.py
18.2
KB
-rw-rw-rw-
test_posix.py
88.67
KB
-rw-rw-rw-
test_posixpath.py
32.73
KB
-rw-rw-rw-
test_pow.py
5.58
KB
-rw-rw-rw-
test_pprint.py
51.51
KB
-rw-rw-rw-
test_print.py
7.94
KB
-rw-rw-rw-
test_profile.py
8.9
KB
-rw-rw-rw-
test_property.py
11.15
KB
-rw-rw-rw-
test_pstats.py
3.4
KB
-rw-rw-rw-
test_pty.py
17.29
KB
-rw-rw-rw-
test_pulldom.py
13.01
KB
-rw-rw-rw-
test_pwd.py
4.3
KB
-rw-rw-rw-
test_py_compile.py
11.72
KB
-rw-rw-rw-
test_pyclbr.py
10.09
KB
-rw-rw-rw-
test_pydoc.py
62.14
KB
-rw-rw-rw-
test_pyexpat.py
27.41
KB
-rw-rw-rw-
test_queue.py
21.15
KB
-rw-rw-rw-
test_quopri.py
7.98
KB
-rw-rw-rw-
test_raise.py
13.94
KB
-rw-rw-rw-
test_random.py
56.48
KB
-rw-rw-rw-
test_range.py
25.32
KB
-rw-rw-rw-
test_re.py
115.07
KB
-rw-rw-rw-
test_readline.py
14.59
KB
-rw-rw-rw-
test_regrtest.py
50.82
KB
-rw-rw-rw-
test_repl.py
4.06
KB
-rw-rw-rw-
test_reprlib.py
15.53
KB
-rw-rw-rw-
test_resource.py
7.21
KB
-rw-rw-rw-
test_richcmp.py
12.26
KB
-rw-rw-rw-
test_rlcompleter.py
7.26
KB
-rw-rw-rw-
test_robotparser.py
11.26
KB
-rw-rw-rw-
test_runpy.py
34.68
KB
-rw-rw-rw-
test_sax.py
54.48
KB
-rw-rw-rw-
test_sched.py
7.04
KB
-rw-rw-rw-
test_scope.py
20.58
KB
-rw-rw-rw-
test_script_helper.py
5.9
KB
-rw-rw-rw-
test_secrets.py
4.4
KB
-rw-rw-rw-
test_select.py
3.42
KB
-rw-rw-rw-
test_selectors.py
18.83
KB
-rw-rw-rw-
test_set.py
71.11
KB
-rw-rw-rw-
test_setcomps.py
4.31
KB
-rw-rw-rw-
test_shelve.py
6.23
KB
-rw-rw-rw-
test_shlex.py
13.84
KB
-rw-rw-rw-
test_shutil.py
107.56
KB
-rw-rw-rw-
test_signal.py
49.74
KB
-rw-rw-rw-
test_site.py
26.96
KB
-rw-rw-rw-
test_slice.py
8.5
KB
-rw-rw-rw-
test_smtpd.py
41.65
KB
-rw-rw-rw-
test_smtplib.py
61.57
KB
-rw-rw-rw-
test_smtpnet.py
3.07
KB
-rw-rw-rw-
test_sndhdr.py
1.46
KB
-rw-rw-rw-
test_socket.py
252.04
KB
-rw-rw-rw-
test_socketserver.py
18.4
KB
-rw-rw-rw-
test_sort.py
13.8
KB
-rw-rw-rw-
test_source_encoding.py
8.87
KB
-rw-rw-rw-
test_spwd.py
2.8
KB
-rw-rw-rw-
test_sqlite.py
1014
B
-rw-rw-rw-
test_ssl.py
210.65
KB
-rw-rw-rw-
test_startfile.py
1.74
KB
-rw-rw-rw-
test_stat.py
8.82
KB
-rw-rw-rw-
test_statistics.py
115.88
KB
-rw-rw-rw-
test_strftime.py
7.74
KB
-rw-rw-rw-
test_string.py
20.27
KB
-rw-rw-rw-
test_string_literals.py
10.11
KB
-rw-rw-rw-
test_stringprep.py
3.13
KB
-rw-rw-rw-
test_strptime.py
35.14
KB
-rw-rw-rw-
test_strtod.py
20.48
KB
-rw-rw-rw-
test_struct.py
37.06
KB
-rw-rw-rw-
test_structmembers.py
4.95
KB
-rw-rw-rw-
test_structseq.py
4.55
KB
-rw-rw-rw-
test_subclassinit.py
8.39
KB
-rw-rw-rw-
test_subprocess.py
159.59
KB
-rw-rw-rw-
test_sunau.py
6.14
KB
-rw-rw-rw-
test_sundry.py
2.16
KB
-rw-rw-rw-
test_super.py
9.91
KB
-rw-rw-rw-
test_support.py
26.03
KB
-rw-rw-rw-
test_symtable.py
9.61
KB
-rw-rw-rw-
test_syntax.py
53.26
KB
-rw-rw-rw-
test_sys.py
59.63
KB
-rw-rw-rw-
test_sys_setprofile.py
13.63
KB
-rw-rw-rw-
test_sys_settrace.py
64.46
KB
-rw-rw-rw-
test_sysconfig.py
19.37
KB
-rw-rw-rw-
test_syslog.py
1.21
KB
-rw-rw-rw-
test_tabnanny.py
13.78
KB
-rw-rw-rw-
test_tarfile.py
109.76
KB
-rw-rw-rw-
test_tcl.py
32.33
KB
-rw-rw-rw-
test_telnetlib.py
13.14
KB
-rw-rw-rw-
test_tempfile.py
62.68
KB
-rw-rw-rw-
test_textwrap.py
42.94
KB
-rw-rw-rw-
test_thread.py
8.81
KB
-rw-rw-rw-
test_threadedtempfile.py
1.94
KB
-rw-rw-rw-
test_threading.py
61.15
KB
-rw-rw-rw-
test_threading_local.py
6.5
KB
-rw-rw-rw-
test_threadsignals.py
10.35
KB
-rw-rw-rw-
test_time.py
40.99
KB
-rw-rw-rw-
test_timeit.py
15.59
KB
-rw-rw-rw-
test_timeout.py
11.29
KB
-rw-rw-rw-
test_tix.py
1.09
KB
-rw-rw-rw-
test_tk.py
566
B
-rw-rw-rw-
test_tokenize.py
65.47
KB
-rw-rw-rw-
test_trace.py
20.52
KB
-rw-rw-rw-
test_traceback.py
55.98
KB
-rw-rw-rw-
test_tracemalloc.py
40.23
KB
-rw-rw-rw-
test_ttk_guionly.py
1
KB
-rw-rw-rw-
test_ttk_textonly.py
17.15
KB
-rw-rw-rw-
test_tuple.py
19.33
KB
-rw-rw-rw-
test_turtle.py
13.18
KB
-rw-rw-rw-
test_type_annotations.py
3.8
KB
-rw-rw-rw-
test_type_comments.py
10.94
KB
-rw-rw-rw-
test_typechecks.py
2.62
KB
-rw-rw-rw-
test_types.py
77.73
KB
-rw-rw-rw-
test_typing.py
180.27
KB
-rw-rw-rw-
test_ucn.py
9.75
KB
-rw-rw-rw-
test_unary.py
1.68
KB
-rw-rw-rw-
test_unicode.py
137.87
KB
-rw-rw-rw-
test_unicode_file.py
5.84
KB
-rw-rw-rw-
test_unicode_file_functions.py
6.92
KB
-rw-rw-rw-
test_unicode_identifiers.py
1016
B
-rw-rw-rw-
test_unicodedata.py
16.3
KB
-rw-rw-rw-
test_unittest.py
242
B
-rw-rw-rw-
test_univnewlines.py
4
KB
-rw-rw-rw-
test_unpack.py
3.16
KB
-rw-rw-rw-
test_unpack_ex.py
10.3
KB
-rw-rw-rw-
test_unparse.py
18.82
KB
-rw-rw-rw-
test_urllib.py
71.74
KB
-rw-rw-rw-
test_urllib2.py
79.4
KB
-rw-rw-rw-
test_urllib2_localnet.py
26.18
KB
-rw-rw-rw-
test_urllib2net.py
14.44
KB
-rw-rw-rw-
test_urllib_response.py
1.95
KB
-rw-rw-rw-
test_urllibnet.py
9.55
KB
-rw-rw-rw-
test_urlparse.py
65.64
KB
-rw-rw-rw-
test_userdict.py
7.78
KB
-rw-rw-rw-
test_userlist.py
2.04
KB
-rw-rw-rw-
test_userstring.py
2.47
KB
-rw-rw-rw-
test_utf8_mode.py
10.56
KB
-rw-rw-rw-
test_utf8source.py
1.19
KB
-rw-rw-rw-
test_uu.py
8.35
KB
-rw-rw-rw-
test_uuid.py
40.87
KB
-rw-rw-rw-
test_venv.py
23.15
KB
-rw-rw-rw-
test_wait3.py
1.86
KB
-rw-rw-rw-
test_wait4.py
1.2
KB
-rw-rw-rw-
test_wave.py
6.67
KB
-rw-rw-rw-
test_weakref.py
76.97
KB
-rw-rw-rw-
test_weakset.py
15.86
KB
-rw-rw-rw-
test_webbrowser.py
10.92
KB
-rw-rw-rw-
test_winconsoleio.py
6.77
KB
-rw-rw-rw-
test_winreg.py
21.77
KB
-rw-rw-rw-
test_winsound.py
4.76
KB
-rw-rw-rw-
test_with.py
26.73
KB
-rw-rw-rw-
test_wsgiref.py
31.04
KB
-rw-rw-rw-
test_xdrlib.py
2.25
KB
-rw-rw-rw-
test_xml_dom_minicompat.py
4.32
KB
-rw-rw-rw-
test_xml_etree.py
163.5
KB
-rw-rw-rw-
test_xml_etree_c.py
8.72
KB
-rw-rw-rw-
test_xmlrpc.py
58.75
KB
-rw-rw-rw-
test_xmlrpc_net.py
985
B
-rw-rw-rw-
test_xxlimited.py
2.21
KB
-rw-rw-rw-
test_xxtestfuzz.py
715
B
-rw-rw-rw-
test_yield_from.py
31.12
KB
-rw-rw-rw-
test_zipapp.py
16.32
KB
-rw-rw-rw-
test_zipfile.py
125.43
KB
-rw-rw-rw-
test_zipfile64.py
6
KB
-rw-rw-rw-
test_zipimport.py
34.41
KB
-rw-rw-rw-
test_zipimport_support.py
10.7
KB
-rw-rw-rw-
test_zlib.py
35.2
KB
-rw-rw-rw-
testcodec.py
1.07
KB
-rw-rw-rw-
testtar.tar
425
KB
-rw-rw-rw-
testtar.tar.xz
172
B
-rw-rw-rw-
tf_inherit_check.py
741
B
-rw-rw-rw-
time_hashlib.py
2.96
KB
-rw-rw-rw-
tokenize_tests-latin1-coding-c...
456
B
-rw-rw-rw-
tokenize_tests-no-coding-cooki...
313
B
-rw-rw-rw-
tokenize_tests-utf8-coding-coo...
434
B
-rw-rw-rw-
tokenize_tests-utf8-coding-coo...
338
B
-rw-rw-rw-
tokenize_tests.txt
2.84
KB
-rw-rw-rw-
win_console_handler.py
1.43
KB
-rw-rw-rw-
xmltests.py
520
B
-rw-rw-rw-
zip_cp437_header.zip
270
B
-rw-rw-rw-
zipdir.zip
374
B
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : test_memoryio.py
"""Unit tests for memory-based file-like objects. StringIO -- for unicode strings BytesIO -- for bytes """ import unittest from test import support import io import _pyio as pyio import pickle import sys class IntLike: def __init__(self, num): self._num = num def __index__(self): return self._num __int__ = __index__ class MemorySeekTestMixin: def testInit(self): buf = self.buftype("1234567890") bytesIo = self.ioclass(buf) def testRead(self): buf = self.buftype("1234567890") bytesIo = self.ioclass(buf) self.assertEqual(buf[:1], bytesIo.read(1)) self.assertEqual(buf[1:5], bytesIo.read(4)) self.assertEqual(buf[5:], bytesIo.read(900)) self.assertEqual(self.EOF, bytesIo.read()) def testReadNoArgs(self): buf = self.buftype("1234567890") bytesIo = self.ioclass(buf) self.assertEqual(buf, bytesIo.read()) self.assertEqual(self.EOF, bytesIo.read()) def testSeek(self): buf = self.buftype("1234567890") bytesIo = self.ioclass(buf) bytesIo.read(5) bytesIo.seek(0) self.assertEqual(buf, bytesIo.read()) bytesIo.seek(3) self.assertEqual(buf[3:], bytesIo.read()) self.assertRaises(TypeError, bytesIo.seek, 0.0) def testTell(self): buf = self.buftype("1234567890") bytesIo = self.ioclass(buf) self.assertEqual(0, bytesIo.tell()) bytesIo.seek(5) self.assertEqual(5, bytesIo.tell()) bytesIo.seek(10000) self.assertEqual(10000, bytesIo.tell()) class MemoryTestMixin: def test_detach(self): buf = self.ioclass() self.assertRaises(self.UnsupportedOperation, buf.detach) def write_ops(self, f, t): self.assertEqual(f.write(t("blah.")), 5) self.assertEqual(f.seek(0), 0) self.assertEqual(f.write(t("Hello.")), 6) self.assertEqual(f.tell(), 6) self.assertEqual(f.seek(5), 5) self.assertEqual(f.tell(), 5) self.assertEqual(f.write(t(" world\n\n\n")), 9) self.assertEqual(f.seek(0), 0) self.assertEqual(f.write(t("h")), 1) self.assertEqual(f.truncate(12), 12) self.assertEqual(f.tell(), 1) def test_write(self): buf = self.buftype("hello world\n") memio = self.ioclass(buf) self.write_ops(memio, self.buftype) self.assertEqual(memio.getvalue(), buf) memio = self.ioclass() self.write_ops(memio, self.buftype) self.assertEqual(memio.getvalue(), buf) self.assertRaises(TypeError, memio.write, None) memio.close() self.assertRaises(ValueError, memio.write, self.buftype("")) def test_writelines(self): buf = self.buftype("1234567890") memio = self.ioclass() self.assertEqual(memio.writelines([buf] * 100), None) self.assertEqual(memio.getvalue(), buf * 100) memio.writelines([]) self.assertEqual(memio.getvalue(), buf * 100) memio = self.ioclass() self.assertRaises(TypeError, memio.writelines, [buf] + [1]) self.assertEqual(memio.getvalue(), buf) self.assertRaises(TypeError, memio.writelines, None) memio.close() self.assertRaises(ValueError, memio.writelines, []) def test_writelines_error(self): memio = self.ioclass() def error_gen(): yield self.buftype('spam') raise KeyboardInterrupt self.assertRaises(KeyboardInterrupt, memio.writelines, error_gen()) def test_truncate(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) self.assertRaises(ValueError, memio.truncate, -1) self.assertRaises(ValueError, memio.truncate, IntLike(-1)) memio.seek(6) self.assertEqual(memio.truncate(IntLike(8)), 8) self.assertEqual(memio.getvalue(), buf[:8]) self.assertEqual(memio.truncate(), 6) self.assertEqual(memio.getvalue(), buf[:6]) self.assertEqual(memio.truncate(4), 4) self.assertEqual(memio.getvalue(), buf[:4]) self.assertEqual(memio.tell(), 6) memio.seek(0, 2) memio.write(buf) self.assertEqual(memio.getvalue(), buf[:4] + buf) pos = memio.tell() self.assertEqual(memio.truncate(None), pos) self.assertEqual(memio.tell(), pos) self.assertRaises(TypeError, memio.truncate, '0') memio.close() self.assertRaises(ValueError, memio.truncate, 0) self.assertRaises(ValueError, memio.truncate, IntLike(0)) def test_init(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) self.assertEqual(memio.getvalue(), buf) memio = self.ioclass(None) self.assertEqual(memio.getvalue(), self.EOF) memio.__init__(buf * 2) self.assertEqual(memio.getvalue(), buf * 2) memio.__init__(buf) self.assertEqual(memio.getvalue(), buf) self.assertRaises(TypeError, memio.__init__, []) def test_read(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) self.assertEqual(memio.read(0), self.EOF) self.assertEqual(memio.read(1), buf[:1]) self.assertEqual(memio.read(4), buf[1:5]) self.assertEqual(memio.read(900), buf[5:]) self.assertEqual(memio.read(), self.EOF) memio.seek(0) self.assertEqual(memio.read(IntLike(0)), self.EOF) self.assertEqual(memio.read(IntLike(1)), buf[:1]) self.assertEqual(memio.read(IntLike(4)), buf[1:5]) self.assertEqual(memio.read(IntLike(900)), buf[5:]) memio.seek(0) self.assertEqual(memio.read(), buf) self.assertEqual(memio.read(), self.EOF) self.assertEqual(memio.tell(), 10) memio.seek(0) self.assertEqual(memio.read(-1), buf) memio.seek(0) self.assertEqual(memio.read(IntLike(-1)), buf) memio.seek(0) self.assertEqual(type(memio.read()), type(buf)) memio.seek(100) self.assertEqual(type(memio.read()), type(buf)) memio.seek(0) self.assertEqual(memio.read(None), buf) self.assertRaises(TypeError, memio.read, '') memio.seek(len(buf) + 1) self.assertEqual(memio.read(1), self.EOF) memio.seek(len(buf) + 1) self.assertEqual(memio.read(IntLike(1)), self.EOF) memio.seek(len(buf) + 1) self.assertEqual(memio.read(), self.EOF) memio.close() self.assertRaises(ValueError, memio.read) def test_readline(self): buf = self.buftype("1234567890\n") memio = self.ioclass(buf * 2) self.assertEqual(memio.readline(0), self.EOF) self.assertEqual(memio.readline(IntLike(0)), self.EOF) self.assertEqual(memio.readline(), buf) self.assertEqual(memio.readline(), buf) self.assertEqual(memio.readline(), self.EOF) memio.seek(0) self.assertEqual(memio.readline(5), buf[:5]) self.assertEqual(memio.readline(5), buf[5:10]) self.assertEqual(memio.readline(5), buf[10:15]) memio.seek(0) self.assertEqual(memio.readline(IntLike(5)), buf[:5]) self.assertEqual(memio.readline(IntLike(5)), buf[5:10]) self.assertEqual(memio.readline(IntLike(5)), buf[10:15]) memio.seek(0) self.assertEqual(memio.readline(-1), buf) memio.seek(0) self.assertEqual(memio.readline(IntLike(-1)), buf) memio.seek(0) self.assertEqual(memio.readline(0), self.EOF) self.assertEqual(memio.readline(IntLike(0)), self.EOF) # Issue #24989: Buffer overread memio.seek(len(buf) * 2 + 1) self.assertEqual(memio.readline(), self.EOF) buf = self.buftype("1234567890\n") memio = self.ioclass((buf * 3)[:-1]) self.assertEqual(memio.readline(), buf) self.assertEqual(memio.readline(), buf) self.assertEqual(memio.readline(), buf[:-1]) self.assertEqual(memio.readline(), self.EOF) memio.seek(0) self.assertEqual(type(memio.readline()), type(buf)) self.assertEqual(memio.readline(), buf) self.assertRaises(TypeError, memio.readline, '') memio.close() self.assertRaises(ValueError, memio.readline) def test_readlines(self): buf = self.buftype("1234567890\n") memio = self.ioclass(buf * 10) self.assertEqual(memio.readlines(), [buf] * 10) memio.seek(5) self.assertEqual(memio.readlines(), [buf[5:]] + [buf] * 9) memio.seek(0) self.assertEqual(memio.readlines(15), [buf] * 2) memio.seek(0) self.assertEqual(memio.readlines(-1), [buf] * 10) memio.seek(0) self.assertEqual(memio.readlines(0), [buf] * 10) memio.seek(0) self.assertEqual(type(memio.readlines()[0]), type(buf)) memio.seek(0) self.assertEqual(memio.readlines(None), [buf] * 10) self.assertRaises(TypeError, memio.readlines, '') # Issue #24989: Buffer overread memio.seek(len(buf) * 10 + 1) self.assertEqual(memio.readlines(), []) memio.close() self.assertRaises(ValueError, memio.readlines) def test_iterator(self): buf = self.buftype("1234567890\n") memio = self.ioclass(buf * 10) self.assertEqual(iter(memio), memio) self.assertTrue(hasattr(memio, '__iter__')) self.assertTrue(hasattr(memio, '__next__')) i = 0 for line in memio: self.assertEqual(line, buf) i += 1 self.assertEqual(i, 10) memio.seek(0) i = 0 for line in memio: self.assertEqual(line, buf) i += 1 self.assertEqual(i, 10) # Issue #24989: Buffer overread memio.seek(len(buf) * 10 + 1) self.assertEqual(list(memio), []) memio = self.ioclass(buf * 2) memio.close() self.assertRaises(ValueError, memio.__next__) def test_getvalue(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) self.assertEqual(memio.getvalue(), buf) memio.read() self.assertEqual(memio.getvalue(), buf) self.assertEqual(type(memio.getvalue()), type(buf)) memio = self.ioclass(buf * 1000) self.assertEqual(memio.getvalue()[-3:], self.buftype("890")) memio = self.ioclass(buf) memio.close() self.assertRaises(ValueError, memio.getvalue) def test_seek(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) memio.read(5) self.assertRaises(ValueError, memio.seek, -1) self.assertRaises(ValueError, memio.seek, 1, -1) self.assertRaises(ValueError, memio.seek, 1, 3) self.assertEqual(memio.seek(0), 0) self.assertEqual(memio.seek(0, 0), 0) self.assertEqual(memio.read(), buf) self.assertEqual(memio.seek(3), 3) self.assertEqual(memio.seek(0, 1), 3) self.assertEqual(memio.read(), buf[3:]) self.assertEqual(memio.seek(len(buf)), len(buf)) self.assertEqual(memio.read(), self.EOF) memio.seek(len(buf) + 1) self.assertEqual(memio.read(), self.EOF) self.assertEqual(memio.seek(0, 2), len(buf)) self.assertEqual(memio.read(), self.EOF) memio.close() self.assertRaises(ValueError, memio.seek, 0) def test_overseek(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) self.assertEqual(memio.seek(len(buf) + 1), 11) self.assertEqual(memio.read(), self.EOF) self.assertEqual(memio.tell(), 11) self.assertEqual(memio.getvalue(), buf) memio.write(self.EOF) self.assertEqual(memio.getvalue(), buf) memio.write(buf) self.assertEqual(memio.getvalue(), buf + self.buftype('\0') + buf) def test_tell(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) self.assertEqual(memio.tell(), 0) memio.seek(5) self.assertEqual(memio.tell(), 5) memio.seek(10000) self.assertEqual(memio.tell(), 10000) memio.close() self.assertRaises(ValueError, memio.tell) def test_flush(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) self.assertEqual(memio.flush(), None) def test_flags(self): memio = self.ioclass() self.assertEqual(memio.writable(), True) self.assertEqual(memio.readable(), True) self.assertEqual(memio.seekable(), True) self.assertEqual(memio.isatty(), False) self.assertEqual(memio.closed, False) memio.close() self.assertRaises(ValueError, memio.writable) self.assertRaises(ValueError, memio.readable) self.assertRaises(ValueError, memio.seekable) self.assertRaises(ValueError, memio.isatty) self.assertEqual(memio.closed, True) def test_subclassing(self): buf = self.buftype("1234567890") def test1(): class MemIO(self.ioclass): pass m = MemIO(buf) return m.getvalue() def test2(): class MemIO(self.ioclass): def __init__(me, a, b): self.ioclass.__init__(me, a) m = MemIO(buf, None) return m.getvalue() self.assertEqual(test1(), buf) self.assertEqual(test2(), buf) def test_instance_dict_leak(self): # Test case for issue #6242. # This will be caught by regrtest.py -R if this leak. for _ in range(100): memio = self.ioclass() memio.foo = 1 def test_pickling(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) memio.foo = 42 memio.seek(2) class PickleTestMemIO(self.ioclass): def __init__(me, initvalue, foo): self.ioclass.__init__(me, initvalue) me.foo = foo # __getnewargs__ is undefined on purpose. This checks that PEP 307 # is used to provide pickling support. # Pickle expects the class to be on the module level. Here we use a # little hack to allow the PickleTestMemIO class to derive from # self.ioclass without having to define all combinations explicitly on # the module-level. import __main__ PickleTestMemIO.__module__ = '__main__' PickleTestMemIO.__qualname__ = PickleTestMemIO.__name__ __main__.PickleTestMemIO = PickleTestMemIO submemio = PickleTestMemIO(buf, 80) submemio.seek(2) # We only support pickle protocol 2 and onward since we use extended # __reduce__ API of PEP 307 to provide pickling support. for proto in range(2, pickle.HIGHEST_PROTOCOL + 1): for obj in (memio, submemio): obj2 = pickle.loads(pickle.dumps(obj, protocol=proto)) self.assertEqual(obj.getvalue(), obj2.getvalue()) self.assertEqual(obj.__class__, obj2.__class__) self.assertEqual(obj.foo, obj2.foo) self.assertEqual(obj.tell(), obj2.tell()) obj2.close() self.assertRaises(ValueError, pickle.dumps, obj2, proto) del __main__.PickleTestMemIO class PyBytesIOTest(MemoryTestMixin, MemorySeekTestMixin, unittest.TestCase): # Test _pyio.BytesIO; class also inherited for testing C implementation UnsupportedOperation = pyio.UnsupportedOperation @staticmethod def buftype(s): return s.encode("ascii") ioclass = pyio.BytesIO EOF = b"" def test_getbuffer(self): memio = self.ioclass(b"1234567890") buf = memio.getbuffer() self.assertEqual(bytes(buf), b"1234567890") memio.seek(5) buf = memio.getbuffer() self.assertEqual(bytes(buf), b"1234567890") # Trying to change the size of the BytesIO while a buffer is exported # raises a BufferError. self.assertRaises(BufferError, memio.write, b'x' * 100) self.assertRaises(BufferError, memio.truncate) self.assertRaises(BufferError, memio.close) self.assertFalse(memio.closed) # Mutating the buffer updates the BytesIO buf[3:6] = b"abc" self.assertEqual(bytes(buf), b"123abc7890") self.assertEqual(memio.getvalue(), b"123abc7890") # After the buffer gets released, we can resize and close the BytesIO # again del buf support.gc_collect() memio.truncate() memio.close() self.assertRaises(ValueError, memio.getbuffer) def test_read1(self): buf = self.buftype("1234567890") self.assertEqual(self.ioclass(buf).read1(), buf) self.assertEqual(self.ioclass(buf).read1(-1), buf) def test_readinto(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) b = bytearray(b"hello") self.assertEqual(memio.readinto(b), 5) self.assertEqual(b, b"12345") self.assertEqual(memio.readinto(b), 5) self.assertEqual(b, b"67890") self.assertEqual(memio.readinto(b), 0) self.assertEqual(b, b"67890") b = bytearray(b"hello world") memio.seek(0) self.assertEqual(memio.readinto(b), 10) self.assertEqual(b, b"1234567890d") b = bytearray(b"") memio.seek(0) self.assertEqual(memio.readinto(b), 0) self.assertEqual(b, b"") self.assertRaises(TypeError, memio.readinto, '') import array a = array.array('b', b"hello world") memio = self.ioclass(buf) memio.readinto(a) self.assertEqual(a.tobytes(), b"1234567890d") memio.close() self.assertRaises(ValueError, memio.readinto, b) memio = self.ioclass(b"123") b = bytearray() memio.seek(42) memio.readinto(b) self.assertEqual(b, b"") def test_relative_seek(self): buf = self.buftype("1234567890") memio = self.ioclass(buf) self.assertEqual(memio.seek(-1, 1), 0) self.assertEqual(memio.seek(3, 1), 3) self.assertEqual(memio.seek(-4, 1), 0) self.assertEqual(memio.seek(-1, 2), 9) self.assertEqual(memio.seek(1, 1), 10) self.assertEqual(memio.seek(1, 2), 11) memio.seek(-3, 2) self.assertEqual(memio.read(), buf[-3:]) memio.seek(0) memio.seek(1, 1) self.assertEqual(memio.read(), buf[1:]) def test_unicode(self): memio = self.ioclass() self.assertRaises(TypeError, self.ioclass, "1234567890") self.assertRaises(TypeError, memio.write, "1234567890") self.assertRaises(TypeError, memio.writelines, ["1234567890"]) def test_bytes_array(self): buf = b"1234567890" import array a = array.array('b', list(buf)) memio = self.ioclass(a) self.assertEqual(memio.getvalue(), buf) self.assertEqual(memio.write(a), 10) self.assertEqual(memio.getvalue(), buf) def test_issue5449(self): buf = self.buftype("1234567890") self.ioclass(initial_bytes=buf) self.assertRaises(TypeError, self.ioclass, buf, foo=None) class TextIOTestMixin: def test_newlines_property(self): memio = self.ioclass(newline=None) # The C StringIO decodes newlines in write() calls, but the Python # implementation only does when reading. This function forces them to # be decoded for testing. def force_decode(): memio.seek(0) memio.read() self.assertEqual(memio.newlines, None) memio.write("a\n") force_decode() self.assertEqual(memio.newlines, "\n") memio.write("b\r\n") force_decode() self.assertEqual(memio.newlines, ("\n", "\r\n")) memio.write("c\rd") force_decode() self.assertEqual(memio.newlines, ("\r", "\n", "\r\n")) def test_relative_seek(self): memio = self.ioclass() self.assertRaises(OSError, memio.seek, -1, 1) self.assertRaises(OSError, memio.seek, 3, 1) self.assertRaises(OSError, memio.seek, -3, 1) self.assertRaises(OSError, memio.seek, -1, 2) self.assertRaises(OSError, memio.seek, 1, 1) self.assertRaises(OSError, memio.seek, 1, 2) def test_textio_properties(self): memio = self.ioclass() # These are just dummy values but we nevertheless check them for fear # of unexpected breakage. self.assertIsNone(memio.encoding) self.assertIsNone(memio.errors) self.assertFalse(memio.line_buffering) def test_newline_default(self): memio = self.ioclass("a\nb\r\nc\rd") self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"]) self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd") memio = self.ioclass() self.assertEqual(memio.write("a\nb\r\nc\rd"), 8) memio.seek(0) self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"]) self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd") def test_newline_none(self): # newline=None memio = self.ioclass("a\nb\r\nc\rd", newline=None) self.assertEqual(list(memio), ["a\n", "b\n", "c\n", "d"]) memio.seek(0) self.assertEqual(memio.read(1), "a") self.assertEqual(memio.read(2), "\nb") self.assertEqual(memio.read(2), "\nc") self.assertEqual(memio.read(1), "\n") self.assertEqual(memio.getvalue(), "a\nb\nc\nd") memio = self.ioclass(newline=None) self.assertEqual(2, memio.write("a\n")) self.assertEqual(3, memio.write("b\r\n")) self.assertEqual(3, memio.write("c\rd")) memio.seek(0) self.assertEqual(memio.read(), "a\nb\nc\nd") self.assertEqual(memio.getvalue(), "a\nb\nc\nd") memio = self.ioclass("a\r\nb", newline=None) self.assertEqual(memio.read(3), "a\nb") def test_newline_empty(self): # newline="" memio = self.ioclass("a\nb\r\nc\rd", newline="") self.assertEqual(list(memio), ["a\n", "b\r\n", "c\r", "d"]) memio.seek(0) self.assertEqual(memio.read(4), "a\nb\r") self.assertEqual(memio.read(2), "\nc") self.assertEqual(memio.read(1), "\r") self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd") memio = self.ioclass(newline="") self.assertEqual(2, memio.write("a\n")) self.assertEqual(2, memio.write("b\r")) self.assertEqual(2, memio.write("\nc")) self.assertEqual(2, memio.write("\rd")) memio.seek(0) self.assertEqual(list(memio), ["a\n", "b\r\n", "c\r", "d"]) self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd") def test_newline_lf(self): # newline="\n" memio = self.ioclass("a\nb\r\nc\rd", newline="\n") self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"]) self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd") memio = self.ioclass(newline="\n") self.assertEqual(memio.write("a\nb\r\nc\rd"), 8) memio.seek(0) self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"]) self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd") def test_newline_cr(self): # newline="\r" memio = self.ioclass("a\nb\r\nc\rd", newline="\r") self.assertEqual(memio.read(), "a\rb\r\rc\rd") memio.seek(0) self.assertEqual(list(memio), ["a\r", "b\r", "\r", "c\r", "d"]) self.assertEqual(memio.getvalue(), "a\rb\r\rc\rd") memio = self.ioclass(newline="\r") self.assertEqual(memio.write("a\nb\r\nc\rd"), 8) memio.seek(0) self.assertEqual(list(memio), ["a\r", "b\r", "\r", "c\r", "d"]) memio.seek(0) self.assertEqual(memio.readlines(), ["a\r", "b\r", "\r", "c\r", "d"]) self.assertEqual(memio.getvalue(), "a\rb\r\rc\rd") def test_newline_crlf(self): # newline="\r\n" memio = self.ioclass("a\nb\r\nc\rd", newline="\r\n") self.assertEqual(memio.read(), "a\r\nb\r\r\nc\rd") memio.seek(0) self.assertEqual(list(memio), ["a\r\n", "b\r\r\n", "c\rd"]) memio.seek(0) self.assertEqual(memio.readlines(), ["a\r\n", "b\r\r\n", "c\rd"]) self.assertEqual(memio.getvalue(), "a\r\nb\r\r\nc\rd") memio = self.ioclass(newline="\r\n") self.assertEqual(memio.write("a\nb\r\nc\rd"), 8) memio.seek(0) self.assertEqual(list(memio), ["a\r\n", "b\r\r\n", "c\rd"]) self.assertEqual(memio.getvalue(), "a\r\nb\r\r\nc\rd") def test_issue5265(self): # StringIO can duplicate newlines in universal newlines mode memio = self.ioclass("a\r\nb\r\n", newline=None) self.assertEqual(memio.read(5), "a\nb\n") self.assertEqual(memio.getvalue(), "a\nb\n") def test_newline_argument(self): self.assertRaises(TypeError, self.ioclass, newline=b"\n") self.assertRaises(ValueError, self.ioclass, newline="error") # These should not raise an error for newline in (None, "", "\n", "\r", "\r\n"): self.ioclass(newline=newline) class PyStringIOTest(MemoryTestMixin, MemorySeekTestMixin, TextIOTestMixin, unittest.TestCase): buftype = str ioclass = pyio.StringIO UnsupportedOperation = pyio.UnsupportedOperation EOF = "" def test_lone_surrogates(self): # Issue #20424 memio = self.ioclass('\ud800') self.assertEqual(memio.read(), '\ud800') memio = self.ioclass() memio.write('\ud800') self.assertEqual(memio.getvalue(), '\ud800') class PyStringIOPickleTest(TextIOTestMixin, unittest.TestCase): """Test if pickle restores properly the internal state of StringIO. """ buftype = str UnsupportedOperation = pyio.UnsupportedOperation EOF = "" class ioclass(pyio.StringIO): def __new__(cls, *args, **kwargs): return pickle.loads(pickle.dumps(pyio.StringIO(*args, **kwargs))) def __init__(self, *args, **kwargs): pass class CBytesIOTest(PyBytesIOTest): ioclass = io.BytesIO UnsupportedOperation = io.UnsupportedOperation def test_getstate(self): memio = self.ioclass() state = memio.__getstate__() self.assertEqual(len(state), 3) bytearray(state[0]) # Check if state[0] supports the buffer interface. self.assertIsInstance(state[1], int) if state[2] is not None: self.assertIsInstance(state[2], dict) memio.close() self.assertRaises(ValueError, memio.__getstate__) def test_setstate(self): # This checks whether __setstate__ does proper input validation. memio = self.ioclass() memio.__setstate__((b"no error", 0, None)) memio.__setstate__((bytearray(b"no error"), 0, None)) memio.__setstate__((b"no error", 0, {'spam': 3})) self.assertRaises(ValueError, memio.__setstate__, (b"", -1, None)) self.assertRaises(TypeError, memio.__setstate__, ("unicode", 0, None)) self.assertRaises(TypeError, memio.__setstate__, (b"", 0.0, None)) self.assertRaises(TypeError, memio.__setstate__, (b"", 0, 0)) self.assertRaises(TypeError, memio.__setstate__, (b"len-test", 0)) self.assertRaises(TypeError, memio.__setstate__) self.assertRaises(TypeError, memio.__setstate__, 0) memio.close() self.assertRaises(ValueError, memio.__setstate__, (b"closed", 0, None)) check_sizeof = support.check_sizeof @support.cpython_only def test_sizeof(self): basesize = support.calcobjsize('P2n2Pn') check = self.check_sizeof self.assertEqual(object.__sizeof__(io.BytesIO()), basesize) check(io.BytesIO(), basesize ) n = 1000 # use a variable to prevent constant folding check(io.BytesIO(b'a' * n), basesize + sys.getsizeof(b'a' * n)) # Various tests of copy-on-write behaviour for BytesIO. def _test_cow_mutation(self, mutation): # Common code for all BytesIO copy-on-write mutation tests. imm = b' ' * 1024 old_rc = sys.getrefcount(imm) memio = self.ioclass(imm) self.assertEqual(sys.getrefcount(imm), old_rc + 1) mutation(memio) self.assertEqual(sys.getrefcount(imm), old_rc) @support.cpython_only def test_cow_truncate(self): # Ensure truncate causes a copy. def mutation(memio): memio.truncate(1) self._test_cow_mutation(mutation) @support.cpython_only def test_cow_write(self): # Ensure write that would not cause a resize still results in a copy. def mutation(memio): memio.seek(0) memio.write(b'foo') self._test_cow_mutation(mutation) @support.cpython_only def test_cow_setstate(self): # __setstate__ should cause buffer to be released. memio = self.ioclass(b'foooooo') state = memio.__getstate__() def mutation(memio): memio.__setstate__(state) self._test_cow_mutation(mutation) @support.cpython_only def test_cow_mutable(self): # BytesIO should accept only Bytes for copy-on-write sharing, since # arbitrary buffer-exporting objects like bytearray() aren't guaranteed # to be immutable. ba = bytearray(1024) old_rc = sys.getrefcount(ba) memio = self.ioclass(ba) self.assertEqual(sys.getrefcount(ba), old_rc) class CStringIOTest(PyStringIOTest): ioclass = io.StringIO UnsupportedOperation = io.UnsupportedOperation # XXX: For the Python version of io.StringIO, this is highly # dependent on the encoding used for the underlying buffer. def test_widechar(self): buf = self.buftype("\U0002030a\U00020347") memio = self.ioclass(buf) self.assertEqual(memio.getvalue(), buf) self.assertEqual(memio.write(buf), len(buf)) self.assertEqual(memio.tell(), len(buf)) self.assertEqual(memio.getvalue(), buf) self.assertEqual(memio.write(buf), len(buf)) self.assertEqual(memio.tell(), len(buf) * 2) self.assertEqual(memio.getvalue(), buf + buf) def test_getstate(self): memio = self.ioclass() state = memio.__getstate__() self.assertEqual(len(state), 4) self.assertIsInstance(state[0], str) self.assertIsInstance(state[1], str) self.assertIsInstance(state[2], int) if state[3] is not None: self.assertIsInstance(state[3], dict) memio.close() self.assertRaises(ValueError, memio.__getstate__) def test_setstate(self): # This checks whether __setstate__ does proper input validation. memio = self.ioclass() memio.__setstate__(("no error", "\n", 0, None)) memio.__setstate__(("no error", "", 0, {'spam': 3})) self.assertRaises(ValueError, memio.__setstate__, ("", "f", 0, None)) self.assertRaises(ValueError, memio.__setstate__, ("", "", -1, None)) self.assertRaises(TypeError, memio.__setstate__, (b"", "", 0, None)) self.assertRaises(TypeError, memio.__setstate__, ("", b"", 0, None)) self.assertRaises(TypeError, memio.__setstate__, ("", "", 0.0, None)) self.assertRaises(TypeError, memio.__setstate__, ("", "", 0, 0)) self.assertRaises(TypeError, memio.__setstate__, ("len-test", 0)) self.assertRaises(TypeError, memio.__setstate__) self.assertRaises(TypeError, memio.__setstate__, 0) memio.close() self.assertRaises(ValueError, memio.__setstate__, ("closed", "", 0, None)) class CStringIOPickleTest(PyStringIOPickleTest): UnsupportedOperation = io.UnsupportedOperation class ioclass(io.StringIO): def __new__(cls, *args, **kwargs): return pickle.loads(pickle.dumps(io.StringIO(*args, **kwargs))) def __init__(self, *args, **kwargs): pass if __name__ == '__main__': unittest.main()
Close