003 File Manager
Current Path:
/usr/local/lib/python3.8/test
usr
/
local
/
lib
/
python3.8
/
test
/
📁
..
📄
Sine-1000Hz-300ms.aif
(60.25 KB)
📄
__init__.py
(47 B)
📄
__main__.py
(41 B)
📁
__pycache__
📄
_test_multiprocessing.py
(183.09 KB)
📄
allsans.pem
(9.87 KB)
📄
ann_module.py
(1.08 KB)
📄
ann_module2.py
(519 B)
📄
ann_module3.py
(448 B)
📁
audiodata
📄
audiotest.au
(27.48 KB)
📄
audiotests.py
(12.46 KB)
📄
audit-tests.py
(8.9 KB)
📄
autotest.py
(209 B)
📄
bad_coding.py
(24 B)
📄
bad_coding2.py
(30 B)
📄
bad_getattr.py
(61 B)
📄
bad_getattr2.py
(77 B)
📄
bad_getattr3.py
(139 B)
📄
badcert.pem
(1.88 KB)
📄
badkey.pem
(2.11 KB)
📄
badsyntax_3131.py
(32 B)
📄
badsyntax_future10.py
(95 B)
📄
badsyntax_future3.py
(172 B)
📄
badsyntax_future4.py
(153 B)
📄
badsyntax_future5.py
(184 B)
📄
badsyntax_future6.py
(161 B)
📄
badsyntax_future7.py
(196 B)
📄
badsyntax_future8.py
(122 B)
📄
badsyntax_future9.py
(142 B)
📄
badsyntax_pep3120.py
(14 B)
📄
bisect_cmd.py
(4.85 KB)
📄
bytecode_helper.py
(1.56 KB)
📁
capath
📄
cfgparser.1
(67 B)
📄
cfgparser.2
(19.02 KB)
📄
cfgparser.3
(1.55 KB)
📁
cjkencodings
📄
clinic.test
(94.65 KB)
📄
cmath_testcases.txt
(141.05 KB)
📄
coding20731.py
(22 B)
📄
curses_tests.py
(1.22 KB)
📁
data
📄
dataclass_module_1.py
(837 B)
📄
dataclass_module_1_str.py
(835 B)
📄
dataclass_module_2.py
(756 B)
📄
dataclass_module_2_str.py
(754 B)
📄
dataclass_textanno.py
(126 B)
📄
datetimetester.py
(239.84 KB)
📁
decimaltestdata
📄
dis_module.py
(76 B)
📄
doctest_aliases.py
(240 B)
📄
double_const.py
(1.18 KB)
📁
dtracedata
📁
eintrdata
📄
empty.vbs
(70 B)
📁
encoded_modules
📄
exception_hierarchy.txt
(1.78 KB)
📄
ffdh3072.pem
(2.16 KB)
📄
final_a.py
(411 B)
📄
final_b.py
(411 B)
📄
floating_points.txt
(15.92 KB)
📄
fork_wait.py
(2.53 KB)
📄
formatfloat_testcases.txt
(7.45 KB)
📄
future_test1.py
(229 B)
📄
future_test2.py
(149 B)
📄
gdb_sample.py
(153 B)
📄
good_getattr.py
(198 B)
📄
idnsans.pem
(9.71 KB)
📄
ieee754.txt
(3.21 KB)
📁
imghdrdata
📄
imp_dummy.py
(63 B)
📄
inspect_fodder.py
(1.88 KB)
📄
inspect_fodder2.py
(2.06 KB)
📄
keycert.passwd.pem
(4.13 KB)
📄
keycert.pem
(3.96 KB)
📄
keycert2.pem
(3.98 KB)
📄
keycert3.pem
(9.23 KB)
📄
keycert4.pem
(9.24 KB)
📄
keycertecc.pem
(5.5 KB)
📁
libregrtest
📄
list_tests.py
(16.54 KB)
📄
lock_tests.py
(28.26 KB)
📄
mailcap.txt
(1.24 KB)
📄
make_ssl_certs.py
(9.25 KB)
📄
mapping_tests.py
(21.75 KB)
📄
math_testcases.txt
(23.19 KB)
📄
memory_watchdog.py
(859 B)
📄
mime.types
(47.37 KB)
📄
mock_socket.py
(3.53 KB)
📄
mod_generics_cache.py
(1.13 KB)
📄
mp_fork_bomb.py
(448 B)
📄
mp_preload.py
(351 B)
📄
multibytecodec_support.py
(14.17 KB)
📄
nokia.pem
(1.88 KB)
📄
nosan.pem
(7.54 KB)
📄
nullbytecert.pem
(5.31 KB)
📄
nullcert.pem
(0 B)
📄
outstanding_bugs.py
(370 B)
📄
pickletester.py
(135.99 KB)
📄
profilee.py
(2.97 KB)
📄
pstats.pck
(65.05 KB)
📄
pycacert.pem
(5.53 KB)
📄
pycakey.pem
(2.43 KB)
📄
pyclbr_input.py
(648 B)
📄
pydoc_mod.py
(713 B)
📄
pydocfodder.py
(6.18 KB)
📄
pythoninfo.py
(20.34 KB)
📄
randv2_32.pck
(7.34 KB)
📄
randv2_64.pck
(7.19 KB)
📄
randv3.pck
(7.82 KB)
📄
re_tests.py
(25.93 KB)
📄
recursion.tar
(516 B)
📄
regrtest.py
(1.34 KB)
📄
relimport.py
(27 B)
📄
reperf.py
(538 B)
📄
revocation.crl
(800 B)
📄
sample_doctest.py
(1.02 KB)
📄
sample_doctest_no_docstrings.py
(227 B)
📄
sample_doctest_no_doctests.py
(269 B)
📄
secp384r1.pem
(256 B)
📄
selfsigned_pythontestdotnet.pem
(2.08 KB)
📄
seq_tests.py
(14.18 KB)
📄
sgml_input.html
(8.1 KB)
📄
signalinterproctester.py
(2.7 KB)
📁
sndhdrdata
📄
sortperf.py
(4.69 KB)
📄
ssl_cert.pem
(1.53 KB)
📄
ssl_key.passwd.pem
(2.59 KB)
📄
ssl_key.pem
(2.43 KB)
📄
ssl_servers.py
(7.04 KB)
📄
ssltests.py
(1.03 KB)
📄
string_tests.py
(64.65 KB)
📁
subprocessdata
📁
support
📄
talos-2019-0758.pem
(1.3 KB)
📄
test___all__.py
(4.12 KB)
📄
test___future__.py
(2.36 KB)
📄
test__locale.py
(7.83 KB)
📄
test__opcode.py
(3.03 KB)
📄
test__osx_support.py
(13.66 KB)
📄
test__xxsubinterpreters.py
(68.7 KB)
📄
test_abc.py
(18 KB)
📄
test_abstract_numbers.py
(1.49 KB)
📄
test_aifc.py
(17.68 KB)
📄
test_argparse.py
(172.67 KB)
📄
test_array.py
(52.57 KB)
📄
test_asdl_parser.py
(4.15 KB)
📄
test_ast.py
(88.53 KB)
📄
test_asyncgen.py
(31.44 KB)
📄
test_asynchat.py
(9.28 KB)
📁
test_asyncio
📄
test_asyncore.py
(25.81 KB)
📄
test_atexit.py
(5.81 KB)
📄
test_audioop.py
(28.24 KB)
📄
test_audit.py
(4.05 KB)
📄
test_augassign.py
(7.68 KB)
📄
test_base64.py
(30.17 KB)
📄
test_baseexception.py
(6.86 KB)
📄
test_bdb.py
(41.55 KB)
📄
test_bigaddrspace.py
(2.92 KB)
📄
test_bigmem.py
(44.88 KB)
📄
test_binascii.py
(18 KB)
📄
test_binhex.py
(1.79 KB)
📄
test_binop.py
(14.14 KB)
📄
test_bisect.py
(13.63 KB)
📄
test_bool.py
(12.48 KB)
📄
test_buffer.py
(160.04 KB)
📄
test_bufio.py
(2.54 KB)
📄
test_builtin.py
(78.38 KB)
📄
test_bytes.py
(72.23 KB)
📄
test_bz2.py
(36.76 KB)
📄
test_c_locale_coercion.py
(18.82 KB)
📄
test_calendar.py
(48.71 KB)
📄
test_call.py
(20.88 KB)
📄
test_capi.py
(30.46 KB)
📄
test_cgi.py
(22.15 KB)
📄
test_cgitb.py
(2.5 KB)
📄
test_charmapcodec.py
(1.68 KB)
📄
test_class.py
(17.42 KB)
📄
test_clinic.py
(21.71 KB)
📄
test_cmath.py
(24.07 KB)
📄
test_cmd.py
(6.1 KB)
📄
test_cmd_line.py
(33.72 KB)
📄
test_cmd_line_script.py
(31.46 KB)
📄
test_code.py
(13.66 KB)
📄
test_code_module.py
(5.51 KB)
📄
test_codeccallbacks.py
(40.97 KB)
📄
test_codecencodings_cn.py
(3.86 KB)
📄
test_codecencodings_hk.py
(701 B)
📄
test_codecencodings_iso2022.py
(1.36 KB)
📄
test_codecencodings_jp.py
(4.79 KB)
📄
test_codecencodings_kr.py
(2.96 KB)
📄
test_codecencodings_tw.py
(681 B)
📄
test_codecmaps_cn.py
(746 B)
📄
test_codecmaps_hk.py
(386 B)
📄
test_codecmaps_jp.py
(1.7 KB)
📄
test_codecmaps_kr.py
(1.16 KB)
📄
test_codecmaps_tw.py
(705 B)
📄
test_codecs.py
(129.38 KB)
📄
test_codeop.py
(7.97 KB)
📄
test_collections.py
(83.93 KB)
📄
test_colorsys.py
(3.83 KB)
📄
test_compare.py
(3.82 KB)
📄
test_compile.py
(36.48 KB)
📄
test_compileall.py
(26.7 KB)
📄
test_complex.py
(30.24 KB)
📄
test_concurrent_futures.py
(44.93 KB)
📄
test_configparser.py
(84.93 KB)
📄
test_contains.py
(3.49 KB)
📄
test_context.py
(29.33 KB)
📄
test_contextlib.py
(32.54 KB)
📄
test_contextlib_async.py
(14.82 KB)
📄
test_copy.py
(25.81 KB)
📄
test_copyreg.py
(4.39 KB)
📄
test_coroutines.py
(62.52 KB)
📄
test_cprofile.py
(6.33 KB)
📄
test_crashers.py
(1.17 KB)
📄
test_crypt.py
(3.97 KB)
📄
test_csv.py
(47.77 KB)
📄
test_ctypes.py
(184 B)
📄
test_curses.py
(45.47 KB)
📄
test_dataclasses.py
(108.8 KB)
📄
test_datetime.py
(2.15 KB)
📄
test_dbm.py
(6.45 KB)
📄
test_dbm_dumb.py
(10.61 KB)
📄
test_dbm_gnu.py
(6.22 KB)
📄
test_dbm_ndbm.py
(5.05 KB)
📄
test_decimal.py
(206.63 KB)
📄
test_decorators.py
(9.48 KB)
📄
test_defaultdict.py
(5.88 KB)
📄
test_deque.py
(34.46 KB)
📄
test_descr.py
(190.58 KB)
📄
test_descrtut.py
(11.53 KB)
📄
test_devpoll.py
(4.5 KB)
📄
test_dict.py
(45 KB)
📄
test_dict_version.py
(5.88 KB)
📄
test_dictcomps.py
(4.42 KB)
📄
test_dictviews.py
(11.68 KB)
📄
test_difflib.py
(19.64 KB)
📄
test_difflib_expect.html
(100.85 KB)
📄
test_dis.py
(48.4 KB)
📄
test_distutils.py
(375 B)
📄
test_doctest.py
(98.67 KB)
📄
test_doctest.txt
(300 B)
📄
test_doctest2.py
(2.3 KB)
📄
test_doctest2.txt
(392 B)
📄
test_doctest3.txt
(82 B)
📄
test_doctest4.txt
(244 B)
📄
test_docxmlrpc.py
(8.67 KB)
📄
test_dtrace.py
(5.23 KB)
📄
test_dummy_thread.py
(9.69 KB)
📄
test_dummy_threading.py
(1.7 KB)
📄
test_dynamic.py
(4.29 KB)
📄
test_dynamicclassattribute.py
(9.57 KB)
📄
test_eintr.py
(1.32 KB)
📁
test_email
📄
test_embed.py
(49.23 KB)
📄
test_ensurepip.py
(9.83 KB)
📄
test_enum.py
(113.68 KB)
📄
test_enumerate.py
(8.46 KB)
📄
test_eof.py
(1.94 KB)
📄
test_epoll.py
(9.03 KB)
📄
test_errno.py
(1.04 KB)
📄
test_exception_hierarchy.py
(7.43 KB)
📄
test_exception_variations.py
(3.86 KB)
📄
test_exceptions.py
(49.81 KB)
📄
test_extcall.py
(13.49 KB)
📄
test_faulthandler.py
(28.13 KB)
📄
test_fcntl.py
(6.21 KB)
📄
test_file.py
(11.02 KB)
📄
test_file_eintr.py
(10.6 KB)
📄
test_filecmp.py
(8.69 KB)
📄
test_fileinput.py
(37.33 KB)
📄
test_fileio.py
(19.96 KB)
📄
test_finalization.py
(14.66 KB)
📄
test_float.py
(63.41 KB)
📄
test_flufl.py
(1.32 KB)
📄
test_fnmatch.py
(5.07 KB)
📄
test_fork1.py
(3.67 KB)
📄
test_format.py
(22.58 KB)
📄
test_fractions.py
(29.83 KB)
📄
test_frame.py
(5.67 KB)
📄
test_frozen.py
(943 B)
📄
test_fstring.py
(46.16 KB)
📄
test_ftplib.py
(39.71 KB)
📄
test_funcattrs.py
(13.54 KB)
📄
test_functools.py
(90.59 KB)
📄
test_future.py
(11.9 KB)
📄
test_future3.py
(490 B)
📄
test_future4.py
(222 B)
📄
test_future5.py
(510 B)
📄
test_gc.py
(40.49 KB)
📄
test_gdb.py
(40.88 KB)
📄
test_generator_stop.py
(943 B)
📄
test_generators.py
(58.51 KB)
📄
test_genericclass.py
(9.28 KB)
📄
test_genericpath.py
(21.7 KB)
📄
test_genexps.py
(7.12 KB)
📄
test_getargs2.py
(50 KB)
📄
test_getopt.py
(6.75 KB)
📄
test_getpass.py
(6.29 KB)
📄
test_gettext.py
(41.38 KB)
📄
test_glob.py
(13.03 KB)
📄
test_global.py
(1.31 KB)
📄
test_grammar.py
(57.5 KB)
📄
test_grp.py
(3.54 KB)
📄
test_gzip.py
(29.9 KB)
📄
test_hash.py
(11.45 KB)
📄
test_hashlib.py
(39.43 KB)
📄
test_heapq.py
(16.4 KB)
📄
test_hmac.py
(22.24 KB)
📄
test_html.py
(4.23 KB)
📄
test_htmlparser.py
(33.19 KB)
📄
test_http_cookiejar.py
(78.36 KB)
📄
test_http_cookies.py
(18.71 KB)
📄
test_httplib.py
(76.98 KB)
📄
test_httpservers.py
(45.24 KB)
📄
test_idle.py
(825 B)
📄
test_imaplib.py
(38.95 KB)
📄
test_imghdr.py
(4.66 KB)
📄
test_imp.py
(17.73 KB)
📁
test_import
📁
test_importlib
📄
test_index.py
(8.37 KB)
📄
test_inspect.py
(151.79 KB)
📄
test_int.py
(20.8 KB)
📄
test_int_literal.py
(6.89 KB)
📄
test_io.py
(163.94 KB)
📄
test_ioctl.py
(3.2 KB)
📄
test_ipaddress.py
(90.98 KB)
📄
test_isinstance.py
(10.25 KB)
📄
test_iter.py
(31.81 KB)
📄
test_iterlen.py
(7.1 KB)
📄
test_itertools.py
(101.41 KB)
📁
test_json
📄
test_keyword.py
(1.23 KB)
📄
test_keywordonlyarg.py
(6.85 KB)
📄
test_kqueue.py
(8.76 KB)
📄
test_largefile.py
(6.83 KB)
📄
test_lib2to3.py
(101 B)
📄
test_linecache.py
(7.79 KB)
📄
test_list.py
(7.4 KB)
📄
test_listcomps.py
(3.76 KB)
📄
test_lltrace.py
(1012 B)
📄
test_locale.py
(23.87 KB)
📄
test_logging.py
(182.43 KB)
📄
test_long.py
(53.21 KB)
📄
test_longexp.py
(233 B)
📄
test_lzma.py
(87.92 KB)
📄
test_mailbox.py
(91.92 KB)
📄
test_mailcap.py
(9.88 KB)
📄
test_marshal.py
(20.57 KB)
📄
test_math.py
(82.18 KB)
📄
test_memoryio.py
(31.48 KB)
📄
test_memoryview.py
(17.78 KB)
📄
test_metaclass.py
(6.2 KB)
📄
test_mimetypes.py
(12.14 KB)
📄
test_minidom.py
(66.95 KB)
📄
test_mmap.py
(29.04 KB)
📄
test_module.py
(10.3 KB)
📄
test_modulefinder.py
(12.2 KB)
📄
test_msilib.py
(5.06 KB)
📄
test_multibytecodec.py
(15.04 KB)
📄
test_multiprocessing_fork.py
(477 B)
📄
test_multiprocessing_forkserver.py
(392 B)
📄
test_multiprocessing_main_handling.py
(11.45 KB)
📄
test_multiprocessing_spawn.py
(277 B)
📄
test_named_expressions.py
(16.51 KB)
📄
test_netrc.py
(5.96 KB)
📄
test_nis.py
(1.13 KB)
📄
test_nntplib.py
(61.7 KB)
📄
test_normalization.py
(3.66 KB)
📄
test_ntpath.py
(35.08 KB)
📄
test_numeric_tower.py
(7.18 KB)
📄
test_opcodes.py
(3.61 KB)
📄
test_openpty.py
(600 B)
📄
test_operator.py
(23.54 KB)
📄
test_optparse.py
(60.99 KB)
📄
test_ordered_dict.py
(30.22 KB)
📄
test_os.py
(150.53 KB)
📄
test_ossaudiodev.py
(7.06 KB)
📄
test_osx_env.py
(1.3 KB)
📄
test_parser.py
(35.72 KB)
📄
test_pathlib.py
(97.12 KB)
📄
test_pdb.py
(55.36 KB)
📄
test_peepholer.py
(19.41 KB)
📄
test_pickle.py
(19.16 KB)
📄
test_picklebuffer.py
(4.96 KB)
📄
test_pickletools.py
(4.33 KB)
📄
test_pipes.py
(6.59 KB)
📄
test_pkg.py
(9.59 KB)
📄
test_pkgimport.py
(2.67 KB)
📄
test_pkgutil.py
(19.25 KB)
📄
test_platform.py
(14.31 KB)
📄
test_plistlib.py
(41.43 KB)
📄
test_poll.py
(7.23 KB)
📄
test_popen.py
(1.98 KB)
📄
test_poplib.py
(16.97 KB)
📄
test_positional_only_arg.py
(17.5 KB)
📄
test_posix.py
(75.76 KB)
📄
test_posixpath.py
(29.19 KB)
📄
test_pow.py
(5.44 KB)
📄
test_pprint.py
(43.85 KB)
📄
test_print.py
(7.37 KB)
📄
test_profile.py
(8.72 KB)
📄
test_property.py
(8.77 KB)
📄
test_pstats.py
(3.04 KB)
📄
test_pty.py
(11.97 KB)
📄
test_pulldom.py
(12.66 KB)
📄
test_pwd.py
(4.17 KB)
📄
test_py_compile.py
(10.78 KB)
📄
test_pyclbr.py
(10 KB)
📄
test_pydoc.py
(56.98 KB)
📄
test_pyexpat.py
(26.54 KB)
📄
test_queue.py
(20.36 KB)
📄
test_quopri.py
(7.78 KB)
📄
test_raise.py
(12.86 KB)
📄
test_random.py
(45.59 KB)
📄
test_range.py
(23.35 KB)
📄
test_re.py
(106.41 KB)
📄
test_readline.py
(12.95 KB)
📄
test_regrtest.py
(46.36 KB)
📄
test_repl.py
(3.96 KB)
📄
test_reprlib.py
(15.12 KB)
📄
test_resource.py
(7.02 KB)
📄
test_richcmp.py
(11.91 KB)
📄
test_rlcompleter.py
(6.3 KB)
📄
test_robotparser.py
(10.69 KB)
📄
test_runpy.py
(33.86 KB)
📄
test_sax.py
(46.9 KB)
📄
test_sched.py
(6.41 KB)
📄
test_scope.py
(19.7 KB)
📄
test_script_helper.py
(5.78 KB)
📄
test_secrets.py
(4.28 KB)
📄
test_select.py
(2.69 KB)
📄
test_selectors.py
(17.79 KB)
📄
test_set.py
(64.41 KB)
📄
test_setcomps.py
(3.7 KB)
📄
test_shelve.py
(6.24 KB)
📄
test_shlex.py
(13.29 KB)
📄
test_shutil.py
(101.55 KB)
📄
test_signal.py
(46.62 KB)
📄
test_site.py
(24.71 KB)
📄
test_slice.py
(8.25 KB)
📄
test_smtpd.py
(40.14 KB)
📄
test_smtplib.py
(56.51 KB)
📄
test_smtpnet.py
(2.87 KB)
📄
test_sndhdr.py
(1.43 KB)
📄
test_socket.py
(232.71 KB)
📄
test_socketserver.py
(17.7 KB)
📄
test_sort.py
(13.42 KB)
📄
test_source_encoding.py
(7.89 KB)
📄
test_spwd.py
(2.71 KB)
📄
test_sqlite.py
(948 B)
📄
test_ssl.py
(203.3 KB)
📄
test_startfile.py
(1.29 KB)
📄
test_stat.py
(8.3 KB)
📄
test_statistics.py
(106.5 KB)
📄
test_strftime.py
(7.54 KB)
📄
test_string.py
(19.8 KB)
📄
test_string_literals.py
(9.88 KB)
📄
test_stringprep.py
(3.04 KB)
📄
test_strptime.py
(34.42 KB)
📄
test_strtod.py
(20.06 KB)
📄
test_struct.py
(34.41 KB)
📄
test_structmembers.py
(4.7 KB)
📄
test_structseq.py
(3.87 KB)
📄
test_subclassinit.py
(8.12 KB)
📄
test_subprocess.py
(142.64 KB)
📄
test_sunau.py
(6.07 KB)
📄
test_sundry.py
(2.07 KB)
📄
test_super.py
(9.6 KB)
📄
test_support.py
(24.12 KB)
📄
test_symbol.py
(2.06 KB)
📄
test_symtable.py
(9.13 KB)
📄
test_syntax.py
(25.75 KB)
📄
test_sys.py
(55.24 KB)
📄
test_sys_setprofile.py
(12.31 KB)
📄
test_sys_settrace.py
(43.08 KB)
📄
test_sysconfig.py
(17.01 KB)
📄
test_syslog.py
(1.15 KB)
📄
test_tabnanny.py
(13.44 KB)
📄
test_tarfile.py
(98.31 KB)
📄
test_tcl.py
(30.74 KB)
📄
test_telnetlib.py
(12.7 KB)
📄
test_tempfile.py
(52.57 KB)
📄
test_textwrap.py
(38.84 KB)
📄
test_thread.py
(8.41 KB)
📄
test_threaded_import.py
(8.9 KB)
📄
test_threadedtempfile.py
(1.85 KB)
📄
test_threading.py
(47.52 KB)
📄
test_threading_local.py
(6.09 KB)
📄
test_threadsignals.py
(10.09 KB)
📄
test_time.py
(38.43 KB)
📄
test_timeit.py
(14.8 KB)
📄
test_timeout.py
(11.19 KB)
📄
test_tix.py
(756 B)
📄
test_tk.py
(362 B)
📄
test_tokenize.py
(63.18 KB)
📁
test_tools
📄
test_trace.py
(19.89 KB)
📄
test_traceback.py
(46.97 KB)
📄
test_tracemalloc.py
(37.41 KB)
📄
test_ttk_guionly.py
(746 B)
📄
test_ttk_textonly.py
(299 B)
📄
test_tuple.py
(18.85 KB)
📄
test_turtle.py
(12.79 KB)
📄
test_type_comments.py
(10.13 KB)
📄
test_typechecks.py
(2.55 KB)
📄
test_types.py
(58 KB)
📄
test_typing.py
(122.05 KB)
📄
test_ucn.py
(9.35 KB)
📄
test_unary.py
(1.63 KB)
📄
test_unicode.py
(129.94 KB)
📄
test_unicode_file.py
(5.74 KB)
📄
test_unicode_file_functions.py
(6.84 KB)
📄
test_unicode_identifiers.py
(891 B)
📄
test_unicodedata.py
(12.7 KB)
📄
test_unittest.py
(286 B)
📄
test_univnewlines.py
(3.83 KB)
📄
test_unpack.py
(3.01 KB)
📄
test_unpack_ex.py
(8.73 KB)
📄
test_urllib.py
(71.24 KB)
📄
test_urllib2.py
(76.95 KB)
📄
test_urllib2_localnet.py
(24.24 KB)
📄
test_urllib2net.py
(12.39 KB)
📄
test_urllib_response.py
(1.69 KB)
📄
test_urllibnet.py
(8.9 KB)
📄
test_urlparse.py
(64.87 KB)
📄
test_userdict.py
(7.64 KB)
📄
test_userlist.py
(1.97 KB)
📄
test_userstring.py
(2.4 KB)
📄
test_utf8_mode.py
(9.22 KB)
📄
test_utf8source.py
(1.15 KB)
📄
test_uu.py
(8.02 KB)
📄
test_uuid.py
(35.74 KB)
📄
test_venv.py
(20.46 KB)
📄
test_wait3.py
(1.16 KB)
📄
test_wait4.py
(1.15 KB)
📁
test_warnings
📄
test_wave.py
(6.57 KB)
📄
test_weakref.py
(69.47 KB)
📄
test_weakset.py
(15.03 KB)
📄
test_webbrowser.py
(10.47 KB)
📄
test_winconsoleio.py
(6.14 KB)
📄
test_winreg.py
(21.38 KB)
📄
test_winsound.py
(4.57 KB)
📄
test_with.py
(25.78 KB)
📄
test_wsgiref.py
(30.1 KB)
📄
test_xdrlib.py
(2.17 KB)
📄
test_xml_dom_minicompat.py
(4.18 KB)
📄
test_xml_etree.py
(147.87 KB)
📄
test_xml_etree_c.py
(8.06 KB)
📄
test_xmlrpc.py
(55.96 KB)
📄
test_xmlrpc_net.py
(1015 B)
📄
test_xxtestfuzz.py
(670 B)
📄
test_yield_from.py
(30.01 KB)
📄
test_zipapp.py
(15.92 KB)
📄
test_zipfile.py
(115.45 KB)
📄
test_zipfile64.py
(5.8 KB)
📄
test_zipimport.py
(29.28 KB)
📄
test_zipimport_support.py
(10.44 KB)
📄
test_zlib.py
(34.48 KB)
📄
testcodec.py
(1.02 KB)
📄
testtar.tar
(425 KB)
📄
tf_inherit_check.py
(714 B)
📄
threaded_import_hangers.py
(1.45 KB)
📄
time_hashlib.py
(2.87 KB)
📄
tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt
(443 B)
📄
tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt
(302 B)
📄
tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt
(421 B)
📄
tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt
(326 B)
📄
tokenize_tests.txt
(2.65 KB)
📁
tracedmodules
📄
win_console_handler.py
(1.38 KB)
📁
xmltestdata
📄
xmltests.py
(499 B)
📄
zip_cp437_header.zip
(270 B)
📄
zipdir.zip
(374 B)
📁
ziptestdata
Editing: test_pprint.py
# -*- coding: utf-8 -*- import collections import io import itertools import pprint import random import test.support import test.test_set import types import unittest # list, tuple and dict subclasses that do or don't overwrite __repr__ class list2(list): pass class list3(list): def __repr__(self): return list.__repr__(self) class tuple2(tuple): pass class tuple3(tuple): def __repr__(self): return tuple.__repr__(self) class set2(set): pass class set3(set): def __repr__(self): return set.__repr__(self) class frozenset2(frozenset): pass class frozenset3(frozenset): def __repr__(self): return frozenset.__repr__(self) class dict2(dict): pass class dict3(dict): def __repr__(self): return dict.__repr__(self) class Unorderable: def __repr__(self): return str(id(self)) # Class Orderable is orderable with any type class Orderable: def __init__(self, hash): self._hash = hash def __lt__(self, other): return False def __gt__(self, other): return self != other def __le__(self, other): return self == other def __ge__(self, other): return True def __eq__(self, other): return self is other def __ne__(self, other): return self is not other def __hash__(self): return self._hash class QueryTestCase(unittest.TestCase): def setUp(self): self.a = list(range(100)) self.b = list(range(200)) self.a[-12] = self.b def test_init(self): pp = pprint.PrettyPrinter() pp = pprint.PrettyPrinter(indent=4, width=40, depth=5, stream=io.StringIO(), compact=True) pp = pprint.PrettyPrinter(4, 40, 5, io.StringIO()) pp = pprint.PrettyPrinter(sort_dicts=False) with self.assertRaises(TypeError): pp = pprint.PrettyPrinter(4, 40, 5, io.StringIO(), True) self.assertRaises(ValueError, pprint.PrettyPrinter, indent=-1) self.assertRaises(ValueError, pprint.PrettyPrinter, depth=0) self.assertRaises(ValueError, pprint.PrettyPrinter, depth=-1) self.assertRaises(ValueError, pprint.PrettyPrinter, width=0) def test_basic(self): # Verify .isrecursive() and .isreadable() w/o recursion pp = pprint.PrettyPrinter() for safe in (2, 2.0, 2j, "abc", [3], (2,2), {3: 3}, b"def", bytearray(b"ghi"), True, False, None, ..., self.a, self.b): # module-level convenience functions self.assertFalse(pprint.isrecursive(safe), "expected not isrecursive for %r" % (safe,)) self.assertTrue(pprint.isreadable(safe), "expected isreadable for %r" % (safe,)) # PrettyPrinter methods self.assertFalse(pp.isrecursive(safe), "expected not isrecursive for %r" % (safe,)) self.assertTrue(pp.isreadable(safe), "expected isreadable for %r" % (safe,)) def test_knotted(self): # Verify .isrecursive() and .isreadable() w/ recursion # Tie a knot. self.b[67] = self.a # Messy dict. self.d = {} self.d[0] = self.d[1] = self.d[2] = self.d pp = pprint.PrettyPrinter() for icky in self.a, self.b, self.d, (self.d, self.d): self.assertTrue(pprint.isrecursive(icky), "expected isrecursive") self.assertFalse(pprint.isreadable(icky), "expected not isreadable") self.assertTrue(pp.isrecursive(icky), "expected isrecursive") self.assertFalse(pp.isreadable(icky), "expected not isreadable") # Break the cycles. self.d.clear() del self.a[:] del self.b[:] for safe in self.a, self.b, self.d, (self.d, self.d): # module-level convenience functions self.assertFalse(pprint.isrecursive(safe), "expected not isrecursive for %r" % (safe,)) self.assertTrue(pprint.isreadable(safe), "expected isreadable for %r" % (safe,)) # PrettyPrinter methods self.assertFalse(pp.isrecursive(safe), "expected not isrecursive for %r" % (safe,)) self.assertTrue(pp.isreadable(safe), "expected isreadable for %r" % (safe,)) def test_unreadable(self): # Not recursive but not readable anyway pp = pprint.PrettyPrinter() for unreadable in type(3), pprint, pprint.isrecursive: # module-level convenience functions self.assertFalse(pprint.isrecursive(unreadable), "expected not isrecursive for %r" % (unreadable,)) self.assertFalse(pprint.isreadable(unreadable), "expected not isreadable for %r" % (unreadable,)) # PrettyPrinter methods self.assertFalse(pp.isrecursive(unreadable), "expected not isrecursive for %r" % (unreadable,)) self.assertFalse(pp.isreadable(unreadable), "expected not isreadable for %r" % (unreadable,)) def test_same_as_repr(self): # Simple objects, small containers and classes that overwrite __repr__ # For those the result should be the same as repr(). # Ahem. The docs don't say anything about that -- this appears to # be testing an implementation quirk. Starting in Python 2.5, it's # not true for dicts: pprint always sorts dicts by key now; before, # it sorted a dict display if and only if the display required # multiple lines. For that reason, dicts with more than one element # aren't tested here. for simple in (0, 0, 0+0j, 0.0, "", b"", bytearray(), (), tuple2(), tuple3(), [], list2(), list3(), set(), set2(), set3(), frozenset(), frozenset2(), frozenset3(), {}, dict2(), dict3(), self.assertTrue, pprint, -6, -6, -6-6j, -1.5, "x", b"x", bytearray(b"x"), (3,), [3], {3: 6}, (1,2), [3,4], {5: 6}, tuple2((1,2)), tuple3((1,2)), tuple3(range(100)), [3,4], list2([3,4]), list3([3,4]), list3(range(100)), set({7}), set2({7}), set3({7}), frozenset({8}), frozenset2({8}), frozenset3({8}), dict2({5: 6}), dict3({5: 6}), range(10, -11, -1), True, False, None, ..., ): native = repr(simple) self.assertEqual(pprint.pformat(simple), native) self.assertEqual(pprint.pformat(simple, width=1, indent=0) .replace('\n', ' '), native) self.assertEqual(pprint.saferepr(simple), native) def test_basic_line_wrap(self): # verify basic line-wrapping operation o = {'RPM_cal': 0, 'RPM_cal2': 48059, 'Speed_cal': 0, 'controldesk_runtime_us': 0, 'main_code_runtime_us': 0, 'read_io_runtime_us': 0, 'write_io_runtime_us': 43690} exp = """\ {'RPM_cal': 0, 'RPM_cal2': 48059, 'Speed_cal': 0, 'controldesk_runtime_us': 0, 'main_code_runtime_us': 0, 'read_io_runtime_us': 0, 'write_io_runtime_us': 43690}""" for type in [dict, dict2]: self.assertEqual(pprint.pformat(type(o)), exp) o = range(100) exp = '[%s]' % ',\n '.join(map(str, o)) for type in [list, list2]: self.assertEqual(pprint.pformat(type(o)), exp) o = tuple(range(100)) exp = '(%s)' % ',\n '.join(map(str, o)) for type in [tuple, tuple2]: self.assertEqual(pprint.pformat(type(o)), exp) # indent parameter o = range(100) exp = '[ %s]' % ',\n '.join(map(str, o)) for type in [list, list2]: self.assertEqual(pprint.pformat(type(o), indent=4), exp) def test_nested_indentations(self): o1 = list(range(10)) o2 = dict(first=1, second=2, third=3) o = [o1, o2] expected = """\ [ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], {'first': 1, 'second': 2, 'third': 3}]""" self.assertEqual(pprint.pformat(o, indent=4, width=42), expected) expected = """\ [ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], { 'first': 1, 'second': 2, 'third': 3}]""" self.assertEqual(pprint.pformat(o, indent=4, width=41), expected) def test_width(self): expected = """\ [[[[[[1, 2, 3], '1 2']]]], {1: [1, 2, 3], 2: [12, 34]}, 'abc def ghi', ('ab cd ef',), set2({1, 23}), [[[[[1, 2, 3], '1 2']]]]]""" o = eval(expected) self.assertEqual(pprint.pformat(o, width=15), expected) self.assertEqual(pprint.pformat(o, width=16), expected) self.assertEqual(pprint.pformat(o, width=25), expected) self.assertEqual(pprint.pformat(o, width=14), """\ [[[[[[1, 2, 3], '1 ' '2']]]], {1: [1, 2, 3], 2: [12, 34]}, 'abc def ' 'ghi', ('ab cd ' 'ef',), set2({1, 23}), [[[[[1, 2, 3], '1 ' '2']]]]]""") def test_sorted_dict(self): # Starting in Python 2.5, pprint sorts dict displays by key regardless # of how small the dictionary may be. # Before the change, on 32-bit Windows pformat() gave order # 'a', 'c', 'b' here, so this test failed. d = {'a': 1, 'b': 1, 'c': 1} self.assertEqual(pprint.pformat(d), "{'a': 1, 'b': 1, 'c': 1}") self.assertEqual(pprint.pformat([d, d]), "[{'a': 1, 'b': 1, 'c': 1}, {'a': 1, 'b': 1, 'c': 1}]") # The next one is kind of goofy. The sorted order depends on the # alphabetic order of type names: "int" < "str" < "tuple". Before # Python 2.5, this was in the test_same_as_repr() test. It's worth # keeping around for now because it's one of few tests of pprint # against a crazy mix of types. self.assertEqual(pprint.pformat({"xy\tab\n": (3,), 5: [[]], (): {}}), r"{5: [[]], 'xy\tab\n': (3,), (): {}}") def test_sort_dict(self): d = dict.fromkeys('cba') self.assertEqual(pprint.pformat(d, sort_dicts=False), "{'c': None, 'b': None, 'a': None}") self.assertEqual(pprint.pformat([d, d], sort_dicts=False), "[{'c': None, 'b': None, 'a': None}, {'c': None, 'b': None, 'a': None}]") def test_ordered_dict(self): d = collections.OrderedDict() self.assertEqual(pprint.pformat(d, width=1), 'OrderedDict()') d = collections.OrderedDict([]) self.assertEqual(pprint.pformat(d, width=1), 'OrderedDict()') words = 'the quick brown fox jumped over a lazy dog'.split() d = collections.OrderedDict(zip(words, itertools.count())) self.assertEqual(pprint.pformat(d), """\ OrderedDict([('the', 0), ('quick', 1), ('brown', 2), ('fox', 3), ('jumped', 4), ('over', 5), ('a', 6), ('lazy', 7), ('dog', 8)])""") def test_mapping_proxy(self): words = 'the quick brown fox jumped over a lazy dog'.split() d = dict(zip(words, itertools.count())) m = types.MappingProxyType(d) self.assertEqual(pprint.pformat(m), """\ mappingproxy({'a': 6, 'brown': 2, 'dog': 8, 'fox': 3, 'jumped': 4, 'lazy': 7, 'over': 5, 'quick': 1, 'the': 0})""") d = collections.OrderedDict(zip(words, itertools.count())) m = types.MappingProxyType(d) self.assertEqual(pprint.pformat(m), """\ mappingproxy(OrderedDict([('the', 0), ('quick', 1), ('brown', 2), ('fox', 3), ('jumped', 4), ('over', 5), ('a', 6), ('lazy', 7), ('dog', 8)]))""") def test_subclassing(self): o = {'names with spaces': 'should be presented using repr()', 'others.should.not.be': 'like.this'} exp = """\ {'names with spaces': 'should be presented using repr()', others.should.not.be: like.this}""" self.assertEqual(DottedPrettyPrinter().pformat(o), exp) def test_set_reprs(self): self.assertEqual(pprint.pformat(set()), 'set()') self.assertEqual(pprint.pformat(set(range(3))), '{0, 1, 2}') self.assertEqual(pprint.pformat(set(range(7)), width=20), '''\ {0, 1, 2, 3, 4, 5, 6}''') self.assertEqual(pprint.pformat(set2(range(7)), width=20), '''\ set2({0, 1, 2, 3, 4, 5, 6})''') self.assertEqual(pprint.pformat(set3(range(7)), width=20), 'set3({0, 1, 2, 3, 4, 5, 6})') self.assertEqual(pprint.pformat(frozenset()), 'frozenset()') self.assertEqual(pprint.pformat(frozenset(range(3))), 'frozenset({0, 1, 2})') self.assertEqual(pprint.pformat(frozenset(range(7)), width=20), '''\ frozenset({0, 1, 2, 3, 4, 5, 6})''') self.assertEqual(pprint.pformat(frozenset2(range(7)), width=20), '''\ frozenset2({0, 1, 2, 3, 4, 5, 6})''') self.assertEqual(pprint.pformat(frozenset3(range(7)), width=20), 'frozenset3({0, 1, 2, 3, 4, 5, 6})') @unittest.expectedFailure #See http://bugs.python.org/issue13907 @test.support.cpython_only def test_set_of_sets_reprs(self): # This test creates a complex arrangement of frozensets and # compares the pretty-printed repr against a string hard-coded in # the test. The hard-coded repr depends on the sort order of # frozensets. # # However, as the docs point out: "Since sets only define # partial ordering (subset relationships), the output of the # list.sort() method is undefined for lists of sets." # # In a nutshell, the test assumes frozenset({0}) will always # sort before frozenset({1}), but: # # >>> frozenset({0}) < frozenset({1}) # False # >>> frozenset({1}) < frozenset({0}) # False # # Consequently, this test is fragile and # implementation-dependent. Small changes to Python's sort # algorithm cause the test to fail when it should pass. # XXX Or changes to the dictionary implmentation... cube_repr_tgt = """\ {frozenset(): frozenset({frozenset({2}), frozenset({0}), frozenset({1})}), frozenset({0}): frozenset({frozenset(), frozenset({0, 2}), frozenset({0, 1})}), frozenset({1}): frozenset({frozenset(), frozenset({1, 2}), frozenset({0, 1})}), frozenset({2}): frozenset({frozenset(), frozenset({1, 2}), frozenset({0, 2})}), frozenset({1, 2}): frozenset({frozenset({2}), frozenset({1}), frozenset({0, 1, 2})}), frozenset({0, 2}): frozenset({frozenset({2}), frozenset({0}), frozenset({0, 1, 2})}), frozenset({0, 1}): frozenset({frozenset({0}), frozenset({1}), frozenset({0, 1, 2})}), frozenset({0, 1, 2}): frozenset({frozenset({1, 2}), frozenset({0, 2}), frozenset({0, 1})})}""" cube = test.test_set.cube(3) self.assertEqual(pprint.pformat(cube), cube_repr_tgt) cubo_repr_tgt = """\ {frozenset({frozenset({0, 2}), frozenset({0})}): frozenset({frozenset({frozenset({0, 2}), frozenset({0, 1, 2})}), frozenset({frozenset({0}), frozenset({0, 1})}), frozenset({frozenset(), frozenset({0})}), frozenset({frozenset({2}), frozenset({0, 2})})}), frozenset({frozenset({0, 1}), frozenset({1})}): frozenset({frozenset({frozenset({0, 1}), frozenset({0, 1, 2})}), frozenset({frozenset({0}), frozenset({0, 1})}), frozenset({frozenset({1}), frozenset({1, 2})}), frozenset({frozenset(), frozenset({1})})}), frozenset({frozenset({1, 2}), frozenset({1})}): frozenset({frozenset({frozenset({1, 2}), frozenset({0, 1, 2})}), frozenset({frozenset({2}), frozenset({1, 2})}), frozenset({frozenset(), frozenset({1})}), frozenset({frozenset({1}), frozenset({0, 1})})}), frozenset({frozenset({1, 2}), frozenset({2})}): frozenset({frozenset({frozenset({1, 2}), frozenset({0, 1, 2})}), frozenset({frozenset({1}), frozenset({1, 2})}), frozenset({frozenset({2}), frozenset({0, 2})}), frozenset({frozenset(), frozenset({2})})}), frozenset({frozenset(), frozenset({0})}): frozenset({frozenset({frozenset({0}), frozenset({0, 1})}), frozenset({frozenset({0}), frozenset({0, 2})}), frozenset({frozenset(), frozenset({1})}), frozenset({frozenset(), frozenset({2})})}), frozenset({frozenset(), frozenset({1})}): frozenset({frozenset({frozenset(), frozenset({0})}), frozenset({frozenset({1}), frozenset({1, 2})}), frozenset({frozenset(), frozenset({2})}), frozenset({frozenset({1}), frozenset({0, 1})})}), frozenset({frozenset({2}), frozenset()}): frozenset({frozenset({frozenset({2}), frozenset({1, 2})}), frozenset({frozenset(), frozenset({0})}), frozenset({frozenset(), frozenset({1})}), frozenset({frozenset({2}), frozenset({0, 2})})}), frozenset({frozenset({0, 1, 2}), frozenset({0, 1})}): frozenset({frozenset({frozenset({1, 2}), frozenset({0, 1, 2})}), frozenset({frozenset({0, 2}), frozenset({0, 1, 2})}), frozenset({frozenset({0}), frozenset({0, 1})}), frozenset({frozenset({1}), frozenset({0, 1})})}), frozenset({frozenset({0}), frozenset({0, 1})}): frozenset({frozenset({frozenset(), frozenset({0})}), frozenset({frozenset({0, 1}), frozenset({0, 1, 2})}), frozenset({frozenset({0}), frozenset({0, 2})}), frozenset({frozenset({1}), frozenset({0, 1})})}), frozenset({frozenset({2}), frozenset({0, 2})}): frozenset({frozenset({frozenset({0, 2}), frozenset({0, 1, 2})}), frozenset({frozenset({2}), frozenset({1, 2})}), frozenset({frozenset({0}), frozenset({0, 2})}), frozenset({frozenset(), frozenset({2})})}), frozenset({frozenset({0, 1, 2}), frozenset({0, 2})}): frozenset({frozenset({frozenset({1, 2}), frozenset({0, 1, 2})}), frozenset({frozenset({0, 1}), frozenset({0, 1, 2})}), frozenset({frozenset({0}), frozenset({0, 2})}), frozenset({frozenset({2}), frozenset({0, 2})})}), frozenset({frozenset({1, 2}), frozenset({0, 1, 2})}): frozenset({frozenset({frozenset({0, 2}), frozenset({0, 1, 2})}), frozenset({frozenset({0, 1}), frozenset({0, 1, 2})}), frozenset({frozenset({2}), frozenset({1, 2})}), frozenset({frozenset({1}), frozenset({1, 2})})})}""" cubo = test.test_set.linegraph(cube) self.assertEqual(pprint.pformat(cubo), cubo_repr_tgt) def test_depth(self): nested_tuple = (1, (2, (3, (4, (5, 6))))) nested_dict = {1: {2: {3: {4: {5: {6: 6}}}}}} nested_list = [1, [2, [3, [4, [5, [6, []]]]]]] self.assertEqual(pprint.pformat(nested_tuple), repr(nested_tuple)) self.assertEqual(pprint.pformat(nested_dict), repr(nested_dict)) self.assertEqual(pprint.pformat(nested_list), repr(nested_list)) lv1_tuple = '(1, (...))' lv1_dict = '{1: {...}}' lv1_list = '[1, [...]]' self.assertEqual(pprint.pformat(nested_tuple, depth=1), lv1_tuple) self.assertEqual(pprint.pformat(nested_dict, depth=1), lv1_dict) self.assertEqual(pprint.pformat(nested_list, depth=1), lv1_list) def test_sort_unorderable_values(self): # Issue 3976: sorted pprints fail for unorderable values. n = 20 keys = [Unorderable() for i in range(n)] random.shuffle(keys) skeys = sorted(keys, key=id) clean = lambda s: s.replace(' ', '').replace('\n','') self.assertEqual(clean(pprint.pformat(set(keys))), '{' + ','.join(map(repr, skeys)) + '}') self.assertEqual(clean(pprint.pformat(frozenset(keys))), 'frozenset({' + ','.join(map(repr, skeys)) + '})') self.assertEqual(clean(pprint.pformat(dict.fromkeys(keys))), '{' + ','.join('%r:None' % k for k in skeys) + '}') # Issue 10017: TypeError on user-defined types as dict keys. self.assertEqual(pprint.pformat({Unorderable: 0, 1: 0}), '{1: 0, ' + repr(Unorderable) +': 0}') # Issue 14998: TypeError on tuples with NoneTypes as dict keys. keys = [(1,), (None,)] self.assertEqual(pprint.pformat(dict.fromkeys(keys, 0)), '{%r: 0, %r: 0}' % tuple(sorted(keys, key=id))) def test_sort_orderable_and_unorderable_values(self): # Issue 22721: sorted pprints is not stable a = Unorderable() b = Orderable(hash(a)) # should have the same hash value # self-test self.assertLess(a, b) self.assertLess(str(type(b)), str(type(a))) self.assertEqual(sorted([b, a]), [a, b]) self.assertEqual(sorted([a, b]), [a, b]) # set self.assertEqual(pprint.pformat(set([b, a]), width=1), '{%r,\n %r}' % (a, b)) self.assertEqual(pprint.pformat(set([a, b]), width=1), '{%r,\n %r}' % (a, b)) # dict self.assertEqual(pprint.pformat(dict.fromkeys([b, a]), width=1), '{%r: None,\n %r: None}' % (a, b)) self.assertEqual(pprint.pformat(dict.fromkeys([a, b]), width=1), '{%r: None,\n %r: None}' % (a, b)) def test_str_wrap(self): # pprint tries to wrap strings intelligently fox = 'the quick brown fox jumped over a lazy dog' self.assertEqual(pprint.pformat(fox, width=19), """\ ('the quick brown ' 'fox jumped over ' 'a lazy dog')""") self.assertEqual(pprint.pformat({'a': 1, 'b': fox, 'c': 2}, width=25), """\ {'a': 1, 'b': 'the quick brown ' 'fox jumped over ' 'a lazy dog', 'c': 2}""") # With some special characters # - \n always triggers a new line in the pprint # - \t and \n are escaped # - non-ASCII is allowed # - an apostrophe doesn't disrupt the pprint special = "Portons dix bons \"whiskys\"\nà l'avocat goujat\t qui fumait au zoo" self.assertEqual(pprint.pformat(special, width=68), repr(special)) self.assertEqual(pprint.pformat(special, width=31), """\ ('Portons dix bons "whiskys"\\n' "à l'avocat goujat\\t qui " 'fumait au zoo')""") self.assertEqual(pprint.pformat(special, width=20), """\ ('Portons dix bons ' '"whiskys"\\n' "à l'avocat " 'goujat\\t qui ' 'fumait au zoo')""") self.assertEqual(pprint.pformat([[[[[special]]]]], width=35), """\ [[[[['Portons dix bons "whiskys"\\n' "à l'avocat goujat\\t qui " 'fumait au zoo']]]]]""") self.assertEqual(pprint.pformat([[[[[special]]]]], width=25), """\ [[[[['Portons dix bons ' '"whiskys"\\n' "à l'avocat " 'goujat\\t qui ' 'fumait au zoo']]]]]""") self.assertEqual(pprint.pformat([[[[[special]]]]], width=23), """\ [[[[['Portons dix ' 'bons "whiskys"\\n' "à l'avocat " 'goujat\\t qui ' 'fumait au ' 'zoo']]]]]""") # An unwrappable string is formatted as its repr unwrappable = "x" * 100 self.assertEqual(pprint.pformat(unwrappable, width=80), repr(unwrappable)) self.assertEqual(pprint.pformat(''), "''") # Check that the pprint is a usable repr special *= 10 for width in range(3, 40): formatted = pprint.pformat(special, width=width) self.assertEqual(eval(formatted), special) formatted = pprint.pformat([special] * 2, width=width) self.assertEqual(eval(formatted), [special] * 2) def test_compact(self): o = ([list(range(i * i)) for i in range(5)] + [list(range(i)) for i in range(6)]) expected = """\ [[], [0], [0, 1, 2, 3], [0, 1, 2, 3, 4, 5, 6, 7, 8], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [], [0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]""" self.assertEqual(pprint.pformat(o, width=47, compact=True), expected) def test_compact_width(self): levels = 20 number = 10 o = [0] * number for i in range(levels - 1): o = [o] for w in range(levels * 2 + 1, levels + 3 * number - 1): lines = pprint.pformat(o, width=w, compact=True).splitlines() maxwidth = max(map(len, lines)) self.assertLessEqual(maxwidth, w) self.assertGreater(maxwidth, w - 3) def test_bytes_wrap(self): self.assertEqual(pprint.pformat(b'', width=1), "b''") self.assertEqual(pprint.pformat(b'abcd', width=1), "b'abcd'") letters = b'abcdefghijklmnopqrstuvwxyz' self.assertEqual(pprint.pformat(letters, width=29), repr(letters)) self.assertEqual(pprint.pformat(letters, width=19), """\ (b'abcdefghijkl' b'mnopqrstuvwxyz')""") self.assertEqual(pprint.pformat(letters, width=18), """\ (b'abcdefghijkl' b'mnopqrstuvwx' b'yz')""") self.assertEqual(pprint.pformat(letters, width=16), """\ (b'abcdefghijkl' b'mnopqrstuvwx' b'yz')""") special = bytes(range(16)) self.assertEqual(pprint.pformat(special, width=61), repr(special)) self.assertEqual(pprint.pformat(special, width=48), """\ (b'\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b' b'\\x0c\\r\\x0e\\x0f')""") self.assertEqual(pprint.pformat(special, width=32), """\ (b'\\x00\\x01\\x02\\x03' b'\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b' b'\\x0c\\r\\x0e\\x0f')""") self.assertEqual(pprint.pformat(special, width=1), """\ (b'\\x00\\x01\\x02\\x03' b'\\x04\\x05\\x06\\x07' b'\\x08\\t\\n\\x0b' b'\\x0c\\r\\x0e\\x0f')""") self.assertEqual(pprint.pformat({'a': 1, 'b': letters, 'c': 2}, width=21), """\ {'a': 1, 'b': b'abcdefghijkl' b'mnopqrstuvwx' b'yz', 'c': 2}""") self.assertEqual(pprint.pformat({'a': 1, 'b': letters, 'c': 2}, width=20), """\ {'a': 1, 'b': b'abcdefgh' b'ijklmnop' b'qrstuvwxyz', 'c': 2}""") self.assertEqual(pprint.pformat([[[[[[letters]]]]]], width=25), """\ [[[[[[b'abcdefghijklmnop' b'qrstuvwxyz']]]]]]""") self.assertEqual(pprint.pformat([[[[[[special]]]]]], width=41), """\ [[[[[[b'\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07' b'\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f']]]]]]""") # Check that the pprint is a usable repr for width in range(1, 64): formatted = pprint.pformat(special, width=width) self.assertEqual(eval(formatted), special) formatted = pprint.pformat([special] * 2, width=width) self.assertEqual(eval(formatted), [special] * 2) def test_bytearray_wrap(self): self.assertEqual(pprint.pformat(bytearray(), width=1), "bytearray(b'')") letters = bytearray(b'abcdefghijklmnopqrstuvwxyz') self.assertEqual(pprint.pformat(letters, width=40), repr(letters)) self.assertEqual(pprint.pformat(letters, width=28), """\ bytearray(b'abcdefghijkl' b'mnopqrstuvwxyz')""") self.assertEqual(pprint.pformat(letters, width=27), """\ bytearray(b'abcdefghijkl' b'mnopqrstuvwx' b'yz')""") self.assertEqual(pprint.pformat(letters, width=25), """\ bytearray(b'abcdefghijkl' b'mnopqrstuvwx' b'yz')""") special = bytearray(range(16)) self.assertEqual(pprint.pformat(special, width=72), repr(special)) self.assertEqual(pprint.pformat(special, width=57), """\ bytearray(b'\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b' b'\\x0c\\r\\x0e\\x0f')""") self.assertEqual(pprint.pformat(special, width=41), """\ bytearray(b'\\x00\\x01\\x02\\x03' b'\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b' b'\\x0c\\r\\x0e\\x0f')""") self.assertEqual(pprint.pformat(special, width=1), """\ bytearray(b'\\x00\\x01\\x02\\x03' b'\\x04\\x05\\x06\\x07' b'\\x08\\t\\n\\x0b' b'\\x0c\\r\\x0e\\x0f')""") self.assertEqual(pprint.pformat({'a': 1, 'b': letters, 'c': 2}, width=31), """\ {'a': 1, 'b': bytearray(b'abcdefghijkl' b'mnopqrstuvwx' b'yz'), 'c': 2}""") self.assertEqual(pprint.pformat([[[[[letters]]]]], width=37), """\ [[[[[bytearray(b'abcdefghijklmnop' b'qrstuvwxyz')]]]]]""") self.assertEqual(pprint.pformat([[[[[special]]]]], width=50), """\ [[[[[bytearray(b'\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07' b'\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f')]]]]]""") def test_default_dict(self): d = collections.defaultdict(int) self.assertEqual(pprint.pformat(d, width=1), "defaultdict(<class 'int'>, {})") words = 'the quick brown fox jumped over a lazy dog'.split() d = collections.defaultdict(int, zip(words, itertools.count())) self.assertEqual(pprint.pformat(d), """\ defaultdict(<class 'int'>, {'a': 6, 'brown': 2, 'dog': 8, 'fox': 3, 'jumped': 4, 'lazy': 7, 'over': 5, 'quick': 1, 'the': 0})""") def test_counter(self): d = collections.Counter() self.assertEqual(pprint.pformat(d, width=1), "Counter()") d = collections.Counter('senselessness') self.assertEqual(pprint.pformat(d, width=40), """\ Counter({'s': 6, 'e': 4, 'n': 2, 'l': 1})""") def test_chainmap(self): d = collections.ChainMap() self.assertEqual(pprint.pformat(d, width=1), "ChainMap({})") words = 'the quick brown fox jumped over a lazy dog'.split() items = list(zip(words, itertools.count())) d = collections.ChainMap(dict(items)) self.assertEqual(pprint.pformat(d), """\ ChainMap({'a': 6, 'brown': 2, 'dog': 8, 'fox': 3, 'jumped': 4, 'lazy': 7, 'over': 5, 'quick': 1, 'the': 0})""") d = collections.ChainMap(dict(items), collections.OrderedDict(items)) self.assertEqual(pprint.pformat(d), """\ ChainMap({'a': 6, 'brown': 2, 'dog': 8, 'fox': 3, 'jumped': 4, 'lazy': 7, 'over': 5, 'quick': 1, 'the': 0}, OrderedDict([('the', 0), ('quick', 1), ('brown', 2), ('fox', 3), ('jumped', 4), ('over', 5), ('a', 6), ('lazy', 7), ('dog', 8)]))""") def test_deque(self): d = collections.deque() self.assertEqual(pprint.pformat(d, width=1), "deque([])") d = collections.deque(maxlen=7) self.assertEqual(pprint.pformat(d, width=1), "deque([], maxlen=7)") words = 'the quick brown fox jumped over a lazy dog'.split() d = collections.deque(zip(words, itertools.count())) self.assertEqual(pprint.pformat(d), """\ deque([('the', 0), ('quick', 1), ('brown', 2), ('fox', 3), ('jumped', 4), ('over', 5), ('a', 6), ('lazy', 7), ('dog', 8)])""") d = collections.deque(zip(words, itertools.count()), maxlen=7) self.assertEqual(pprint.pformat(d), """\ deque([('brown', 2), ('fox', 3), ('jumped', 4), ('over', 5), ('a', 6), ('lazy', 7), ('dog', 8)], maxlen=7)""") def test_user_dict(self): d = collections.UserDict() self.assertEqual(pprint.pformat(d, width=1), "{}") words = 'the quick brown fox jumped over a lazy dog'.split() d = collections.UserDict(zip(words, itertools.count())) self.assertEqual(pprint.pformat(d), """\ {'a': 6, 'brown': 2, 'dog': 8, 'fox': 3, 'jumped': 4, 'lazy': 7, 'over': 5, 'quick': 1, 'the': 0}""") def test_user_list(self): d = collections.UserList() self.assertEqual(pprint.pformat(d, width=1), "[]") words = 'the quick brown fox jumped over a lazy dog'.split() d = collections.UserList(zip(words, itertools.count())) self.assertEqual(pprint.pformat(d), """\ [('the', 0), ('quick', 1), ('brown', 2), ('fox', 3), ('jumped', 4), ('over', 5), ('a', 6), ('lazy', 7), ('dog', 8)]""") def test_user_string(self): d = collections.UserString('') self.assertEqual(pprint.pformat(d, width=1), "''") d = collections.UserString('the quick brown fox jumped over a lazy dog') self.assertEqual(pprint.pformat(d, width=20), """\ ('the quick brown ' 'fox jumped over ' 'a lazy dog')""") self.assertEqual(pprint.pformat({1: d}, width=20), """\ {1: 'the quick ' 'brown fox ' 'jumped over a ' 'lazy dog'}""") class DottedPrettyPrinter(pprint.PrettyPrinter): def format(self, object, context, maxlevels, level): if isinstance(object, str): if ' ' in object: return repr(object), 1, 0 else: return object, 0, 0 else: return pprint.PrettyPrinter.format( self, object, context, maxlevels, level) if __name__ == "__main__": unittest.main()
Upload File
Create Folder