summaryrefslogtreecommitdiff
path: root/lib/python2.7
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7')
-rw-r--r--lib/python2.7/_sysconfigdata.py74
-rw-r--r--lib/python2.7/config/Makefile16
-rw-r--r--lib/python2.7/config/config.c2
-rw-r--r--lib/python2.7/config/libpython2.7.abin3681196 -> 3680420 bytes
-rw-r--r--lib/python2.7/config/python.obin1432 -> 1440 bytes
-rw-r--r--lib/python2.7/distutils/tests/Setup.sample67
-rw-r--r--lib/python2.7/distutils/tests/__init__.py36
-rw-r--r--lib/python2.7/distutils/tests/setuptools_build_ext.py287
-rw-r--r--lib/python2.7/distutils/tests/setuptools_extension.py51
-rw-r--r--lib/python2.7/distutils/tests/support.py221
-rw-r--r--lib/python2.7/distutils/tests/test_archive_util.py328
-rw-r--r--lib/python2.7/distutils/tests/test_bdist.py52
-rw-r--r--lib/python2.7/distutils/tests/test_bdist_dumb.py114
-rw-r--r--lib/python2.7/distutils/tests/test_bdist_msi.py26
-rw-r--r--lib/python2.7/distutils/tests/test_bdist_rpm.py136
-rw-r--r--lib/python2.7/distutils/tests/test_bdist_wininst.py32
-rw-r--r--lib/python2.7/distutils/tests/test_build.py55
-rw-r--r--lib/python2.7/distutils/tests/test_build_clib.py146
-rw-r--r--lib/python2.7/distutils/tests/test_build_ext.py522
-rw-r--r--lib/python2.7/distutils/tests/test_build_py.py122
-rw-r--r--lib/python2.7/distutils/tests/test_build_scripts.py112
-rw-r--r--lib/python2.7/distutils/tests/test_ccompiler.py82
-rw-r--r--lib/python2.7/distutils/tests/test_check.py109
-rw-r--r--lib/python2.7/distutils/tests/test_clean.py51
-rw-r--r--lib/python2.7/distutils/tests/test_cmd.py127
-rw-r--r--lib/python2.7/distutils/tests/test_config.py123
-rw-r--r--lib/python2.7/distutils/tests/test_config_cmd.py91
-rw-r--r--lib/python2.7/distutils/tests/test_core.py108
-rw-r--r--lib/python2.7/distutils/tests/test_dep_util.py81
-rw-r--r--lib/python2.7/distutils/tests/test_dir_util.py134
-rw-r--r--lib/python2.7/distutils/tests/test_dist.py445
-rw-r--r--lib/python2.7/distutils/tests/test_file_util.py81
-rw-r--r--lib/python2.7/distutils/tests/test_filelist.py299
-rw-r--r--lib/python2.7/distutils/tests/test_install.py247
-rw-r--r--lib/python2.7/distutils/tests/test_install_data.py77
-rw-r--r--lib/python2.7/distutils/tests/test_install_headers.py41
-rw-r--r--lib/python2.7/distutils/tests/test_install_lib.py107
-rw-r--r--lib/python2.7/distutils/tests/test_install_scripts.py82
-rw-r--r--lib/python2.7/distutils/tests/test_msvc9compiler.py184
-rw-r--r--lib/python2.7/distutils/tests/test_register.py290
-rw-r--r--lib/python2.7/distutils/tests/test_sdist.py512
-rw-r--r--lib/python2.7/distutils/tests/test_spawn.py60
-rw-r--r--lib/python2.7/distutils/tests/test_sysconfig.py117
-rw-r--r--lib/python2.7/distutils/tests/test_text_file.py107
-rw-r--r--lib/python2.7/distutils/tests/test_unixccompiler.py130
-rw-r--r--lib/python2.7/distutils/tests/test_upload.py131
-rw-r--r--lib/python2.7/distutils/tests/test_util.py25
-rw-r--r--lib/python2.7/distutils/tests/test_version.py71
-rw-r--r--lib/python2.7/distutils/tests/test_versionpredicate.py13
-rw-r--r--lib/python2.7/distutils/tests/xxmodule.c379
-rw-r--r--lib/python2.7/distutils/unixccompiler.py10
-rw-r--r--lib/python2.7/json/tests/__init__.py73
-rw-r--r--lib/python2.7/json/tests/test_check_circular.py34
-rw-r--r--lib/python2.7/json/tests/test_decode.py64
-rw-r--r--lib/python2.7/json/tests/test_default.py12
-rw-r--r--lib/python2.7/json/tests/test_dump.py32
-rw-r--r--lib/python2.7/json/tests/test_encode_basestring_ascii.py41
-rw-r--r--lib/python2.7/json/tests/test_fail.py105
-rw-r--r--lib/python2.7/json/tests/test_float.py37
-rw-r--r--lib/python2.7/json/tests/test_indent.py60
-rw-r--r--lib/python2.7/json/tests/test_pass1.py75
-rw-r--r--lib/python2.7/json/tests/test_pass2.py18
-rw-r--r--lib/python2.7/json/tests/test_pass3.py24
-rw-r--r--lib/python2.7/json/tests/test_recursion.py108
-rw-r--r--lib/python2.7/json/tests/test_scanstring.py109
-rw-r--r--lib/python2.7/json/tests/test_separators.py44
-rw-r--r--lib/python2.7/json/tests/test_speedups.py23
-rw-r--r--lib/python2.7/json/tests/test_tool.py69
-rw-r--r--lib/python2.7/json/tests/test_unicode.py89
-rwxr-xr-xlib/python2.7/lib-dynload/_bisect.sobin15395 -> 15182 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_codecs_cn.sobin149134 -> 149142 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_codecs_hk.sobin161416 -> 161424 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_codecs_iso2022.sobin32538 -> 32546 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_codecs_jp.sobin268528 -> 268536 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_codecs_kr.sobin137026 -> 137034 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_codecs_tw.sobin111819 -> 111827 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_collections.sobin47379 -> 47379 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_csv.sobin40517 -> 40517 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_ctypes.sobin197491 -> 197491 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_ctypes_test.sobin24178 -> 24178 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_curses.sobin97573 -> 97573 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_curses_panel.sobin19928 -> 19928 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_elementtree.sobin58225 -> 58225 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_functools.sobin19635 -> 19635 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_hashlib.sobin26055 -> 26055 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_heapq.sobin25275 -> 25062 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_hotshot.sobin37534 -> 37534 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_io.sobin190417 -> 190417 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_json.sobin48282 -> 48282 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_locale.sobin25137 -> 25145 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_lsprof.sobin26051 -> 26059 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_multibytecodec.sobin46070 -> 46070 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_multiprocessing.sobin36179 -> 36187 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_random.sobin19109 -> 19109 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_socket.sobin99353 -> 99353 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_sqlite3.sobin96203 -> 96211 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_ssl.sobin48511 -> 48511 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_struct.sobin53917 -> 53917 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/_testcapi.sobin56662 -> 56662 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/array.sobin60045 -> 60045 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/audioop.sobin36153 -> 36153 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/binascii.sobin29039 -> 29039 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/cPickle.sobin109596 -> 109604 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/cStringIO.sobin28073 -> 28073 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/cmath.sobin63961 -> 63961 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/crypt.sobin8740 -> 8727 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/datetime.sobin115117 -> 115125 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/fcntl.sobin25614 -> 25614 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/future_builtins.sobin10076 -> 9863 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/grp.sobin14546 -> 14546 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/itertools.sobin74585 -> 74585 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/linuxaudiodev.sobin19352 -> 19352 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/math.sobin60443 -> 60443 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/mmap.sobin30497 -> 30497 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/nis.sobin19548 -> 19556 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/operator.sobin49598 -> 49598 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/ossaudiodev.sobin33979 -> 33987 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/parser.sobin72809 -> 72809 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/pwd.sobin15321 -> 15321 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/pyexpat.sobin280391 -> 280399 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/resource.sobin14442 -> 14442 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/select.sobin34066 -> 34066 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/spwd.sobin14938 -> 14938 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/strop.sobin36652 -> 36652 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/syslog.sobin13732 -> 13732 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/termios.sobin28648 -> 28648 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/time.sobin29215 -> 29215 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/unicodedata.sobin703046 -> 703054 bytes
-rwxr-xr-xlib/python2.7/lib-dynload/zlib.sobin31944 -> 31944 bytes
-rw-r--r--lib/python2.7/lib2to3/Grammar2.7.5.final.0.picklebin20229 -> 20229 bytes
-rw-r--r--lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.picklebin1383 -> 1383 bytes
-rw-r--r--lib/python2.7/lib2to3/tests/__init__.py24
-rw-r--r--lib/python2.7/lib2to3/tests/data/README6
-rw-r--r--lib/python2.7/lib2to3/tests/data/bom.py2
-rw-r--r--lib/python2.7/lib2to3/tests/data/crlf.py3
-rw-r--r--lib/python2.7/lib2to3/tests/data/different_encoding.py6
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/bad_order.py5
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py0
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py6
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py6
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py7
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py13
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py6
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py1
-rw-r--r--lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py2
-rw-r--r--lib/python2.7/lib2to3/tests/data/infinite_recursion.py2669
-rw-r--r--lib/python2.7/lib2to3/tests/data/py2_test_grammar.py974
-rw-r--r--lib/python2.7/lib2to3/tests/data/py3_test_grammar.py923
-rwxr-xr-xlib/python2.7/lib2to3/tests/pytree_idempotency.py92
-rw-r--r--lib/python2.7/lib2to3/tests/support.py54
-rw-r--r--lib/python2.7/lib2to3/tests/test_all_fixers.py23
-rw-r--r--lib/python2.7/lib2to3/tests/test_fixers.py4541
-rw-r--r--lib/python2.7/lib2to3/tests/test_main.py149
-rw-r--r--lib/python2.7/lib2to3/tests/test_parser.py227
-rw-r--r--lib/python2.7/lib2to3/tests/test_pytree.py494
-rw-r--r--lib/python2.7/lib2to3/tests/test_refactor.py317
-rw-r--r--lib/python2.7/lib2to3/tests/test_util.py594
157 files changed, 56 insertions, 18818 deletions
diff --git a/lib/python2.7/_sysconfigdata.py b/lib/python2.7/_sysconfigdata.py
index c447809..c17f160 100644
--- a/lib/python2.7/_sysconfigdata.py
+++ b/lib/python2.7/_sysconfigdata.py
@@ -3,9 +3,9 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'AIX_GENUINE_CPLUSPLUS': 0,
'AR': 'x86_64-linux-gnu-ar',
'ARFLAGS': 'rc',
- 'ASDLGEN': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
- 'ASDLGEN_FILES': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl.py /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
- 'AST_ASDL': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/Python.asdl',
+ 'ASDLGEN': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
+ 'ASDLGEN_FILES': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl.py /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
+ 'AST_ASDL': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/Python.asdl',
'AST_C': 'Python/Python-ast.c',
'AST_C_DIR': 'Python',
'AST_H': 'Include/Python-ast.h',
@@ -14,8 +14,8 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'BASECFLAGS': '-fno-strict-aliasing',
'BASEMODLIBS': '',
'BEOS_THREADS': 0,
- 'BINDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/bin',
- 'BINLIBDEST': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'BINDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin',
+ 'BINLIBDEST': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
'BLDLIBRARY': 'libpython2.7.a',
'BLDSHARED': 'x86_64-linux-gnu-gcc -shared',
'BUILDEXE': '',
@@ -25,18 +25,18 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes',
'CFLAGSFORSHARED': '',
'CONFIGFILES': 'configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in',
- 'CONFIG_ARGS': "'--prefix=/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='",
- 'CONFINCLUDEDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include',
- 'CONFINCLUDEPY': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
+ 'CONFIG_ARGS': "'--prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='",
+ 'CONFINCLUDEDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include',
+ 'CONFINCLUDEPY': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
'COREPYTHONPATH': ':plat-linux2:lib-tk:lib-old',
- 'CPPFLAGS': '-I. -IInclude -I/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Include',
+ 'CPPFLAGS': '-I. -IInclude -I/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Include',
'CXX': 'x86_64-linux-gnu-g++ -pthread',
'C_THREADS': 0,
'DELIM': ':',
- 'DESTDIRS': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/lib-dynload',
- 'DESTLIB': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'DESTDIRS': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7 /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/lib-dynload',
+ 'DESTLIB': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
'DESTPATH': '',
- 'DESTSHARED': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/lib-dynload',
+ 'DESTSHARED': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/lib-dynload',
'DIRMODE': 755,
'DIST': 'README ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Demo Ext-dummy',
'DISTDIRS': 'Include Lib Misc Demo Ext-dummy',
@@ -62,7 +62,7 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'GNULD': 'yes',
'GRAMMAR_C': 'Python/graminit.c',
'GRAMMAR_H': 'Include/graminit.h',
- 'GRAMMAR_INPUT': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Grammar/Grammar',
+ 'GRAMMAR_INPUT': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Grammar/Grammar',
'HAVE_ACOSH': 1,
'HAVE_ADDRINFO': 1,
'HAVE_ALARM': 1,
@@ -351,9 +351,9 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'HGVERSION': '',
'HOST_GNU_TYPE': 'x86_64-pc-linux-gnu',
'HURD_C_THREADS': 0,
- 'INCLDIRSTOMAKE': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
- 'INCLUDEDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include',
- 'INCLUDEPY': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
+ 'INCLDIRSTOMAKE': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7 /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
+ 'INCLUDEDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include',
+ 'INCLUDEPY': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
'INSTALL': '/usr/bin/install -c',
'INSTALL_DATA': '/usr/bin/install -c -m 644',
'INSTALL_PROGRAM': '/usr/bin/install -c',
@@ -367,15 +367,15 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'LDLIBRARYDIR': '',
'LDSHARED': 'x86_64-linux-gnu-gcc -shared',
'LIBC': '',
- 'LIBDEST': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
- 'LIBDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib',
+ 'LIBDEST': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
+ 'LIBDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib',
'LIBFFI_INCLUDEDIR': '',
'LIBM': '-lm',
'LIBOBJDIR': 'Python/',
'LIBOBJS': '',
- 'LIBP': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
- 'LIBPC': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/pkgconfig',
- 'LIBPL': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/config',
+ 'LIBP': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
+ 'LIBPC': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/pkgconfig',
+ 'LIBPL': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/config',
'LIBRARY': 'libpython2.7.a',
'LIBRARY_OBJS': '\\',
'LIBS': '-lpthread -ldl -lutil',
@@ -388,20 +388,20 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'MACHDEPPATH': ':plat-linux2',
'MACHDEPS': 'plat-linux2',
'MACHDEP_OBJS': '',
- 'MACHDESTLIB': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'MACHDESTLIB': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
'MACH_C_THREADS': 0,
'MACOSX_DEPLOYMENT_TARGET': '',
'MAINCC': 'x86_64-linux-gnu-gcc -pthread',
'MAJOR_IN_MKDEV': 0,
'MAJOR_IN_SYSMACROS': 0,
- 'MAKESETUP': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Modules/makesetup',
- 'MANDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/share/man',
+ 'MAKESETUP': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Modules/makesetup',
+ 'MANDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/share/man',
'MEMTESTOPTS': '-l -x test_subprocess test_io test_lib2to3 \\ -x test_dl test___all__ test_fork1 \\',
'MKDIR_P': '/bin/mkdir -p',
'MODLIBS': '',
'MODOBJS': 'Modules/posixmodule.o Modules/threadmodule.o Modules/signalmodule.o Modules/errnomodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/zipimport.o Modules/symtablemodule.o Modules/xxsubtype.o',
'MODULE_OBJS': '\\',
- 'MSYSVPATH': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'MSYSVPATH': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
'MULTIARCH': 'x86_64-linux-gnu',
'MVWDELCH_IS_EXPRESSION': 1,
'NT_THREADS': 0,
@@ -427,7 +427,7 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'PLATMACPATH': ':plat-mac:plat-mac/lib-scriptpackages',
'POBJS': '\\',
'POSIX_SEMAPHORES_NOT_ENABLED': 0,
- 'PROFILE_TASK': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck',
+ 'PROFILE_TASK': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck',
'PSRCS': '\\',
'PTHREAD_SYSTEM_SCHED_SUPPORTED': 1,
'PURIFY': '',
@@ -441,7 +441,7 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'PYTHON_FOR_BUILD': './python -E',
'PYTHON_HEADERS': '\\',
'PYTHON_OBJS': '\\',
- 'PY_CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Include -DPy_BUILD_CORE',
+ 'PY_CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Include -DPy_BUILD_CORE',
'PY_FORMAT_LONG_LONG': '"ll"',
'PY_FORMAT_SIZE_T': '"z"',
'PY_UNICODE_TYPE': 'unsigned short',
@@ -455,7 +455,7 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'RESSRCDIR': 'Mac/Resources/framework',
'RETSIGTYPE': 'void',
'RUNSHARED': '',
- 'SCRIPTDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib',
+ 'SCRIPTDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib',
'SETPGRP_HAVE_ARG': 0,
'SGI_ABI': '',
'SHELL': '/bin/sh',
@@ -483,7 +483,7 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'SIZEOF__BOOL': 1,
'SO': '.so',
'SRCDIRS': 'Parser Grammar Objects Python Modules Mac',
- 'SRC_GDB_HOOKS': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Tools/gdb/libpython.py',
+ 'SRC_GDB_HOOKS': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Tools/gdb/libpython.py',
'STDC_HEADERS': 1,
'STRICT_SYSV_CURSES': "/* Don't use ncurses extensions */",
'STRINGLIB_HEADERS': '\\',
@@ -495,7 +495,7 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'TANH_PRESERVES_ZERO_SIGN': 1,
'TESTOPTS': '-l',
'TESTPATH': '',
- 'TESTPROG': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Lib/test/regrtest.py',
+ 'TESTPROG': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Lib/test/regrtest.py',
'TESTPYTHON': './python -Wd -3 -E -tt',
'TESTPYTHONOPTS': '',
'THREADOBJ': 'Python/thread.o',
@@ -507,7 +507,7 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'USE_TOOLBOX_OBJECT_GLUE': 0,
'VA_LIST_IS_ARRAY': 1,
'VERSION': '2.7',
- 'VPATH': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'VPATH': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
'WANT_SIGFPE_HANDLER': 0,
'WANT_WCTYPE_FUNCTIONS': 0,
'WINDOW_HAS_FLAGS': 1,
@@ -522,11 +522,11 @@ build_time_vars = {'AC_APPLE_UNIVERSAL_BUILD': 0,
'WITH_VALGRIND': 0,
'X87_DOUBLE_ROUNDING': 0,
'XMLLIBSUBDIRS': 'xml xml/dom xml/etree xml/parsers xml/sax',
- 'abs_builddir': '/buildbot/tmp/buildhost/build-python-linux-x86_64-2.7.5',
- 'abs_srcdir': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'abs_builddir': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/build-python-linux-x86_64-2.7.5',
+ 'abs_srcdir': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
'build': 'x86_64-pc-linux-gnu',
- 'datarootdir': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/share',
- 'exec_prefix': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64',
+ 'datarootdir': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/share',
+ 'exec_prefix': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools',
'host': 'x86_64-pc-linux-gnu',
- 'prefix': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64',
- 'srcdir': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5'}
+ 'prefix': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools',
+ 'srcdir': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5'}
diff --git a/lib/python2.7/config/Makefile b/lib/python2.7/config/Makefile
index cd97577..fb509c9 100644
--- a/lib/python2.7/config/Makefile
+++ b/lib/python2.7/config/Makefile
@@ -26,11 +26,11 @@ MODLIBS= $(LOCALMODLIBS) $(BASEMODLIBS)
# === Variables set by configure
VERSION= 2.7
-srcdir= /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-VPATH= /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-MSYSVPATH= /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-abs_srcdir= /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-abs_builddir= /buildbot/tmp/buildhost/build-python-linux-x86_64-2.7.5
+srcdir= /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+VPATH= /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+MSYSVPATH= /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+abs_srcdir= /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+abs_builddir= /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/build-python-linux-x86_64-2.7.5
build= x86_64-pc-linux-gnu
host= x86_64-pc-linux-gnu
@@ -95,7 +95,7 @@ MACHDEP= linux2
MULTIARCH= x86_64-linux-gnu
# Install prefix for architecture-independent files
-prefix= /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64
+prefix= /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
# Install prefix for architecture-dependent files
exec_prefix= ${prefix}
@@ -154,7 +154,7 @@ EXEMODE= 755
FILEMODE= 644
# configure script arguments
-CONFIG_ARGS= '--prefix=/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='
+CONFIG_ARGS= '--prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='
# Subdirectories with code
@@ -541,7 +541,7 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
# for a shared core library; otherwise, this rule is a noop.
$(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
if test -n "$(DLLLIBRARY)"; then \
- $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
+ $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) -static-libgcc $^ \
$(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
else true; \
fi
diff --git a/lib/python2.7/config/config.c b/lib/python2.7/config/config.c
index 44cca93..e61842e 100644
--- a/lib/python2.7/config/config.c
+++ b/lib/python2.7/config/config.c
@@ -1,4 +1,4 @@
-/* Generated automatically from /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Modules/config.c.in by makesetup. */
+/* Generated automatically from /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Modules/config.c.in by makesetup. */
/* -*- C -*- ***********************************************
Copyright (c) 2000, BeOpen.com.
Copyright (c) 1995-2000, Corporation for National Research Initiatives.
diff --git a/lib/python2.7/config/libpython2.7.a b/lib/python2.7/config/libpython2.7.a
index 147d851..a006d33 100644
--- a/lib/python2.7/config/libpython2.7.a
+++ b/lib/python2.7/config/libpython2.7.a
Binary files differ
diff --git a/lib/python2.7/config/python.o b/lib/python2.7/config/python.o
index 6ea6b2b..49cb71e 100644
--- a/lib/python2.7/config/python.o
+++ b/lib/python2.7/config/python.o
Binary files differ
diff --git a/lib/python2.7/distutils/tests/Setup.sample b/lib/python2.7/distutils/tests/Setup.sample
deleted file mode 100644
index 36c4290..0000000
--- a/lib/python2.7/distutils/tests/Setup.sample
+++ /dev/null
@@ -1,67 +0,0 @@
-# Setup file from the pygame project
-
-#--StartConfig
-SDL = -I/usr/include/SDL -D_REENTRANT -lSDL
-FONT = -lSDL_ttf
-IMAGE = -lSDL_image
-MIXER = -lSDL_mixer
-SMPEG = -lsmpeg
-PNG = -lpng
-JPEG = -ljpeg
-SCRAP = -lX11
-PORTMIDI = -lportmidi
-PORTTIME = -lporttime
-#--EndConfig
-
-#DEBUG = -C-W -C-Wall
-DEBUG =
-
-#the following modules are optional. you will want to compile
-#everything you can, but you can ignore ones you don't have
-#dependencies for, just comment them out
-
-imageext src/imageext.c $(SDL) $(IMAGE) $(PNG) $(JPEG) $(DEBUG)
-font src/font.c $(SDL) $(FONT) $(DEBUG)
-mixer src/mixer.c $(SDL) $(MIXER) $(DEBUG)
-mixer_music src/music.c $(SDL) $(MIXER) $(DEBUG)
-_numericsurfarray src/_numericsurfarray.c $(SDL) $(DEBUG)
-_numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG)
-movie src/movie.c $(SDL) $(SMPEG) $(DEBUG)
-scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG)
-_camera src/_camera.c src/camera_v4l2.c src/camera_v4l.c $(SDL) $(DEBUG)
-pypm src/pypm.c $(SDL) $(PORTMIDI) $(PORTTIME) $(DEBUG)
-
-GFX = src/SDL_gfx/SDL_gfxPrimitives.c
-#GFX = src/SDL_gfx/SDL_gfxBlitFunc.c src/SDL_gfx/SDL_gfxPrimitives.c
-gfxdraw src/gfxdraw.c $(SDL) $(GFX) $(DEBUG)
-
-
-
-#these modules are required for pygame to run. they only require
-#SDL as a dependency. these should not be altered
-
-base src/base.c $(SDL) $(DEBUG)
-cdrom src/cdrom.c $(SDL) $(DEBUG)
-color src/color.c $(SDL) $(DEBUG)
-constants src/constants.c $(SDL) $(DEBUG)
-display src/display.c $(SDL) $(DEBUG)
-event src/event.c $(SDL) $(DEBUG)
-fastevent src/fastevent.c src/fastevents.c $(SDL) $(DEBUG)
-key src/key.c $(SDL) $(DEBUG)
-mouse src/mouse.c $(SDL) $(DEBUG)
-rect src/rect.c $(SDL) $(DEBUG)
-rwobject src/rwobject.c $(SDL) $(DEBUG)
-surface src/surface.c src/alphablit.c src/surface_fill.c $(SDL) $(DEBUG)
-surflock src/surflock.c $(SDL) $(DEBUG)
-time src/time.c $(SDL) $(DEBUG)
-joystick src/joystick.c $(SDL) $(DEBUG)
-draw src/draw.c $(SDL) $(DEBUG)
-image src/image.c $(SDL) $(DEBUG)
-overlay src/overlay.c $(SDL) $(DEBUG)
-transform src/transform.c src/rotozoom.c src/scale2x.c src/scale_mmx.c $(SDL) $(DEBUG)
-mask src/mask.c src/bitmask.c $(SDL) $(DEBUG)
-bufferproxy src/bufferproxy.c $(SDL) $(DEBUG)
-pixelarray src/pixelarray.c $(SDL) $(DEBUG)
-_arraysurfarray src/_arraysurfarray.c $(SDL) $(DEBUG)
-
-
diff --git a/lib/python2.7/distutils/tests/__init__.py b/lib/python2.7/distutils/tests/__init__.py
deleted file mode 100644
index 697ff84..0000000
--- a/lib/python2.7/distutils/tests/__init__.py
+++ /dev/null
@@ -1,36 +0,0 @@
-"""Test suite for distutils.
-
-This test suite consists of a collection of test modules in the
-distutils.tests package. Each test module has a name starting with
-'test' and contains a function test_suite(). The function is expected
-to return an initialized unittest.TestSuite instance.
-
-Tests for the command classes in the distutils.command package are
-included in distutils.tests as well, instead of using a separate
-distutils.command.tests package, since command identification is done
-by import rather than matching pre-defined names.
-
-"""
-
-import os
-import sys
-import unittest
-from test.test_support import run_unittest
-
-
-here = os.path.dirname(__file__) or os.curdir
-
-
-def test_suite():
- suite = unittest.TestSuite()
- for fn in os.listdir(here):
- if fn.startswith("test") and fn.endswith(".py"):
- modname = "distutils.tests." + fn[:-3]
- __import__(modname)
- module = sys.modules[modname]
- suite.addTest(module.test_suite())
- return suite
-
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/setuptools_build_ext.py b/lib/python2.7/distutils/tests/setuptools_build_ext.py
deleted file mode 100644
index 21fa9e8..0000000
--- a/lib/python2.7/distutils/tests/setuptools_build_ext.py
+++ /dev/null
@@ -1,287 +0,0 @@
-from distutils.command.build_ext import build_ext as _du_build_ext
-try:
- # Attempt to use Pyrex for building extensions, if available
- from Pyrex.Distutils.build_ext import build_ext as _build_ext
-except ImportError:
- _build_ext = _du_build_ext
-
-import os, sys
-from distutils.file_util import copy_file
-
-from distutils.tests.setuptools_extension import Library
-
-from distutils.ccompiler import new_compiler
-from distutils.sysconfig import customize_compiler, get_config_var
-get_config_var("LDSHARED") # make sure _config_vars is initialized
-from distutils.sysconfig import _config_vars
-from distutils import log
-from distutils.errors import *
-
-have_rtld = False
-use_stubs = False
-libtype = 'shared'
-
-if sys.platform == "darwin":
- use_stubs = True
-elif os.name != 'nt':
- try:
- from dl import RTLD_NOW
- have_rtld = True
- use_stubs = True
- except ImportError:
- pass
-
-def if_dl(s):
- if have_rtld:
- return s
- return ''
-
-
-
-
-
-
-class build_ext(_build_ext):
- def run(self):
- """Build extensions in build directory, then copy if --inplace"""
- old_inplace, self.inplace = self.inplace, 0
- _build_ext.run(self)
- self.inplace = old_inplace
- if old_inplace:
- self.copy_extensions_to_source()
-
- def copy_extensions_to_source(self):
- build_py = self.get_finalized_command('build_py')
- for ext in self.extensions:
- fullname = self.get_ext_fullname(ext.name)
- filename = self.get_ext_filename(fullname)
- modpath = fullname.split('.')
- package = '.'.join(modpath[:-1])
- package_dir = build_py.get_package_dir(package)
- dest_filename = os.path.join(package_dir,os.path.basename(filename))
- src_filename = os.path.join(self.build_lib,filename)
-
- # Always copy, even if source is older than destination, to ensure
- # that the right extensions for the current Python/platform are
- # used.
- copy_file(
- src_filename, dest_filename, verbose=self.verbose,
- dry_run=self.dry_run
- )
- if ext._needs_stub:
- self.write_stub(package_dir or os.curdir, ext, True)
-
-
- if _build_ext is not _du_build_ext and not hasattr(_build_ext,'pyrex_sources'):
- # Workaround for problems using some Pyrex versions w/SWIG and/or 2.4
- def swig_sources(self, sources, *otherargs):
- # first do any Pyrex processing
- sources = _build_ext.swig_sources(self, sources) or sources
- # Then do any actual SWIG stuff on the remainder
- return _du_build_ext.swig_sources(self, sources, *otherargs)
-
-
-
- def get_ext_filename(self, fullname):
- filename = _build_ext.get_ext_filename(self,fullname)
- ext = self.ext_map[fullname]
- if isinstance(ext,Library):
- fn, ext = os.path.splitext(filename)
- return self.shlib_compiler.library_filename(fn,libtype)
- elif use_stubs and ext._links_to_dynamic:
- d,fn = os.path.split(filename)
- return os.path.join(d,'dl-'+fn)
- else:
- return filename
-
- def initialize_options(self):
- _build_ext.initialize_options(self)
- self.shlib_compiler = None
- self.shlibs = []
- self.ext_map = {}
-
- def finalize_options(self):
- _build_ext.finalize_options(self)
- self.extensions = self.extensions or []
- self.check_extensions_list(self.extensions)
- self.shlibs = [ext for ext in self.extensions
- if isinstance(ext,Library)]
- if self.shlibs:
- self.setup_shlib_compiler()
- for ext in self.extensions:
- ext._full_name = self.get_ext_fullname(ext.name)
- for ext in self.extensions:
- fullname = ext._full_name
- self.ext_map[fullname] = ext
- ltd = ext._links_to_dynamic = \
- self.shlibs and self.links_to_dynamic(ext) or False
- ext._needs_stub = ltd and use_stubs and not isinstance(ext,Library)
- filename = ext._file_name = self.get_ext_filename(fullname)
- libdir = os.path.dirname(os.path.join(self.build_lib,filename))
- if ltd and libdir not in ext.library_dirs:
- ext.library_dirs.append(libdir)
- if ltd and use_stubs and os.curdir not in ext.runtime_library_dirs:
- ext.runtime_library_dirs.append(os.curdir)
-
- def setup_shlib_compiler(self):
- compiler = self.shlib_compiler = new_compiler(
- compiler=self.compiler, dry_run=self.dry_run, force=self.force
- )
- if sys.platform == "darwin":
- tmp = _config_vars.copy()
- try:
- # XXX Help! I don't have any idea whether these are right...
- _config_vars['LDSHARED'] = "gcc -Wl,-x -dynamiclib -undefined dynamic_lookup"
- _config_vars['CCSHARED'] = " -dynamiclib"
- _config_vars['SO'] = ".dylib"
- customize_compiler(compiler)
- finally:
- _config_vars.clear()
- _config_vars.update(tmp)
- else:
- customize_compiler(compiler)
-
- if self.include_dirs is not None:
- compiler.set_include_dirs(self.include_dirs)
- if self.define is not None:
- # 'define' option is a list of (name,value) tuples
- for (name,value) in self.define:
- compiler.define_macro(name, value)
- if self.undef is not None:
- for macro in self.undef:
- compiler.undefine_macro(macro)
- if self.libraries is not None:
- compiler.set_libraries(self.libraries)
- if self.library_dirs is not None:
- compiler.set_library_dirs(self.library_dirs)
- if self.rpath is not None:
- compiler.set_runtime_library_dirs(self.rpath)
- if self.link_objects is not None:
- compiler.set_link_objects(self.link_objects)
-
- # hack so distutils' build_extension() builds a library instead
- compiler.link_shared_object = link_shared_object.__get__(compiler)
-
-
-
- def get_export_symbols(self, ext):
- if isinstance(ext,Library):
- return ext.export_symbols
- return _build_ext.get_export_symbols(self,ext)
-
- def build_extension(self, ext):
- _compiler = self.compiler
- try:
- if isinstance(ext,Library):
- self.compiler = self.shlib_compiler
- _build_ext.build_extension(self,ext)
- if ext._needs_stub:
- self.write_stub(
- self.get_finalized_command('build_py').build_lib, ext
- )
- finally:
- self.compiler = _compiler
-
- def links_to_dynamic(self, ext):
- """Return true if 'ext' links to a dynamic lib in the same package"""
- # XXX this should check to ensure the lib is actually being built
- # XXX as dynamic, and not just using a locally-found version or a
- # XXX static-compiled version
- libnames = dict.fromkeys([lib._full_name for lib in self.shlibs])
- pkg = '.'.join(ext._full_name.split('.')[:-1]+[''])
- for libname in ext.libraries:
- if pkg+libname in libnames: return True
- return False
-
- def get_outputs(self):
- outputs = _build_ext.get_outputs(self)
- optimize = self.get_finalized_command('build_py').optimize
- for ext in self.extensions:
- if ext._needs_stub:
- base = os.path.join(self.build_lib, *ext._full_name.split('.'))
- outputs.append(base+'.py')
- outputs.append(base+'.pyc')
- if optimize:
- outputs.append(base+'.pyo')
- return outputs
-
- def write_stub(self, output_dir, ext, compile=False):
- log.info("writing stub loader for %s to %s",ext._full_name, output_dir)
- stub_file = os.path.join(output_dir, *ext._full_name.split('.'))+'.py'
- if compile and os.path.exists(stub_file):
- raise DistutilsError(stub_file+" already exists! Please delete.")
- if not self.dry_run:
- f = open(stub_file,'w')
- f.write('\n'.join([
- "def __bootstrap__():",
- " global __bootstrap__, __file__, __loader__",
- " import sys, os, pkg_resources, imp"+if_dl(", dl"),
- " __file__ = pkg_resources.resource_filename(__name__,%r)"
- % os.path.basename(ext._file_name),
- " del __bootstrap__",
- " if '__loader__' in globals():",
- " del __loader__",
- if_dl(" old_flags = sys.getdlopenflags()"),
- " old_dir = os.getcwd()",
- " try:",
- " os.chdir(os.path.dirname(__file__))",
- if_dl(" sys.setdlopenflags(dl.RTLD_NOW)"),
- " imp.load_dynamic(__name__,__file__)",
- " finally:",
- if_dl(" sys.setdlopenflags(old_flags)"),
- " os.chdir(old_dir)",
- "__bootstrap__()",
- "" # terminal \n
- ]))
- f.close()
- if compile:
- from distutils.util import byte_compile
- byte_compile([stub_file], optimize=0,
- force=True, dry_run=self.dry_run)
- optimize = self.get_finalized_command('install_lib').optimize
- if optimize > 0:
- byte_compile([stub_file], optimize=optimize,
- force=True, dry_run=self.dry_run)
- if os.path.exists(stub_file) and not self.dry_run:
- os.unlink(stub_file)
-
-
-if use_stubs or os.name=='nt':
- # Build shared libraries
- #
- def link_shared_object(self, objects, output_libname, output_dir=None,
- libraries=None, library_dirs=None, runtime_library_dirs=None,
- export_symbols=None, debug=0, extra_preargs=None,
- extra_postargs=None, build_temp=None, target_lang=None
- ): self.link(
- self.SHARED_LIBRARY, objects, output_libname,
- output_dir, libraries, library_dirs, runtime_library_dirs,
- export_symbols, debug, extra_preargs, extra_postargs,
- build_temp, target_lang
- )
-else:
- # Build static libraries everywhere else
- libtype = 'static'
-
- def link_shared_object(self, objects, output_libname, output_dir=None,
- libraries=None, library_dirs=None, runtime_library_dirs=None,
- export_symbols=None, debug=0, extra_preargs=None,
- extra_postargs=None, build_temp=None, target_lang=None
- ):
- # XXX we need to either disallow these attrs on Library instances,
- # or warn/abort here if set, or something...
- #libraries=None, library_dirs=None, runtime_library_dirs=None,
- #export_symbols=None, extra_preargs=None, extra_postargs=None,
- #build_temp=None
-
- assert output_dir is None # distutils build_ext doesn't pass this
- output_dir,filename = os.path.split(output_libname)
- basename, ext = os.path.splitext(filename)
- if self.library_filename("x").startswith('lib'):
- # strip 'lib' prefix; this is kludgy if some platform uses
- # a different prefix
- basename = basename[3:]
-
- self.create_static_lib(
- objects, basename, output_dir, debug, target_lang
- )
diff --git a/lib/python2.7/distutils/tests/setuptools_extension.py b/lib/python2.7/distutils/tests/setuptools_extension.py
deleted file mode 100644
index ec6b690..0000000
--- a/lib/python2.7/distutils/tests/setuptools_extension.py
+++ /dev/null
@@ -1,51 +0,0 @@
-from distutils.core import Extension as _Extension
-from distutils.core import Distribution as _Distribution
-
-def _get_unpatched(cls):
- """Protect against re-patching the distutils if reloaded
-
- Also ensures that no other distutils extension monkeypatched the distutils
- first.
- """
- while cls.__module__.startswith('setuptools'):
- cls, = cls.__bases__
- if not cls.__module__.startswith('distutils'):
- raise AssertionError(
- "distutils has already been patched by %r" % cls
- )
- return cls
-
-_Distribution = _get_unpatched(_Distribution)
-_Extension = _get_unpatched(_Extension)
-
-try:
- from Pyrex.Distutils.build_ext import build_ext
-except ImportError:
- have_pyrex = False
-else:
- have_pyrex = True
-
-
-class Extension(_Extension):
- """Extension that uses '.c' files in place of '.pyx' files"""
-
- if not have_pyrex:
- # convert .pyx extensions to .c
- def __init__(self,*args,**kw):
- _Extension.__init__(self,*args,**kw)
- sources = []
- for s in self.sources:
- if s.endswith('.pyx'):
- sources.append(s[:-3]+'c')
- else:
- sources.append(s)
- self.sources = sources
-
-class Library(Extension):
- """Just like a regular Extension, but built as a library instead"""
-
-import sys, distutils.core, distutils.extension
-distutils.core.Extension = Extension
-distutils.extension.Extension = Extension
-if 'distutils.command.build_ext' in sys.modules:
- sys.modules['distutils.command.build_ext'].Extension = Extension
diff --git a/lib/python2.7/distutils/tests/support.py b/lib/python2.7/distutils/tests/support.py
deleted file mode 100644
index 4e6058d..0000000
--- a/lib/python2.7/distutils/tests/support.py
+++ /dev/null
@@ -1,221 +0,0 @@
-"""Support code for distutils test cases."""
-import os
-import sys
-import shutil
-import tempfile
-import unittest
-import sysconfig
-from copy import deepcopy
-import warnings
-
-from distutils import log
-from distutils.log import DEBUG, INFO, WARN, ERROR, FATAL
-from distutils.core import Distribution
-
-
-def capture_warnings(func):
- def _capture_warnings(*args, **kw):
- with warnings.catch_warnings():
- warnings.simplefilter("ignore")
- return func(*args, **kw)
- return _capture_warnings
-
-
-class LoggingSilencer(object):
-
- def setUp(self):
- super(LoggingSilencer, self).setUp()
- self.threshold = log.set_threshold(log.FATAL)
- # catching warnings
- # when log will be replaced by logging
- # we won't need such monkey-patch anymore
- self._old_log = log.Log._log
- log.Log._log = self._log
- self.logs = []
-
- def tearDown(self):
- log.set_threshold(self.threshold)
- log.Log._log = self._old_log
- super(LoggingSilencer, self).tearDown()
-
- def _log(self, level, msg, args):
- if level not in (DEBUG, INFO, WARN, ERROR, FATAL):
- raise ValueError('%s wrong log level' % str(level))
- self.logs.append((level, msg, args))
-
- def get_logs(self, *levels):
- def _format(msg, args):
- if len(args) == 0:
- return msg
- return msg % args
- return [_format(msg, args) for level, msg, args
- in self.logs if level in levels]
-
- def clear_logs(self):
- self.logs = []
-
-
-class TempdirManager(object):
- """Mix-in class that handles temporary directories for test cases.
-
- This is intended to be used with unittest.TestCase.
- """
-
- def setUp(self):
- super(TempdirManager, self).setUp()
- self.old_cwd = os.getcwd()
- self.tempdirs = []
-
- def tearDown(self):
- # Restore working dir, for Solaris and derivatives, where rmdir()
- # on the current directory fails.
- os.chdir(self.old_cwd)
- super(TempdirManager, self).tearDown()
- while self.tempdirs:
- d = self.tempdirs.pop()
- shutil.rmtree(d, os.name in ('nt', 'cygwin'))
-
- def mkdtemp(self):
- """Create a temporary directory that will be cleaned up.
-
- Returns the path of the directory.
- """
- d = tempfile.mkdtemp()
- self.tempdirs.append(d)
- return d
-
- def write_file(self, path, content='xxx'):
- """Writes a file in the given path.
-
-
- path can be a string or a sequence.
- """
- if isinstance(path, (list, tuple)):
- path = os.path.join(*path)
- f = open(path, 'w')
- try:
- f.write(content)
- finally:
- f.close()
-
- def create_dist(self, pkg_name='foo', **kw):
- """Will generate a test environment.
-
- This function creates:
- - a Distribution instance using keywords
- - a temporary directory with a package structure
-
- It returns the package directory and the distribution
- instance.
- """
- tmp_dir = self.mkdtemp()
- pkg_dir = os.path.join(tmp_dir, pkg_name)
- os.mkdir(pkg_dir)
- dist = Distribution(attrs=kw)
-
- return pkg_dir, dist
-
-
-class DummyCommand:
- """Class to store options for retrieval via set_undefined_options()."""
-
- def __init__(self, **kwargs):
- for kw, val in kwargs.items():
- setattr(self, kw, val)
-
- def ensure_finalized(self):
- pass
-
-
-class EnvironGuard(object):
-
- def setUp(self):
- super(EnvironGuard, self).setUp()
- self.old_environ = deepcopy(os.environ)
-
- def tearDown(self):
- for key, value in self.old_environ.items():
- if os.environ.get(key) != value:
- os.environ[key] = value
-
- for key in os.environ.keys():
- if key not in self.old_environ:
- del os.environ[key]
-
- super(EnvironGuard, self).tearDown()
-
-
-def copy_xxmodule_c(directory):
- """Helper for tests that need the xxmodule.c source file.
-
- Example use:
-
- def test_compile(self):
- copy_xxmodule_c(self.tmpdir)
- self.assertIn('xxmodule.c', os.listdir(self.tmpdir))
-
- If the source file can be found, it will be copied to *directory*. If not,
- the test will be skipped. Errors during copy are not caught.
- """
- filename = _get_xxmodule_path()
- if filename is None:
- raise unittest.SkipTest('cannot find xxmodule.c (test must run in '
- 'the python build dir)')
- shutil.copy(filename, directory)
-
-
-def _get_xxmodule_path():
- # FIXME when run from regrtest, srcdir seems to be '.', which does not help
- # us find the xxmodule.c file
- srcdir = sysconfig.get_config_var('srcdir')
- candidates = [
- # use installed copy if available
- os.path.join(os.path.dirname(__file__), 'xxmodule.c'),
- # otherwise try using copy from build directory
- os.path.join(srcdir, 'Modules', 'xxmodule.c'),
- # srcdir mysteriously can be $srcdir/Lib/distutils/tests when
- # this file is run from its parent directory, so walk up the
- # tree to find the real srcdir
- os.path.join(srcdir, '..', '..', '..', 'Modules', 'xxmodule.c'),
- ]
- for path in candidates:
- if os.path.exists(path):
- return path
-
-
-def fixup_build_ext(cmd):
- """Function needed to make build_ext tests pass.
-
- When Python was build with --enable-shared on Unix, -L. is not good
- enough to find the libpython<blah>.so. This is because regrtest runs
- it under a tempdir, not in the top level where the .so lives. By the
- time we've gotten here, Python's already been chdir'd to the tempdir.
-
- When Python was built with in debug mode on Windows, build_ext commands
- need their debug attribute set, and it is not done automatically for
- some reason.
-
- This function handles both of these things. Example use:
-
- cmd = build_ext(dist)
- support.fixup_build_ext(cmd)
- cmd.ensure_finalized()
-
- Unlike most other Unix platforms, Mac OS X embeds absolute paths
- to shared libraries into executables, so the fixup is not needed there.
- """
- if os.name == 'nt':
- cmd.debug = sys.executable.endswith('_d.exe')
- elif sysconfig.get_config_var('Py_ENABLE_SHARED'):
- # To further add to the shared builds fun on Unix, we can't just add
- # library_dirs to the Extension() instance because that doesn't get
- # plumbed through to the final compiler command.
- runshared = sysconfig.get_config_var('RUNSHARED')
- if runshared is None:
- cmd.library_dirs = ['.']
- else:
- if sys.platform == 'darwin':
- cmd.library_dirs = []
- else:
- name, equals, value = runshared.partition('=')
- cmd.library_dirs = value.split(os.pathsep)
diff --git a/lib/python2.7/distutils/tests/test_archive_util.py b/lib/python2.7/distutils/tests/test_archive_util.py
deleted file mode 100644
index f01cec3..0000000
--- a/lib/python2.7/distutils/tests/test_archive_util.py
+++ /dev/null
@@ -1,328 +0,0 @@
-# -*- coding: utf-8 -*-
-"""Tests for distutils.archive_util."""
-__revision__ = "$Id$"
-
-import unittest
-import os
-import sys
-import tarfile
-from os.path import splitdrive
-import warnings
-
-from distutils.archive_util import (check_archive_formats, make_tarball,
- make_zipfile, make_archive,
- ARCHIVE_FORMATS)
-from distutils.spawn import find_executable, spawn
-from distutils.tests import support
-from test.test_support import check_warnings, run_unittest
-
-try:
- import grp
- import pwd
- UID_GID_SUPPORT = True
-except ImportError:
- UID_GID_SUPPORT = False
-
-try:
- import zipfile
- ZIP_SUPPORT = True
-except ImportError:
- ZIP_SUPPORT = find_executable('zip')
-
-# some tests will fail if zlib is not available
-try:
- import zlib
-except ImportError:
- zlib = None
-
-def can_fs_encode(filename):
- """
- Return True if the filename can be saved in the file system.
- """
- if os.path.supports_unicode_filenames:
- return True
- try:
- filename.encode(sys.getfilesystemencoding())
- except UnicodeEncodeError:
- return False
- return True
-
-
-class ArchiveUtilTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_make_tarball(self):
- self._make_tarball('archive')
-
- def _make_tarball(self, target_name):
- # creating something to tar
- tmpdir = self.mkdtemp()
- self.write_file([tmpdir, 'file1'], 'xxx')
- self.write_file([tmpdir, 'file2'], 'xxx')
- os.mkdir(os.path.join(tmpdir, 'sub'))
- self.write_file([tmpdir, 'sub', 'file3'], 'xxx')
-
- tmpdir2 = self.mkdtemp()
- unittest.skipUnless(splitdrive(tmpdir)[0] == splitdrive(tmpdir2)[0],
- "source and target should be on same drive")
-
- base_name = os.path.join(tmpdir2, target_name)
-
- # working with relative paths to avoid tar warnings
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- try:
- make_tarball(splitdrive(base_name)[1], '.')
- finally:
- os.chdir(old_dir)
-
- # check if the compressed tarball was created
- tarball = base_name + '.tar.gz'
- self.assertTrue(os.path.exists(tarball))
-
- # trying an uncompressed one
- base_name = os.path.join(tmpdir2, target_name)
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- try:
- make_tarball(splitdrive(base_name)[1], '.', compress=None)
- finally:
- os.chdir(old_dir)
- tarball = base_name + '.tar'
- self.assertTrue(os.path.exists(tarball))
-
- def _tarinfo(self, path):
- tar = tarfile.open(path)
- try:
- names = tar.getnames()
- names.sort()
- return tuple(names)
- finally:
- tar.close()
-
- def _create_files(self):
- # creating something to tar
- tmpdir = self.mkdtemp()
- dist = os.path.join(tmpdir, 'dist')
- os.mkdir(dist)
- self.write_file([dist, 'file1'], 'xxx')
- self.write_file([dist, 'file2'], 'xxx')
- os.mkdir(os.path.join(dist, 'sub'))
- self.write_file([dist, 'sub', 'file3'], 'xxx')
- os.mkdir(os.path.join(dist, 'sub2'))
- tmpdir2 = self.mkdtemp()
- base_name = os.path.join(tmpdir2, 'archive')
- return tmpdir, tmpdir2, base_name
-
- @unittest.skipUnless(zlib, "Requires zlib")
- @unittest.skipUnless(find_executable('tar') and find_executable('gzip'),
- 'Need the tar command to run')
- def test_tarfile_vs_tar(self):
- tmpdir, tmpdir2, base_name = self._create_files()
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- try:
- make_tarball(base_name, 'dist')
- finally:
- os.chdir(old_dir)
-
- # check if the compressed tarball was created
- tarball = base_name + '.tar.gz'
- self.assertTrue(os.path.exists(tarball))
-
- # now create another tarball using `tar`
- tarball2 = os.path.join(tmpdir, 'archive2.tar.gz')
- tar_cmd = ['tar', '-cf', 'archive2.tar', 'dist']
- gzip_cmd = ['gzip', '-f9', 'archive2.tar']
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- try:
- spawn(tar_cmd)
- spawn(gzip_cmd)
- finally:
- os.chdir(old_dir)
-
- self.assertTrue(os.path.exists(tarball2))
- # let's compare both tarballs
- self.assertEqual(self._tarinfo(tarball), self._tarinfo(tarball2))
-
- # trying an uncompressed one
- base_name = os.path.join(tmpdir2, 'archive')
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- try:
- make_tarball(base_name, 'dist', compress=None)
- finally:
- os.chdir(old_dir)
- tarball = base_name + '.tar'
- self.assertTrue(os.path.exists(tarball))
-
- # now for a dry_run
- base_name = os.path.join(tmpdir2, 'archive')
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- try:
- make_tarball(base_name, 'dist', compress=None, dry_run=True)
- finally:
- os.chdir(old_dir)
- tarball = base_name + '.tar'
- self.assertTrue(os.path.exists(tarball))
-
- @unittest.skipUnless(find_executable('compress'),
- 'The compress program is required')
- def test_compress_deprecated(self):
- tmpdir, tmpdir2, base_name = self._create_files()
-
- # using compress and testing the PendingDeprecationWarning
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- try:
- with check_warnings() as w:
- warnings.simplefilter("always")
- make_tarball(base_name, 'dist', compress='compress')
- finally:
- os.chdir(old_dir)
- tarball = base_name + '.tar.Z'
- self.assertTrue(os.path.exists(tarball))
- self.assertEqual(len(w.warnings), 1)
-
- # same test with dry_run
- os.remove(tarball)
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- try:
- with check_warnings() as w:
- warnings.simplefilter("always")
- make_tarball(base_name, 'dist', compress='compress',
- dry_run=True)
- finally:
- os.chdir(old_dir)
- self.assertTrue(not os.path.exists(tarball))
- self.assertEqual(len(w.warnings), 1)
-
- @unittest.skipUnless(zlib, "Requires zlib")
- @unittest.skipUnless(ZIP_SUPPORT, 'Need zip support to run')
- def test_make_zipfile(self):
- # creating something to tar
- tmpdir = self.mkdtemp()
- self.write_file([tmpdir, 'file1'], 'xxx')
- self.write_file([tmpdir, 'file2'], 'xxx')
-
- tmpdir2 = self.mkdtemp()
- base_name = os.path.join(tmpdir2, 'archive')
- make_zipfile(base_name, tmpdir)
-
- # check if the compressed tarball was created
- tarball = base_name + '.zip'
-
- def test_check_archive_formats(self):
- self.assertEqual(check_archive_formats(['gztar', 'xxx', 'zip']),
- 'xxx')
- self.assertEqual(check_archive_formats(['gztar', 'zip']), None)
-
- def test_make_archive(self):
- tmpdir = self.mkdtemp()
- base_name = os.path.join(tmpdir, 'archive')
- self.assertRaises(ValueError, make_archive, base_name, 'xxx')
-
- @unittest.skipUnless(zlib, "Requires zlib")
- def test_make_archive_owner_group(self):
- # testing make_archive with owner and group, with various combinations
- # this works even if there's not gid/uid support
- if UID_GID_SUPPORT:
- group = grp.getgrgid(0)[0]
- owner = pwd.getpwuid(0)[0]
- else:
- group = owner = 'root'
-
- base_dir, root_dir, base_name = self._create_files()
- base_name = os.path.join(self.mkdtemp() , 'archive')
- res = make_archive(base_name, 'zip', root_dir, base_dir, owner=owner,
- group=group)
- self.assertTrue(os.path.exists(res))
-
- res = make_archive(base_name, 'zip', root_dir, base_dir)
- self.assertTrue(os.path.exists(res))
-
- res = make_archive(base_name, 'tar', root_dir, base_dir,
- owner=owner, group=group)
- self.assertTrue(os.path.exists(res))
-
- res = make_archive(base_name, 'tar', root_dir, base_dir,
- owner='kjhkjhkjg', group='oihohoh')
- self.assertTrue(os.path.exists(res))
-
- @unittest.skipUnless(zlib, "Requires zlib")
- @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
- def test_tarfile_root_owner(self):
- tmpdir, tmpdir2, base_name = self._create_files()
- old_dir = os.getcwd()
- os.chdir(tmpdir)
- group = grp.getgrgid(0)[0]
- owner = pwd.getpwuid(0)[0]
- try:
- archive_name = make_tarball(base_name, 'dist', compress=None,
- owner=owner, group=group)
- finally:
- os.chdir(old_dir)
-
- # check if the compressed tarball was created
- self.assertTrue(os.path.exists(archive_name))
-
- # now checks the rights
- archive = tarfile.open(archive_name)
- try:
- for member in archive.getmembers():
- self.assertEqual(member.uid, 0)
- self.assertEqual(member.gid, 0)
- finally:
- archive.close()
-
- def test_make_archive_cwd(self):
- current_dir = os.getcwd()
- def _breaks(*args, **kw):
- raise RuntimeError()
- ARCHIVE_FORMATS['xxx'] = (_breaks, [], 'xxx file')
- try:
- try:
- make_archive('xxx', 'xxx', root_dir=self.mkdtemp())
- except:
- pass
- self.assertEqual(os.getcwd(), current_dir)
- finally:
- del ARCHIVE_FORMATS['xxx']
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_make_tarball_unicode(self):
- """
- Mirror test_make_tarball, except filename is unicode.
- """
- self._make_tarball(u'archive')
-
- @unittest.skipUnless(zlib, "requires zlib")
- @unittest.skipUnless(can_fs_encode(u'årchiv'),
- 'File system cannot handle this filename')
- def test_make_tarball_unicode_latin1(self):
- """
- Mirror test_make_tarball, except filename is unicode and contains
- latin characters.
- """
- self._make_tarball(u'årchiv') # note this isn't a real word
-
- @unittest.skipUnless(zlib, "requires zlib")
- @unittest.skipUnless(can_fs_encode(u'のアーカイブ'),
- 'File system cannot handle this filename')
- def test_make_tarball_unicode_extended(self):
- """
- Mirror test_make_tarball, except filename is unicode and contains
- characters outside the latin charset.
- """
- self._make_tarball(u'のアーカイブ') # japanese for archive
-
-def test_suite():
- return unittest.makeSuite(ArchiveUtilTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist.py b/lib/python2.7/distutils/tests/test_bdist.py
deleted file mode 100644
index 121d099..0000000
--- a/lib/python2.7/distutils/tests/test_bdist.py
+++ /dev/null
@@ -1,52 +0,0 @@
-"""Tests for distutils.command.bdist."""
-import os
-import unittest
-
-from test.test_support import run_unittest
-
-from distutils.command.bdist import bdist
-from distutils.tests import support
-
-
-class BuildTestCase(support.TempdirManager,
- unittest.TestCase):
-
- def test_formats(self):
- # let's create a command and make sure
- # we can set the format
- dist = self.create_dist()[1]
- cmd = bdist(dist)
- cmd.formats = ['msi']
- cmd.ensure_finalized()
- self.assertEqual(cmd.formats, ['msi'])
-
- # what formats does bdist offer?
- formats = ['bztar', 'gztar', 'msi', 'rpm', 'tar',
- 'wininst', 'zip', 'ztar']
- found = sorted(cmd.format_command)
- self.assertEqual(found, formats)
-
- def test_skip_build(self):
- # bug #10946: bdist --skip-build should trickle down to subcommands
- dist = self.create_dist()[1]
- cmd = bdist(dist)
- cmd.skip_build = 1
- cmd.ensure_finalized()
- dist.command_obj['bdist'] = cmd
-
- names = ['bdist_dumb', 'bdist_wininst']
- # bdist_rpm does not support --skip-build
- if os.name == 'nt':
- names.append('bdist_msi')
-
- for name in names:
- subcmd = cmd.get_finalized_command(name)
- self.assertTrue(subcmd.skip_build,
- '%s should take --skip-build from bdist' % name)
-
-
-def test_suite():
- return unittest.makeSuite(BuildTestCase)
-
-if __name__ == '__main__':
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_dumb.py b/lib/python2.7/distutils/tests/test_bdist_dumb.py
deleted file mode 100644
index 5db3a85..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_dumb.py
+++ /dev/null
@@ -1,114 +0,0 @@
-"""Tests for distutils.command.bdist_dumb."""
-
-import os
-import sys
-import zipfile
-import unittest
-from test.test_support import run_unittest
-
-# zlib is not used here, but if it's not available
-# test_simple_built will fail
-try:
- import zlib
-except ImportError:
- zlib = None
-
-from distutils.core import Distribution
-from distutils.command.bdist_dumb import bdist_dumb
-from distutils.tests import support
-
-SETUP_PY = """\
-from distutils.core import setup
-import foo
-
-setup(name='foo', version='0.1', py_modules=['foo'],
- url='xxx', author='xxx', author_email='xxx')
-
-"""
-
-class BuildDumbTestCase(support.TempdirManager,
- support.LoggingSilencer,
- support.EnvironGuard,
- unittest.TestCase):
-
- def setUp(self):
- super(BuildDumbTestCase, self).setUp()
- self.old_location = os.getcwd()
- self.old_sys_argv = sys.argv, sys.argv[:]
-
- def tearDown(self):
- os.chdir(self.old_location)
- sys.argv = self.old_sys_argv[0]
- sys.argv[:] = self.old_sys_argv[1]
- super(BuildDumbTestCase, self).tearDown()
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_simple_built(self):
-
- # let's create a simple package
- tmp_dir = self.mkdtemp()
- pkg_dir = os.path.join(tmp_dir, 'foo')
- os.mkdir(pkg_dir)
- self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
- self.write_file((pkg_dir, 'foo.py'), '#')
- self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
- self.write_file((pkg_dir, 'README'), '')
-
- dist = Distribution({'name': 'foo', 'version': '0.1',
- 'py_modules': ['foo'],
- 'url': 'xxx', 'author': 'xxx',
- 'author_email': 'xxx'})
- dist.script_name = 'setup.py'
- os.chdir(pkg_dir)
-
- sys.argv = ['setup.py']
- cmd = bdist_dumb(dist)
-
- # so the output is the same no matter
- # what is the platform
- cmd.format = 'zip'
-
- cmd.ensure_finalized()
- cmd.run()
-
- # see what we have
- dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
- base = "%s.%s.zip" % (dist.get_fullname(), cmd.plat_name)
- if os.name == 'os2':
- base = base.replace(':', '-')
-
- self.assertEqual(dist_created, [base])
-
- # now let's check what we have in the zip file
- fp = zipfile.ZipFile(os.path.join('dist', base))
- try:
- contents = fp.namelist()
- finally:
- fp.close()
-
- contents = sorted(os.path.basename(fn) for fn in contents)
- wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], 'foo.py']
- if not sys.dont_write_bytecode:
- wanted.append('foo.pyc')
- self.assertEqual(contents, sorted(wanted))
-
- def test_finalize_options(self):
- pkg_dir, dist = self.create_dist()
- os.chdir(pkg_dir)
- cmd = bdist_dumb(dist)
- self.assertEqual(cmd.bdist_dir, None)
- cmd.finalize_options()
-
- # bdist_dir is initialized to bdist_base/dumb if not set
- base = cmd.get_finalized_command('bdist').bdist_base
- self.assertEqual(cmd.bdist_dir, os.path.join(base, 'dumb'))
-
- # the format is set to a default value depending on the os.name
- default = cmd.default_format[os.name]
- self.assertEqual(cmd.format, default)
-
-def test_suite():
- return unittest.makeSuite(BuildDumbTestCase)
-
-if __name__ == '__main__':
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_msi.py b/lib/python2.7/distutils/tests/test_bdist_msi.py
deleted file mode 100644
index 2df7c30..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_msi.py
+++ /dev/null
@@ -1,26 +0,0 @@
-"""Tests for distutils.command.bdist_msi."""
-import sys
-import unittest
-from test.test_support import run_unittest
-from distutils.tests import support
-
-
-@unittest.skipUnless(sys.platform == 'win32', 'these tests require Windows')
-class BDistMSITestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- @unittest.skip("Require bdist_msi")
- def test_minimal(self):
- # minimal test XXX need more tests
- from distutils.command.bdist_msi import bdist_msi
- project_dir, dist = self.create_dist()
- cmd = bdist_msi(dist)
- cmd.ensure_finalized()
-
-
-def test_suite():
- return unittest.makeSuite(BDistMSITestCase)
-
-if __name__ == '__main__':
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_rpm.py b/lib/python2.7/distutils/tests/test_bdist_rpm.py
deleted file mode 100644
index 37d8915..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_rpm.py
+++ /dev/null
@@ -1,136 +0,0 @@
-"""Tests for distutils.command.bdist_rpm."""
-
-import unittest
-import sys
-import os
-import tempfile
-import shutil
-
-from test.test_support import run_unittest
-
-from distutils.core import Distribution
-from distutils.command.bdist_rpm import bdist_rpm
-from distutils.tests import support
-from distutils.spawn import find_executable
-from distutils import spawn
-from distutils.errors import DistutilsExecError
-
-SETUP_PY = """\
-from distutils.core import setup
-import foo
-
-setup(name='foo', version='0.1', py_modules=['foo'],
- url='xxx', author='xxx', author_email='xxx')
-
-"""
-
-class BuildRpmTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def setUp(self):
- super(BuildRpmTestCase, self).setUp()
- self.old_location = os.getcwd()
- self.old_sys_argv = sys.argv, sys.argv[:]
-
- def tearDown(self):
- os.chdir(self.old_location)
- sys.argv = self.old_sys_argv[0]
- sys.argv[:] = self.old_sys_argv[1]
- super(BuildRpmTestCase, self).tearDown()
-
- def test_quiet(self):
-
- # XXX I am unable yet to make this test work without
- # spurious sdtout/stderr output under Mac OS X
- if sys.platform != 'linux2':
- return
-
- # this test will run only if the rpm commands are found
- if (find_executable('rpm') is None or
- find_executable('rpmbuild') is None):
- return
-
- # let's create a package
- tmp_dir = self.mkdtemp()
- pkg_dir = os.path.join(tmp_dir, 'foo')
- os.mkdir(pkg_dir)
- self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
- self.write_file((pkg_dir, 'foo.py'), '#')
- self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
- self.write_file((pkg_dir, 'README'), '')
-
- dist = Distribution({'name': 'foo', 'version': '0.1',
- 'py_modules': ['foo'],
- 'url': 'xxx', 'author': 'xxx',
- 'author_email': 'xxx'})
- dist.script_name = 'setup.py'
- os.chdir(pkg_dir)
-
- sys.argv = ['setup.py']
- cmd = bdist_rpm(dist)
- cmd.fix_python = True
-
- # running in quiet mode
- cmd.quiet = 1
- cmd.ensure_finalized()
- cmd.run()
-
- dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
- self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created)
-
- # bug #2945: upload ignores bdist_rpm files
- self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm'), dist.dist_files)
- self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm'), dist.dist_files)
-
- def test_no_optimize_flag(self):
-
- # XXX I am unable yet to make this test work without
- # spurious sdtout/stderr output under Mac OS X
- if sys.platform != 'linux2':
- return
-
- # http://bugs.python.org/issue1533164
- # this test will run only if the rpm command is found
- if (find_executable('rpm') is None or
- find_executable('rpmbuild') is None):
- return
-
- # let's create a package that brakes bdist_rpm
- tmp_dir = self.mkdtemp()
- pkg_dir = os.path.join(tmp_dir, 'foo')
- os.mkdir(pkg_dir)
- self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
- self.write_file((pkg_dir, 'foo.py'), '#')
- self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
- self.write_file((pkg_dir, 'README'), '')
-
- dist = Distribution({'name': 'foo', 'version': '0.1',
- 'py_modules': ['foo'],
- 'url': 'xxx', 'author': 'xxx',
- 'author_email': 'xxx'})
- dist.script_name = 'setup.py'
- os.chdir(pkg_dir)
-
- sys.argv = ['setup.py']
- cmd = bdist_rpm(dist)
- cmd.fix_python = True
-
- cmd.quiet = 1
- cmd.ensure_finalized()
- cmd.run()
-
- dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
- self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created)
-
- # bug #2945: upload ignores bdist_rpm files
- self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm'), dist.dist_files)
- self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm'), dist.dist_files)
-
- os.remove(os.path.join(pkg_dir, 'dist', 'foo-0.1-1.noarch.rpm'))
-
-def test_suite():
- return unittest.makeSuite(BuildRpmTestCase)
-
-if __name__ == '__main__':
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_wininst.py b/lib/python2.7/distutils/tests/test_bdist_wininst.py
deleted file mode 100644
index c2b13b3..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_wininst.py
+++ /dev/null
@@ -1,32 +0,0 @@
-"""Tests for distutils.command.bdist_wininst."""
-import unittest
-
-from test.test_support import run_unittest
-
-from distutils.command.bdist_wininst import bdist_wininst
-from distutils.tests import support
-
-class BuildWinInstTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_get_exe_bytes(self):
-
- # issue5731: command was broken on non-windows platforms
- # this test makes sure it works now for every platform
- # let's create a command
- pkg_pth, dist = self.create_dist()
- cmd = bdist_wininst(dist)
- cmd.ensure_finalized()
-
- # let's run the code that finds the right wininst*.exe file
- # and make sure it finds it and returns its content
- # no matter what platform we have
- exe_file = cmd.get_exe_bytes()
- self.assertTrue(len(exe_file) > 10)
-
-def test_suite():
- return unittest.makeSuite(BuildWinInstTestCase)
-
-if __name__ == '__main__':
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build.py b/lib/python2.7/distutils/tests/test_build.py
deleted file mode 100644
index eeb8d73..0000000
--- a/lib/python2.7/distutils/tests/test_build.py
+++ /dev/null
@@ -1,55 +0,0 @@
-"""Tests for distutils.command.build."""
-import unittest
-import os
-import sys
-from test.test_support import run_unittest
-
-from distutils.command.build import build
-from distutils.tests import support
-from sysconfig import get_platform
-
-class BuildTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_finalize_options(self):
- pkg_dir, dist = self.create_dist()
- cmd = build(dist)
- cmd.finalize_options()
-
- # if not specified, plat_name gets the current platform
- self.assertEqual(cmd.plat_name, get_platform())
-
- # build_purelib is build + lib
- wanted = os.path.join(cmd.build_base, 'lib')
- self.assertEqual(cmd.build_purelib, wanted)
-
- # build_platlib is 'build/lib.platform-x.x[-pydebug]'
- # examples:
- # build/lib.macosx-10.3-i386-2.7
- plat_spec = '.%s-%s' % (cmd.plat_name, sys.version[0:3])
- if hasattr(sys, 'gettotalrefcount'):
- self.assertTrue(cmd.build_platlib.endswith('-pydebug'))
- plat_spec += '-pydebug'
- wanted = os.path.join(cmd.build_base, 'lib' + plat_spec)
- self.assertEqual(cmd.build_platlib, wanted)
-
- # by default, build_lib = build_purelib
- self.assertEqual(cmd.build_lib, cmd.build_purelib)
-
- # build_temp is build/temp.<plat>
- wanted = os.path.join(cmd.build_base, 'temp' + plat_spec)
- self.assertEqual(cmd.build_temp, wanted)
-
- # build_scripts is build/scripts-x.x
- wanted = os.path.join(cmd.build_base, 'scripts-' + sys.version[0:3])
- self.assertEqual(cmd.build_scripts, wanted)
-
- # executable is os.path.normpath(sys.executable)
- self.assertEqual(cmd.executable, os.path.normpath(sys.executable))
-
-def test_suite():
- return unittest.makeSuite(BuildTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_clib.py b/lib/python2.7/distutils/tests/test_build_clib.py
deleted file mode 100644
index bef1bd9..0000000
--- a/lib/python2.7/distutils/tests/test_build_clib.py
+++ /dev/null
@@ -1,146 +0,0 @@
-"""Tests for distutils.command.build_clib."""
-import unittest
-import os
-import sys
-
-from test.test_support import run_unittest
-
-from distutils.command.build_clib import build_clib
-from distutils.errors import DistutilsSetupError
-from distutils.tests import support
-from distutils.spawn import find_executable
-
-class BuildCLibTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_check_library_dist(self):
- pkg_dir, dist = self.create_dist()
- cmd = build_clib(dist)
-
- # 'libraries' option must be a list
- self.assertRaises(DistutilsSetupError, cmd.check_library_list, 'foo')
-
- # each element of 'libraries' must a 2-tuple
- self.assertRaises(DistutilsSetupError, cmd.check_library_list,
- ['foo1', 'foo2'])
-
- # first element of each tuple in 'libraries'
- # must be a string (the library name)
- self.assertRaises(DistutilsSetupError, cmd.check_library_list,
- [(1, 'foo1'), ('name', 'foo2')])
-
- # library name may not contain directory separators
- self.assertRaises(DistutilsSetupError, cmd.check_library_list,
- [('name', 'foo1'),
- ('another/name', 'foo2')])
-
- # second element of each tuple must be a dictionary (build info)
- self.assertRaises(DistutilsSetupError, cmd.check_library_list,
- [('name', {}),
- ('another', 'foo2')])
-
- # those work
- libs = [('name', {}), ('name', {'ok': 'good'})]
- cmd.check_library_list(libs)
-
- def test_get_source_files(self):
- pkg_dir, dist = self.create_dist()
- cmd = build_clib(dist)
-
- # "in 'libraries' option 'sources' must be present and must be
- # a list of source filenames
- cmd.libraries = [('name', {})]
- self.assertRaises(DistutilsSetupError, cmd.get_source_files)
-
- cmd.libraries = [('name', {'sources': 1})]
- self.assertRaises(DistutilsSetupError, cmd.get_source_files)
-
- cmd.libraries = [('name', {'sources': ['a', 'b']})]
- self.assertEqual(cmd.get_source_files(), ['a', 'b'])
-
- cmd.libraries = [('name', {'sources': ('a', 'b')})]
- self.assertEqual(cmd.get_source_files(), ['a', 'b'])
-
- cmd.libraries = [('name', {'sources': ('a', 'b')}),
- ('name2', {'sources': ['c', 'd']})]
- self.assertEqual(cmd.get_source_files(), ['a', 'b', 'c', 'd'])
-
- def test_build_libraries(self):
-
- pkg_dir, dist = self.create_dist()
- cmd = build_clib(dist)
- class FakeCompiler:
- def compile(*args, **kw):
- pass
- create_static_lib = compile
-
- cmd.compiler = FakeCompiler()
-
- # build_libraries is also doing a bit of typoe checking
- lib = [('name', {'sources': 'notvalid'})]
- self.assertRaises(DistutilsSetupError, cmd.build_libraries, lib)
-
- lib = [('name', {'sources': list()})]
- cmd.build_libraries(lib)
-
- lib = [('name', {'sources': tuple()})]
- cmd.build_libraries(lib)
-
- def test_finalize_options(self):
- pkg_dir, dist = self.create_dist()
- cmd = build_clib(dist)
-
- cmd.include_dirs = 'one-dir'
- cmd.finalize_options()
- self.assertEqual(cmd.include_dirs, ['one-dir'])
-
- cmd.include_dirs = None
- cmd.finalize_options()
- self.assertEqual(cmd.include_dirs, [])
-
- cmd.distribution.libraries = 'WONTWORK'
- self.assertRaises(DistutilsSetupError, cmd.finalize_options)
-
- def test_run(self):
- # can't test on windows
- if sys.platform == 'win32':
- return
-
- pkg_dir, dist = self.create_dist()
- cmd = build_clib(dist)
-
- foo_c = os.path.join(pkg_dir, 'foo.c')
- self.write_file(foo_c, 'int main(void) { return 1;}\n')
- cmd.libraries = [('foo', {'sources': [foo_c]})]
-
- build_temp = os.path.join(pkg_dir, 'build')
- os.mkdir(build_temp)
- cmd.build_temp = build_temp
- cmd.build_clib = build_temp
-
- # before we run the command, we want to make sure
- # all commands are present on the system
- # by creating a compiler and checking its executables
- from distutils.ccompiler import new_compiler
- from distutils.sysconfig import customize_compiler
-
- compiler = new_compiler()
- customize_compiler(compiler)
- for ccmd in compiler.executables.values():
- if ccmd is None:
- continue
- if find_executable(ccmd[0]) is None:
- return # can't test
-
- # this should work
- cmd.run()
-
- # let's check the result
- self.assertTrue('libfoo.a' in os.listdir(build_temp))
-
-def test_suite():
- return unittest.makeSuite(BuildCLibTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_ext.py b/lib/python2.7/distutils/tests/test_build_ext.py
deleted file mode 100644
index 94c6eea..0000000
--- a/lib/python2.7/distutils/tests/test_build_ext.py
+++ /dev/null
@@ -1,522 +0,0 @@
-import sys
-import os
-from StringIO import StringIO
-import textwrap
-
-from distutils.core import Extension, Distribution
-from distutils.command.build_ext import build_ext
-from distutils import sysconfig
-from distutils.tests import support
-from distutils.errors import (DistutilsSetupError, CompileError,
- DistutilsPlatformError)
-
-import unittest
-from test import test_support
-
-# http://bugs.python.org/issue4373
-# Don't load the xx module more than once.
-ALREADY_TESTED = False
-
-
-class BuildExtTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
- def setUp(self):
- super(BuildExtTestCase, self).setUp()
- self.tmp_dir = self.mkdtemp()
- self.xx_created = False
- sys.path.append(self.tmp_dir)
- self.addCleanup(sys.path.remove, self.tmp_dir)
- if sys.version > "2.6":
- import site
- self.old_user_base = site.USER_BASE
- site.USER_BASE = self.mkdtemp()
- from distutils.command import build_ext
- build_ext.USER_BASE = site.USER_BASE
-
- def tearDown(self):
- if self.xx_created:
- test_support.unload('xx')
- # XXX on Windows the test leaves a directory
- # with xx module in TEMP
- super(BuildExtTestCase, self).tearDown()
-
- def test_build_ext(self):
- global ALREADY_TESTED
- support.copy_xxmodule_c(self.tmp_dir)
- self.xx_created = True
- xx_c = os.path.join(self.tmp_dir, 'xxmodule.c')
- xx_ext = Extension('xx', [xx_c])
- dist = Distribution({'name': 'xx', 'ext_modules': [xx_ext]})
- dist.package_dir = self.tmp_dir
- cmd = build_ext(dist)
- support.fixup_build_ext(cmd)
- cmd.build_lib = self.tmp_dir
- cmd.build_temp = self.tmp_dir
-
- old_stdout = sys.stdout
- if not test_support.verbose:
- # silence compiler output
- sys.stdout = StringIO()
- try:
- cmd.ensure_finalized()
- #Broken after issue 7712(r78136) : add a temp_cwd context manager to test_support ...
- #Without current working dir: "...cannot find -lpython27"
- #NOTE: [py3k svn r85559] First (uncontroversial) part of issue 9807, barry.warsaw, 2010-10-16 :
- # new _fixup_command is bogus, so we will use own work-around
- cmd.library_dirs.insert(0, test_support.SAVEDCWD)
- cmd.run()
- finally:
- sys.stdout = old_stdout
-
- if ALREADY_TESTED:
- return
- else:
- ALREADY_TESTED = True
-
- import xx
-
- for attr in ('error', 'foo', 'new', 'roj'):
- self.assertTrue(hasattr(xx, attr))
-
- self.assertEqual(xx.foo(2, 5), 7)
- self.assertEqual(xx.foo(13,15), 28)
- self.assertEqual(xx.new().demo(), None)
- if test_support.HAVE_DOCSTRINGS:
- doc = 'This is a template module just for instruction.'
- self.assertEqual(xx.__doc__, doc)
- self.assertTrue(isinstance(xx.Null(), xx.Null))
- self.assertTrue(isinstance(xx.Str(), xx.Str))
-
- def test_solaris_enable_shared(self):
- dist = Distribution({'name': 'xx'})
- cmd = build_ext(dist)
- old = sys.platform
-
- sys.platform = 'sunos' # fooling finalize_options
- from distutils.sysconfig import _config_vars
- old_var = _config_vars.get('Py_ENABLE_SHARED')
- _config_vars['Py_ENABLE_SHARED'] = 1
- try:
- cmd.ensure_finalized()
- finally:
- sys.platform = old
- if old_var is None:
- del _config_vars['Py_ENABLE_SHARED']
- else:
- _config_vars['Py_ENABLE_SHARED'] = old_var
-
- # make sure we get some library dirs under solaris
- self.assertTrue(len(cmd.library_dirs) > 0)
-
- def test_user_site(self):
- # site.USER_SITE was introduced in 2.6
- if sys.version < '2.6':
- return
-
- import site
- dist = Distribution({'name': 'xx'})
- cmd = build_ext(dist)
-
- # making sure the user option is there
- options = [name for name, short, label in
- cmd.user_options]
- self.assertIn('user', options)
-
- # setting a value
- cmd.user = 1
-
- # setting user based lib and include
- lib = os.path.join(site.USER_BASE, 'lib')
- incl = os.path.join(site.USER_BASE, 'include')
- os.mkdir(lib)
- os.mkdir(incl)
-
- cmd.ensure_finalized()
-
- # see if include_dirs and library_dirs were set
- self.assertIn(lib, cmd.library_dirs)
- self.assertIn(lib, cmd.rpath)
- self.assertIn(incl, cmd.include_dirs)
-
- def test_finalize_options(self):
- # Make sure Python's include directories (for Python.h, pyconfig.h,
- # etc.) are in the include search path.
- modules = [Extension('foo', ['xxx'])]
- dist = Distribution({'name': 'xx', 'ext_modules': modules})
- cmd = build_ext(dist)
- cmd.finalize_options()
-
- py_include = sysconfig.get_python_inc()
- self.assertTrue(py_include in cmd.include_dirs)
-
- plat_py_include = sysconfig.get_python_inc(plat_specific=1)
- self.assertTrue(plat_py_include in cmd.include_dirs)
-
- # make sure cmd.libraries is turned into a list
- # if it's a string
- cmd = build_ext(dist)
- cmd.libraries = 'my_lib, other_lib lastlib'
- cmd.finalize_options()
- self.assertEqual(cmd.libraries, ['my_lib', 'other_lib', 'lastlib'])
-
- # make sure cmd.library_dirs is turned into a list
- # if it's a string
- cmd = build_ext(dist)
- cmd.library_dirs = 'my_lib_dir%sother_lib_dir' % os.pathsep
- cmd.finalize_options()
- self.assertIn('my_lib_dir', cmd.library_dirs)
- self.assertIn('other_lib_dir', cmd.library_dirs)
-
- # make sure rpath is turned into a list
- # if it's a string
- cmd = build_ext(dist)
- cmd.rpath = 'one%stwo' % os.pathsep
- cmd.finalize_options()
- self.assertEqual(cmd.rpath, ['one', 'two'])
-
- # XXX more tests to perform for win32
-
- # make sure define is turned into 2-tuples
- # strings if they are ','-separated strings
- cmd = build_ext(dist)
- cmd.define = 'one,two'
- cmd.finalize_options()
- self.assertEqual(cmd.define, [('one', '1'), ('two', '1')])
-
- # make sure undef is turned into a list of
- # strings if they are ','-separated strings
- cmd = build_ext(dist)
- cmd.undef = 'one,two'
- cmd.finalize_options()
- self.assertEqual(cmd.undef, ['one', 'two'])
-
- # make sure swig_opts is turned into a list
- cmd = build_ext(dist)
- cmd.swig_opts = None
- cmd.finalize_options()
- self.assertEqual(cmd.swig_opts, [])
-
- cmd = build_ext(dist)
- cmd.swig_opts = '1 2'
- cmd.finalize_options()
- self.assertEqual(cmd.swig_opts, ['1', '2'])
-
- def test_check_extensions_list(self):
- dist = Distribution()
- cmd = build_ext(dist)
- cmd.finalize_options()
-
- #'extensions' option must be a list of Extension instances
- self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, 'foo')
-
- # each element of 'ext_modules' option must be an
- # Extension instance or 2-tuple
- exts = [('bar', 'foo', 'bar'), 'foo']
- self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
- # first element of each tuple in 'ext_modules'
- # must be the extension name (a string) and match
- # a python dotted-separated name
- exts = [('foo-bar', '')]
- self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
- # second element of each tuple in 'ext_modules'
- # must be a ary (build info)
- exts = [('foo.bar', '')]
- self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
- # ok this one should pass
- exts = [('foo.bar', {'sources': [''], 'libraries': 'foo',
- 'some': 'bar'})]
- cmd.check_extensions_list(exts)
- ext = exts[0]
- self.assertTrue(isinstance(ext, Extension))
-
- # check_extensions_list adds in ext the values passed
- # when they are in ('include_dirs', 'library_dirs', 'libraries'
- # 'extra_objects', 'extra_compile_args', 'extra_link_args')
- self.assertEqual(ext.libraries, 'foo')
- self.assertTrue(not hasattr(ext, 'some'))
-
- # 'macros' element of build info dict must be 1- or 2-tuple
- exts = [('foo.bar', {'sources': [''], 'libraries': 'foo',
- 'some': 'bar', 'macros': [('1', '2', '3'), 'foo']})]
- self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
- exts[0][1]['macros'] = [('1', '2'), ('3',)]
- cmd.check_extensions_list(exts)
- self.assertEqual(exts[0].undef_macros, ['3'])
- self.assertEqual(exts[0].define_macros, [('1', '2')])
-
- def test_get_source_files(self):
- modules = [Extension('foo', ['xxx'])]
- dist = Distribution({'name': 'xx', 'ext_modules': modules})
- cmd = build_ext(dist)
- cmd.ensure_finalized()
- self.assertEqual(cmd.get_source_files(), ['xxx'])
-
- def test_compiler_option(self):
- # cmd.compiler is an option and
- # should not be overriden by a compiler instance
- # when the command is run
- dist = Distribution()
- cmd = build_ext(dist)
- cmd.compiler = 'unix'
- cmd.ensure_finalized()
- cmd.run()
- self.assertEqual(cmd.compiler, 'unix')
-
- def test_get_outputs(self):
- tmp_dir = self.mkdtemp()
- c_file = os.path.join(tmp_dir, 'foo.c')
- self.write_file(c_file, 'void initfoo(void) {};\n')
- ext = Extension('foo', [c_file])
- dist = Distribution({'name': 'xx',
- 'ext_modules': [ext]})
- cmd = build_ext(dist)
- support.fixup_build_ext(cmd)
- cmd.ensure_finalized()
- self.assertEqual(len(cmd.get_outputs()), 1)
-
- cmd.build_lib = os.path.join(self.tmp_dir, 'build')
- cmd.build_temp = os.path.join(self.tmp_dir, 'tempt')
-
- # issue #5977 : distutils build_ext.get_outputs
- # returns wrong result with --inplace
- other_tmp_dir = os.path.realpath(self.mkdtemp())
- old_wd = os.getcwd()
- #Without current working dir: "...cannot find -lpython27"
- #NOTE: After issue #7712(r78136) test cannot use old_wd !
- #cmd.library_dirs.insert(0, old_wd)
- #NOTE: [py3k svn r85559] First (uncontroversial) part of issue 9807, barry.warsaw, 2010-10-16 :
- # new _fixup_command is bogus, so we will use own work-around
- cmd.library_dirs.insert(0, test_support.SAVEDCWD)
- os.chdir(other_tmp_dir)
- try:
- cmd.inplace = 1
- cmd.run()
- so_file = cmd.get_outputs()[0]
- finally:
- os.chdir(old_wd)
- self.assertTrue(os.path.exists(so_file))
- self.assertEqual(os.path.splitext(so_file)[-1],
- sysconfig.get_config_var('SO'))
- so_dir = os.path.dirname(so_file)
- self.assertEqual(so_dir, other_tmp_dir)
- cmd.compiler = None
- cmd.inplace = 0
- cmd.run()
- so_file = cmd.get_outputs()[0]
- self.assertTrue(os.path.exists(so_file))
- self.assertEqual(os.path.splitext(so_file)[-1],
- sysconfig.get_config_var('SO'))
- so_dir = os.path.dirname(so_file)
- self.assertEqual(so_dir, cmd.build_lib)
-
- # inplace = 0, cmd.package = 'bar'
- build_py = cmd.get_finalized_command('build_py')
- build_py.package_dir = {'': 'bar'}
- path = cmd.get_ext_fullpath('foo')
- # checking that the last directory is the build_dir
- path = os.path.split(path)[0]
- self.assertEqual(path, cmd.build_lib)
-
- # inplace = 1, cmd.package = 'bar'
- cmd.inplace = 1
- other_tmp_dir = os.path.realpath(self.mkdtemp())
- old_wd = os.getcwd()
- os.chdir(other_tmp_dir)
- try:
- path = cmd.get_ext_fullpath('foo')
- finally:
- os.chdir(old_wd)
- # checking that the last directory is bar
- path = os.path.split(path)[0]
- lastdir = os.path.split(path)[-1]
- self.assertEqual(lastdir, 'bar')
-
- def test_ext_fullpath(self):
- ext = sysconfig.get_config_vars()['SO']
- dist = Distribution()
- cmd = build_ext(dist)
- cmd.inplace = 1
- cmd.distribution.package_dir = {'': 'src'}
- cmd.distribution.packages = ['lxml', 'lxml.html']
- curdir = os.getcwd()
- wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
- path = cmd.get_ext_fullpath('lxml.etree')
- self.assertEqual(wanted, path)
-
- # building lxml.etree not inplace
- cmd.inplace = 0
- cmd.build_lib = os.path.join(curdir, 'tmpdir')
- wanted = os.path.join(curdir, 'tmpdir', 'lxml', 'etree' + ext)
- path = cmd.get_ext_fullpath('lxml.etree')
- self.assertEqual(wanted, path)
-
- # building twisted.runner.portmap not inplace
- build_py = cmd.get_finalized_command('build_py')
- build_py.package_dir = {}
- cmd.distribution.packages = ['twisted', 'twisted.runner.portmap']
- path = cmd.get_ext_fullpath('twisted.runner.portmap')
- wanted = os.path.join(curdir, 'tmpdir', 'twisted', 'runner',
- 'portmap' + ext)
- self.assertEqual(wanted, path)
-
- # building twisted.runner.portmap inplace
- cmd.inplace = 1
- path = cmd.get_ext_fullpath('twisted.runner.portmap')
- wanted = os.path.join(curdir, 'twisted', 'runner', 'portmap' + ext)
- self.assertEqual(wanted, path)
-
- def test_build_ext_inplace(self):
- etree_c = os.path.join(self.tmp_dir, 'lxml.etree.c')
- etree_ext = Extension('lxml.etree', [etree_c])
- dist = Distribution({'name': 'lxml', 'ext_modules': [etree_ext]})
- cmd = build_ext(dist)
- cmd.ensure_finalized()
- cmd.inplace = 1
- cmd.distribution.package_dir = {'': 'src'}
- cmd.distribution.packages = ['lxml', 'lxml.html']
- curdir = os.getcwd()
- ext = sysconfig.get_config_var("SO")
- wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
- path = cmd.get_ext_fullpath('lxml.etree')
- self.assertEqual(wanted, path)
-
- def test_setuptools_compat(self):
- import distutils.core, distutils.extension, distutils.command.build_ext
- saved_ext = distutils.extension.Extension
- try:
- # on some platforms, it loads the deprecated "dl" module
- test_support.import_module('setuptools_build_ext', deprecated=True)
-
- # theses import patch Distutils' Extension class
- from setuptools_build_ext import build_ext as setuptools_build_ext
- from setuptools_extension import Extension
-
- etree_c = os.path.join(self.tmp_dir, 'lxml.etree.c')
- etree_ext = Extension('lxml.etree', [etree_c])
- dist = Distribution({'name': 'lxml', 'ext_modules': [etree_ext]})
- cmd = setuptools_build_ext(dist)
- cmd.ensure_finalized()
- cmd.inplace = 1
- cmd.distribution.package_dir = {'': 'src'}
- cmd.distribution.packages = ['lxml', 'lxml.html']
- curdir = os.getcwd()
- ext = sysconfig.get_config_var("SO")
- wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
- path = cmd.get_ext_fullpath('lxml.etree')
- self.assertEqual(wanted, path)
- finally:
- # restoring Distutils' Extension class otherwise its broken
- distutils.extension.Extension = saved_ext
- distutils.core.Extension = saved_ext
- distutils.command.build_ext.Extension = saved_ext
-
- def test_build_ext_path_with_os_sep(self):
- dist = Distribution({'name': 'UpdateManager'})
- cmd = build_ext(dist)
- cmd.ensure_finalized()
- ext = sysconfig.get_config_var("SO")
- ext_name = os.path.join('UpdateManager', 'fdsend')
- ext_path = cmd.get_ext_fullpath(ext_name)
- wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
- self.assertEqual(ext_path, wanted)
-
- def test_build_ext_path_cross_platform(self):
- if sys.platform != 'win32':
- return
- dist = Distribution({'name': 'UpdateManager'})
- cmd = build_ext(dist)
- cmd.ensure_finalized()
- ext = sysconfig.get_config_var("SO")
- # this needs to work even under win32
- ext_name = 'UpdateManager/fdsend'
- ext_path = cmd.get_ext_fullpath(ext_name)
- wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
- self.assertEqual(ext_path, wanted)
-
- @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
- def test_deployment_target_default(self):
- # Issue 9516: Test that, in the absence of the environment variable,
- # an extension module is compiled with the same deployment target as
- # the interpreter.
- self._try_compile_deployment_target('==', None)
-
- @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
- def test_deployment_target_too_low(self):
- # Issue 9516: Test that an extension module is not allowed to be
- # compiled with a deployment target less than that of the interpreter.
- self.assertRaises(DistutilsPlatformError,
- self._try_compile_deployment_target, '>', '10.1')
-
- @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
- def test_deployment_target_higher_ok(self):
- # Issue 9516: Test that an extension module can be compiled with a
- # deployment target higher than that of the interpreter: the ext
- # module may depend on some newer OS feature.
- deptarget = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
- if deptarget:
- # increment the minor version number (i.e. 10.6 -> 10.7)
- deptarget = [int(x) for x in deptarget.split('.')]
- deptarget[-1] += 1
- deptarget = '.'.join(str(i) for i in deptarget)
- self._try_compile_deployment_target('<', deptarget)
-
- def _try_compile_deployment_target(self, operator, target):
- orig_environ = os.environ
- os.environ = orig_environ.copy()
- self.addCleanup(setattr, os, 'environ', orig_environ)
-
- if target is None:
- if os.environ.get('MACOSX_DEPLOYMENT_TARGET'):
- del os.environ['MACOSX_DEPLOYMENT_TARGET']
- else:
- os.environ['MACOSX_DEPLOYMENT_TARGET'] = target
-
- deptarget_c = os.path.join(self.tmp_dir, 'deptargetmodule.c')
-
- with open(deptarget_c, 'w') as fp:
- fp.write(textwrap.dedent('''\
- #include <AvailabilityMacros.h>
-
- int dummy;
-
- #if TARGET %s MAC_OS_X_VERSION_MIN_REQUIRED
- #else
- #error "Unexpected target"
- #endif
-
- ''' % operator))
-
- # get the deployment target that the interpreter was built with
- target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
- target = tuple(map(int, target.split('.')))
- target = '%02d%01d0' % target
- deptarget_ext = Extension(
- 'deptarget',
- [deptarget_c],
- extra_compile_args=['-DTARGET=%s'%(target,)],
- )
- dist = Distribution({
- 'name': 'deptarget',
- 'ext_modules': [deptarget_ext]
- })
- dist.package_dir = self.tmp_dir
- cmd = build_ext(dist)
- cmd.build_lib = self.tmp_dir
- cmd.build_temp = self.tmp_dir
-
- try:
- cmd.ensure_finalized()
- cmd.run()
- except CompileError:
- self.fail("Wrong deployment target during compilation")
-
-def test_suite():
- return unittest.makeSuite(BuildExtTestCase)
-
-if __name__ == '__main__':
- test_support.run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_py.py b/lib/python2.7/distutils/tests/test_build_py.py
deleted file mode 100644
index 6c6ec20..0000000
--- a/lib/python2.7/distutils/tests/test_build_py.py
+++ /dev/null
@@ -1,122 +0,0 @@
-"""Tests for distutils.command.build_py."""
-
-import os
-import sys
-import StringIO
-import unittest
-
-from distutils.command.build_py import build_py
-from distutils.core import Distribution
-from distutils.errors import DistutilsFileError
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class BuildPyTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_package_data(self):
- sources = self.mkdtemp()
- f = open(os.path.join(sources, "__init__.py"), "w")
- try:
- f.write("# Pretend this is a package.")
- finally:
- f.close()
- f = open(os.path.join(sources, "README.txt"), "w")
- try:
- f.write("Info about this package")
- finally:
- f.close()
-
- destination = self.mkdtemp()
-
- dist = Distribution({"packages": ["pkg"],
- "package_dir": {"pkg": sources}})
- # script_name need not exist, it just need to be initialized
- dist.script_name = os.path.join(sources, "setup.py")
- dist.command_obj["build"] = support.DummyCommand(
- force=0,
- build_lib=destination)
- dist.packages = ["pkg"]
- dist.package_data = {"pkg": ["README.txt"]}
- dist.package_dir = {"pkg": sources}
-
- cmd = build_py(dist)
- cmd.compile = 1
- cmd.ensure_finalized()
- self.assertEqual(cmd.package_data, dist.package_data)
-
- cmd.run()
-
- # This makes sure the list of outputs includes byte-compiled
- # files for Python modules but not for package data files
- # (there shouldn't *be* byte-code files for those!).
- #
- self.assertEqual(len(cmd.get_outputs()), 3)
- pkgdest = os.path.join(destination, "pkg")
- files = os.listdir(pkgdest)
- self.assertIn("__init__.py", files)
- self.assertIn("README.txt", files)
- # XXX even with -O, distutils writes pyc, not pyo; bug?
- if sys.dont_write_bytecode:
- self.assertNotIn("__init__.pyc", files)
- else:
- self.assertIn("__init__.pyc", files)
-
- def test_empty_package_dir(self):
- # See SF 1668596/1720897.
- cwd = os.getcwd()
-
- # create the distribution files.
- sources = self.mkdtemp()
- open(os.path.join(sources, "__init__.py"), "w").close()
-
- testdir = os.path.join(sources, "doc")
- os.mkdir(testdir)
- open(os.path.join(testdir, "testfile"), "w").close()
-
- os.chdir(sources)
- old_stdout = sys.stdout
- sys.stdout = StringIO.StringIO()
-
- try:
- dist = Distribution({"packages": ["pkg"],
- "package_dir": {"pkg": ""},
- "package_data": {"pkg": ["doc/*"]}})
- # script_name need not exist, it just need to be initialized
- dist.script_name = os.path.join(sources, "setup.py")
- dist.script_args = ["build"]
- dist.parse_command_line()
-
- try:
- dist.run_commands()
- except DistutilsFileError:
- self.fail("failed package_data test when package_dir is ''")
- finally:
- # Restore state.
- os.chdir(cwd)
- sys.stdout = old_stdout
-
- def test_dont_write_bytecode(self):
- # makes sure byte_compile is not used
- pkg_dir, dist = self.create_dist()
- cmd = build_py(dist)
- cmd.compile = 1
- cmd.optimize = 1
-
- old_dont_write_bytecode = sys.dont_write_bytecode
- sys.dont_write_bytecode = True
- try:
- cmd.byte_compile([])
- finally:
- sys.dont_write_bytecode = old_dont_write_bytecode
-
- self.assertIn('byte-compiling is disabled', self.logs[0][1])
-
-def test_suite():
- return unittest.makeSuite(BuildPyTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_scripts.py b/lib/python2.7/distutils/tests/test_build_scripts.py
deleted file mode 100644
index 4da93cc..0000000
--- a/lib/python2.7/distutils/tests/test_build_scripts.py
+++ /dev/null
@@ -1,112 +0,0 @@
-"""Tests for distutils.command.build_scripts."""
-
-import os
-import unittest
-
-from distutils.command.build_scripts import build_scripts
-from distutils.core import Distribution
-import sysconfig
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class BuildScriptsTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_default_settings(self):
- cmd = self.get_build_scripts_cmd("/foo/bar", [])
- self.assertTrue(not cmd.force)
- self.assertTrue(cmd.build_dir is None)
-
- cmd.finalize_options()
-
- self.assertTrue(cmd.force)
- self.assertEqual(cmd.build_dir, "/foo/bar")
-
- def test_build(self):
- source = self.mkdtemp()
- target = self.mkdtemp()
- expected = self.write_sample_scripts(source)
-
- cmd = self.get_build_scripts_cmd(target,
- [os.path.join(source, fn)
- for fn in expected])
- cmd.finalize_options()
- cmd.run()
-
- built = os.listdir(target)
- for name in expected:
- self.assertTrue(name in built)
-
- def get_build_scripts_cmd(self, target, scripts):
- import sys
- dist = Distribution()
- dist.scripts = scripts
- dist.command_obj["build"] = support.DummyCommand(
- build_scripts=target,
- force=1,
- executable=sys.executable
- )
- return build_scripts(dist)
-
- def write_sample_scripts(self, dir):
- expected = []
- expected.append("script1.py")
- self.write_script(dir, "script1.py",
- ("#! /usr/bin/env python2.3\n"
- "# bogus script w/ Python sh-bang\n"
- "pass\n"))
- expected.append("script2.py")
- self.write_script(dir, "script2.py",
- ("#!/usr/bin/python\n"
- "# bogus script w/ Python sh-bang\n"
- "pass\n"))
- expected.append("shell.sh")
- self.write_script(dir, "shell.sh",
- ("#!/bin/sh\n"
- "# bogus shell script w/ sh-bang\n"
- "exit 0\n"))
- return expected
-
- def write_script(self, dir, name, text):
- f = open(os.path.join(dir, name), "w")
- try:
- f.write(text)
- finally:
- f.close()
-
- def test_version_int(self):
- source = self.mkdtemp()
- target = self.mkdtemp()
- expected = self.write_sample_scripts(source)
-
-
- cmd = self.get_build_scripts_cmd(target,
- [os.path.join(source, fn)
- for fn in expected])
- cmd.finalize_options()
-
- # http://bugs.python.org/issue4524
- #
- # On linux-g++-32 with command line `./configure --enable-ipv6
- # --with-suffix=3`, python is compiled okay but the build scripts
- # failed when writing the name of the executable
- old = sysconfig.get_config_vars().get('VERSION')
- sysconfig._CONFIG_VARS['VERSION'] = 4
- try:
- cmd.run()
- finally:
- if old is not None:
- sysconfig._CONFIG_VARS['VERSION'] = old
-
- built = os.listdir(target)
- for name in expected:
- self.assertTrue(name in built)
-
-def test_suite():
- return unittest.makeSuite(BuildScriptsTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_ccompiler.py b/lib/python2.7/distutils/tests/test_ccompiler.py
deleted file mode 100644
index 45e477a..0000000
--- a/lib/python2.7/distutils/tests/test_ccompiler.py
+++ /dev/null
@@ -1,82 +0,0 @@
-"""Tests for distutils.ccompiler."""
-import os
-import unittest
-from test.test_support import captured_stdout
-
-from distutils.ccompiler import (gen_lib_options, CCompiler,
- get_default_compiler)
-from distutils.sysconfig import customize_compiler
-from distutils import debug
-from distutils.tests import support
-
-class FakeCompiler(object):
- def library_dir_option(self, dir):
- return "-L" + dir
-
- def runtime_library_dir_option(self, dir):
- return ["-cool", "-R" + dir]
-
- def find_library_file(self, dirs, lib, debug=0):
- return 'found'
-
- def library_option(self, lib):
- return "-l" + lib
-
-class CCompilerTestCase(support.EnvironGuard, unittest.TestCase):
-
- def test_gen_lib_options(self):
- compiler = FakeCompiler()
- libdirs = ['lib1', 'lib2']
- runlibdirs = ['runlib1']
- libs = [os.path.join('dir', 'name'), 'name2']
-
- opts = gen_lib_options(compiler, libdirs, runlibdirs, libs)
- wanted = ['-Llib1', '-Llib2', '-cool', '-Rrunlib1', 'found',
- '-lname2']
- self.assertEqual(opts, wanted)
-
- def test_debug_print(self):
-
- class MyCCompiler(CCompiler):
- executables = {}
-
- compiler = MyCCompiler()
- with captured_stdout() as stdout:
- compiler.debug_print('xxx')
- stdout.seek(0)
- self.assertEqual(stdout.read(), '')
-
- debug.DEBUG = True
- try:
- with captured_stdout() as stdout:
- compiler.debug_print('xxx')
- stdout.seek(0)
- self.assertEqual(stdout.read(), 'xxx\n')
- finally:
- debug.DEBUG = False
-
- def test_customize_compiler(self):
-
- # not testing if default compiler is not unix
- if get_default_compiler() != 'unix':
- return
-
- os.environ['AR'] = 'my_ar'
- os.environ['ARFLAGS'] = '-arflags'
-
- # make sure AR gets caught
- class compiler:
- compiler_type = 'unix'
-
- def set_executables(self, **kw):
- self.exes = kw
-
- comp = compiler()
- customize_compiler(comp)
- self.assertEqual(comp.exes['archiver'], 'my_ar -arflags')
-
-def test_suite():
- return unittest.makeSuite(CCompilerTestCase)
-
-if __name__ == "__main__":
- unittest.main(defaultTest="test_suite")
diff --git a/lib/python2.7/distutils/tests/test_check.py b/lib/python2.7/distutils/tests/test_check.py
deleted file mode 100644
index f73342a..0000000
--- a/lib/python2.7/distutils/tests/test_check.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.check."""
-import unittest
-from test.test_support import run_unittest
-
-from distutils.command.check import check, HAS_DOCUTILS
-from distutils.tests import support
-from distutils.errors import DistutilsSetupError
-
-class CheckTestCase(support.LoggingSilencer,
- support.TempdirManager,
- unittest.TestCase):
-
- def _run(self, metadata=None, **options):
- if metadata is None:
- metadata = {}
- pkg_info, dist = self.create_dist(**metadata)
- cmd = check(dist)
- cmd.initialize_options()
- for name, value in options.items():
- setattr(cmd, name, value)
- cmd.ensure_finalized()
- cmd.run()
- return cmd
-
- def test_check_metadata(self):
- # let's run the command with no metadata at all
- # by default, check is checking the metadata
- # should have some warnings
- cmd = self._run()
- self.assertEqual(cmd._warnings, 2)
-
- # now let's add the required fields
- # and run it again, to make sure we don't get
- # any warning anymore
- metadata = {'url': 'xxx', 'author': 'xxx',
- 'author_email': 'xxx',
- 'name': 'xxx', 'version': 'xxx'}
- cmd = self._run(metadata)
- self.assertEqual(cmd._warnings, 0)
-
- # now with the strict mode, we should
- # get an error if there are missing metadata
- self.assertRaises(DistutilsSetupError, self._run, {}, **{'strict': 1})
-
- # and of course, no error when all metadata are present
- cmd = self._run(metadata, strict=1)
- self.assertEqual(cmd._warnings, 0)
-
- # now a test with Unicode entries
- metadata = {'url': u'xxx', 'author': u'\u00c9ric',
- 'author_email': u'xxx', u'name': 'xxx',
- 'version': u'xxx',
- 'description': u'Something about esszet \u00df',
- 'long_description': u'More things about esszet \u00df'}
- cmd = self._run(metadata)
- self.assertEqual(cmd._warnings, 0)
-
- def test_check_document(self):
- if not HAS_DOCUTILS: # won't test without docutils
- return
- pkg_info, dist = self.create_dist()
- cmd = check(dist)
-
- # let's see if it detects broken rest
- broken_rest = 'title\n===\n\ntest'
- msgs = cmd._check_rst_data(broken_rest)
- self.assertEqual(len(msgs), 1)
-
- # and non-broken rest
- rest = 'title\n=====\n\ntest'
- msgs = cmd._check_rst_data(rest)
- self.assertEqual(len(msgs), 0)
-
- def test_check_restructuredtext(self):
- if not HAS_DOCUTILS: # won't test without docutils
- return
- # let's see if it detects broken rest in long_description
- broken_rest = 'title\n===\n\ntest'
- pkg_info, dist = self.create_dist(long_description=broken_rest)
- cmd = check(dist)
- cmd.check_restructuredtext()
- self.assertEqual(cmd._warnings, 1)
-
- # let's see if we have an error with strict=1
- metadata = {'url': 'xxx', 'author': 'xxx',
- 'author_email': 'xxx',
- 'name': 'xxx', 'version': 'xxx',
- 'long_description': broken_rest}
- self.assertRaises(DistutilsSetupError, self._run, metadata,
- **{'strict': 1, 'restructuredtext': 1})
-
- # and non-broken rest, including a non-ASCII character to test #12114
- metadata['long_description'] = u'title\n=====\n\ntest \u00df'
- cmd = self._run(metadata, strict=1, restructuredtext=1)
- self.assertEqual(cmd._warnings, 0)
-
- def test_check_all(self):
-
- metadata = {'url': 'xxx', 'author': 'xxx'}
- self.assertRaises(DistutilsSetupError, self._run,
- {}, **{'strict': 1,
- 'restructuredtext': 1})
-
-def test_suite():
- return unittest.makeSuite(CheckTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_clean.py b/lib/python2.7/distutils/tests/test_clean.py
deleted file mode 100644
index 7b988f7..0000000
--- a/lib/python2.7/distutils/tests/test_clean.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""Tests for distutils.command.clean."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.clean import clean
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class cleanTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_simple_run(self):
- pkg_dir, dist = self.create_dist()
- cmd = clean(dist)
-
- # let's add some elements clean should remove
- dirs = [(d, os.path.join(pkg_dir, d))
- for d in ('build_temp', 'build_lib', 'bdist_base',
- 'build_scripts', 'build_base')]
-
- for name, path in dirs:
- os.mkdir(path)
- setattr(cmd, name, path)
- if name == 'build_base':
- continue
- for f in ('one', 'two', 'three'):
- self.write_file(os.path.join(path, f))
-
- # let's run the command
- cmd.all = 1
- cmd.ensure_finalized()
- cmd.run()
-
- # make sure the files where removed
- for name, path in dirs:
- self.assertTrue(not os.path.exists(path),
- '%s was not removed' % path)
-
- # let's run the command again (should spit warnings but succeed)
- cmd.all = 1
- cmd.ensure_finalized()
- cmd.run()
-
-def test_suite():
- return unittest.makeSuite(cleanTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_cmd.py b/lib/python2.7/distutils/tests/test_cmd.py
deleted file mode 100644
index e074099..0000000
--- a/lib/python2.7/distutils/tests/test_cmd.py
+++ /dev/null
@@ -1,127 +0,0 @@
-"""Tests for distutils.cmd."""
-import unittest
-import os
-from test.test_support import captured_stdout, run_unittest
-
-from distutils.cmd import Command
-from distutils.dist import Distribution
-from distutils.errors import DistutilsOptionError
-from distutils import debug
-
-class MyCmd(Command):
- def initialize_options(self):
- pass
-
-class CommandTestCase(unittest.TestCase):
-
- def setUp(self):
- dist = Distribution()
- self.cmd = MyCmd(dist)
-
- def test_ensure_string_list(self):
-
- cmd = self.cmd
- cmd.not_string_list = ['one', 2, 'three']
- cmd.yes_string_list = ['one', 'two', 'three']
- cmd.not_string_list2 = object()
- cmd.yes_string_list2 = 'ok'
- cmd.ensure_string_list('yes_string_list')
- cmd.ensure_string_list('yes_string_list2')
-
- self.assertRaises(DistutilsOptionError,
- cmd.ensure_string_list, 'not_string_list')
-
- self.assertRaises(DistutilsOptionError,
- cmd.ensure_string_list, 'not_string_list2')
-
- def test_make_file(self):
-
- cmd = self.cmd
-
- # making sure it raises when infiles is not a string or a list/tuple
- self.assertRaises(TypeError, cmd.make_file,
- infiles=1, outfile='', func='func', args=())
-
- # making sure execute gets called properly
- def _execute(func, args, exec_msg, level):
- self.assertEqual(exec_msg, 'generating out from in')
- cmd.force = True
- cmd.execute = _execute
- cmd.make_file(infiles='in', outfile='out', func='func', args=())
-
- def test_dump_options(self):
-
- msgs = []
- def _announce(msg, level):
- msgs.append(msg)
- cmd = self.cmd
- cmd.announce = _announce
- cmd.option1 = 1
- cmd.option2 = 1
- cmd.user_options = [('option1', '', ''), ('option2', '', '')]
- cmd.dump_options()
-
- wanted = ["command options for 'MyCmd':", ' option1 = 1',
- ' option2 = 1']
- self.assertEqual(msgs, wanted)
-
- def test_ensure_string(self):
- cmd = self.cmd
- cmd.option1 = 'ok'
- cmd.ensure_string('option1')
-
- cmd.option2 = None
- cmd.ensure_string('option2', 'xxx')
- self.assertTrue(hasattr(cmd, 'option2'))
-
- cmd.option3 = 1
- self.assertRaises(DistutilsOptionError, cmd.ensure_string, 'option3')
-
- def test_ensure_string_list(self):
- cmd = self.cmd
- cmd.option1 = 'ok,dok'
- cmd.ensure_string_list('option1')
- self.assertEqual(cmd.option1, ['ok', 'dok'])
-
- cmd.option2 = ['xxx', 'www']
- cmd.ensure_string_list('option2')
-
- cmd.option3 = ['ok', 2]
- self.assertRaises(DistutilsOptionError, cmd.ensure_string_list,
- 'option3')
-
- def test_ensure_filename(self):
- cmd = self.cmd
- cmd.option1 = __file__
- cmd.ensure_filename('option1')
- cmd.option2 = 'xxx'
- self.assertRaises(DistutilsOptionError, cmd.ensure_filename, 'option2')
-
- def test_ensure_dirname(self):
- cmd = self.cmd
- cmd.option1 = os.path.dirname(__file__) or os.curdir
- cmd.ensure_dirname('option1')
- cmd.option2 = 'xxx'
- self.assertRaises(DistutilsOptionError, cmd.ensure_dirname, 'option2')
-
- def test_debug_print(self):
- cmd = self.cmd
- with captured_stdout() as stdout:
- cmd.debug_print('xxx')
- stdout.seek(0)
- self.assertEqual(stdout.read(), '')
-
- debug.DEBUG = True
- try:
- with captured_stdout() as stdout:
- cmd.debug_print('xxx')
- stdout.seek(0)
- self.assertEqual(stdout.read(), 'xxx\n')
- finally:
- debug.DEBUG = False
-
-def test_suite():
- return unittest.makeSuite(CommandTestCase)
-
-if __name__ == '__main__':
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_config.py b/lib/python2.7/distutils/tests/test_config.py
deleted file mode 100644
index cfd096e..0000000
--- a/lib/python2.7/distutils/tests/test_config.py
+++ /dev/null
@@ -1,123 +0,0 @@
-"""Tests for distutils.pypirc.pypirc."""
-import sys
-import os
-import unittest
-import tempfile
-import shutil
-
-from distutils.core import PyPIRCCommand
-from distutils.core import Distribution
-from distutils.log import set_threshold
-from distutils.log import WARN
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-PYPIRC = """\
-[distutils]
-
-index-servers =
- server1
- server2
-
-[server1]
-username:me
-password:secret
-
-[server2]
-username:meagain
-password: secret
-realm:acme
-repository:http://another.pypi/
-"""
-
-PYPIRC_OLD = """\
-[server-login]
-username:tarek
-password:secret
-"""
-
-WANTED = """\
-[distutils]
-index-servers =
- pypi
-
-[pypi]
-username:tarek
-password:xxx
-"""
-
-
-class PyPIRCCommandTestCase(support.TempdirManager,
- support.LoggingSilencer,
- support.EnvironGuard,
- unittest.TestCase):
-
- def setUp(self):
- """Patches the environment."""
- super(PyPIRCCommandTestCase, self).setUp()
- self.tmp_dir = self.mkdtemp()
- os.environ['HOME'] = self.tmp_dir
- self.rc = os.path.join(self.tmp_dir, '.pypirc')
- self.dist = Distribution()
-
- class command(PyPIRCCommand):
- def __init__(self, dist):
- PyPIRCCommand.__init__(self, dist)
- def initialize_options(self):
- pass
- finalize_options = initialize_options
-
- self._cmd = command
- self.old_threshold = set_threshold(WARN)
-
- def tearDown(self):
- """Removes the patch."""
- set_threshold(self.old_threshold)
- super(PyPIRCCommandTestCase, self).tearDown()
-
- def test_server_registration(self):
- # This test makes sure PyPIRCCommand knows how to:
- # 1. handle several sections in .pypirc
- # 2. handle the old format
-
- # new format
- self.write_file(self.rc, PYPIRC)
- cmd = self._cmd(self.dist)
- config = cmd._read_pypirc()
-
- config = config.items()
- config.sort()
- waited = [('password', 'secret'), ('realm', 'pypi'),
- ('repository', 'http://pypi.python.org/pypi'),
- ('server', 'server1'), ('username', 'me')]
- self.assertEqual(config, waited)
-
- # old format
- self.write_file(self.rc, PYPIRC_OLD)
- config = cmd._read_pypirc()
- config = config.items()
- config.sort()
- waited = [('password', 'secret'), ('realm', 'pypi'),
- ('repository', 'http://pypi.python.org/pypi'),
- ('server', 'server-login'), ('username', 'tarek')]
- self.assertEqual(config, waited)
-
- def test_server_empty_registration(self):
- cmd = self._cmd(self.dist)
- rc = cmd._get_rc_file()
- self.assertTrue(not os.path.exists(rc))
- cmd._store_pypirc('tarek', 'xxx')
- self.assertTrue(os.path.exists(rc))
- f = open(rc)
- try:
- content = f.read()
- self.assertEqual(content, WANTED)
- finally:
- f.close()
-
-def test_suite():
- return unittest.makeSuite(PyPIRCCommandTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_config_cmd.py b/lib/python2.7/distutils/tests/test_config_cmd.py
deleted file mode 100644
index e16c8ee..0000000
--- a/lib/python2.7/distutils/tests/test_config_cmd.py
+++ /dev/null
@@ -1,91 +0,0 @@
-"""Tests for distutils.command.config."""
-import unittest
-import os
-import sys
-from test.test_support import run_unittest
-
-from distutils.command.config import dump_file, config
-from distutils.tests import support
-from distutils import log
-
-class ConfigTestCase(support.LoggingSilencer,
- support.TempdirManager,
- unittest.TestCase):
-
- def _info(self, msg, *args):
- for line in msg.splitlines():
- self._logs.append(line)
-
- def setUp(self):
- super(ConfigTestCase, self).setUp()
- self._logs = []
- self.old_log = log.info
- log.info = self._info
-
- def tearDown(self):
- log.info = self.old_log
- super(ConfigTestCase, self).tearDown()
-
- def test_dump_file(self):
- this_file = os.path.splitext(__file__)[0] + '.py'
- f = open(this_file)
- try:
- numlines = len(f.readlines())
- finally:
- f.close()
-
- dump_file(this_file, 'I am the header')
- self.assertEqual(len(self._logs), numlines+1)
-
- def test_search_cpp(self):
- # TODO: mingw host ?
- if sys.platform == 'win32':
- return
- pkg_dir, dist = self.create_dist()
- cmd = config(dist)
-
- # simple pattern searches
- match = cmd.search_cpp(pattern='xxx', body='/* xxx */')
- self.assertEqual(match, 0)
-
- match = cmd.search_cpp(pattern='_configtest', body='/* xxx */')
- self.assertEqual(match, 1)
-
- def test_finalize_options(self):
- # finalize_options does a bit of transformation
- # on options
- pkg_dir, dist = self.create_dist()
- cmd = config(dist)
- cmd.include_dirs = 'one%stwo' % os.pathsep
- cmd.libraries = 'one'
- cmd.library_dirs = 'three%sfour' % os.pathsep
- cmd.ensure_finalized()
-
- self.assertEqual(cmd.include_dirs, ['one', 'two'])
- self.assertEqual(cmd.libraries, ['one'])
- self.assertEqual(cmd.library_dirs, ['three', 'four'])
-
- def test_clean(self):
- # _clean removes files
- tmp_dir = self.mkdtemp()
- f1 = os.path.join(tmp_dir, 'one')
- f2 = os.path.join(tmp_dir, 'two')
-
- self.write_file(f1, 'xxx')
- self.write_file(f2, 'xxx')
-
- for f in (f1, f2):
- self.assertTrue(os.path.exists(f))
-
- pkg_dir, dist = self.create_dist()
- cmd = config(dist)
- cmd._clean(f1, f2)
-
- for f in (f1, f2):
- self.assertTrue(not os.path.exists(f))
-
-def test_suite():
- return unittest.makeSuite(ConfigTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_core.py b/lib/python2.7/distutils/tests/test_core.py
deleted file mode 100644
index 0d979bc..0000000
--- a/lib/python2.7/distutils/tests/test_core.py
+++ /dev/null
@@ -1,108 +0,0 @@
-"""Tests for distutils.core."""
-
-import StringIO
-import distutils.core
-import os
-import shutil
-import sys
-import test.test_support
-from test.test_support import captured_stdout, run_unittest
-import unittest
-from distutils.tests import support
-
-# setup script that uses __file__
-setup_using___file__ = """\
-
-__file__
-
-from distutils.core import setup
-setup()
-"""
-
-setup_prints_cwd = """\
-
-import os
-print os.getcwd()
-
-from distutils.core import setup
-setup()
-"""
-
-
-class CoreTestCase(support.EnvironGuard, unittest.TestCase):
-
- def setUp(self):
- super(CoreTestCase, self).setUp()
- self.old_stdout = sys.stdout
- self.cleanup_testfn()
- self.old_argv = sys.argv, sys.argv[:]
-
- def tearDown(self):
- sys.stdout = self.old_stdout
- self.cleanup_testfn()
- sys.argv = self.old_argv[0]
- sys.argv[:] = self.old_argv[1]
- super(CoreTestCase, self).tearDown()
-
- def cleanup_testfn(self):
- path = test.test_support.TESTFN
- if os.path.isfile(path):
- os.remove(path)
- elif os.path.isdir(path):
- shutil.rmtree(path)
-
- def write_setup(self, text, path=test.test_support.TESTFN):
- f = open(path, "w")
- try:
- f.write(text)
- finally:
- f.close()
- return path
-
- def test_run_setup_provides_file(self):
- # Make sure the script can use __file__; if that's missing, the test
- # setup.py script will raise NameError.
- distutils.core.run_setup(
- self.write_setup(setup_using___file__))
-
- def test_run_setup_uses_current_dir(self):
- # This tests that the setup script is run with the current directory
- # as its own current directory; this was temporarily broken by a
- # previous patch when TESTFN did not use the current directory.
- sys.stdout = StringIO.StringIO()
- cwd = os.getcwd()
-
- # Create a directory and write the setup.py file there:
- os.mkdir(test.test_support.TESTFN)
- setup_py = os.path.join(test.test_support.TESTFN, "setup.py")
- distutils.core.run_setup(
- self.write_setup(setup_prints_cwd, path=setup_py))
-
- output = sys.stdout.getvalue()
- if output.endswith("\n"):
- output = output[:-1]
- self.assertEqual(cwd, output)
-
- def test_debug_mode(self):
- # this covers the code called when DEBUG is set
- sys.argv = ['setup.py', '--name']
- with captured_stdout() as stdout:
- distutils.core.setup(name='bar')
- stdout.seek(0)
- self.assertEqual(stdout.read(), 'bar\n')
-
- distutils.core.DEBUG = True
- try:
- with captured_stdout() as stdout:
- distutils.core.setup(name='bar')
- finally:
- distutils.core.DEBUG = False
- stdout.seek(0)
- wanted = "options (after parsing config files):\n"
- self.assertEqual(stdout.readlines()[0], wanted)
-
-def test_suite():
- return unittest.makeSuite(CoreTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dep_util.py b/lib/python2.7/distutils/tests/test_dep_util.py
deleted file mode 100644
index 7510434..0000000
--- a/lib/python2.7/distutils/tests/test_dep_util.py
+++ /dev/null
@@ -1,81 +0,0 @@
-"""Tests for distutils.dep_util."""
-import unittest
-import os
-import time
-
-from distutils.dep_util import newer, newer_pairwise, newer_group
-from distutils.errors import DistutilsFileError
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class DepUtilTestCase(support.TempdirManager, unittest.TestCase):
-
- def test_newer(self):
-
- tmpdir = self.mkdtemp()
- new_file = os.path.join(tmpdir, 'new')
- old_file = os.path.abspath(__file__)
-
- # Raise DistutilsFileError if 'new_file' does not exist.
- self.assertRaises(DistutilsFileError, newer, new_file, old_file)
-
- # Return true if 'new_file' exists and is more recently modified than
- # 'old_file', or if 'new_file' exists and 'old_file' doesn't.
- self.write_file(new_file)
- self.assertTrue(newer(new_file, 'I_dont_exist'))
- self.assertTrue(newer(new_file, old_file))
-
- # Return false if both exist and 'old_file' is the same age or younger
- # than 'new_file'.
- self.assertFalse(newer(old_file, new_file))
-
- def test_newer_pairwise(self):
- tmpdir = self.mkdtemp()
- sources = os.path.join(tmpdir, 'sources')
- targets = os.path.join(tmpdir, 'targets')
- os.mkdir(sources)
- os.mkdir(targets)
- one = os.path.join(sources, 'one')
- two = os.path.join(sources, 'two')
- three = os.path.abspath(__file__) # I am the old file
- four = os.path.join(targets, 'four')
- self.write_file(one)
- self.write_file(two)
- self.write_file(four)
-
- self.assertEqual(newer_pairwise([one, two], [three, four]),
- ([one],[three]))
-
- def test_newer_group(self):
- tmpdir = self.mkdtemp()
- sources = os.path.join(tmpdir, 'sources')
- os.mkdir(sources)
- one = os.path.join(sources, 'one')
- two = os.path.join(sources, 'two')
- three = os.path.join(sources, 'three')
- old_file = os.path.abspath(__file__)
-
- # return true if 'old_file' is out-of-date with respect to any file
- # listed in 'sources'.
- self.write_file(one)
- self.write_file(two)
- self.write_file(three)
- self.assertTrue(newer_group([one, two, three], old_file))
- self.assertFalse(newer_group([one, two, old_file], three))
-
- # missing handling
- os.remove(one)
- self.assertRaises(OSError, newer_group, [one, two, old_file], three)
-
- self.assertFalse(newer_group([one, two, old_file], three,
- missing='ignore'))
-
- self.assertTrue(newer_group([one, two, old_file], three,
- missing='newer'))
-
-
-def test_suite():
- return unittest.makeSuite(DepUtilTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dir_util.py b/lib/python2.7/distutils/tests/test_dir_util.py
deleted file mode 100644
index d82d913..0000000
--- a/lib/python2.7/distutils/tests/test_dir_util.py
+++ /dev/null
@@ -1,134 +0,0 @@
-"""Tests for distutils.dir_util."""
-import unittest
-import os
-import stat
-import shutil
-import sys
-
-from distutils.dir_util import (mkpath, remove_tree, create_tree, copy_tree,
- ensure_relative)
-
-from distutils import log
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
-
- def _log(self, msg, *args):
- if len(args) > 0:
- self._logs.append(msg % args)
- else:
- self._logs.append(msg)
-
- def setUp(self):
- super(DirUtilTestCase, self).setUp()
- self._logs = []
- tmp_dir = self.mkdtemp()
- self.root_target = os.path.join(tmp_dir, 'deep')
- self.target = os.path.join(self.root_target, 'here')
- self.target2 = os.path.join(tmp_dir, 'deep2')
- self.old_log = log.info
- log.info = self._log
-
- def tearDown(self):
- log.info = self.old_log
- super(DirUtilTestCase, self).tearDown()
-
- def test_mkpath_remove_tree_verbosity(self):
-
- mkpath(self.target, verbose=0)
- wanted = []
- self.assertEqual(self._logs, wanted)
- remove_tree(self.root_target, verbose=0)
-
- mkpath(self.target, verbose=1)
- wanted = ['creating %s' % self.root_target,
- 'creating %s' % self.target]
- self.assertEqual(self._logs, wanted)
- self._logs = []
-
- remove_tree(self.root_target, verbose=1)
- wanted = ["removing '%s' (and everything under it)" % self.root_target]
- self.assertEqual(self._logs, wanted)
-
- @unittest.skipIf(sys.platform.startswith('win'),
- "This test is only appropriate for POSIX-like systems.")
- def test_mkpath_with_custom_mode(self):
- # Get and set the current umask value for testing mode bits.
- umask = os.umask(0o002)
- os.umask(umask)
- mkpath(self.target, 0o700)
- self.assertEqual(
- stat.S_IMODE(os.stat(self.target).st_mode), 0o700 & ~umask)
- mkpath(self.target2, 0o555)
- self.assertEqual(
- stat.S_IMODE(os.stat(self.target2).st_mode), 0o555 & ~umask)
-
- def test_create_tree_verbosity(self):
-
- create_tree(self.root_target, ['one', 'two', 'three'], verbose=0)
- self.assertEqual(self._logs, [])
- remove_tree(self.root_target, verbose=0)
-
- wanted = ['creating %s' % self.root_target]
- create_tree(self.root_target, ['one', 'two', 'three'], verbose=1)
- self.assertEqual(self._logs, wanted)
-
- remove_tree(self.root_target, verbose=0)
-
-
- def test_copy_tree_verbosity(self):
-
- mkpath(self.target, verbose=0)
-
- copy_tree(self.target, self.target2, verbose=0)
- self.assertEqual(self._logs, [])
-
- remove_tree(self.root_target, verbose=0)
-
- mkpath(self.target, verbose=0)
- a_file = os.path.join(self.target, 'ok.txt')
- f = open(a_file, 'w')
- try:
- f.write('some content')
- finally:
- f.close()
-
- wanted = ['copying %s -> %s' % (a_file, self.target2)]
- copy_tree(self.target, self.target2, verbose=1)
- self.assertEqual(self._logs, wanted)
-
- remove_tree(self.root_target, verbose=0)
- remove_tree(self.target2, verbose=0)
-
- def test_copy_tree_skips_nfs_temp_files(self):
- mkpath(self.target, verbose=0)
-
- a_file = os.path.join(self.target, 'ok.txt')
- nfs_file = os.path.join(self.target, '.nfs123abc')
- for f in a_file, nfs_file:
- fh = open(f, 'w')
- try:
- fh.write('some content')
- finally:
- fh.close()
-
- copy_tree(self.target, self.target2)
- self.assertEqual(os.listdir(self.target2), ['ok.txt'])
-
- remove_tree(self.root_target, verbose=0)
- remove_tree(self.target2, verbose=0)
-
- def test_ensure_relative(self):
- if os.sep == '/':
- self.assertEqual(ensure_relative('/home/foo'), 'home/foo')
- self.assertEqual(ensure_relative('some/path'), 'some/path')
- else: # \\
- self.assertEqual(ensure_relative('c:\\home\\foo'), 'c:home\\foo')
- self.assertEqual(ensure_relative('home\\foo'), 'home\\foo')
-
-def test_suite():
- return unittest.makeSuite(DirUtilTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dist.py b/lib/python2.7/distutils/tests/test_dist.py
deleted file mode 100644
index 4b7bbeb..0000000
--- a/lib/python2.7/distutils/tests/test_dist.py
+++ /dev/null
@@ -1,445 +0,0 @@
-# -*- coding: utf8 -*-
-
-"""Tests for distutils.dist."""
-import os
-import StringIO
-import sys
-import unittest
-import warnings
-import textwrap
-
-from distutils.dist import Distribution, fix_help_options
-from distutils.cmd import Command
-import distutils.dist
-from test.test_support import TESTFN, captured_stdout, run_unittest
-from distutils.tests import support
-
-
-class test_dist(Command):
- """Sample distutils extension command."""
-
- user_options = [
- ("sample-option=", "S", "help text"),
- ]
-
- def initialize_options(self):
- self.sample_option = None
-
-
-class TestDistribution(Distribution):
- """Distribution subclasses that avoids the default search for
- configuration files.
-
- The ._config_files attribute must be set before
- .parse_config_files() is called.
- """
-
- def find_config_files(self):
- return self._config_files
-
-
-class DistributionTestCase(support.TempdirManager,
- support.LoggingSilencer,
- support.EnvironGuard,
- unittest.TestCase):
-
- def setUp(self):
- super(DistributionTestCase, self).setUp()
- self.argv = sys.argv, sys.argv[:]
- del sys.argv[1:]
-
- def tearDown(self):
- sys.argv = self.argv[0]
- sys.argv[:] = self.argv[1]
- super(DistributionTestCase, self).tearDown()
-
- def create_distribution(self, configfiles=()):
- d = TestDistribution()
- d._config_files = configfiles
- d.parse_config_files()
- d.parse_command_line()
- return d
-
- def test_debug_mode(self):
- with open(TESTFN, "w") as f:
- f.write("[global]\n")
- f.write("command_packages = foo.bar, splat")
-
- files = [TESTFN]
- sys.argv.append("build")
-
- with captured_stdout() as stdout:
- self.create_distribution(files)
- stdout.seek(0)
- self.assertEqual(stdout.read(), '')
- distutils.dist.DEBUG = True
- try:
- with captured_stdout() as stdout:
- self.create_distribution(files)
- stdout.seek(0)
- self.assertEqual(stdout.read(), '')
- finally:
- distutils.dist.DEBUG = False
-
- def test_command_packages_unspecified(self):
- sys.argv.append("build")
- d = self.create_distribution()
- self.assertEqual(d.get_command_packages(), ["distutils.command"])
-
- def test_command_packages_cmdline(self):
- from distutils.tests.test_dist import test_dist
- sys.argv.extend(["--command-packages",
- "foo.bar,distutils.tests",
- "test_dist",
- "-Ssometext",
- ])
- d = self.create_distribution()
- # let's actually try to load our test command:
- self.assertEqual(d.get_command_packages(),
- ["distutils.command", "foo.bar", "distutils.tests"])
- cmd = d.get_command_obj("test_dist")
- self.assertIsInstance(cmd, test_dist)
- self.assertEqual(cmd.sample_option, "sometext")
-
- def test_command_packages_configfile(self):
- sys.argv.append("build")
- self.addCleanup(os.unlink, TESTFN)
- f = open(TESTFN, "w")
- try:
- print >> f, "[global]"
- print >> f, "command_packages = foo.bar, splat"
- finally:
- f.close()
-
- d = self.create_distribution([TESTFN])
- self.assertEqual(d.get_command_packages(),
- ["distutils.command", "foo.bar", "splat"])
-
- # ensure command line overrides config:
- sys.argv[1:] = ["--command-packages", "spork", "build"]
- d = self.create_distribution([TESTFN])
- self.assertEqual(d.get_command_packages(),
- ["distutils.command", "spork"])
-
- # Setting --command-packages to '' should cause the default to
- # be used even if a config file specified something else:
- sys.argv[1:] = ["--command-packages", "", "build"]
- d = self.create_distribution([TESTFN])
- self.assertEqual(d.get_command_packages(), ["distutils.command"])
-
- def test_write_pkg_file(self):
- # Check DistributionMetadata handling of Unicode fields
- tmp_dir = self.mkdtemp()
- my_file = os.path.join(tmp_dir, 'f')
- klass = Distribution
-
- dist = klass(attrs={'author': u'Mister Café',
- 'name': 'my.package',
- 'maintainer': u'Café Junior',
- 'description': u'Café torréfié',
- 'long_description': u'Héhéhé'})
-
- # let's make sure the file can be written
- # with Unicode fields. they are encoded with
- # PKG_INFO_ENCODING
- dist.metadata.write_pkg_file(open(my_file, 'w'))
-
- # regular ascii is of course always usable
- dist = klass(attrs={'author': 'Mister Cafe',
- 'name': 'my.package',
- 'maintainer': 'Cafe Junior',
- 'description': 'Cafe torrefie',
- 'long_description': 'Hehehe'})
-
- my_file2 = os.path.join(tmp_dir, 'f2')
- dist.metadata.write_pkg_file(open(my_file2, 'w'))
-
- def test_empty_options(self):
- # an empty options dictionary should not stay in the
- # list of attributes
-
- # catching warnings
- warns = []
-
- def _warn(msg):
- warns.append(msg)
-
- self.addCleanup(setattr, warnings, 'warn', warnings.warn)
- warnings.warn = _warn
- dist = Distribution(attrs={'author': 'xxx', 'name': 'xxx',
- 'version': 'xxx', 'url': 'xxxx',
- 'options': {}})
-
- self.assertEqual(len(warns), 0)
- self.assertNotIn('options', dir(dist))
-
- def test_finalize_options(self):
- attrs = {'keywords': 'one,two',
- 'platforms': 'one,two'}
-
- dist = Distribution(attrs=attrs)
- dist.finalize_options()
-
- # finalize_option splits platforms and keywords
- self.assertEqual(dist.metadata.platforms, ['one', 'two'])
- self.assertEqual(dist.metadata.keywords, ['one', 'two'])
-
- def test_get_command_packages(self):
- dist = Distribution()
- self.assertEqual(dist.command_packages, None)
- cmds = dist.get_command_packages()
- self.assertEqual(cmds, ['distutils.command'])
- self.assertEqual(dist.command_packages,
- ['distutils.command'])
-
- dist.command_packages = 'one,two'
- cmds = dist.get_command_packages()
- self.assertEqual(cmds, ['distutils.command', 'one', 'two'])
-
- def test_announce(self):
- # make sure the level is known
- dist = Distribution()
- args = ('ok',)
- kwargs = {'level': 'ok2'}
- self.assertRaises(ValueError, dist.announce, args, kwargs)
-
- def test_find_config_files_disable(self):
- # Ticket #1180: Allow user to disable their home config file.
- temp_home = self.mkdtemp()
- if os.name == 'posix':
- user_filename = os.path.join(temp_home, ".pydistutils.cfg")
- else:
- user_filename = os.path.join(temp_home, "pydistutils.cfg")
-
- with open(user_filename, 'w') as f:
- f.write('[distutils]\n')
-
- def _expander(path):
- return temp_home
-
- old_expander = os.path.expanduser
- os.path.expanduser = _expander
- try:
- d = distutils.dist.Distribution()
- all_files = d.find_config_files()
-
- d = distutils.dist.Distribution(attrs={'script_args':
- ['--no-user-cfg']})
- files = d.find_config_files()
- finally:
- os.path.expanduser = old_expander
-
- # make sure --no-user-cfg disables the user cfg file
- self.assertEqual(len(all_files)-1, len(files))
-
-
-class MetadataTestCase(support.TempdirManager, support.EnvironGuard,
- unittest.TestCase):
-
- def setUp(self):
- super(MetadataTestCase, self).setUp()
- self.argv = sys.argv, sys.argv[:]
-
- def tearDown(self):
- sys.argv = self.argv[0]
- sys.argv[:] = self.argv[1]
- super(MetadataTestCase, self).tearDown()
-
- def test_classifier(self):
- attrs = {'name': 'Boa', 'version': '3.0',
- 'classifiers': ['Programming Language :: Python :: 3']}
- dist = Distribution(attrs)
- meta = self.format_metadata(dist)
- self.assertIn('Metadata-Version: 1.1', meta)
-
- def test_download_url(self):
- attrs = {'name': 'Boa', 'version': '3.0',
- 'download_url': 'http://example.org/boa'}
- dist = Distribution(attrs)
- meta = self.format_metadata(dist)
- self.assertIn('Metadata-Version: 1.1', meta)
-
- def test_long_description(self):
- long_desc = textwrap.dedent("""\
- example::
- We start here
- and continue here
- and end here.""")
- attrs = {"name": "package",
- "version": "1.0",
- "long_description": long_desc}
-
- dist = Distribution(attrs)
- meta = self.format_metadata(dist)
- meta = meta.replace('\n' + 8 * ' ', '\n')
- self.assertIn(long_desc, meta)
-
- def test_simple_metadata(self):
- attrs = {"name": "package",
- "version": "1.0"}
- dist = Distribution(attrs)
- meta = self.format_metadata(dist)
- self.assertIn("Metadata-Version: 1.0", meta)
- self.assertNotIn("provides:", meta.lower())
- self.assertNotIn("requires:", meta.lower())
- self.assertNotIn("obsoletes:", meta.lower())
-
- def test_provides(self):
- attrs = {"name": "package",
- "version": "1.0",
- "provides": ["package", "package.sub"]}
- dist = Distribution(attrs)
- self.assertEqual(dist.metadata.get_provides(),
- ["package", "package.sub"])
- self.assertEqual(dist.get_provides(),
- ["package", "package.sub"])
- meta = self.format_metadata(dist)
- self.assertIn("Metadata-Version: 1.1", meta)
- self.assertNotIn("requires:", meta.lower())
- self.assertNotIn("obsoletes:", meta.lower())
-
- def test_provides_illegal(self):
- self.assertRaises(ValueError, Distribution,
- {"name": "package",
- "version": "1.0",
- "provides": ["my.pkg (splat)"]})
-
- def test_requires(self):
- attrs = {"name": "package",
- "version": "1.0",
- "requires": ["other", "another (==1.0)"]}
- dist = Distribution(attrs)
- self.assertEqual(dist.metadata.get_requires(),
- ["other", "another (==1.0)"])
- self.assertEqual(dist.get_requires(),
- ["other", "another (==1.0)"])
- meta = self.format_metadata(dist)
- self.assertIn("Metadata-Version: 1.1", meta)
- self.assertNotIn("provides:", meta.lower())
- self.assertIn("Requires: other", meta)
- self.assertIn("Requires: another (==1.0)", meta)
- self.assertNotIn("obsoletes:", meta.lower())
-
- def test_requires_illegal(self):
- self.assertRaises(ValueError, Distribution,
- {"name": "package",
- "version": "1.0",
- "requires": ["my.pkg (splat)"]})
-
- def test_obsoletes(self):
- attrs = {"name": "package",
- "version": "1.0",
- "obsoletes": ["other", "another (<1.0)"]}
- dist = Distribution(attrs)
- self.assertEqual(dist.metadata.get_obsoletes(),
- ["other", "another (<1.0)"])
- self.assertEqual(dist.get_obsoletes(),
- ["other", "another (<1.0)"])
- meta = self.format_metadata(dist)
- self.assertIn("Metadata-Version: 1.1", meta)
- self.assertNotIn("provides:", meta.lower())
- self.assertNotIn("requires:", meta.lower())
- self.assertIn("Obsoletes: other", meta)
- self.assertIn("Obsoletes: another (<1.0)", meta)
-
- def test_obsoletes_illegal(self):
- self.assertRaises(ValueError, Distribution,
- {"name": "package",
- "version": "1.0",
- "obsoletes": ["my.pkg (splat)"]})
-
- def format_metadata(self, dist):
- sio = StringIO.StringIO()
- dist.metadata.write_pkg_file(sio)
- return sio.getvalue()
-
- def test_custom_pydistutils(self):
- # fixes #2166
- # make sure pydistutils.cfg is found
- if os.name == 'posix':
- user_filename = ".pydistutils.cfg"
- else:
- user_filename = "pydistutils.cfg"
-
- temp_dir = self.mkdtemp()
- user_filename = os.path.join(temp_dir, user_filename)
- f = open(user_filename, 'w')
- try:
- f.write('.')
- finally:
- f.close()
-
- try:
- dist = Distribution()
-
- # linux-style
- if sys.platform in ('linux', 'darwin'):
- os.environ['HOME'] = temp_dir
- files = dist.find_config_files()
- self.assertIn(user_filename, files)
-
- # win32-style
- if sys.platform == 'win32':
- # home drive should be found
- os.environ['HOME'] = temp_dir
- files = dist.find_config_files()
- self.assertIn(user_filename, files,
- '%r not found in %r' % (user_filename, files))
- finally:
- os.remove(user_filename)
-
- def test_fix_help_options(self):
- help_tuples = [('a', 'b', 'c', 'd'), (1, 2, 3, 4)]
- fancy_options = fix_help_options(help_tuples)
- self.assertEqual(fancy_options[0], ('a', 'b', 'c'))
- self.assertEqual(fancy_options[1], (1, 2, 3))
-
- def test_show_help(self):
- # smoke test, just makes sure some help is displayed
- dist = Distribution()
- sys.argv = []
- dist.help = 1
- dist.script_name = 'setup.py'
- with captured_stdout() as s:
- dist.parse_command_line()
-
- output = [line for line in s.getvalue().split('\n')
- if line.strip() != '']
- self.assertTrue(output)
-
- def test_read_metadata(self):
- attrs = {"name": "package",
- "version": "1.0",
- "long_description": "desc",
- "description": "xxx",
- "download_url": "http://example.com",
- "keywords": ['one', 'two'],
- "requires": ['foo']}
-
- dist = Distribution(attrs)
- metadata = dist.metadata
-
- # write it then reloads it
- PKG_INFO = StringIO.StringIO()
- metadata.write_pkg_file(PKG_INFO)
- PKG_INFO.seek(0)
- metadata.read_pkg_file(PKG_INFO)
-
- self.assertEqual(metadata.name, "package")
- self.assertEqual(metadata.version, "1.0")
- self.assertEqual(metadata.description, "xxx")
- self.assertEqual(metadata.download_url, 'http://example.com')
- self.assertEqual(metadata.keywords, ['one', 'two'])
- self.assertEqual(metadata.platforms, ['UNKNOWN'])
- self.assertEqual(metadata.obsoletes, None)
- self.assertEqual(metadata.requires, ['foo'])
-
-
-def test_suite():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(DistributionTestCase))
- suite.addTest(unittest.makeSuite(MetadataTestCase))
- return suite
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_file_util.py b/lib/python2.7/distutils/tests/test_file_util.py
deleted file mode 100644
index 7dbcf52..0000000
--- a/lib/python2.7/distutils/tests/test_file_util.py
+++ /dev/null
@@ -1,81 +0,0 @@
-"""Tests for distutils.file_util."""
-import unittest
-import os
-import shutil
-
-from distutils.file_util import move_file, write_file, copy_file
-from distutils import log
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class FileUtilTestCase(support.TempdirManager, unittest.TestCase):
-
- def _log(self, msg, *args):
- if len(args) > 0:
- self._logs.append(msg % args)
- else:
- self._logs.append(msg)
-
- def setUp(self):
- super(FileUtilTestCase, self).setUp()
- self._logs = []
- self.old_log = log.info
- log.info = self._log
- tmp_dir = self.mkdtemp()
- self.source = os.path.join(tmp_dir, 'f1')
- self.target = os.path.join(tmp_dir, 'f2')
- self.target_dir = os.path.join(tmp_dir, 'd1')
-
- def tearDown(self):
- log.info = self.old_log
- super(FileUtilTestCase, self).tearDown()
-
- def test_move_file_verbosity(self):
- f = open(self.source, 'w')
- try:
- f.write('some content')
- finally:
- f.close()
-
- move_file(self.source, self.target, verbose=0)
- wanted = []
- self.assertEqual(self._logs, wanted)
-
- # back to original state
- move_file(self.target, self.source, verbose=0)
-
- move_file(self.source, self.target, verbose=1)
- wanted = ['moving %s -> %s' % (self.source, self.target)]
- self.assertEqual(self._logs, wanted)
-
- # back to original state
- move_file(self.target, self.source, verbose=0)
-
- self._logs = []
- # now the target is a dir
- os.mkdir(self.target_dir)
- move_file(self.source, self.target_dir, verbose=1)
- wanted = ['moving %s -> %s' % (self.source, self.target_dir)]
- self.assertEqual(self._logs, wanted)
-
- def test_write_file(self):
- lines = ['a', 'b', 'c']
- dir = self.mkdtemp()
- foo = os.path.join(dir, 'foo')
- write_file(foo, lines)
- content = [line.strip() for line in open(foo).readlines()]
- self.assertEqual(content, lines)
-
- def test_copy_file(self):
- src_dir = self.mkdtemp()
- foo = os.path.join(src_dir, 'foo')
- write_file(foo, 'content')
- dst_dir = self.mkdtemp()
- copy_file(foo, dst_dir)
- self.assertTrue(os.path.exists(os.path.join(dst_dir, 'foo')))
-
-def test_suite():
- return unittest.makeSuite(FileUtilTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_filelist.py b/lib/python2.7/distutils/tests/test_filelist.py
deleted file mode 100644
index 69b88f2..0000000
--- a/lib/python2.7/distutils/tests/test_filelist.py
+++ /dev/null
@@ -1,299 +0,0 @@
-"""Tests for distutils.filelist."""
-import os
-import re
-import unittest
-from distutils import debug
-from distutils.log import WARN
-from distutils.errors import DistutilsTemplateError
-from distutils.filelist import glob_to_re, translate_pattern, FileList
-
-from test.test_support import captured_stdout, run_unittest
-from distutils.tests import support
-
-MANIFEST_IN = """\
-include ok
-include xo
-exclude xo
-include foo.tmp
-include buildout.cfg
-global-include *.x
-global-include *.txt
-global-exclude *.tmp
-recursive-include f *.oo
-recursive-exclude global *.x
-graft dir
-prune dir3
-"""
-
-
-def make_local_path(s):
- """Converts '/' in a string to os.sep"""
- return s.replace('/', os.sep)
-
-
-class FileListTestCase(support.LoggingSilencer,
- unittest.TestCase):
-
- def assertNoWarnings(self):
- self.assertEqual(self.get_logs(WARN), [])
- self.clear_logs()
-
- def assertWarnings(self):
- self.assertGreater(len(self.get_logs(WARN)), 0)
- self.clear_logs()
-
- def test_glob_to_re(self):
- sep = os.sep
- if os.sep == '\\':
- sep = re.escape(os.sep)
-
- for glob, regex in (
- # simple cases
- ('foo*', r'foo[^%(sep)s]*\Z(?ms)'),
- ('foo?', r'foo[^%(sep)s]\Z(?ms)'),
- ('foo??', r'foo[^%(sep)s][^%(sep)s]\Z(?ms)'),
- # special cases
- (r'foo\\*', r'foo\\\\[^%(sep)s]*\Z(?ms)'),
- (r'foo\\\*', r'foo\\\\\\[^%(sep)s]*\Z(?ms)'),
- ('foo????', r'foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s]\Z(?ms)'),
- (r'foo\\??', r'foo\\\\[^%(sep)s][^%(sep)s]\Z(?ms)')):
- regex = regex % {'sep': sep}
- self.assertEqual(glob_to_re(glob), regex)
-
- def test_process_template_line(self):
- # testing all MANIFEST.in template patterns
- file_list = FileList()
- l = make_local_path
-
- # simulated file list
- file_list.allfiles = ['foo.tmp', 'ok', 'xo', 'four.txt',
- 'buildout.cfg',
- # filelist does not filter out VCS directories,
- # it's sdist that does
- l('.hg/last-message.txt'),
- l('global/one.txt'),
- l('global/two.txt'),
- l('global/files.x'),
- l('global/here.tmp'),
- l('f/o/f.oo'),
- l('dir/graft-one'),
- l('dir/dir2/graft2'),
- l('dir3/ok'),
- l('dir3/sub/ok.txt'),
- ]
-
- for line in MANIFEST_IN.split('\n'):
- if line.strip() == '':
- continue
- file_list.process_template_line(line)
-
- wanted = ['ok',
- 'buildout.cfg',
- 'four.txt',
- l('.hg/last-message.txt'),
- l('global/one.txt'),
- l('global/two.txt'),
- l('f/o/f.oo'),
- l('dir/graft-one'),
- l('dir/dir2/graft2'),
- ]
-
- self.assertEqual(file_list.files, wanted)
-
- def test_debug_print(self):
- file_list = FileList()
- with captured_stdout() as stdout:
- file_list.debug_print('xxx')
- self.assertEqual(stdout.getvalue(), '')
-
- debug.DEBUG = True
- try:
- with captured_stdout() as stdout:
- file_list.debug_print('xxx')
- self.assertEqual(stdout.getvalue(), 'xxx\n')
- finally:
- debug.DEBUG = False
-
- def test_set_allfiles(self):
- file_list = FileList()
- files = ['a', 'b', 'c']
- file_list.set_allfiles(files)
- self.assertEqual(file_list.allfiles, files)
-
- def test_remove_duplicates(self):
- file_list = FileList()
- file_list.files = ['a', 'b', 'a', 'g', 'c', 'g']
- # files must be sorted beforehand (sdist does it)
- file_list.sort()
- file_list.remove_duplicates()
- self.assertEqual(file_list.files, ['a', 'b', 'c', 'g'])
-
- def test_translate_pattern(self):
- # not regex
- self.assertTrue(hasattr(
- translate_pattern('a', anchor=True, is_regex=False),
- 'search'))
-
- # is a regex
- regex = re.compile('a')
- self.assertEqual(
- translate_pattern(regex, anchor=True, is_regex=True),
- regex)
-
- # plain string flagged as regex
- self.assertTrue(hasattr(
- translate_pattern('a', anchor=True, is_regex=True),
- 'search'))
-
- # glob support
- self.assertTrue(translate_pattern(
- '*.py', anchor=True, is_regex=False).search('filelist.py'))
-
- def test_exclude_pattern(self):
- # return False if no match
- file_list = FileList()
- self.assertFalse(file_list.exclude_pattern('*.py'))
-
- # return True if files match
- file_list = FileList()
- file_list.files = ['a.py', 'b.py']
- self.assertTrue(file_list.exclude_pattern('*.py'))
-
- # test excludes
- file_list = FileList()
- file_list.files = ['a.py', 'a.txt']
- file_list.exclude_pattern('*.py')
- self.assertEqual(file_list.files, ['a.txt'])
-
- def test_include_pattern(self):
- # return False if no match
- file_list = FileList()
- file_list.set_allfiles([])
- self.assertFalse(file_list.include_pattern('*.py'))
-
- # return True if files match
- file_list = FileList()
- file_list.set_allfiles(['a.py', 'b.txt'])
- self.assertTrue(file_list.include_pattern('*.py'))
-
- # test * matches all files
- file_list = FileList()
- self.assertIsNone(file_list.allfiles)
- file_list.set_allfiles(['a.py', 'b.txt'])
- file_list.include_pattern('*')
- self.assertEqual(file_list.allfiles, ['a.py', 'b.txt'])
-
- def test_process_template(self):
- l = make_local_path
- # invalid lines
- file_list = FileList()
- for action in ('include', 'exclude', 'global-include',
- 'global-exclude', 'recursive-include',
- 'recursive-exclude', 'graft', 'prune', 'blarg'):
- self.assertRaises(DistutilsTemplateError,
- file_list.process_template_line, action)
-
- # include
- file_list = FileList()
- file_list.set_allfiles(['a.py', 'b.txt', l('d/c.py')])
-
- file_list.process_template_line('include *.py')
- self.assertEqual(file_list.files, ['a.py'])
- self.assertNoWarnings()
-
- file_list.process_template_line('include *.rb')
- self.assertEqual(file_list.files, ['a.py'])
- self.assertWarnings()
-
- # exclude
- file_list = FileList()
- file_list.files = ['a.py', 'b.txt', l('d/c.py')]
-
- file_list.process_template_line('exclude *.py')
- self.assertEqual(file_list.files, ['b.txt', l('d/c.py')])
- self.assertNoWarnings()
-
- file_list.process_template_line('exclude *.rb')
- self.assertEqual(file_list.files, ['b.txt', l('d/c.py')])
- self.assertWarnings()
-
- # global-include
- file_list = FileList()
- file_list.set_allfiles(['a.py', 'b.txt', l('d/c.py')])
-
- file_list.process_template_line('global-include *.py')
- self.assertEqual(file_list.files, ['a.py', l('d/c.py')])
- self.assertNoWarnings()
-
- file_list.process_template_line('global-include *.rb')
- self.assertEqual(file_list.files, ['a.py', l('d/c.py')])
- self.assertWarnings()
-
- # global-exclude
- file_list = FileList()
- file_list.files = ['a.py', 'b.txt', l('d/c.py')]
-
- file_list.process_template_line('global-exclude *.py')
- self.assertEqual(file_list.files, ['b.txt'])
- self.assertNoWarnings()
-
- file_list.process_template_line('global-exclude *.rb')
- self.assertEqual(file_list.files, ['b.txt'])
- self.assertWarnings()
-
- # recursive-include
- file_list = FileList()
- file_list.set_allfiles(['a.py', l('d/b.py'), l('d/c.txt'),
- l('d/d/e.py')])
-
- file_list.process_template_line('recursive-include d *.py')
- self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
- self.assertNoWarnings()
-
- file_list.process_template_line('recursive-include e *.py')
- self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
- self.assertWarnings()
-
- # recursive-exclude
- file_list = FileList()
- file_list.files = ['a.py', l('d/b.py'), l('d/c.txt'), l('d/d/e.py')]
-
- file_list.process_template_line('recursive-exclude d *.py')
- self.assertEqual(file_list.files, ['a.py', l('d/c.txt')])
- self.assertNoWarnings()
-
- file_list.process_template_line('recursive-exclude e *.py')
- self.assertEqual(file_list.files, ['a.py', l('d/c.txt')])
- self.assertWarnings()
-
- # graft
- file_list = FileList()
- file_list.set_allfiles(['a.py', l('d/b.py'), l('d/d/e.py'),
- l('f/f.py')])
-
- file_list.process_template_line('graft d')
- self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
- self.assertNoWarnings()
-
- file_list.process_template_line('graft e')
- self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
- self.assertWarnings()
-
- # prune
- file_list = FileList()
- file_list.files = ['a.py', l('d/b.py'), l('d/d/e.py'), l('f/f.py')]
-
- file_list.process_template_line('prune d')
- self.assertEqual(file_list.files, ['a.py', l('f/f.py')])
- self.assertNoWarnings()
-
- file_list.process_template_line('prune e')
- self.assertEqual(file_list.files, ['a.py', l('f/f.py')])
- self.assertWarnings()
-
-
-def test_suite():
- return unittest.makeSuite(FileListTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install.py b/lib/python2.7/distutils/tests/test_install.py
deleted file mode 100644
index 2996161..0000000
--- a/lib/python2.7/distutils/tests/test_install.py
+++ /dev/null
@@ -1,247 +0,0 @@
-"""Tests for distutils.command.install."""
-
-import os
-import sys
-import unittest
-import site
-
-from test.test_support import captured_stdout, run_unittest
-
-from distutils import sysconfig
-from distutils.command.install import install
-from distutils.command import install as install_module
-from distutils.command.build_ext import build_ext
-from distutils.command.install import INSTALL_SCHEMES
-from distutils.core import Distribution
-from distutils.errors import DistutilsOptionError
-from distutils.extension import Extension
-
-from distutils.tests import support
-
-
-def _make_ext_name(modname):
- if os.name == 'nt' and sys.executable.endswith('_d.exe'):
- modname += '_d'
- return modname + sysconfig.get_config_var('SO')
-
-
-class InstallTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_home_installation_scheme(self):
- # This ensure two things:
- # - that --home generates the desired set of directory names
- # - test --home is supported on all platforms
- builddir = self.mkdtemp()
- destination = os.path.join(builddir, "installation")
-
- dist = Distribution({"name": "foopkg"})
- # script_name need not exist, it just need to be initialized
- dist.script_name = os.path.join(builddir, "setup.py")
- dist.command_obj["build"] = support.DummyCommand(
- build_base=builddir,
- build_lib=os.path.join(builddir, "lib"),
- )
-
- cmd = install(dist)
- cmd.home = destination
- cmd.ensure_finalized()
-
- self.assertEqual(cmd.install_base, destination)
- self.assertEqual(cmd.install_platbase, destination)
-
- def check_path(got, expected):
- got = os.path.normpath(got)
- expected = os.path.normpath(expected)
- self.assertEqual(got, expected)
-
- libdir = os.path.join(destination, "lib", "python")
- check_path(cmd.install_lib, libdir)
- check_path(cmd.install_platlib, libdir)
- check_path(cmd.install_purelib, libdir)
- check_path(cmd.install_headers,
- os.path.join(destination, "include", "python", "foopkg"))
- check_path(cmd.install_scripts, os.path.join(destination, "bin"))
- check_path(cmd.install_data, destination)
-
- def test_user_site(self):
- # site.USER_SITE was introduced in 2.6
- if sys.version < '2.6':
- return
-
- # preparing the environment for the test
- self.old_user_base = site.USER_BASE
- self.old_user_site = site.USER_SITE
- self.tmpdir = self.mkdtemp()
- self.user_base = os.path.join(self.tmpdir, 'B')
- self.user_site = os.path.join(self.tmpdir, 'S')
- site.USER_BASE = self.user_base
- site.USER_SITE = self.user_site
- install_module.USER_BASE = self.user_base
- install_module.USER_SITE = self.user_site
-
- def _expanduser(path):
- return self.tmpdir
- self.old_expand = os.path.expanduser
- os.path.expanduser = _expanduser
-
- def cleanup():
- site.USER_BASE = self.old_user_base
- site.USER_SITE = self.old_user_site
- install_module.USER_BASE = self.old_user_base
- install_module.USER_SITE = self.old_user_site
- os.path.expanduser = self.old_expand
-
- self.addCleanup(cleanup)
-
- for key in ('nt_user', 'unix_user', 'os2_home'):
- self.assertIn(key, INSTALL_SCHEMES)
-
- dist = Distribution({'name': 'xx'})
- cmd = install(dist)
-
- # making sure the user option is there
- options = [name for name, short, lable in
- cmd.user_options]
- self.assertIn('user', options)
-
- # setting a value
- cmd.user = 1
-
- # user base and site shouldn't be created yet
- self.assertFalse(os.path.exists(self.user_base))
- self.assertFalse(os.path.exists(self.user_site))
-
- # let's run finalize
- cmd.ensure_finalized()
-
- # now they should
- self.assertTrue(os.path.exists(self.user_base))
- self.assertTrue(os.path.exists(self.user_site))
-
- self.assertIn('userbase', cmd.config_vars)
- self.assertIn('usersite', cmd.config_vars)
-
- def test_handle_extra_path(self):
- dist = Distribution({'name': 'xx', 'extra_path': 'path,dirs'})
- cmd = install(dist)
-
- # two elements
- cmd.handle_extra_path()
- self.assertEqual(cmd.extra_path, ['path', 'dirs'])
- self.assertEqual(cmd.extra_dirs, 'dirs')
- self.assertEqual(cmd.path_file, 'path')
-
- # one element
- cmd.extra_path = ['path']
- cmd.handle_extra_path()
- self.assertEqual(cmd.extra_path, ['path'])
- self.assertEqual(cmd.extra_dirs, 'path')
- self.assertEqual(cmd.path_file, 'path')
-
- # none
- dist.extra_path = cmd.extra_path = None
- cmd.handle_extra_path()
- self.assertEqual(cmd.extra_path, None)
- self.assertEqual(cmd.extra_dirs, '')
- self.assertEqual(cmd.path_file, None)
-
- # three elements (no way !)
- cmd.extra_path = 'path,dirs,again'
- self.assertRaises(DistutilsOptionError, cmd.handle_extra_path)
-
- def test_finalize_options(self):
- dist = Distribution({'name': 'xx'})
- cmd = install(dist)
-
- # must supply either prefix/exec-prefix/home or
- # install-base/install-platbase -- not both
- cmd.prefix = 'prefix'
- cmd.install_base = 'base'
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
- # must supply either home or prefix/exec-prefix -- not both
- cmd.install_base = None
- cmd.home = 'home'
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
- # can't combine user with prefix/exec_prefix/home or
- # install_(plat)base
- cmd.prefix = None
- cmd.user = 'user'
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
- def test_record(self):
- install_dir = self.mkdtemp()
- project_dir, dist = self.create_dist(py_modules=['hello'],
- scripts=['sayhi'])
- os.chdir(project_dir)
- self.write_file('hello.py', "def main(): print 'o hai'")
- self.write_file('sayhi', 'from hello import main; main()')
-
- cmd = install(dist)
- dist.command_obj['install'] = cmd
- cmd.root = install_dir
- cmd.record = os.path.join(project_dir, 'filelist')
- cmd.ensure_finalized()
- cmd.run()
-
- f = open(cmd.record)
- try:
- content = f.read()
- finally:
- f.close()
-
- found = [os.path.basename(line) for line in content.splitlines()]
- expected = ['hello.py', 'hello.pyc', 'sayhi',
- 'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
- self.assertEqual(found, expected)
-
- def test_record_extensions(self):
- install_dir = self.mkdtemp()
- project_dir, dist = self.create_dist(ext_modules=[
- Extension('xx', ['xxmodule.c'])])
- os.chdir(project_dir)
- support.copy_xxmodule_c(project_dir)
-
- buildextcmd = build_ext(dist)
- support.fixup_build_ext(buildextcmd)
- buildextcmd.ensure_finalized()
-
- cmd = install(dist)
- dist.command_obj['install'] = cmd
- dist.command_obj['build_ext'] = buildextcmd
- cmd.root = install_dir
- cmd.record = os.path.join(project_dir, 'filelist')
- cmd.ensure_finalized()
- cmd.run()
-
- f = open(cmd.record)
- try:
- content = f.read()
- finally:
- f.close()
-
- found = [os.path.basename(line) for line in content.splitlines()]
- expected = [_make_ext_name('xx'),
- 'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
- self.assertEqual(found, expected)
-
- def test_debug_mode(self):
- # this covers the code called when DEBUG is set
- old_logs_len = len(self.logs)
- install_module.DEBUG = True
- try:
- with captured_stdout():
- self.test_record()
- finally:
- install_module.DEBUG = False
- self.assertTrue(len(self.logs) > old_logs_len)
-
-
-def test_suite():
- return unittest.makeSuite(InstallTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_data.py b/lib/python2.7/distutils/tests/test_install_data.py
deleted file mode 100644
index 4775694..0000000
--- a/lib/python2.7/distutils/tests/test_install_data.py
+++ /dev/null
@@ -1,77 +0,0 @@
-"""Tests for distutils.command.install_data."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.install_data import install_data
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class InstallDataTestCase(support.TempdirManager,
- support.LoggingSilencer,
- support.EnvironGuard,
- unittest.TestCase):
-
- def test_simple_run(self):
- pkg_dir, dist = self.create_dist()
- cmd = install_data(dist)
- cmd.install_dir = inst = os.path.join(pkg_dir, 'inst')
-
- # data_files can contain
- # - simple files
- # - a tuple with a path, and a list of file
- one = os.path.join(pkg_dir, 'one')
- self.write_file(one, 'xxx')
- inst2 = os.path.join(pkg_dir, 'inst2')
- two = os.path.join(pkg_dir, 'two')
- self.write_file(two, 'xxx')
-
- cmd.data_files = [one, (inst2, [two])]
- self.assertEqual(cmd.get_inputs(), [one, (inst2, [two])])
-
- # let's run the command
- cmd.ensure_finalized()
- cmd.run()
-
- # let's check the result
- self.assertEqual(len(cmd.get_outputs()), 2)
- rtwo = os.path.split(two)[-1]
- self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
- rone = os.path.split(one)[-1]
- self.assertTrue(os.path.exists(os.path.join(inst, rone)))
- cmd.outfiles = []
-
- # let's try with warn_dir one
- cmd.warn_dir = 1
- cmd.ensure_finalized()
- cmd.run()
-
- # let's check the result
- self.assertEqual(len(cmd.get_outputs()), 2)
- self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
- self.assertTrue(os.path.exists(os.path.join(inst, rone)))
- cmd.outfiles = []
-
- # now using root and empty dir
- cmd.root = os.path.join(pkg_dir, 'root')
- inst3 = os.path.join(cmd.install_dir, 'inst3')
- inst4 = os.path.join(pkg_dir, 'inst4')
- three = os.path.join(cmd.install_dir, 'three')
- self.write_file(three, 'xx')
- cmd.data_files = [one, (inst2, [two]),
- ('inst3', [three]),
- (inst4, [])]
- cmd.ensure_finalized()
- cmd.run()
-
- # let's check the result
- self.assertEqual(len(cmd.get_outputs()), 4)
- self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
- self.assertTrue(os.path.exists(os.path.join(inst, rone)))
-
-def test_suite():
- return unittest.makeSuite(InstallDataTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_headers.py b/lib/python2.7/distutils/tests/test_install_headers.py
deleted file mode 100644
index b37224b..0000000
--- a/lib/python2.7/distutils/tests/test_install_headers.py
+++ /dev/null
@@ -1,41 +0,0 @@
-"""Tests for distutils.command.install_headers."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.install_headers import install_headers
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class InstallHeadersTestCase(support.TempdirManager,
- support.LoggingSilencer,
- support.EnvironGuard,
- unittest.TestCase):
-
- def test_simple_run(self):
- # we have two headers
- header_list = self.mkdtemp()
- header1 = os.path.join(header_list, 'header1')
- header2 = os.path.join(header_list, 'header2')
- self.write_file(header1)
- self.write_file(header2)
- headers = [header1, header2]
-
- pkg_dir, dist = self.create_dist(headers=headers)
- cmd = install_headers(dist)
- self.assertEqual(cmd.get_inputs(), headers)
-
- # let's run the command
- cmd.install_dir = os.path.join(pkg_dir, 'inst')
- cmd.ensure_finalized()
- cmd.run()
-
- # let's check the results
- self.assertEqual(len(cmd.get_outputs()), 2)
-
-def test_suite():
- return unittest.makeSuite(InstallHeadersTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_lib.py b/lib/python2.7/distutils/tests/test_install_lib.py
deleted file mode 100644
index 4d86308..0000000
--- a/lib/python2.7/distutils/tests/test_install_lib.py
+++ /dev/null
@@ -1,107 +0,0 @@
-"""Tests for distutils.command.install_data."""
-import os
-import sys
-import unittest
-
-from distutils.command.install_lib import install_lib
-from distutils.extension import Extension
-from distutils.tests import support
-from distutils.errors import DistutilsOptionError
-from test.test_support import run_unittest
-
-class InstallLibTestCase(support.TempdirManager,
- support.LoggingSilencer,
- support.EnvironGuard,
- unittest.TestCase):
-
- def test_finalize_options(self):
- pkg_dir, dist = self.create_dist()
- cmd = install_lib(dist)
-
- cmd.finalize_options()
- self.assertEqual(cmd.compile, 1)
- self.assertEqual(cmd.optimize, 0)
-
- # optimize must be 0, 1, or 2
- cmd.optimize = 'foo'
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)
- cmd.optimize = '4'
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
- cmd.optimize = '2'
- cmd.finalize_options()
- self.assertEqual(cmd.optimize, 2)
-
- def _setup_byte_compile(self):
- pkg_dir, dist = self.create_dist()
- cmd = install_lib(dist)
- cmd.compile = cmd.optimize = 1
-
- f = os.path.join(pkg_dir, 'foo.py')
- self.write_file(f, '# python file')
- cmd.byte_compile([f])
- return pkg_dir
-
- @unittest.skipIf(sys.dont_write_bytecode, 'byte-compile not enabled')
- def test_byte_compile(self):
- pkg_dir = self._setup_byte_compile()
- if sys.flags.optimize < 1:
- self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyc')))
- else:
- self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyo')))
-
- def test_get_outputs(self):
- pkg_dir, dist = self.create_dist()
- cmd = install_lib(dist)
-
- # setting up a dist environment
- cmd.compile = cmd.optimize = 1
- cmd.install_dir = pkg_dir
- f = os.path.join(pkg_dir, 'foo.py')
- self.write_file(f, '# python file')
- cmd.distribution.py_modules = [pkg_dir]
- cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]
- cmd.distribution.packages = [pkg_dir]
- cmd.distribution.script_name = 'setup.py'
-
- # get_output should return 4 elements
- self.assertTrue(len(cmd.get_outputs()) >= 2)
-
- def test_get_inputs(self):
- pkg_dir, dist = self.create_dist()
- cmd = install_lib(dist)
-
- # setting up a dist environment
- cmd.compile = cmd.optimize = 1
- cmd.install_dir = pkg_dir
- f = os.path.join(pkg_dir, 'foo.py')
- self.write_file(f, '# python file')
- cmd.distribution.py_modules = [pkg_dir]
- cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]
- cmd.distribution.packages = [pkg_dir]
- cmd.distribution.script_name = 'setup.py'
-
- # get_input should return 2 elements
- self.assertEqual(len(cmd.get_inputs()), 2)
-
- def test_dont_write_bytecode(self):
- # makes sure byte_compile is not used
- pkg_dir, dist = self.create_dist()
- cmd = install_lib(dist)
- cmd.compile = 1
- cmd.optimize = 1
-
- old_dont_write_bytecode = sys.dont_write_bytecode
- sys.dont_write_bytecode = True
- try:
- cmd.byte_compile([])
- finally:
- sys.dont_write_bytecode = old_dont_write_bytecode
-
- self.assertTrue('byte-compiling is disabled' in self.logs[0][1])
-
-def test_suite():
- return unittest.makeSuite(InstallLibTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_scripts.py b/lib/python2.7/distutils/tests/test_install_scripts.py
deleted file mode 100644
index 4608545..0000000
--- a/lib/python2.7/distutils/tests/test_install_scripts.py
+++ /dev/null
@@ -1,82 +0,0 @@
-"""Tests for distutils.command.install_scripts."""
-
-import os
-import unittest
-
-from distutils.command.install_scripts import install_scripts
-from distutils.core import Distribution
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class InstallScriptsTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_default_settings(self):
- dist = Distribution()
- dist.command_obj["build"] = support.DummyCommand(
- build_scripts="/foo/bar")
- dist.command_obj["install"] = support.DummyCommand(
- install_scripts="/splat/funk",
- force=1,
- skip_build=1,
- )
- cmd = install_scripts(dist)
- self.assertTrue(not cmd.force)
- self.assertTrue(not cmd.skip_build)
- self.assertTrue(cmd.build_dir is None)
- self.assertTrue(cmd.install_dir is None)
-
- cmd.finalize_options()
-
- self.assertTrue(cmd.force)
- self.assertTrue(cmd.skip_build)
- self.assertEqual(cmd.build_dir, "/foo/bar")
- self.assertEqual(cmd.install_dir, "/splat/funk")
-
- def test_installation(self):
- source = self.mkdtemp()
- expected = []
-
- def write_script(name, text):
- expected.append(name)
- f = open(os.path.join(source, name), "w")
- try:
- f.write(text)
- finally:
- f.close()
-
- write_script("script1.py", ("#! /usr/bin/env python2.3\n"
- "# bogus script w/ Python sh-bang\n"
- "pass\n"))
- write_script("script2.py", ("#!/usr/bin/python\n"
- "# bogus script w/ Python sh-bang\n"
- "pass\n"))
- write_script("shell.sh", ("#!/bin/sh\n"
- "# bogus shell script w/ sh-bang\n"
- "exit 0\n"))
-
- target = self.mkdtemp()
- dist = Distribution()
- dist.command_obj["build"] = support.DummyCommand(build_scripts=source)
- dist.command_obj["install"] = support.DummyCommand(
- install_scripts=target,
- force=1,
- skip_build=1,
- )
- cmd = install_scripts(dist)
- cmd.finalize_options()
- cmd.run()
-
- installed = os.listdir(target)
- for name in expected:
- self.assertTrue(name in installed)
-
-
-def test_suite():
- return unittest.makeSuite(InstallScriptsTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_msvc9compiler.py b/lib/python2.7/distutils/tests/test_msvc9compiler.py
deleted file mode 100644
index 2d94a11..0000000
--- a/lib/python2.7/distutils/tests/test_msvc9compiler.py
+++ /dev/null
@@ -1,184 +0,0 @@
-"""Tests for distutils.msvc9compiler."""
-import sys
-import unittest
-import os
-
-from distutils.errors import DistutilsPlatformError
-from distutils.tests import support
-from test.test_support import run_unittest
-
-# A manifest with the only assembly reference being the msvcrt assembly, so
-# should have the assembly completely stripped. Note that although the
-# assembly has a <security> reference the assembly is removed - that is
-# currently a "feature", not a bug :)
-_MANIFEST_WITH_ONLY_MSVC_REFERENCE = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
- manifestVersion="1.0">
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
- <security>
- <requestedPrivileges>
- <requestedExecutionLevel level="asInvoker" uiAccess="false">
- </requestedExecutionLevel>
- </requestedPrivileges>
- </security>
- </trustInfo>
- <dependency>
- <dependentAssembly>
- <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
- version="9.0.21022.8" processorArchitecture="x86"
- publicKeyToken="XXXX">
- </assemblyIdentity>
- </dependentAssembly>
- </dependency>
-</assembly>
-"""
-
-# A manifest with references to assemblies other than msvcrt. When processed,
-# this assembly should be returned with just the msvcrt part removed.
-_MANIFEST_WITH_MULTIPLE_REFERENCES = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
- manifestVersion="1.0">
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
- <security>
- <requestedPrivileges>
- <requestedExecutionLevel level="asInvoker" uiAccess="false">
- </requestedExecutionLevel>
- </requestedPrivileges>
- </security>
- </trustInfo>
- <dependency>
- <dependentAssembly>
- <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
- version="9.0.21022.8" processorArchitecture="x86"
- publicKeyToken="XXXX">
- </assemblyIdentity>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly>
- <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"
- version="9.0.21022.8" processorArchitecture="x86"
- publicKeyToken="XXXX"></assemblyIdentity>
- </dependentAssembly>
- </dependency>
-</assembly>
-"""
-
-_CLEANED_MANIFEST = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
- manifestVersion="1.0">
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
- <security>
- <requestedPrivileges>
- <requestedExecutionLevel level="asInvoker" uiAccess="false">
- </requestedExecutionLevel>
- </requestedPrivileges>
- </security>
- </trustInfo>
- <dependency>
-
- </dependency>
- <dependency>
- <dependentAssembly>
- <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"
- version="9.0.21022.8" processorArchitecture="x86"
- publicKeyToken="XXXX"></assemblyIdentity>
- </dependentAssembly>
- </dependency>
-</assembly>"""
-
-if sys.platform=="win32":
- from distutils.msvccompiler import get_build_version
- if get_build_version()>=8.0:
- SKIP_MESSAGE = None
- else:
- SKIP_MESSAGE = "These tests are only for MSVC8.0 or above"
-else:
- SKIP_MESSAGE = "These tests are only for win32"
-
-@unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE)
-class msvc9compilerTestCase(support.TempdirManager,
- unittest.TestCase):
-
- def test_no_compiler(self):
- # makes sure query_vcvarsall raises
- # a DistutilsPlatformError if the compiler
- # is not found
- from distutils.msvc9compiler import query_vcvarsall
- def _find_vcvarsall(version):
- return None
-
- from distutils import msvc9compiler
- old_find_vcvarsall = msvc9compiler.find_vcvarsall
- msvc9compiler.find_vcvarsall = _find_vcvarsall
- try:
- self.assertRaises(DistutilsPlatformError, query_vcvarsall,
- 'wont find this version')
- finally:
- msvc9compiler.find_vcvarsall = old_find_vcvarsall
-
- def test_reg_class(self):
- from distutils.msvc9compiler import Reg
- self.assertRaises(KeyError, Reg.get_value, 'xxx', 'xxx')
-
- # looking for values that should exist on all
- # windows registeries versions.
- path = r'Control Panel\Desktop'
- v = Reg.get_value(path, u'dragfullwindows')
- self.assertTrue(v in (u'0', u'1', u'2'))
-
- import _winreg
- HKCU = _winreg.HKEY_CURRENT_USER
- keys = Reg.read_keys(HKCU, 'xxxx')
- self.assertEqual(keys, None)
-
- keys = Reg.read_keys(HKCU, r'Control Panel')
- self.assertTrue('Desktop' in keys)
-
- def test_remove_visual_c_ref(self):
- from distutils.msvc9compiler import MSVCCompiler
- tempdir = self.mkdtemp()
- manifest = os.path.join(tempdir, 'manifest')
- f = open(manifest, 'w')
- try:
- f.write(_MANIFEST_WITH_MULTIPLE_REFERENCES)
- finally:
- f.close()
-
- compiler = MSVCCompiler()
- compiler._remove_visual_c_ref(manifest)
-
- # see what we got
- f = open(manifest)
- try:
- # removing trailing spaces
- content = '\n'.join([line.rstrip() for line in f.readlines()])
- finally:
- f.close()
-
- # makes sure the manifest was properly cleaned
- self.assertEqual(content, _CLEANED_MANIFEST)
-
- def test_remove_entire_manifest(self):
- from distutils.msvc9compiler import MSVCCompiler
- tempdir = self.mkdtemp()
- manifest = os.path.join(tempdir, 'manifest')
- f = open(manifest, 'w')
- try:
- f.write(_MANIFEST_WITH_ONLY_MSVC_REFERENCE)
- finally:
- f.close()
-
- compiler = MSVCCompiler()
- got = compiler._remove_visual_c_ref(manifest)
- self.assertIs(got, None)
-
-
-def test_suite():
- return unittest.makeSuite(msvc9compilerTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_register.py b/lib/python2.7/distutils/tests/test_register.py
deleted file mode 100644
index 4f34b18..0000000
--- a/lib/python2.7/distutils/tests/test_register.py
+++ /dev/null
@@ -1,290 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.register."""
-import os
-import unittest
-import getpass
-import urllib2
-import warnings
-
-from test.test_support import check_warnings, run_unittest
-
-from distutils.command import register as register_module
-from distutils.command.register import register
-from distutils.errors import DistutilsSetupError
-
-from distutils.tests.test_config import PyPIRCCommandTestCase
-
-try:
- import docutils
-except ImportError:
- docutils = None
-
-PYPIRC_NOPASSWORD = """\
-[distutils]
-
-index-servers =
- server1
-
-[server1]
-username:me
-"""
-
-WANTED_PYPIRC = """\
-[distutils]
-index-servers =
- pypi
-
-[pypi]
-username:tarek
-password:password
-"""
-
-class RawInputs(object):
- """Fakes user inputs."""
- def __init__(self, *answers):
- self.answers = answers
- self.index = 0
-
- def __call__(self, prompt=''):
- try:
- return self.answers[self.index]
- finally:
- self.index += 1
-
-class FakeOpener(object):
- """Fakes a PyPI server"""
- def __init__(self):
- self.reqs = []
-
- def __call__(self, *args):
- return self
-
- def open(self, req):
- self.reqs.append(req)
- return self
-
- def read(self):
- return 'xxx'
-
-class RegisterTestCase(PyPIRCCommandTestCase):
-
- def setUp(self):
- super(RegisterTestCase, self).setUp()
- # patching the password prompt
- self._old_getpass = getpass.getpass
- def _getpass(prompt):
- return 'password'
- getpass.getpass = _getpass
- self.old_opener = urllib2.build_opener
- self.conn = urllib2.build_opener = FakeOpener()
-
- def tearDown(self):
- getpass.getpass = self._old_getpass
- urllib2.build_opener = self.old_opener
- super(RegisterTestCase, self).tearDown()
-
- def _get_cmd(self, metadata=None):
- if metadata is None:
- metadata = {'url': 'xxx', 'author': 'xxx',
- 'author_email': 'xxx',
- 'name': 'xxx', 'version': 'xxx'}
- pkg_info, dist = self.create_dist(**metadata)
- return register(dist)
-
- def test_create_pypirc(self):
- # this test makes sure a .pypirc file
- # is created when requested.
-
- # let's create a register instance
- cmd = self._get_cmd()
-
- # we shouldn't have a .pypirc file yet
- self.assertTrue(not os.path.exists(self.rc))
-
- # patching raw_input and getpass.getpass
- # so register gets happy
- #
- # Here's what we are faking :
- # use your existing login (choice 1.)
- # Username : 'tarek'
- # Password : 'password'
- # Save your login (y/N)? : 'y'
- inputs = RawInputs('1', 'tarek', 'y')
- register_module.raw_input = inputs.__call__
- # let's run the command
- try:
- cmd.run()
- finally:
- del register_module.raw_input
-
- # we should have a brand new .pypirc file
- self.assertTrue(os.path.exists(self.rc))
-
- # with the content similar to WANTED_PYPIRC
- f = open(self.rc)
- try:
- content = f.read()
- self.assertEqual(content, WANTED_PYPIRC)
- finally:
- f.close()
-
- # now let's make sure the .pypirc file generated
- # really works : we shouldn't be asked anything
- # if we run the command again
- def _no_way(prompt=''):
- raise AssertionError(prompt)
- register_module.raw_input = _no_way
-
- cmd.show_response = 1
- cmd.run()
-
- # let's see what the server received : we should
- # have 2 similar requests
- self.assertEqual(len(self.conn.reqs), 2)
- req1 = dict(self.conn.reqs[0].headers)
- req2 = dict(self.conn.reqs[1].headers)
- self.assertEqual(req2['Content-length'], req1['Content-length'])
- self.assertTrue('xxx' in self.conn.reqs[1].data)
-
- def test_password_not_in_file(self):
-
- self.write_file(self.rc, PYPIRC_NOPASSWORD)
- cmd = self._get_cmd()
- cmd._set_config()
- cmd.finalize_options()
- cmd.send_metadata()
-
- # dist.password should be set
- # therefore used afterwards by other commands
- self.assertEqual(cmd.distribution.password, 'password')
-
- def test_registering(self):
- # this test runs choice 2
- cmd = self._get_cmd()
- inputs = RawInputs('2', 'tarek', 'tarek@ziade.org')
- register_module.raw_input = inputs.__call__
- try:
- # let's run the command
- cmd.run()
- finally:
- del register_module.raw_input
-
- # we should have send a request
- self.assertEqual(len(self.conn.reqs), 1)
- req = self.conn.reqs[0]
- headers = dict(req.headers)
- self.assertEqual(headers['Content-length'], '608')
- self.assertTrue('tarek' in req.data)
-
- def test_password_reset(self):
- # this test runs choice 3
- cmd = self._get_cmd()
- inputs = RawInputs('3', 'tarek@ziade.org')
- register_module.raw_input = inputs.__call__
- try:
- # let's run the command
- cmd.run()
- finally:
- del register_module.raw_input
-
- # we should have send a request
- self.assertEqual(len(self.conn.reqs), 1)
- req = self.conn.reqs[0]
- headers = dict(req.headers)
- self.assertEqual(headers['Content-length'], '290')
- self.assertTrue('tarek' in req.data)
-
- @unittest.skipUnless(docutils is not None, 'needs docutils')
- def test_strict(self):
- # testing the script option
- # when on, the register command stops if
- # the metadata is incomplete or if
- # long_description is not reSt compliant
-
- # empty metadata
- cmd = self._get_cmd({})
- cmd.ensure_finalized()
- cmd.strict = 1
- self.assertRaises(DistutilsSetupError, cmd.run)
-
- # metadata are OK but long_description is broken
- metadata = {'url': 'xxx', 'author': 'xxx',
- 'author_email': u'éxéxé',
- 'name': 'xxx', 'version': 'xxx',
- 'long_description': 'title\n==\n\ntext'}
-
- cmd = self._get_cmd(metadata)
- cmd.ensure_finalized()
- cmd.strict = 1
- self.assertRaises(DistutilsSetupError, cmd.run)
-
- # now something that works
- metadata['long_description'] = 'title\n=====\n\ntext'
- cmd = self._get_cmd(metadata)
- cmd.ensure_finalized()
- cmd.strict = 1
- inputs = RawInputs('1', 'tarek', 'y')
- register_module.raw_input = inputs.__call__
- # let's run the command
- try:
- cmd.run()
- finally:
- del register_module.raw_input
-
- # strict is not by default
- cmd = self._get_cmd()
- cmd.ensure_finalized()
- inputs = RawInputs('1', 'tarek', 'y')
- register_module.raw_input = inputs.__call__
- # let's run the command
- try:
- cmd.run()
- finally:
- del register_module.raw_input
-
- # and finally a Unicode test (bug #12114)
- metadata = {'url': u'xxx', 'author': u'\u00c9ric',
- 'author_email': u'xxx', u'name': 'xxx',
- 'version': u'xxx',
- 'description': u'Something about esszet \u00df',
- 'long_description': u'More things about esszet \u00df'}
-
- cmd = self._get_cmd(metadata)
- cmd.ensure_finalized()
- cmd.strict = 1
- inputs = RawInputs('1', 'tarek', 'y')
- register_module.raw_input = inputs.__call__
- # let's run the command
- try:
- cmd.run()
- finally:
- del register_module.raw_input
-
- @unittest.skipUnless(docutils is not None, 'needs docutils')
- def test_register_invalid_long_description(self):
- description = ':funkie:`str`' # mimic Sphinx-specific markup
- metadata = {'url': 'xxx', 'author': 'xxx',
- 'author_email': 'xxx',
- 'name': 'xxx', 'version': 'xxx',
- 'long_description': description}
- cmd = self._get_cmd(metadata)
- cmd.ensure_finalized()
- cmd.strict = True
- inputs = RawInputs('2', 'tarek', 'tarek@ziade.org')
- register_module.raw_input = inputs
- self.addCleanup(delattr, register_module, 'raw_input')
- self.assertRaises(DistutilsSetupError, cmd.run)
-
- def test_check_metadata_deprecated(self):
- # makes sure make_metadata is deprecated
- cmd = self._get_cmd()
- with check_warnings() as w:
- warnings.simplefilter("always")
- cmd.check_metadata()
- self.assertEqual(len(w.warnings), 1)
-
-def test_suite():
- return unittest.makeSuite(RegisterTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_sdist.py b/lib/python2.7/distutils/tests/test_sdist.py
deleted file mode 100644
index 7e7d98d..0000000
--- a/lib/python2.7/distutils/tests/test_sdist.py
+++ /dev/null
@@ -1,512 +0,0 @@
-"""Tests for distutils.command.sdist."""
-import os
-import tarfile
-import unittest
-import warnings
-import zipfile
-from os.path import join
-from textwrap import dedent
-from test.test_support import captured_stdout, check_warnings, run_unittest
-
-# zlib is not used here, but if it's not available
-# the tests that use zipfile may fail
-try:
- import zlib
-except ImportError:
- zlib = None
-
-try:
- import grp
- import pwd
- UID_GID_SUPPORT = True
-except ImportError:
- UID_GID_SUPPORT = False
-
-
-from distutils.command.sdist import sdist, show_formats
-from distutils.core import Distribution
-from distutils.tests.test_config import PyPIRCCommandTestCase
-from distutils.errors import DistutilsOptionError
-from distutils.spawn import find_executable
-from distutils.log import WARN
-from distutils.filelist import FileList
-from distutils.archive_util import ARCHIVE_FORMATS
-
-SETUP_PY = """
-from distutils.core import setup
-import somecode
-
-setup(name='fake')
-"""
-
-MANIFEST = """\
-# file GENERATED by distutils, do NOT edit
-README
-buildout.cfg
-inroot.txt
-setup.py
-data%(sep)sdata.dt
-scripts%(sep)sscript.py
-some%(sep)sfile.txt
-some%(sep)sother_file.txt
-somecode%(sep)s__init__.py
-somecode%(sep)sdoc.dat
-somecode%(sep)sdoc.txt
-"""
-
-class SDistTestCase(PyPIRCCommandTestCase):
-
- def setUp(self):
- # PyPIRCCommandTestCase creates a temp dir already
- # and put it in self.tmp_dir
- super(SDistTestCase, self).setUp()
- # setting up an environment
- self.old_path = os.getcwd()
- os.mkdir(join(self.tmp_dir, 'somecode'))
- os.mkdir(join(self.tmp_dir, 'dist'))
- # a package, and a README
- self.write_file((self.tmp_dir, 'README'), 'xxx')
- self.write_file((self.tmp_dir, 'somecode', '__init__.py'), '#')
- self.write_file((self.tmp_dir, 'setup.py'), SETUP_PY)
- os.chdir(self.tmp_dir)
-
- def tearDown(self):
- # back to normal
- os.chdir(self.old_path)
- super(SDistTestCase, self).tearDown()
-
- def get_cmd(self, metadata=None):
- """Returns a cmd"""
- if metadata is None:
- metadata = {'name': 'fake', 'version': '1.0',
- 'url': 'xxx', 'author': 'xxx',
- 'author_email': 'xxx'}
- dist = Distribution(metadata)
- dist.script_name = 'setup.py'
- dist.packages = ['somecode']
- dist.include_package_data = True
- cmd = sdist(dist)
- cmd.dist_dir = 'dist'
- return dist, cmd
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_prune_file_list(self):
- # this test creates a project with some VCS dirs and an NFS rename
- # file, then launches sdist to check they get pruned on all systems
-
- # creating VCS directories with some files in them
- os.mkdir(join(self.tmp_dir, 'somecode', '.svn'))
- self.write_file((self.tmp_dir, 'somecode', '.svn', 'ok.py'), 'xxx')
-
- os.mkdir(join(self.tmp_dir, 'somecode', '.hg'))
- self.write_file((self.tmp_dir, 'somecode', '.hg',
- 'ok'), 'xxx')
-
- os.mkdir(join(self.tmp_dir, 'somecode', '.git'))
- self.write_file((self.tmp_dir, 'somecode', '.git',
- 'ok'), 'xxx')
-
- self.write_file((self.tmp_dir, 'somecode', '.nfs0001'), 'xxx')
-
- # now building a sdist
- dist, cmd = self.get_cmd()
-
- # zip is available universally
- # (tar might not be installed under win32)
- cmd.formats = ['zip']
-
- cmd.ensure_finalized()
- cmd.run()
-
- # now let's check what we have
- dist_folder = join(self.tmp_dir, 'dist')
- files = os.listdir(dist_folder)
- self.assertEqual(files, ['fake-1.0.zip'])
-
- zip_file = zipfile.ZipFile(join(dist_folder, 'fake-1.0.zip'))
- try:
- content = zip_file.namelist()
- finally:
- zip_file.close()
-
- # making sure everything has been pruned correctly
- self.assertEqual(len(content), 4)
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_make_distribution(self):
-
- # check if tar and gzip are installed
- if (find_executable('tar') is None or
- find_executable('gzip') is None):
- return
-
- # now building a sdist
- dist, cmd = self.get_cmd()
-
- # creating a gztar then a tar
- cmd.formats = ['gztar', 'tar']
- cmd.ensure_finalized()
- cmd.run()
-
- # making sure we have two files
- dist_folder = join(self.tmp_dir, 'dist')
- result = os.listdir(dist_folder)
- result.sort()
- self.assertEqual(result, ['fake-1.0.tar', 'fake-1.0.tar.gz'])
-
- os.remove(join(dist_folder, 'fake-1.0.tar'))
- os.remove(join(dist_folder, 'fake-1.0.tar.gz'))
-
- # now trying a tar then a gztar
- cmd.formats = ['tar', 'gztar']
-
- cmd.ensure_finalized()
- cmd.run()
-
- result = os.listdir(dist_folder)
- result.sort()
- self.assertEqual(result, ['fake-1.0.tar', 'fake-1.0.tar.gz'])
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_unicode_metadata_tgz(self):
- """
- Unicode name or version should not break building to tar.gz format.
- Reference issue #11638.
- """
-
- # create the sdist command with unicode parameters
- dist, cmd = self.get_cmd({'name': u'fake', 'version': u'1.0'})
-
- # create the sdist as gztar and run the command
- cmd.formats = ['gztar']
- cmd.ensure_finalized()
- cmd.run()
-
- # The command should have created the .tar.gz file
- dist_folder = join(self.tmp_dir, 'dist')
- result = os.listdir(dist_folder)
- self.assertEqual(result, ['fake-1.0.tar.gz'])
-
- os.remove(join(dist_folder, 'fake-1.0.tar.gz'))
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_add_defaults(self):
-
- # http://bugs.python.org/issue2279
-
- # add_default should also include
- # data_files and package_data
- dist, cmd = self.get_cmd()
-
- # filling data_files by pointing files
- # in package_data
- dist.package_data = {'': ['*.cfg', '*.dat'],
- 'somecode': ['*.txt']}
- self.write_file((self.tmp_dir, 'somecode', 'doc.txt'), '#')
- self.write_file((self.tmp_dir, 'somecode', 'doc.dat'), '#')
-
- # adding some data in data_files
- data_dir = join(self.tmp_dir, 'data')
- os.mkdir(data_dir)
- self.write_file((data_dir, 'data.dt'), '#')
- some_dir = join(self.tmp_dir, 'some')
- os.mkdir(some_dir)
- # make sure VCS directories are pruned (#14004)
- hg_dir = join(self.tmp_dir, '.hg')
- os.mkdir(hg_dir)
- self.write_file((hg_dir, 'last-message.txt'), '#')
- # a buggy regex used to prevent this from working on windows (#6884)
- self.write_file((self.tmp_dir, 'buildout.cfg'), '#')
- self.write_file((self.tmp_dir, 'inroot.txt'), '#')
- self.write_file((some_dir, 'file.txt'), '#')
- self.write_file((some_dir, 'other_file.txt'), '#')
-
- dist.data_files = [('data', ['data/data.dt',
- 'buildout.cfg',
- 'inroot.txt',
- 'notexisting']),
- 'some/file.txt',
- 'some/other_file.txt']
-
- # adding a script
- script_dir = join(self.tmp_dir, 'scripts')
- os.mkdir(script_dir)
- self.write_file((script_dir, 'script.py'), '#')
- dist.scripts = [join('scripts', 'script.py')]
-
- cmd.formats = ['zip']
- cmd.use_defaults = True
-
- cmd.ensure_finalized()
- cmd.run()
-
- # now let's check what we have
- dist_folder = join(self.tmp_dir, 'dist')
- files = os.listdir(dist_folder)
- self.assertEqual(files, ['fake-1.0.zip'])
-
- zip_file = zipfile.ZipFile(join(dist_folder, 'fake-1.0.zip'))
- try:
- content = zip_file.namelist()
- finally:
- zip_file.close()
-
- # making sure everything was added
- self.assertEqual(len(content), 12)
-
- # checking the MANIFEST
- f = open(join(self.tmp_dir, 'MANIFEST'))
- try:
- manifest = f.read()
- finally:
- f.close()
- self.assertEqual(manifest, MANIFEST % {'sep': os.sep})
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_metadata_check_option(self):
- # testing the `medata-check` option
- dist, cmd = self.get_cmd(metadata={})
-
- # this should raise some warnings !
- # with the `check` subcommand
- cmd.ensure_finalized()
- cmd.run()
- warnings = [msg for msg in self.get_logs(WARN) if
- msg.startswith('warning: check:')]
- self.assertEqual(len(warnings), 2)
-
- # trying with a complete set of metadata
- self.clear_logs()
- dist, cmd = self.get_cmd()
- cmd.ensure_finalized()
- cmd.metadata_check = 0
- cmd.run()
- warnings = [msg for msg in self.get_logs(WARN) if
- msg.startswith('warning: check:')]
- self.assertEqual(len(warnings), 0)
-
- def test_check_metadata_deprecated(self):
- # makes sure make_metadata is deprecated
- dist, cmd = self.get_cmd()
- with check_warnings() as w:
- warnings.simplefilter("always")
- cmd.check_metadata()
- self.assertEqual(len(w.warnings), 1)
-
- def test_show_formats(self):
- with captured_stdout() as stdout:
- show_formats()
-
- # the output should be a header line + one line per format
- num_formats = len(ARCHIVE_FORMATS.keys())
- output = [line for line in stdout.getvalue().split('\n')
- if line.strip().startswith('--formats=')]
- self.assertEqual(len(output), num_formats)
-
- def test_finalize_options(self):
- dist, cmd = self.get_cmd()
- cmd.finalize_options()
-
- # default options set by finalize
- self.assertEqual(cmd.manifest, 'MANIFEST')
- self.assertEqual(cmd.template, 'MANIFEST.in')
- self.assertEqual(cmd.dist_dir, 'dist')
-
- # formats has to be a string splitable on (' ', ',') or
- # a stringlist
- cmd.formats = 1
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)
- cmd.formats = ['zip']
- cmd.finalize_options()
-
- # formats has to be known
- cmd.formats = 'supazipa'
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
- @unittest.skipUnless(zlib, "requires zlib")
- @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
- def test_make_distribution_owner_group(self):
-
- # check if tar and gzip are installed
- if (find_executable('tar') is None or
- find_executable('gzip') is None):
- return
-
- # now building a sdist
- dist, cmd = self.get_cmd()
-
- # creating a gztar and specifying the owner+group
- cmd.formats = ['gztar']
- cmd.owner = pwd.getpwuid(0)[0]
- cmd.group = grp.getgrgid(0)[0]
- cmd.ensure_finalized()
- cmd.run()
-
- # making sure we have the good rights
- archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
- archive = tarfile.open(archive_name)
- try:
- for member in archive.getmembers():
- self.assertEqual(member.uid, 0)
- self.assertEqual(member.gid, 0)
- finally:
- archive.close()
-
- # building a sdist again
- dist, cmd = self.get_cmd()
-
- # creating a gztar
- cmd.formats = ['gztar']
- cmd.ensure_finalized()
- cmd.run()
-
- # making sure we have the good rights
- archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
- archive = tarfile.open(archive_name)
-
- # note that we are not testing the group ownership here
- # because, depending on the platforms and the container
- # rights (see #7408)
- try:
- for member in archive.getmembers():
- self.assertEqual(member.uid, os.getuid())
- finally:
- archive.close()
-
- # the following tests make sure there is a nice error message instead
- # of a traceback when parsing an invalid manifest template
-
- def _check_template(self, content):
- dist, cmd = self.get_cmd()
- os.chdir(self.tmp_dir)
- self.write_file('MANIFEST.in', content)
- cmd.ensure_finalized()
- cmd.filelist = FileList()
- cmd.read_template()
- warnings = self.get_logs(WARN)
- self.assertEqual(len(warnings), 1)
-
- def test_invalid_template_unknown_command(self):
- self._check_template('taunt knights *')
-
- def test_invalid_template_wrong_arguments(self):
- # this manifest command takes one argument
- self._check_template('prune')
-
- @unittest.skipIf(os.name != 'nt', 'test relevant for Windows only')
- def test_invalid_template_wrong_path(self):
- # on Windows, trailing slashes are not allowed
- # this used to crash instead of raising a warning: #8286
- self._check_template('include examples/')
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_get_file_list(self):
- # make sure MANIFEST is recalculated
- dist, cmd = self.get_cmd()
-
- # filling data_files by pointing files in package_data
- dist.package_data = {'somecode': ['*.txt']}
- self.write_file((self.tmp_dir, 'somecode', 'doc.txt'), '#')
- cmd.formats = ['gztar']
- cmd.ensure_finalized()
- cmd.run()
-
- f = open(cmd.manifest)
- try:
- manifest = [line.strip() for line in f.read().split('\n')
- if line.strip() != '']
- finally:
- f.close()
-
- self.assertEqual(len(manifest), 5)
-
- # adding a file
- self.write_file((self.tmp_dir, 'somecode', 'doc2.txt'), '#')
-
- # make sure build_py is reinitialized, like a fresh run
- build_py = dist.get_command_obj('build_py')
- build_py.finalized = False
- build_py.ensure_finalized()
-
- cmd.run()
-
- f = open(cmd.manifest)
- try:
- manifest2 = [line.strip() for line in f.read().split('\n')
- if line.strip() != '']
- finally:
- f.close()
-
- # do we have the new file in MANIFEST ?
- self.assertEqual(len(manifest2), 6)
- self.assertIn('doc2.txt', manifest2[-1])
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_manifest_marker(self):
- # check that autogenerated MANIFESTs have a marker
- dist, cmd = self.get_cmd()
- cmd.ensure_finalized()
- cmd.run()
-
- f = open(cmd.manifest)
- try:
- manifest = [line.strip() for line in f.read().split('\n')
- if line.strip() != '']
- finally:
- f.close()
-
- self.assertEqual(manifest[0],
- '# file GENERATED by distutils, do NOT edit')
-
- @unittest.skipUnless(zlib, 'requires zlib')
- def test_manifest_comments(self):
- # make sure comments don't cause exceptions or wrong includes
- contents = dedent("""\
- # bad.py
- #bad.py
- good.py
- """)
- dist, cmd = self.get_cmd()
- cmd.ensure_finalized()
- self.write_file((self.tmp_dir, cmd.manifest), contents)
- self.write_file((self.tmp_dir, 'good.py'), '# pick me!')
- self.write_file((self.tmp_dir, 'bad.py'), "# don't pick me!")
- self.write_file((self.tmp_dir, '#bad.py'), "# don't pick me!")
- cmd.run()
- self.assertEqual(cmd.filelist.files, ['good.py'])
-
- @unittest.skipUnless(zlib, "requires zlib")
- def test_manual_manifest(self):
- # check that a MANIFEST without a marker is left alone
- dist, cmd = self.get_cmd()
- cmd.formats = ['gztar']
- cmd.ensure_finalized()
- self.write_file((self.tmp_dir, cmd.manifest), 'README.manual')
- self.write_file((self.tmp_dir, 'README.manual'),
- 'This project maintains its MANIFEST file itself.')
- cmd.run()
- self.assertEqual(cmd.filelist.files, ['README.manual'])
-
- f = open(cmd.manifest)
- try:
- manifest = [line.strip() for line in f.read().split('\n')
- if line.strip() != '']
- finally:
- f.close()
-
- self.assertEqual(manifest, ['README.manual'])
-
- archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
- archive = tarfile.open(archive_name)
- try:
- filenames = [tarinfo.name for tarinfo in archive]
- finally:
- archive.close()
- self.assertEqual(sorted(filenames), ['fake-1.0', 'fake-1.0/PKG-INFO',
- 'fake-1.0/README.manual'])
-
-def test_suite():
- return unittest.makeSuite(SDistTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_spawn.py b/lib/python2.7/distutils/tests/test_spawn.py
deleted file mode 100644
index defa54d..0000000
--- a/lib/python2.7/distutils/tests/test_spawn.py
+++ /dev/null
@@ -1,60 +0,0 @@
-"""Tests for distutils.spawn."""
-import unittest
-import os
-import time
-from test.test_support import captured_stdout, run_unittest
-
-from distutils.spawn import _nt_quote_args
-from distutils.spawn import spawn, find_executable
-from distutils.errors import DistutilsExecError
-from distutils.tests import support
-
-class SpawnTestCase(support.TempdirManager,
- support.LoggingSilencer,
- unittest.TestCase):
-
- def test_nt_quote_args(self):
-
- for (args, wanted) in ((['with space', 'nospace'],
- ['"with space"', 'nospace']),
- (['nochange', 'nospace'],
- ['nochange', 'nospace'])):
- res = _nt_quote_args(args)
- self.assertEqual(res, wanted)
-
-
- @unittest.skipUnless(os.name in ('nt', 'posix'),
- 'Runs only under posix or nt')
- def test_spawn(self):
- tmpdir = self.mkdtemp()
-
- # creating something executable
- # through the shell that returns 1
- if os.name == 'posix':
- exe = os.path.join(tmpdir, 'foo.sh')
- self.write_file(exe, '#!/bin/sh\nexit 1')
- os.chmod(exe, 0777)
- else:
- exe = os.path.join(tmpdir, 'foo.bat')
- self.write_file(exe, 'exit 1')
-
- os.chmod(exe, 0777)
- self.assertRaises(DistutilsExecError, spawn, [exe])
-
- # now something that works
- if os.name == 'posix':
- exe = os.path.join(tmpdir, 'foo.sh')
- self.write_file(exe, '#!/bin/sh\nexit 0')
- os.chmod(exe, 0777)
- else:
- exe = os.path.join(tmpdir, 'foo.bat')
- self.write_file(exe, 'exit 0')
-
- os.chmod(exe, 0777)
- spawn([exe]) # should work without any error
-
-def test_suite():
- return unittest.makeSuite(SpawnTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_sysconfig.py b/lib/python2.7/distutils/tests/test_sysconfig.py
deleted file mode 100644
index ddb40d9..0000000
--- a/lib/python2.7/distutils/tests/test_sysconfig.py
+++ /dev/null
@@ -1,117 +0,0 @@
-"""Tests for distutils.sysconfig."""
-import os
-import test
-import unittest
-import shutil
-
-from distutils import sysconfig
-from distutils.tests import support
-from test.test_support import TESTFN
-
-class SysconfigTestCase(support.EnvironGuard,
- unittest.TestCase):
- def setUp(self):
- super(SysconfigTestCase, self).setUp()
- self.makefile = None
-
- def tearDown(self):
- if self.makefile is not None:
- os.unlink(self.makefile)
- self.cleanup_testfn()
- super(SysconfigTestCase, self).tearDown()
-
- def cleanup_testfn(self):
- path = test.test_support.TESTFN
- if os.path.isfile(path):
- os.remove(path)
- elif os.path.isdir(path):
- shutil.rmtree(path)
-
- def test_get_python_lib(self):
- lib_dir = sysconfig.get_python_lib()
- # XXX doesn't work on Linux when Python was never installed before
- #self.assertTrue(os.path.isdir(lib_dir), lib_dir)
- # test for pythonxx.lib?
- self.assertNotEqual(sysconfig.get_python_lib(),
- sysconfig.get_python_lib(prefix=TESTFN))
- _sysconfig = __import__('sysconfig')
- res = sysconfig.get_python_lib(True, True)
- self.assertEqual(_sysconfig.get_path('platstdlib'), res)
-
- def test_get_python_inc(self):
- inc_dir = sysconfig.get_python_inc()
- # This is not much of a test. We make sure Python.h exists
- # in the directory returned by get_python_inc() but we don't know
- # it is the correct file.
- #Broken after issue 7712(r78136) : add a temp_cwd context manager to test_support ...
- #NOTE: Its fail on platforms without root directory support(like windows)
- #where temp and current working directories may stay on different drivers.
- old_wd = os.getcwd()
- os.chdir(SAVEDCWD)
- self.assertTrue(os.path.isdir(inc_dir), inc_dir)
- python_h = os.path.join(inc_dir, "Python.h")
- self.assertTrue(os.path.isfile(python_h), python_h)
- os.chdir(old_wd)
-
- def test_parse_makefile_base(self):
- self.makefile = test.test_support.TESTFN
- fd = open(self.makefile, 'w')
- try:
- fd.write(r"CONFIG_ARGS= '--arg1=optarg1' 'ENV=LIB'" '\n')
- fd.write('VAR=$OTHER\nOTHER=foo')
- finally:
- fd.close()
- d = sysconfig.parse_makefile(self.makefile)
- self.assertEqual(d, {'CONFIG_ARGS': "'--arg1=optarg1' 'ENV=LIB'",
- 'OTHER': 'foo'})
-
- def test_parse_makefile_literal_dollar(self):
- self.makefile = test.test_support.TESTFN
- fd = open(self.makefile, 'w')
- try:
- fd.write(r"CONFIG_ARGS= '--arg1=optarg1' 'ENV=\$$LIB'" '\n')
- fd.write('VAR=$OTHER\nOTHER=foo')
- finally:
- fd.close()
- d = sysconfig.parse_makefile(self.makefile)
- self.assertEqual(d, {'CONFIG_ARGS': r"'--arg1=optarg1' 'ENV=\$LIB'",
- 'OTHER': 'foo'})
-
-
- def test_sysconfig_module(self):
- import sysconfig as global_sysconfig
- self.assertEqual(global_sysconfig.get_config_var('CFLAGS'), sysconfig.get_config_var('CFLAGS'))
- self.assertEqual(global_sysconfig.get_config_var('LDFLAGS'), sysconfig.get_config_var('LDFLAGS'))
-
- @unittest.skipIf(sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'),'compiler flags customized')
- def test_sysconfig_compiler_vars(self):
- # On OS X, binary installers support extension module building on
- # various levels of the operating system with differing Xcode
- # configurations. This requires customization of some of the
- # compiler configuration directives to suit the environment on
- # the installed machine. Some of these customizations may require
- # running external programs and, so, are deferred until needed by
- # the first extension module build. With Python 3.3, only
- # the Distutils version of sysconfig is used for extension module
- # builds, which happens earlier in the Distutils tests. This may
- # cause the following tests to fail since no tests have caused
- # the global version of sysconfig to call the customization yet.
- # The solution for now is to simply skip this test in this case.
- # The longer-term solution is to only have one version of sysconfig.
-
- import sysconfig as global_sysconfig
- if sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'):
- return
- self.assertEqual(global_sysconfig.get_config_var('LDSHARED'), sysconfig.get_config_var('LDSHARED'))
- self.assertEqual(global_sysconfig.get_config_var('CC'), sysconfig.get_config_var('CC'))
-
-
-
-def test_suite():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(SysconfigTestCase))
- return suite
-
-
-if __name__ == '__main__':
- test.test_support.run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_text_file.py b/lib/python2.7/distutils/tests/test_text_file.py
deleted file mode 100644
index ce19cd4..0000000
--- a/lib/python2.7/distutils/tests/test_text_file.py
+++ /dev/null
@@ -1,107 +0,0 @@
-"""Tests for distutils.text_file."""
-import os
-import unittest
-from distutils.text_file import TextFile
-from distutils.tests import support
-from test.test_support import run_unittest
-
-TEST_DATA = """# test file
-
-line 3 \\
-# intervening comment
- continues on next line
-"""
-
-class TextFileTestCase(support.TempdirManager, unittest.TestCase):
-
- def test_class(self):
- # old tests moved from text_file.__main__
- # so they are really called by the buildbots
-
- # result 1: no fancy options
- result1 = ['# test file\n', '\n', 'line 3 \\\n',
- '# intervening comment\n',
- ' continues on next line\n']
-
- # result 2: just strip comments
- result2 = ["\n",
- "line 3 \\\n",
- " continues on next line\n"]
-
- # result 3: just strip blank lines
- result3 = ["# test file\n",
- "line 3 \\\n",
- "# intervening comment\n",
- " continues on next line\n"]
-
- # result 4: default, strip comments, blank lines,
- # and trailing whitespace
- result4 = ["line 3 \\",
- " continues on next line"]
-
- # result 5: strip comments and blanks, plus join lines (but don't
- # "collapse" joined lines
- result5 = ["line 3 continues on next line"]
-
- # result 6: strip comments and blanks, plus join lines (and
- # "collapse" joined lines
- result6 = ["line 3 continues on next line"]
-
- def test_input(count, description, file, expected_result):
- result = file.readlines()
- self.assertEqual(result, expected_result)
-
- tmpdir = self.mkdtemp()
- filename = os.path.join(tmpdir, "test.txt")
- out_file = open(filename, "w")
- try:
- out_file.write(TEST_DATA)
- finally:
- out_file.close()
-
- in_file = TextFile(filename, strip_comments=0, skip_blanks=0,
- lstrip_ws=0, rstrip_ws=0)
- try:
- test_input(1, "no processing", in_file, result1)
- finally:
- in_file.close()
-
- in_file = TextFile(filename, strip_comments=1, skip_blanks=0,
- lstrip_ws=0, rstrip_ws=0)
- try:
- test_input(2, "strip comments", in_file, result2)
- finally:
- in_file.close()
-
- in_file = TextFile(filename, strip_comments=0, skip_blanks=1,
- lstrip_ws=0, rstrip_ws=0)
- try:
- test_input(3, "strip blanks", in_file, result3)
- finally:
- in_file.close()
-
- in_file = TextFile(filename)
- try:
- test_input(4, "default processing", in_file, result4)
- finally:
- in_file.close()
-
- in_file = TextFile(filename, strip_comments=1, skip_blanks=1,
- join_lines=1, rstrip_ws=1)
- try:
- test_input(5, "join lines without collapsing", in_file, result5)
- finally:
- in_file.close()
-
- in_file = TextFile(filename, strip_comments=1, skip_blanks=1,
- join_lines=1, rstrip_ws=1, collapse_join=1)
- try:
- test_input(6, "join lines with collapsing", in_file, result6)
- finally:
- in_file.close()
-
-def test_suite():
- return unittest.makeSuite(TextFileTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_unixccompiler.py b/lib/python2.7/distutils/tests/test_unixccompiler.py
deleted file mode 100644
index 3ff92f8..0000000
--- a/lib/python2.7/distutils/tests/test_unixccompiler.py
+++ /dev/null
@@ -1,130 +0,0 @@
-"""Tests for distutils.unixccompiler."""
-import sys
-import unittest
-from test.test_support import run_unittest
-
-from distutils import sysconfig
-from distutils.unixccompiler import UnixCCompiler
-
-class UnixCCompilerTestCase(unittest.TestCase):
-
- def setUp(self):
- self._backup_platform = sys.platform
- self._backup_get_config_var = sysconfig.get_config_var
- class CompilerWrapper(UnixCCompiler):
- def rpath_foo(self):
- return self.runtime_library_dir_option('/foo')
- self.cc = CompilerWrapper()
-
- def tearDown(self):
- sys.platform = self._backup_platform
- sysconfig.get_config_var = self._backup_get_config_var
-
- def test_runtime_libdir_option(self):
-
- # not tested under windows
- if sys.platform == 'win32':
- return
-
- # Issue#5900
- #
- # Ensure RUNPATH is added to extension modules with RPATH if
- # GNU ld is used
-
- # darwin
- sys.platform = 'darwin'
- self.assertEqual(self.cc.rpath_foo(), '-L/foo')
-
- # hp-ux
- sys.platform = 'hp-ux'
- old_gcv = sysconfig.get_config_var
- def gcv(v):
- return 'xxx'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), ['+s', '-L/foo'])
-
- def gcv(v):
- return 'gcc'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])
-
- def gcv(v):
- return 'g++'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])
-
- sysconfig.get_config_var = old_gcv
-
- # irix646
- sys.platform = 'irix646'
- self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])
-
- # osf1V5
- sys.platform = 'osf1V5'
- self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])
-
- # GCC GNULD
- sys.platform = 'bar'
- def gcv(v):
- if v == 'CC':
- return 'gcc'
- elif v == 'GNULD':
- return 'yes'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
- # GCC non-GNULD
- sys.platform = 'bar'
- def gcv(v):
- if v == 'CC':
- return 'gcc'
- elif v == 'GNULD':
- return 'no'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
- # GCC GNULD with fully qualified configuration prefix
- # see #7617
- sys.platform = 'bar'
- def gcv(v):
- if v == 'CC':
- return 'x86_64-pc-linux-gnu-gcc-4.4.2'
- elif v == 'GNULD':
- return 'yes'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
-
- # non-GCC GNULD
- sys.platform = 'bar'
- def gcv(v):
- if v == 'CC':
- return 'cc'
- elif v == 'GNULD':
- return 'yes'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), '-R/foo')
-
- # non-GCC non-GNULD
- sys.platform = 'bar'
- def gcv(v):
- if v == 'CC':
- return 'cc'
- elif v == 'GNULD':
- return 'no'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), '-R/foo')
-
- # AIX C/C++ linker
- sys.platform = 'aix'
- def gcv(v):
- return 'xxx'
- sysconfig.get_config_var = gcv
- self.assertEqual(self.cc.rpath_foo(), '-blibpath:/foo')
-
-
-def test_suite():
- return unittest.makeSuite(UnixCCompilerTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_upload.py b/lib/python2.7/distutils/tests/test_upload.py
deleted file mode 100644
index 9911199..0000000
--- a/lib/python2.7/distutils/tests/test_upload.py
+++ /dev/null
@@ -1,131 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.upload."""
-import os
-import unittest
-from test.test_support import run_unittest
-
-from distutils.command import upload as upload_mod
-from distutils.command.upload import upload
-from distutils.core import Distribution
-
-from distutils.tests.test_config import PYPIRC, PyPIRCCommandTestCase
-
-PYPIRC_LONG_PASSWORD = """\
-[distutils]
-
-index-servers =
- server1
- server2
-
-[server1]
-username:me
-password:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
-[server2]
-username:meagain
-password: secret
-realm:acme
-repository:http://another.pypi/
-"""
-
-
-PYPIRC_NOPASSWORD = """\
-[distutils]
-
-index-servers =
- server1
-
-[server1]
-username:me
-"""
-
-class FakeOpen(object):
-
- def __init__(self, url):
- self.url = url
- if not isinstance(url, str):
- self.req = url
- else:
- self.req = None
- self.msg = 'OK'
-
- def getcode(self):
- return 200
-
-
-class uploadTestCase(PyPIRCCommandTestCase):
-
- def setUp(self):
- super(uploadTestCase, self).setUp()
- self.old_open = upload_mod.urlopen
- upload_mod.urlopen = self._urlopen
- self.last_open = None
-
- def tearDown(self):
- upload_mod.urlopen = self.old_open
- super(uploadTestCase, self).tearDown()
-
- def _urlopen(self, url):
- self.last_open = FakeOpen(url)
- return self.last_open
-
- def test_finalize_options(self):
-
- # new format
- self.write_file(self.rc, PYPIRC)
- dist = Distribution()
- cmd = upload(dist)
- cmd.finalize_options()
- for attr, waited in (('username', 'me'), ('password', 'secret'),
- ('realm', 'pypi'),
- ('repository', 'http://pypi.python.org/pypi')):
- self.assertEqual(getattr(cmd, attr), waited)
-
- def test_saved_password(self):
- # file with no password
- self.write_file(self.rc, PYPIRC_NOPASSWORD)
-
- # make sure it passes
- dist = Distribution()
- cmd = upload(dist)
- cmd.finalize_options()
- self.assertEqual(cmd.password, None)
-
- # make sure we get it as well, if another command
- # initialized it at the dist level
- dist.password = 'xxx'
- cmd = upload(dist)
- cmd.finalize_options()
- self.assertEqual(cmd.password, 'xxx')
-
- def test_upload(self):
- tmp = self.mkdtemp()
- path = os.path.join(tmp, 'xxx')
- self.write_file(path)
- command, pyversion, filename = 'xxx', '2.6', path
- dist_files = [(command, pyversion, filename)]
- self.write_file(self.rc, PYPIRC_LONG_PASSWORD)
-
- # lets run it
- pkg_dir, dist = self.create_dist(dist_files=dist_files, author=u'dédé')
- cmd = upload(dist)
- cmd.ensure_finalized()
- cmd.run()
-
- # what did we send ?
- self.assertIn('dédé', self.last_open.req.data)
- headers = dict(self.last_open.req.headers)
- self.assertEqual(headers['Content-length'], '2085')
- self.assertTrue(headers['Content-type'].startswith('multipart/form-data'))
- self.assertEqual(self.last_open.req.get_method(), 'POST')
- self.assertEqual(self.last_open.req.get_full_url(),
- 'http://pypi.python.org/pypi')
- self.assertTrue('xxx' in self.last_open.req.data)
- auth = self.last_open.req.headers['Authorization']
- self.assertFalse('\n' in auth)
-
-def test_suite():
- return unittest.makeSuite(uploadTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_util.py b/lib/python2.7/distutils/tests/test_util.py
deleted file mode 100644
index 67cd4cc..0000000
--- a/lib/python2.7/distutils/tests/test_util.py
+++ /dev/null
@@ -1,25 +0,0 @@
-"""Tests for distutils.util."""
-import sys
-import unittest
-from test.test_support import run_unittest
-
-from distutils.errors import DistutilsPlatformError, DistutilsByteCompileError
-from distutils.util import byte_compile
-
-class UtilTestCase(unittest.TestCase):
-
- def test_dont_write_bytecode(self):
- # makes sure byte_compile raise a DistutilsError
- # if sys.dont_write_bytecode is True
- old_dont_write_bytecode = sys.dont_write_bytecode
- sys.dont_write_bytecode = True
- try:
- self.assertRaises(DistutilsByteCompileError, byte_compile, [])
- finally:
- sys.dont_write_bytecode = old_dont_write_bytecode
-
-def test_suite():
- return unittest.makeSuite(UtilTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_version.py b/lib/python2.7/distutils/tests/test_version.py
deleted file mode 100644
index 2189956..0000000
--- a/lib/python2.7/distutils/tests/test_version.py
+++ /dev/null
@@ -1,71 +0,0 @@
-"""Tests for distutils.version."""
-import unittest
-from distutils.version import LooseVersion
-from distutils.version import StrictVersion
-from test.test_support import run_unittest
-
-class VersionTestCase(unittest.TestCase):
-
- def test_prerelease(self):
- version = StrictVersion('1.2.3a1')
- self.assertEqual(version.version, (1, 2, 3))
- self.assertEqual(version.prerelease, ('a', 1))
- self.assertEqual(str(version), '1.2.3a1')
-
- version = StrictVersion('1.2.0')
- self.assertEqual(str(version), '1.2')
-
- def test_cmp_strict(self):
- versions = (('1.5.1', '1.5.2b2', -1),
- ('161', '3.10a', ValueError),
- ('8.02', '8.02', 0),
- ('3.4j', '1996.07.12', ValueError),
- ('3.2.pl0', '3.1.1.6', ValueError),
- ('2g6', '11g', ValueError),
- ('0.9', '2.2', -1),
- ('1.2.1', '1.2', 1),
- ('1.1', '1.2.2', -1),
- ('1.2', '1.1', 1),
- ('1.2.1', '1.2.2', -1),
- ('1.2.2', '1.2', 1),
- ('1.2', '1.2.2', -1),
- ('0.4.0', '0.4', 0),
- ('1.13++', '5.5.kw', ValueError))
-
- for v1, v2, wanted in versions:
- try:
- res = StrictVersion(v1).__cmp__(StrictVersion(v2))
- except ValueError:
- if wanted is ValueError:
- continue
- else:
- raise AssertionError(("cmp(%s, %s) "
- "shouldn't raise ValueError")
- % (v1, v2))
- self.assertEqual(res, wanted,
- 'cmp(%s, %s) should be %s, got %s' %
- (v1, v2, wanted, res))
-
-
- def test_cmp(self):
- versions = (('1.5.1', '1.5.2b2', -1),
- ('161', '3.10a', 1),
- ('8.02', '8.02', 0),
- ('3.4j', '1996.07.12', -1),
- ('3.2.pl0', '3.1.1.6', 1),
- ('2g6', '11g', -1),
- ('0.960923', '2.2beta29', -1),
- ('1.13++', '5.5.kw', -1))
-
-
- for v1, v2, wanted in versions:
- res = LooseVersion(v1).__cmp__(LooseVersion(v2))
- self.assertEqual(res, wanted,
- 'cmp(%s, %s) should be %s, got %s' %
- (v1, v2, wanted, res))
-
-def test_suite():
- return unittest.makeSuite(VersionTestCase)
-
-if __name__ == "__main__":
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_versionpredicate.py b/lib/python2.7/distutils/tests/test_versionpredicate.py
deleted file mode 100644
index 1d6c8d5..0000000
--- a/lib/python2.7/distutils/tests/test_versionpredicate.py
+++ /dev/null
@@ -1,13 +0,0 @@
-"""Tests harness for distutils.versionpredicate.
-
-"""
-
-import distutils.versionpredicate
-import doctest
-from test.test_support import run_unittest
-
-def test_suite():
- return doctest.DocTestSuite(distutils.versionpredicate)
-
-if __name__ == '__main__':
- run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/xxmodule.c b/lib/python2.7/distutils/tests/xxmodule.c
deleted file mode 100644
index 1d9b08a..0000000
--- a/lib/python2.7/distutils/tests/xxmodule.c
+++ /dev/null
@@ -1,379 +0,0 @@
-
-/* Use this file as a template to start implementing a module that
- also declares object types. All occurrences of 'Xxo' should be changed
- to something reasonable for your objects. After that, all other
- occurrences of 'xx' should be changed to something reasonable for your
- module. If your module is named foo your sourcefile should be named
- foomodule.c.
-
- You will probably want to delete all references to 'x_attr' and add
- your own types of attributes instead. Maybe you want to name your
- local variables other than 'self'. If your object type is needed in
- other files, you'll have to create a file "foobarobject.h"; see
- intobject.h for an example. */
-
-/* Xxo objects */
-
-#include "Python.h"
-
-static PyObject *ErrorObject;
-
-typedef struct {
- PyObject_HEAD
- PyObject *x_attr; /* Attributes dictionary */
-} XxoObject;
-
-static PyTypeObject Xxo_Type;
-
-#define XxoObject_Check(v) (Py_TYPE(v) == &Xxo_Type)
-
-static XxoObject *
-newXxoObject(PyObject *arg)
-{
- XxoObject *self;
- self = PyObject_New(XxoObject, &Xxo_Type);
- if (self == NULL)
- return NULL;
- self->x_attr = NULL;
- return self;
-}
-
-/* Xxo methods */
-
-static void
-Xxo_dealloc(XxoObject *self)
-{
- Py_XDECREF(self->x_attr);
- PyObject_Del(self);
-}
-
-static PyObject *
-Xxo_demo(XxoObject *self, PyObject *args)
-{
- if (!PyArg_ParseTuple(args, ":demo"))
- return NULL;
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static PyMethodDef Xxo_methods[] = {
- {"demo", (PyCFunction)Xxo_demo, METH_VARARGS,
- PyDoc_STR("demo() -> None")},
- {NULL, NULL} /* sentinel */
-};
-
-static PyObject *
-Xxo_getattr(XxoObject *self, char *name)
-{
- if (self->x_attr != NULL) {
- PyObject *v = PyDict_GetItemString(self->x_attr, name);
- if (v != NULL) {
- Py_INCREF(v);
- return v;
- }
- }
- return Py_FindMethod(Xxo_methods, (PyObject *)self, name);
-}
-
-static int
-Xxo_setattr(XxoObject *self, char *name, PyObject *v)
-{
- if (self->x_attr == NULL) {
- self->x_attr = PyDict_New();
- if (self->x_attr == NULL)
- return -1;
- }
- if (v == NULL) {
- int rv = PyDict_DelItemString(self->x_attr, name);
- if (rv < 0)
- PyErr_SetString(PyExc_AttributeError,
- "delete non-existing Xxo attribute");
- return rv;
- }
- else
- return PyDict_SetItemString(self->x_attr, name, v);
-}
-
-static PyTypeObject Xxo_Type = {
- /* The ob_type field must be initialized in the module init function
- * to be portable to Windows without using C++. */
- PyVarObject_HEAD_INIT(NULL, 0)
- "xxmodule.Xxo", /*tp_name*/
- sizeof(XxoObject), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- /* methods */
- (destructor)Xxo_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- (getattrfunc)Xxo_getattr, /*tp_getattr*/
- (setattrfunc)Xxo_setattr, /*tp_setattr*/
- 0, /*tp_compare*/
- 0, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash*/
- 0, /*tp_call*/
- 0, /*tp_str*/
- 0, /*tp_getattro*/
- 0, /*tp_setattro*/
- 0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT, /*tp_flags*/
- 0, /*tp_doc*/
- 0, /*tp_traverse*/
- 0, /*tp_clear*/
- 0, /*tp_richcompare*/
- 0, /*tp_weaklistoffset*/
- 0, /*tp_iter*/
- 0, /*tp_iternext*/
- 0, /*tp_methods*/
- 0, /*tp_members*/
- 0, /*tp_getset*/
- 0, /*tp_base*/
- 0, /*tp_dict*/
- 0, /*tp_descr_get*/
- 0, /*tp_descr_set*/
- 0, /*tp_dictoffset*/
- 0, /*tp_init*/
- 0, /*tp_alloc*/
- 0, /*tp_new*/
- 0, /*tp_free*/
- 0, /*tp_is_gc*/
-};
-/* --------------------------------------------------------------------- */
-
-/* Function of two integers returning integer */
-
-PyDoc_STRVAR(xx_foo_doc,
-"foo(i,j)\n\
-\n\
-Return the sum of i and j.");
-
-static PyObject *
-xx_foo(PyObject *self, PyObject *args)
-{
- long i, j;
- long res;
- if (!PyArg_ParseTuple(args, "ll:foo", &i, &j))
- return NULL;
- res = i+j; /* XXX Do something here */
- return PyInt_FromLong(res);
-}
-
-
-/* Function of no arguments returning new Xxo object */
-
-static PyObject *
-xx_new(PyObject *self, PyObject *args)
-{
- XxoObject *rv;
-
- if (!PyArg_ParseTuple(args, ":new"))
- return NULL;
- rv = newXxoObject(args);
- if (rv == NULL)
- return NULL;
- return (PyObject *)rv;
-}
-
-/* Example with subtle bug from extensions manual ("Thin Ice"). */
-
-static PyObject *
-xx_bug(PyObject *self, PyObject *args)
-{
- PyObject *list, *item;
-
- if (!PyArg_ParseTuple(args, "O:bug", &list))
- return NULL;
-
- item = PyList_GetItem(list, 0);
- /* Py_INCREF(item); */
- PyList_SetItem(list, 1, PyInt_FromLong(0L));
- PyObject_Print(item, stdout, 0);
- printf("\n");
- /* Py_DECREF(item); */
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-/* Test bad format character */
-
-static PyObject *
-xx_roj(PyObject *self, PyObject *args)
-{
- PyObject *a;
- long b;
- if (!PyArg_ParseTuple(args, "O#:roj", &a, &b))
- return NULL;
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-
-/* ---------- */
-
-static PyTypeObject Str_Type = {
- /* The ob_type field must be initialized in the module init function
- * to be portable to Windows without using C++. */
- PyVarObject_HEAD_INIT(NULL, 0)
- "xxmodule.Str", /*tp_name*/
- 0, /*tp_basicsize*/
- 0, /*tp_itemsize*/
- /* methods */
- 0, /*tp_dealloc*/
- 0, /*tp_print*/
- 0, /*tp_getattr*/
- 0, /*tp_setattr*/
- 0, /*tp_compare*/
- 0, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash*/
- 0, /*tp_call*/
- 0, /*tp_str*/
- 0, /*tp_getattro*/
- 0, /*tp_setattro*/
- 0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
- 0, /*tp_doc*/
- 0, /*tp_traverse*/
- 0, /*tp_clear*/
- 0, /*tp_richcompare*/
- 0, /*tp_weaklistoffset*/
- 0, /*tp_iter*/
- 0, /*tp_iternext*/
- 0, /*tp_methods*/
- 0, /*tp_members*/
- 0, /*tp_getset*/
- 0, /* see initxx */ /*tp_base*/
- 0, /*tp_dict*/
- 0, /*tp_descr_get*/
- 0, /*tp_descr_set*/
- 0, /*tp_dictoffset*/
- 0, /*tp_init*/
- 0, /*tp_alloc*/
- 0, /*tp_new*/
- 0, /*tp_free*/
- 0, /*tp_is_gc*/
-};
-
-/* ---------- */
-
-static PyObject *
-null_richcompare(PyObject *self, PyObject *other, int op)
-{
- Py_INCREF(Py_NotImplemented);
- return Py_NotImplemented;
-}
-
-static PyTypeObject Null_Type = {
- /* The ob_type field must be initialized in the module init function
- * to be portable to Windows without using C++. */
- PyVarObject_HEAD_INIT(NULL, 0)
- "xxmodule.Null", /*tp_name*/
- 0, /*tp_basicsize*/
- 0, /*tp_itemsize*/
- /* methods */
- 0, /*tp_dealloc*/
- 0, /*tp_print*/
- 0, /*tp_getattr*/
- 0, /*tp_setattr*/
- 0, /*tp_compare*/
- 0, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash*/
- 0, /*tp_call*/
- 0, /*tp_str*/
- 0, /*tp_getattro*/
- 0, /*tp_setattro*/
- 0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
- 0, /*tp_doc*/
- 0, /*tp_traverse*/
- 0, /*tp_clear*/
- null_richcompare, /*tp_richcompare*/
- 0, /*tp_weaklistoffset*/
- 0, /*tp_iter*/
- 0, /*tp_iternext*/
- 0, /*tp_methods*/
- 0, /*tp_members*/
- 0, /*tp_getset*/
- 0, /* see initxx */ /*tp_base*/
- 0, /*tp_dict*/
- 0, /*tp_descr_get*/
- 0, /*tp_descr_set*/
- 0, /*tp_dictoffset*/
- 0, /*tp_init*/
- 0, /*tp_alloc*/
- 0, /* see initxx */ /*tp_new*/
- 0, /*tp_free*/
- 0, /*tp_is_gc*/
-};
-
-
-/* ---------- */
-
-
-/* List of functions defined in the module */
-
-static PyMethodDef xx_methods[] = {
- {"roj", xx_roj, METH_VARARGS,
- PyDoc_STR("roj(a,b) -> None")},
- {"foo", xx_foo, METH_VARARGS,
- xx_foo_doc},
- {"new", xx_new, METH_VARARGS,
- PyDoc_STR("new() -> new Xx object")},
- {"bug", xx_bug, METH_VARARGS,
- PyDoc_STR("bug(o) -> None")},
- {NULL, NULL} /* sentinel */
-};
-
-PyDoc_STRVAR(module_doc,
-"This is a template module just for instruction.");
-
-/* Initialization function for the module (*must* be called initxx) */
-
-PyMODINIT_FUNC
-initxx(void)
-{
- PyObject *m;
-
- /* Due to cross platform compiler issues the slots must be filled
- * here. It's required for portability to Windows without requiring
- * C++. */
- Null_Type.tp_base = &PyBaseObject_Type;
- Null_Type.tp_new = PyType_GenericNew;
- Str_Type.tp_base = &PyUnicode_Type;
-
- /* Finalize the type object including setting type of the new type
- * object; doing it here is required for portability, too. */
- if (PyType_Ready(&Xxo_Type) < 0)
- return;
-
- /* Create the module and add the functions */
- m = Py_InitModule3("xx", xx_methods, module_doc);
- if (m == NULL)
- return;
-
- /* Add some symbolic constants to the module */
- if (ErrorObject == NULL) {
- ErrorObject = PyErr_NewException("xx.error", NULL, NULL);
- if (ErrorObject == NULL)
- return;
- }
- Py_INCREF(ErrorObject);
- PyModule_AddObject(m, "error", ErrorObject);
-
- /* Add Str */
- if (PyType_Ready(&Str_Type) < 0)
- return;
- PyModule_AddObject(m, "Str", (PyObject *)&Str_Type);
-
- /* Add Null */
- if (PyType_Ready(&Null_Type) < 0)
- return;
- PyModule_AddObject(m, "Null", (PyObject *)&Null_Type);
-}
diff --git a/lib/python2.7/distutils/unixccompiler.py b/lib/python2.7/distutils/unixccompiler.py
index d30ab4f..9fbbb31 100644
--- a/lib/python2.7/distutils/unixccompiler.py
+++ b/lib/python2.7/distutils/unixccompiler.py
@@ -172,6 +172,16 @@ class UnixCCompiler(CCompiler):
ld_args[:0] = extra_preargs
if extra_postargs:
ld_args.extend(extra_postargs)
+
+ # NDK HACK:
+ # Avoid dependency on libgcc dll on mingw. -static-libgcc works
+ # while compiling for the host and windows, but not darwin. We
+ # can't easily tell whether we're compiling for windows or the
+ # host, so rely on the fact that we don't cross-compile darwin
+ # binaries on linux.
+ if sys.platform[:6] != "darwin":
+ ld_args.extend(["-static-libgcc"])
+
self.mkpath(os.path.dirname(output_filename))
try:
if target_desc == CCompiler.EXECUTABLE:
diff --git a/lib/python2.7/json/tests/__init__.py b/lib/python2.7/json/tests/__init__.py
deleted file mode 100644
index 90cb2b7..0000000
--- a/lib/python2.7/json/tests/__init__.py
+++ /dev/null
@@ -1,73 +0,0 @@
-import os
-import sys
-import json
-import doctest
-import unittest
-
-from test import test_support
-
-# import json with and without accelerations
-cjson = test_support.import_fresh_module('json', fresh=['_json'])
-pyjson = test_support.import_fresh_module('json', blocked=['_json'])
-
-# create two base classes that will be used by the other tests
-class PyTest(unittest.TestCase):
- json = pyjson
- loads = staticmethod(pyjson.loads)
- dumps = staticmethod(pyjson.dumps)
-
-@unittest.skipUnless(cjson, 'requires _json')
-class CTest(unittest.TestCase):
- if cjson is not None:
- json = cjson
- loads = staticmethod(cjson.loads)
- dumps = staticmethod(cjson.dumps)
-
-# test PyTest and CTest checking if the functions come from the right module
-class TestPyTest(PyTest):
- def test_pyjson(self):
- self.assertEqual(self.json.scanner.make_scanner.__module__,
- 'json.scanner')
- self.assertEqual(self.json.decoder.scanstring.__module__,
- 'json.decoder')
- self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
- 'json.encoder')
-
-class TestCTest(CTest):
- def test_cjson(self):
- self.assertEqual(self.json.scanner.make_scanner.__module__, '_json')
- self.assertEqual(self.json.decoder.scanstring.__module__, '_json')
- self.assertEqual(self.json.encoder.c_make_encoder.__module__, '_json')
- self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
- '_json')
-
-
-here = os.path.dirname(__file__)
-
-def test_suite():
- suite = additional_tests()
- loader = unittest.TestLoader()
- for fn in os.listdir(here):
- if fn.startswith("test") and fn.endswith(".py"):
- modname = "json.tests." + fn[:-3]
- __import__(modname)
- module = sys.modules[modname]
- suite.addTests(loader.loadTestsFromModule(module))
- return suite
-
-def additional_tests():
- suite = unittest.TestSuite()
- for mod in (json, json.encoder, json.decoder):
- suite.addTest(doctest.DocTestSuite(mod))
- suite.addTest(TestPyTest('test_pyjson'))
- suite.addTest(TestCTest('test_cjson'))
- return suite
-
-def main():
- suite = test_suite()
- runner = unittest.TextTestRunner()
- runner.run(suite)
-
-if __name__ == '__main__':
- sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
- main()
diff --git a/lib/python2.7/json/tests/test_check_circular.py b/lib/python2.7/json/tests/test_check_circular.py
deleted file mode 100644
index 3ad3d24..0000000
--- a/lib/python2.7/json/tests/test_check_circular.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-def default_iterable(obj):
- return list(obj)
-
-class TestCheckCircular(object):
- def test_circular_dict(self):
- dct = {}
- dct['a'] = dct
- self.assertRaises(ValueError, self.dumps, dct)
-
- def test_circular_list(self):
- lst = []
- lst.append(lst)
- self.assertRaises(ValueError, self.dumps, lst)
-
- def test_circular_composite(self):
- dct2 = {}
- dct2['a'] = []
- dct2['a'].append(dct2)
- self.assertRaises(ValueError, self.dumps, dct2)
-
- def test_circular_default(self):
- self.dumps([set()], default=default_iterable)
- self.assertRaises(TypeError, self.dumps, [set()])
-
- def test_circular_off_default(self):
- self.dumps([set()], default=default_iterable, check_circular=False)
- self.assertRaises(TypeError, self.dumps, [set()], check_circular=False)
-
-
-class TestPyCheckCircular(TestCheckCircular, PyTest): pass
-class TestCCheckCircular(TestCheckCircular, CTest): pass
diff --git a/lib/python2.7/json/tests/test_decode.py b/lib/python2.7/json/tests/test_decode.py
deleted file mode 100644
index ffd1aa4..0000000
--- a/lib/python2.7/json/tests/test_decode.py
+++ /dev/null
@@ -1,64 +0,0 @@
-import decimal
-from StringIO import StringIO
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-class TestDecode(object):
- def test_decimal(self):
- rval = self.loads('1.1', parse_float=decimal.Decimal)
- self.assertTrue(isinstance(rval, decimal.Decimal))
- self.assertEqual(rval, decimal.Decimal('1.1'))
-
- def test_float(self):
- rval = self.loads('1', parse_int=float)
- self.assertTrue(isinstance(rval, float))
- self.assertEqual(rval, 1.0)
-
- def test_decoder_optimizations(self):
- # Several optimizations were made that skip over calls to
- # the whitespace regex, so this test is designed to try and
- # exercise the uncommon cases. The array cases are already covered.
- rval = self.loads('{ "key" : "value" , "k":"v" }')
- self.assertEqual(rval, {"key":"value", "k":"v"})
-
- def test_empty_objects(self):
- self.assertEqual(self.loads('{}'), {})
- self.assertEqual(self.loads('[]'), [])
- self.assertEqual(self.loads('""'), u"")
- self.assertIsInstance(self.loads('""'), unicode)
-
- def test_object_pairs_hook(self):
- s = '{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}'
- p = [("xkd", 1), ("kcw", 2), ("art", 3), ("hxm", 4),
- ("qrt", 5), ("pad", 6), ("hoy", 7)]
- self.assertEqual(self.loads(s), eval(s))
- self.assertEqual(self.loads(s, object_pairs_hook=lambda x: x), p)
- self.assertEqual(self.json.load(StringIO(s),
- object_pairs_hook=lambda x: x), p)
- od = self.loads(s, object_pairs_hook=OrderedDict)
- self.assertEqual(od, OrderedDict(p))
- self.assertEqual(type(od), OrderedDict)
- # the object_pairs_hook takes priority over the object_hook
- self.assertEqual(self.loads(s, object_pairs_hook=OrderedDict,
- object_hook=lambda x: None),
- OrderedDict(p))
- # check that empty objects literals work (see #17368)
- self.assertEqual(self.loads('{}', object_pairs_hook=OrderedDict),
- OrderedDict())
- self.assertEqual(self.loads('{"empty": {}}',
- object_pairs_hook=OrderedDict),
- OrderedDict([('empty', OrderedDict())]))
-
- def test_extra_data(self):
- s = '[1, 2, 3]5'
- msg = 'Extra data'
- self.assertRaisesRegexp(ValueError, msg, self.loads, s)
-
- def test_invalid_escape(self):
- s = '["abc\\y"]'
- msg = 'escape'
- self.assertRaisesRegexp(ValueError, msg, self.loads, s)
-
-class TestPyDecode(TestDecode, PyTest): pass
-class TestCDecode(TestDecode, CTest): pass
diff --git a/lib/python2.7/json/tests/test_default.py b/lib/python2.7/json/tests/test_default.py
deleted file mode 100644
index c2a07f6..0000000
--- a/lib/python2.7/json/tests/test_default.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-class TestDefault(object):
- def test_default(self):
- self.assertEqual(
- self.dumps(type, default=repr),
- self.dumps(repr(type)))
-
-
-class TestPyDefault(TestDefault, PyTest): pass
-class TestCDefault(TestDefault, CTest): pass
diff --git a/lib/python2.7/json/tests/test_dump.py b/lib/python2.7/json/tests/test_dump.py
deleted file mode 100644
index cd92569..0000000
--- a/lib/python2.7/json/tests/test_dump.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from cStringIO import StringIO
-from json.tests import PyTest, CTest
-
-
-class TestDump(object):
- def test_dump(self):
- sio = StringIO()
- self.json.dump({}, sio)
- self.assertEqual(sio.getvalue(), '{}')
-
- def test_dumps(self):
- self.assertEqual(self.dumps({}), '{}')
-
- def test_encode_truefalse(self):
- self.assertEqual(self.dumps(
- {True: False, False: True}, sort_keys=True),
- '{"false": true, "true": false}')
- self.assertEqual(self.dumps(
- {2: 3.0, 4.0: 5L, False: 1, 6L: True}, sort_keys=True),
- '{"false": 1, "2": 3.0, "4.0": 5, "6": true}')
-
- # Issue 16228: Crash on encoding resized list
- def test_encode_mutated(self):
- a = [object()] * 10
- def crasher(obj):
- del a[-1]
- self.assertEqual(self.dumps(a, default=crasher),
- '[null, null, null, null, null]')
-
-
-class TestPyDump(TestDump, PyTest): pass
-class TestCDump(TestDump, CTest): pass
diff --git a/lib/python2.7/json/tests/test_encode_basestring_ascii.py b/lib/python2.7/json/tests/test_encode_basestring_ascii.py
deleted file mode 100644
index 9f9d5a5..0000000
--- a/lib/python2.7/json/tests/test_encode_basestring_ascii.py
+++ /dev/null
@@ -1,41 +0,0 @@
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-CASES = [
- (u'/\\"\ucafe\ubabe\uab98\ufcde\ubcda\uef4a\x08\x0c\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?', '"/\\\\\\"\\ucafe\\ubabe\\uab98\\ufcde\\ubcda\\uef4a\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?"'),
- (u'\u0123\u4567\u89ab\ucdef\uabcd\uef4a', '"\\u0123\\u4567\\u89ab\\ucdef\\uabcd\\uef4a"'),
- (u'controls', '"controls"'),
- (u'\x08\x0c\n\r\t', '"\\b\\f\\n\\r\\t"'),
- (u'{"object with 1 member":["array with 1 element"]}', '"{\\"object with 1 member\\":[\\"array with 1 element\\"]}"'),
- (u' s p a c e d ', '" s p a c e d "'),
- (u'\U0001d120', '"\\ud834\\udd20"'),
- (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
- ('\xce\xb1\xce\xa9', '"\\u03b1\\u03a9"'),
- (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
- ('\xce\xb1\xce\xa9', '"\\u03b1\\u03a9"'),
- (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
- (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
- (u"`1~!@#$%^&*()_+-={':[,]}|;.</>?", '"`1~!@#$%^&*()_+-={\':[,]}|;.</>?"'),
- (u'\x08\x0c\n\r\t', '"\\b\\f\\n\\r\\t"'),
- (u'\u0123\u4567\u89ab\ucdef\uabcd\uef4a', '"\\u0123\\u4567\\u89ab\\ucdef\\uabcd\\uef4a"'),
-]
-
-class TestEncodeBasestringAscii(object):
- def test_encode_basestring_ascii(self):
- fname = self.json.encoder.encode_basestring_ascii.__name__
- for input_string, expect in CASES:
- result = self.json.encoder.encode_basestring_ascii(input_string)
- self.assertEqual(result, expect,
- '{0!r} != {1!r} for {2}({3!r})'.format(
- result, expect, fname, input_string))
-
- def test_ordered_dict(self):
- # See issue 6105
- items = [('one', 1), ('two', 2), ('three', 3), ('four', 4), ('five', 5)]
- s = self.dumps(OrderedDict(items))
- self.assertEqual(s, '{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5}')
-
-
-class TestPyEncodeBasestringAscii(TestEncodeBasestringAscii, PyTest): pass
-class TestCEncodeBasestringAscii(TestEncodeBasestringAscii, CTest): pass
diff --git a/lib/python2.7/json/tests/test_fail.py b/lib/python2.7/json/tests/test_fail.py
deleted file mode 100644
index e31b379..0000000
--- a/lib/python2.7/json/tests/test_fail.py
+++ /dev/null
@@ -1,105 +0,0 @@
-from json.tests import PyTest, CTest
-
-# 2007-10-05
-JSONDOCS = [
- # http://json.org/JSON_checker/test/fail1.json
- '"A JSON payload should be an object or array, not a string."',
- # http://json.org/JSON_checker/test/fail2.json
- '["Unclosed array"',
- # http://json.org/JSON_checker/test/fail3.json
- '{unquoted_key: "keys must be quoted"}',
- # http://json.org/JSON_checker/test/fail4.json
- '["extra comma",]',
- # http://json.org/JSON_checker/test/fail5.json
- '["double extra comma",,]',
- # http://json.org/JSON_checker/test/fail6.json
- '[ , "<-- missing value"]',
- # http://json.org/JSON_checker/test/fail7.json
- '["Comma after the close"],',
- # http://json.org/JSON_checker/test/fail8.json
- '["Extra close"]]',
- # http://json.org/JSON_checker/test/fail9.json
- '{"Extra comma": true,}',
- # http://json.org/JSON_checker/test/fail10.json
- '{"Extra value after close": true} "misplaced quoted value"',
- # http://json.org/JSON_checker/test/fail11.json
- '{"Illegal expression": 1 + 2}',
- # http://json.org/JSON_checker/test/fail12.json
- '{"Illegal invocation": alert()}',
- # http://json.org/JSON_checker/test/fail13.json
- '{"Numbers cannot have leading zeroes": 013}',
- # http://json.org/JSON_checker/test/fail14.json
- '{"Numbers cannot be hex": 0x14}',
- # http://json.org/JSON_checker/test/fail15.json
- '["Illegal backslash escape: \\x15"]',
- # http://json.org/JSON_checker/test/fail16.json
- '[\\naked]',
- # http://json.org/JSON_checker/test/fail17.json
- '["Illegal backslash escape: \\017"]',
- # http://json.org/JSON_checker/test/fail18.json
- '[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]',
- # http://json.org/JSON_checker/test/fail19.json
- '{"Missing colon" null}',
- # http://json.org/JSON_checker/test/fail20.json
- '{"Double colon":: null}',
- # http://json.org/JSON_checker/test/fail21.json
- '{"Comma instead of colon", null}',
- # http://json.org/JSON_checker/test/fail22.json
- '["Colon instead of comma": false]',
- # http://json.org/JSON_checker/test/fail23.json
- '["Bad value", truth]',
- # http://json.org/JSON_checker/test/fail24.json
- "['single quote']",
- # http://json.org/JSON_checker/test/fail25.json
- '["\ttab\tcharacter\tin\tstring\t"]',
- # http://json.org/JSON_checker/test/fail26.json
- '["tab\\ character\\ in\\ string\\ "]',
- # http://json.org/JSON_checker/test/fail27.json
- '["line\nbreak"]',
- # http://json.org/JSON_checker/test/fail28.json
- '["line\\\nbreak"]',
- # http://json.org/JSON_checker/test/fail29.json
- '[0e]',
- # http://json.org/JSON_checker/test/fail30.json
- '[0e+]',
- # http://json.org/JSON_checker/test/fail31.json
- '[0e+-1]',
- # http://json.org/JSON_checker/test/fail32.json
- '{"Comma instead if closing brace": true,',
- # http://json.org/JSON_checker/test/fail33.json
- '["mismatch"}',
- # http://code.google.com/p/simplejson/issues/detail?id=3
- u'["A\u001FZ control characters in string"]',
-]
-
-SKIPS = {
- 1: "why not have a string payload?",
- 18: "spec doesn't specify any nesting limitations",
-}
-
-class TestFail(object):
- def test_failures(self):
- for idx, doc in enumerate(JSONDOCS):
- idx = idx + 1
- if idx in SKIPS:
- self.loads(doc)
- continue
- try:
- self.loads(doc)
- except ValueError:
- pass
- else:
- self.fail("Expected failure for fail{0}.json: {1!r}".format(idx, doc))
-
- def test_non_string_keys_dict(self):
- data = {'a' : 1, (1, 2) : 2}
-
- #This is for c encoder
- self.assertRaises(TypeError, self.dumps, data)
-
- #This is for python encoder
- self.assertRaises(TypeError, self.dumps, data, indent=True)
-
-
-class TestPyFail(TestFail, PyTest): pass
-class TestCFail(TestFail, CTest): pass
diff --git a/lib/python2.7/json/tests/test_float.py b/lib/python2.7/json/tests/test_float.py
deleted file mode 100644
index 049f9ae..0000000
--- a/lib/python2.7/json/tests/test_float.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import math
-from json.tests import PyTest, CTest
-
-
-class TestFloat(object):
- def test_floats(self):
- for num in [1617161771.7650001, math.pi, math.pi**100,
- math.pi**-100, 3.1]:
- self.assertEqual(float(self.dumps(num)), num)
- self.assertEqual(self.loads(self.dumps(num)), num)
- self.assertEqual(self.loads(unicode(self.dumps(num))), num)
-
- def test_ints(self):
- for num in [1, 1L, 1<<32, 1<<64]:
- self.assertEqual(self.dumps(num), str(num))
- self.assertEqual(int(self.dumps(num)), num)
- self.assertEqual(self.loads(self.dumps(num)), num)
- self.assertEqual(self.loads(unicode(self.dumps(num))), num)
-
- def test_out_of_range(self):
- self.assertEqual(self.loads('[23456789012E666]'), [float('inf')])
- self.assertEqual(self.loads('[-23456789012E666]'), [float('-inf')])
-
- def test_allow_nan(self):
- for val in (float('inf'), float('-inf'), float('nan')):
- out = self.dumps([val])
- if val == val: # inf
- self.assertEqual(self.loads(out), [val])
- else: # nan
- res = self.loads(out)
- self.assertEqual(len(res), 1)
- self.assertNotEqual(res[0], res[0])
- self.assertRaises(ValueError, self.dumps, [val], allow_nan=False)
-
-
-class TestPyFloat(TestFloat, PyTest): pass
-class TestCFloat(TestFloat, CTest): pass
diff --git a/lib/python2.7/json/tests/test_indent.py b/lib/python2.7/json/tests/test_indent.py
deleted file mode 100644
index 9b18761..0000000
--- a/lib/python2.7/json/tests/test_indent.py
+++ /dev/null
@@ -1,60 +0,0 @@
-import textwrap
-from StringIO import StringIO
-from json.tests import PyTest, CTest
-
-
-class TestIndent(object):
- def test_indent(self):
- h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
- {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
-
- expect = textwrap.dedent("""\
- [
- [
- "blorpie"
- ],
- [
- "whoops"
- ],
- [],
- "d-shtaeou",
- "d-nthiouh",
- "i-vhbjkhnth",
- {
- "nifty": 87
- },
- {
- "field": "yes",
- "morefield": false
- }
- ]""")
-
-
- d1 = self.dumps(h)
- d2 = self.dumps(h, indent=2, sort_keys=True, separators=(',', ': '))
-
- h1 = self.loads(d1)
- h2 = self.loads(d2)
-
- self.assertEqual(h1, h)
- self.assertEqual(h2, h)
- self.assertEqual(d2, expect)
-
- def test_indent0(self):
- h = {3: 1}
- def check(indent, expected):
- d1 = self.dumps(h, indent=indent)
- self.assertEqual(d1, expected)
-
- sio = StringIO()
- self.json.dump(h, sio, indent=indent)
- self.assertEqual(sio.getvalue(), expected)
-
- # indent=0 should emit newlines
- check(0, '{\n"3": 1\n}')
- # indent=None is more compact
- check(None, '{"3": 1}')
-
-
-class TestPyIndent(TestIndent, PyTest): pass
-class TestCIndent(TestIndent, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass1.py b/lib/python2.7/json/tests/test_pass1.py
deleted file mode 100644
index df8259b..0000000
--- a/lib/python2.7/json/tests/test_pass1.py
+++ /dev/null
@@ -1,75 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass1.json
-JSON = r'''
-[
- "JSON Test Pattern pass1",
- {"object with 1 member":["array with 1 element"]},
- {},
- [],
- -42,
- true,
- false,
- null,
- {
- "integer": 1234567890,
- "real": -9876.543210,
- "e": 0.123456789e-12,
- "E": 1.234567890E+34,
- "": 23456789012E66,
- "zero": 0,
- "one": 1,
- "space": " ",
- "quote": "\"",
- "backslash": "\\",
- "controls": "\b\f\n\r\t",
- "slash": "/ & \/",
- "alpha": "abcdefghijklmnopqrstuvwyz",
- "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
- "digit": "0123456789",
- "0123456789": "digit",
- "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
- "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
- "true": true,
- "false": false,
- "null": null,
- "array":[ ],
- "object":{ },
- "address": "50 St. James Street",
- "url": "http://www.JSON.org/",
- "comment": "// /* <!-- --",
- "# -- --> */": " ",
- " s p a c e d " :[1,2 , 3
-
-,
-
-4 , 5 , 6 ,7 ],"compact":[1,2,3,4,5,6,7],
- "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
- "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
- "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
-: "A key can be any string"
- },
- 0.5 ,98.6
-,
-99.44
-,
-
-1066,
-1e1,
-0.1e1,
-1e-1,
-1e00,2e+00,2e-00
-,"rosebud"]
-'''
-
-class TestPass1(object):
- def test_parse(self):
- # test in/out equivalence and parsing
- res = self.loads(JSON)
- out = self.dumps(res)
- self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass1(TestPass1, PyTest): pass
-class TestCPass1(TestPass1, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass2.py b/lib/python2.7/json/tests/test_pass2.py
deleted file mode 100644
index a2bb6d7..0000000
--- a/lib/python2.7/json/tests/test_pass2.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass2.json
-JSON = r'''
-[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
-'''
-
-class TestPass2(object):
- def test_parse(self):
- # test in/out equivalence and parsing
- res = self.loads(JSON)
- out = self.dumps(res)
- self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass2(TestPass2, PyTest): pass
-class TestCPass2(TestPass2, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass3.py b/lib/python2.7/json/tests/test_pass3.py
deleted file mode 100644
index 221f9a0..0000000
--- a/lib/python2.7/json/tests/test_pass3.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass3.json
-JSON = r'''
-{
- "JSON Test Pattern pass3": {
- "The outermost value": "must be an object or array.",
- "In this test": "It is an object."
- }
-}
-'''
-
-
-class TestPass3(object):
- def test_parse(self):
- # test in/out equivalence and parsing
- res = self.loads(JSON)
- out = self.dumps(res)
- self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass3(TestPass3, PyTest): pass
-class TestCPass3(TestPass3, CTest): pass
diff --git a/lib/python2.7/json/tests/test_recursion.py b/lib/python2.7/json/tests/test_recursion.py
deleted file mode 100644
index b5221e5..0000000
--- a/lib/python2.7/json/tests/test_recursion.py
+++ /dev/null
@@ -1,108 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-class JSONTestObject:
- pass
-
-
-class TestRecursion(object):
- def test_listrecursion(self):
- x = []
- x.append(x)
- try:
- self.dumps(x)
- except ValueError:
- pass
- else:
- self.fail("didn't raise ValueError on list recursion")
- x = []
- y = [x]
- x.append(y)
- try:
- self.dumps(x)
- except ValueError:
- pass
- else:
- self.fail("didn't raise ValueError on alternating list recursion")
- y = []
- x = [y, y]
- # ensure that the marker is cleared
- self.dumps(x)
-
- def test_dictrecursion(self):
- x = {}
- x["test"] = x
- try:
- self.dumps(x)
- except ValueError:
- pass
- else:
- self.fail("didn't raise ValueError on dict recursion")
- x = {}
- y = {"a": x, "b": x}
- # ensure that the marker is cleared
- self.dumps(x)
-
- def test_defaultrecursion(self):
- class RecursiveJSONEncoder(self.json.JSONEncoder):
- recurse = False
- def default(self, o):
- if o is JSONTestObject:
- if self.recurse:
- return [JSONTestObject]
- else:
- return 'JSONTestObject'
- return pyjson.JSONEncoder.default(o)
-
- enc = RecursiveJSONEncoder()
- self.assertEqual(enc.encode(JSONTestObject), '"JSONTestObject"')
- enc.recurse = True
- try:
- enc.encode(JSONTestObject)
- except ValueError:
- pass
- else:
- self.fail("didn't raise ValueError on default recursion")
-
-
- def test_highly_nested_objects_decoding(self):
- # test that loading highly-nested objects doesn't segfault when C
- # accelerations are used. See #12017
- # str
- with self.assertRaises(RuntimeError):
- self.loads('{"a":' * 100000 + '1' + '}' * 100000)
- with self.assertRaises(RuntimeError):
- self.loads('{"a":' * 100000 + '[1]' + '}' * 100000)
- with self.assertRaises(RuntimeError):
- self.loads('[' * 100000 + '1' + ']' * 100000)
- # unicode
- with self.assertRaises(RuntimeError):
- self.loads(u'{"a":' * 100000 + u'1' + u'}' * 100000)
- with self.assertRaises(RuntimeError):
- self.loads(u'{"a":' * 100000 + u'[1]' + u'}' * 100000)
- with self.assertRaises(RuntimeError):
- self.loads(u'[' * 100000 + u'1' + u']' * 100000)
-
- def test_highly_nested_objects_encoding(self):
- # See #12051
- l, d = [], {}
- for x in xrange(100000):
- l, d = [l], {'k':d}
- with self.assertRaises(RuntimeError):
- self.dumps(l)
- with self.assertRaises(RuntimeError):
- self.dumps(d)
-
- def test_endless_recursion(self):
- # See #12051
- class EndlessJSONEncoder(self.json.JSONEncoder):
- def default(self, o):
- """If check_circular is False, this will keep adding another list."""
- return [o]
-
- with self.assertRaises(RuntimeError):
- EndlessJSONEncoder(check_circular=False).encode(5j)
-
-
-class TestPyRecursion(TestRecursion, PyTest): pass
-class TestCRecursion(TestRecursion, CTest): pass
diff --git a/lib/python2.7/json/tests/test_scanstring.py b/lib/python2.7/json/tests/test_scanstring.py
deleted file mode 100644
index 4fef8cb..0000000
--- a/lib/python2.7/json/tests/test_scanstring.py
+++ /dev/null
@@ -1,109 +0,0 @@
-import sys
-from json.tests import PyTest, CTest
-
-
-class TestScanstring(object):
- def test_scanstring(self):
- scanstring = self.json.decoder.scanstring
- self.assertEqual(
- scanstring('"z\\ud834\\udd20x"', 1, None, True),
- (u'z\U0001d120x', 16))
-
- if sys.maxunicode == 65535:
- self.assertEqual(
- scanstring(u'"z\U0001d120x"', 1, None, True),
- (u'z\U0001d120x', 6))
- else:
- self.assertEqual(
- scanstring(u'"z\U0001d120x"', 1, None, True),
- (u'z\U0001d120x', 5))
-
- self.assertEqual(
- scanstring('"\\u007b"', 1, None, True),
- (u'{', 8))
-
- self.assertEqual(
- scanstring('"A JSON payload should be an object or array, not a string."', 1, None, True),
- (u'A JSON payload should be an object or array, not a string.', 60))
-
- self.assertEqual(
- scanstring('["Unclosed array"', 2, None, True),
- (u'Unclosed array', 17))
-
- self.assertEqual(
- scanstring('["extra comma",]', 2, None, True),
- (u'extra comma', 14))
-
- self.assertEqual(
- scanstring('["double extra comma",,]', 2, None, True),
- (u'double extra comma', 21))
-
- self.assertEqual(
- scanstring('["Comma after the close"],', 2, None, True),
- (u'Comma after the close', 24))
-
- self.assertEqual(
- scanstring('["Extra close"]]', 2, None, True),
- (u'Extra close', 14))
-
- self.assertEqual(
- scanstring('{"Extra comma": true,}', 2, None, True),
- (u'Extra comma', 14))
-
- self.assertEqual(
- scanstring('{"Extra value after close": true} "misplaced quoted value"', 2, None, True),
- (u'Extra value after close', 26))
-
- self.assertEqual(
- scanstring('{"Illegal expression": 1 + 2}', 2, None, True),
- (u'Illegal expression', 21))
-
- self.assertEqual(
- scanstring('{"Illegal invocation": alert()}', 2, None, True),
- (u'Illegal invocation', 21))
-
- self.assertEqual(
- scanstring('{"Numbers cannot have leading zeroes": 013}', 2, None, True),
- (u'Numbers cannot have leading zeroes', 37))
-
- self.assertEqual(
- scanstring('{"Numbers cannot be hex": 0x14}', 2, None, True),
- (u'Numbers cannot be hex', 24))
-
- self.assertEqual(
- scanstring('[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]', 21, None, True),
- (u'Too deep', 30))
-
- self.assertEqual(
- scanstring('{"Missing colon" null}', 2, None, True),
- (u'Missing colon', 16))
-
- self.assertEqual(
- scanstring('{"Double colon":: null}', 2, None, True),
- (u'Double colon', 15))
-
- self.assertEqual(
- scanstring('{"Comma instead of colon", null}', 2, None, True),
- (u'Comma instead of colon', 25))
-
- self.assertEqual(
- scanstring('["Colon instead of comma": false]', 2, None, True),
- (u'Colon instead of comma', 25))
-
- self.assertEqual(
- scanstring('["Bad value", truth]', 2, None, True),
- (u'Bad value', 12))
-
- def test_issue3623(self):
- self.assertRaises(ValueError, self.json.decoder.scanstring, b"xxx", 1,
- "xxx")
- self.assertRaises(UnicodeDecodeError,
- self.json.encoder.encode_basestring_ascii, b"xx\xff")
-
- def test_overflow(self):
- with self.assertRaises(OverflowError):
- self.json.decoder.scanstring(b"xxx", sys.maxsize+1)
-
-
-class TestPyScanstring(TestScanstring, PyTest): pass
-class TestCScanstring(TestScanstring, CTest): pass
diff --git a/lib/python2.7/json/tests/test_separators.py b/lib/python2.7/json/tests/test_separators.py
deleted file mode 100644
index a4246e1..0000000
--- a/lib/python2.7/json/tests/test_separators.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import textwrap
-from json.tests import PyTest, CTest
-
-
-class TestSeparators(object):
- def test_separators(self):
- h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
- {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
-
- expect = textwrap.dedent("""\
- [
- [
- "blorpie"
- ] ,
- [
- "whoops"
- ] ,
- [] ,
- "d-shtaeou" ,
- "d-nthiouh" ,
- "i-vhbjkhnth" ,
- {
- "nifty" : 87
- } ,
- {
- "field" : "yes" ,
- "morefield" : false
- }
- ]""")
-
-
- d1 = self.dumps(h)
- d2 = self.dumps(h, indent=2, sort_keys=True, separators=(' ,', ' : '))
-
- h1 = self.loads(d1)
- h2 = self.loads(d2)
-
- self.assertEqual(h1, h)
- self.assertEqual(h2, h)
- self.assertEqual(d2, expect)
-
-
-class TestPySeparators(TestSeparators, PyTest): pass
-class TestCSeparators(TestSeparators, CTest): pass
diff --git a/lib/python2.7/json/tests/test_speedups.py b/lib/python2.7/json/tests/test_speedups.py
deleted file mode 100644
index 7186a40..0000000
--- a/lib/python2.7/json/tests/test_speedups.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from json.tests import CTest
-
-
-class TestSpeedups(CTest):
- def test_scanstring(self):
- self.assertEqual(self.json.decoder.scanstring.__module__, "_json")
- self.assertIs(self.json.decoder.scanstring, self.json.decoder.c_scanstring)
-
- def test_encode_basestring_ascii(self):
- self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
- "_json")
- self.assertIs(self.json.encoder.encode_basestring_ascii,
- self.json.encoder.c_encode_basestring_ascii)
-
-class TestDecode(CTest):
- def test_make_scanner(self):
- self.assertRaises(AttributeError, self.json.scanner.c_make_scanner, 1)
-
- def test_make_encoder(self):
- self.assertRaises(TypeError, self.json.encoder.c_make_encoder,
- None,
- "\xCD\x7D\x3D\x4E\x12\x4C\xF9\x79\xD7\x52\xBA\x82\xF2\x27\x4A\x7D\xA0\xCA\x75",
- None)
diff --git a/lib/python2.7/json/tests/test_tool.py b/lib/python2.7/json/tests/test_tool.py
deleted file mode 100644
index 27dfb84..0000000
--- a/lib/python2.7/json/tests/test_tool.py
+++ /dev/null
@@ -1,69 +0,0 @@
-import os
-import sys
-import textwrap
-import unittest
-import subprocess
-from test import test_support
-from test.script_helper import assert_python_ok
-
-class TestTool(unittest.TestCase):
- data = """
-
- [["blorpie"],[ "whoops" ] , [
- ],\t"d-shtaeou",\r"d-nthiouh",
- "i-vhbjkhnth", {"nifty":87}, {"morefield" :\tfalse,"field"
- :"yes"} ]
- """
-
- expect = textwrap.dedent("""\
- [
- [
- "blorpie"
- ],
- [
- "whoops"
- ],
- [],
- "d-shtaeou",
- "d-nthiouh",
- "i-vhbjkhnth",
- {
- "nifty": 87
- },
- {
- "field": "yes",
- "morefield": false
- }
- ]
- """)
-
- def test_stdin_stdout(self):
- proc = subprocess.Popen(
- (sys.executable, '-m', 'json.tool'),
- stdin=subprocess.PIPE, stdout=subprocess.PIPE)
- out, err = proc.communicate(self.data.encode())
- self.assertEqual(out.splitlines(), self.expect.encode().splitlines())
- self.assertEqual(err, None)
-
- def _create_infile(self):
- infile = test_support.TESTFN
- with open(infile, "w") as fp:
- self.addCleanup(os.remove, infile)
- fp.write(self.data)
- return infile
-
- def test_infile_stdout(self):
- infile = self._create_infile()
- rc, out, err = assert_python_ok('-m', 'json.tool', infile)
- self.assertEqual(out.splitlines(), self.expect.encode().splitlines())
- self.assertEqual(err, b'')
-
- def test_infile_outfile(self):
- infile = self._create_infile()
- outfile = test_support.TESTFN + '.out'
- rc, out, err = assert_python_ok('-m', 'json.tool', infile, outfile)
- self.addCleanup(os.remove, outfile)
- with open(outfile, "r") as fp:
- self.assertEqual(fp.read(), self.expect)
- self.assertEqual(out, b'')
- self.assertEqual(err, b'')
diff --git a/lib/python2.7/json/tests/test_unicode.py b/lib/python2.7/json/tests/test_unicode.py
deleted file mode 100644
index e90f158..0000000
--- a/lib/python2.7/json/tests/test_unicode.py
+++ /dev/null
@@ -1,89 +0,0 @@
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-class TestUnicode(object):
- def test_encoding1(self):
- encoder = self.json.JSONEncoder(encoding='utf-8')
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
- s = u.encode('utf-8')
- ju = encoder.encode(u)
- js = encoder.encode(s)
- self.assertEqual(ju, js)
-
- def test_encoding2(self):
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
- s = u.encode('utf-8')
- ju = self.dumps(u, encoding='utf-8')
- js = self.dumps(s, encoding='utf-8')
- self.assertEqual(ju, js)
-
- def test_encoding3(self):
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
- j = self.dumps(u)
- self.assertEqual(j, '"\\u03b1\\u03a9"')
-
- def test_encoding4(self):
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
- j = self.dumps([u])
- self.assertEqual(j, '["\\u03b1\\u03a9"]')
-
- def test_encoding5(self):
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
- j = self.dumps(u, ensure_ascii=False)
- self.assertEqual(j, u'"{0}"'.format(u))
-
- def test_encoding6(self):
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
- j = self.dumps([u], ensure_ascii=False)
- self.assertEqual(j, u'["{0}"]'.format(u))
-
- def test_big_unicode_encode(self):
- u = u'\U0001d120'
- self.assertEqual(self.dumps(u), '"\\ud834\\udd20"')
- self.assertEqual(self.dumps(u, ensure_ascii=False), u'"\U0001d120"')
-
- def test_big_unicode_decode(self):
- u = u'z\U0001d120x'
- self.assertEqual(self.loads('"' + u + '"'), u)
- self.assertEqual(self.loads('"z\\ud834\\udd20x"'), u)
-
- def test_unicode_decode(self):
- for i in range(0, 0xd7ff):
- u = unichr(i)
- s = '"\\u{0:04x}"'.format(i)
- self.assertEqual(self.loads(s), u)
-
- def test_object_pairs_hook_with_unicode(self):
- s = u'{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}'
- p = [(u"xkd", 1), (u"kcw", 2), (u"art", 3), (u"hxm", 4),
- (u"qrt", 5), (u"pad", 6), (u"hoy", 7)]
- self.assertEqual(self.loads(s), eval(s))
- self.assertEqual(self.loads(s, object_pairs_hook = lambda x: x), p)
- od = self.loads(s, object_pairs_hook = OrderedDict)
- self.assertEqual(od, OrderedDict(p))
- self.assertEqual(type(od), OrderedDict)
- # the object_pairs_hook takes priority over the object_hook
- self.assertEqual(self.loads(s,
- object_pairs_hook = OrderedDict,
- object_hook = lambda x: None),
- OrderedDict(p))
-
- def test_default_encoding(self):
- self.assertEqual(self.loads(u'{"a": "\xe9"}'.encode('utf-8')),
- {'a': u'\xe9'})
-
- def test_unicode_preservation(self):
- self.assertEqual(type(self.loads(u'""')), unicode)
- self.assertEqual(type(self.loads(u'"a"')), unicode)
- self.assertEqual(type(self.loads(u'["a"]')[0]), unicode)
- # Issue 10038.
- self.assertEqual(type(self.loads('"foo"')), unicode)
-
- def test_bad_encoding(self):
- self.assertRaises(UnicodeEncodeError, self.loads, '"a"', u"rat\xe9")
- self.assertRaises(TypeError, self.loads, '"a"', 1)
-
-
-class TestPyUnicode(TestUnicode, PyTest): pass
-class TestCUnicode(TestUnicode, CTest): pass
diff --git a/lib/python2.7/lib-dynload/_bisect.so b/lib/python2.7/lib-dynload/_bisect.so
index da4a110..d6ec721 100755
--- a/lib/python2.7/lib-dynload/_bisect.so
+++ b/lib/python2.7/lib-dynload/_bisect.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_cn.so b/lib/python2.7/lib-dynload/_codecs_cn.so
index 775c60c..d99b292 100755
--- a/lib/python2.7/lib-dynload/_codecs_cn.so
+++ b/lib/python2.7/lib-dynload/_codecs_cn.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_hk.so b/lib/python2.7/lib-dynload/_codecs_hk.so
index a94a635..3c3661f 100755
--- a/lib/python2.7/lib-dynload/_codecs_hk.so
+++ b/lib/python2.7/lib-dynload/_codecs_hk.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_iso2022.so b/lib/python2.7/lib-dynload/_codecs_iso2022.so
index 3f78d58..70df764 100755
--- a/lib/python2.7/lib-dynload/_codecs_iso2022.so
+++ b/lib/python2.7/lib-dynload/_codecs_iso2022.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_jp.so b/lib/python2.7/lib-dynload/_codecs_jp.so
index 4de2276..00d21fc 100755
--- a/lib/python2.7/lib-dynload/_codecs_jp.so
+++ b/lib/python2.7/lib-dynload/_codecs_jp.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_kr.so b/lib/python2.7/lib-dynload/_codecs_kr.so
index 8f20d95..24aa8f4 100755
--- a/lib/python2.7/lib-dynload/_codecs_kr.so
+++ b/lib/python2.7/lib-dynload/_codecs_kr.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_tw.so b/lib/python2.7/lib-dynload/_codecs_tw.so
index 2882ec1..67b34de 100755
--- a/lib/python2.7/lib-dynload/_codecs_tw.so
+++ b/lib/python2.7/lib-dynload/_codecs_tw.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_collections.so b/lib/python2.7/lib-dynload/_collections.so
index a35859c..46b8dff 100755
--- a/lib/python2.7/lib-dynload/_collections.so
+++ b/lib/python2.7/lib-dynload/_collections.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_csv.so b/lib/python2.7/lib-dynload/_csv.so
index cf3ea52..266b57b 100755
--- a/lib/python2.7/lib-dynload/_csv.so
+++ b/lib/python2.7/lib-dynload/_csv.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ctypes.so b/lib/python2.7/lib-dynload/_ctypes.so
index 93726e0..e39a0a5 100755
--- a/lib/python2.7/lib-dynload/_ctypes.so
+++ b/lib/python2.7/lib-dynload/_ctypes.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ctypes_test.so b/lib/python2.7/lib-dynload/_ctypes_test.so
index c80162f..6fb421c 100755
--- a/lib/python2.7/lib-dynload/_ctypes_test.so
+++ b/lib/python2.7/lib-dynload/_ctypes_test.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_curses.so b/lib/python2.7/lib-dynload/_curses.so
index acd0b53..423976f 100755
--- a/lib/python2.7/lib-dynload/_curses.so
+++ b/lib/python2.7/lib-dynload/_curses.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_curses_panel.so b/lib/python2.7/lib-dynload/_curses_panel.so
index 6315596..708248f 100755
--- a/lib/python2.7/lib-dynload/_curses_panel.so
+++ b/lib/python2.7/lib-dynload/_curses_panel.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_elementtree.so b/lib/python2.7/lib-dynload/_elementtree.so
index a1a3054..89a7b1b 100755
--- a/lib/python2.7/lib-dynload/_elementtree.so
+++ b/lib/python2.7/lib-dynload/_elementtree.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_functools.so b/lib/python2.7/lib-dynload/_functools.so
index 1f706f4..e799851 100755
--- a/lib/python2.7/lib-dynload/_functools.so
+++ b/lib/python2.7/lib-dynload/_functools.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_hashlib.so b/lib/python2.7/lib-dynload/_hashlib.so
index 6066608..df93851 100755
--- a/lib/python2.7/lib-dynload/_hashlib.so
+++ b/lib/python2.7/lib-dynload/_hashlib.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_heapq.so b/lib/python2.7/lib-dynload/_heapq.so
index 7c9396f..145e100 100755
--- a/lib/python2.7/lib-dynload/_heapq.so
+++ b/lib/python2.7/lib-dynload/_heapq.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_hotshot.so b/lib/python2.7/lib-dynload/_hotshot.so
index 7a251dc..e23499f 100755
--- a/lib/python2.7/lib-dynload/_hotshot.so
+++ b/lib/python2.7/lib-dynload/_hotshot.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_io.so b/lib/python2.7/lib-dynload/_io.so
index 9d1b8c4..df85366 100755
--- a/lib/python2.7/lib-dynload/_io.so
+++ b/lib/python2.7/lib-dynload/_io.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_json.so b/lib/python2.7/lib-dynload/_json.so
index 7ff54cd..c94f285 100755
--- a/lib/python2.7/lib-dynload/_json.so
+++ b/lib/python2.7/lib-dynload/_json.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_locale.so b/lib/python2.7/lib-dynload/_locale.so
index 4158ece..f68dcd0 100755
--- a/lib/python2.7/lib-dynload/_locale.so
+++ b/lib/python2.7/lib-dynload/_locale.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_lsprof.so b/lib/python2.7/lib-dynload/_lsprof.so
index 50d8106..5f5bc1c 100755
--- a/lib/python2.7/lib-dynload/_lsprof.so
+++ b/lib/python2.7/lib-dynload/_lsprof.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_multibytecodec.so b/lib/python2.7/lib-dynload/_multibytecodec.so
index 9acf046..c57ee77 100755
--- a/lib/python2.7/lib-dynload/_multibytecodec.so
+++ b/lib/python2.7/lib-dynload/_multibytecodec.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_multiprocessing.so b/lib/python2.7/lib-dynload/_multiprocessing.so
index 53978cb..f45854b 100755
--- a/lib/python2.7/lib-dynload/_multiprocessing.so
+++ b/lib/python2.7/lib-dynload/_multiprocessing.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_random.so b/lib/python2.7/lib-dynload/_random.so
index 12d9372..3546e86 100755
--- a/lib/python2.7/lib-dynload/_random.so
+++ b/lib/python2.7/lib-dynload/_random.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_socket.so b/lib/python2.7/lib-dynload/_socket.so
index a3ac0d3..812f43a 100755
--- a/lib/python2.7/lib-dynload/_socket.so
+++ b/lib/python2.7/lib-dynload/_socket.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_sqlite3.so b/lib/python2.7/lib-dynload/_sqlite3.so
index a75c0e2..4313e75 100755
--- a/lib/python2.7/lib-dynload/_sqlite3.so
+++ b/lib/python2.7/lib-dynload/_sqlite3.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ssl.so b/lib/python2.7/lib-dynload/_ssl.so
index 4fc35cf..7721b02 100755
--- a/lib/python2.7/lib-dynload/_ssl.so
+++ b/lib/python2.7/lib-dynload/_ssl.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_struct.so b/lib/python2.7/lib-dynload/_struct.so
index 73908a3..6e59f88 100755
--- a/lib/python2.7/lib-dynload/_struct.so
+++ b/lib/python2.7/lib-dynload/_struct.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_testcapi.so b/lib/python2.7/lib-dynload/_testcapi.so
index e8880a6..9adc376 100755
--- a/lib/python2.7/lib-dynload/_testcapi.so
+++ b/lib/python2.7/lib-dynload/_testcapi.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/array.so b/lib/python2.7/lib-dynload/array.so
index 624415e..8ec9f9d 100755
--- a/lib/python2.7/lib-dynload/array.so
+++ b/lib/python2.7/lib-dynload/array.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/audioop.so b/lib/python2.7/lib-dynload/audioop.so
index a8a3824..b5a3975 100755
--- a/lib/python2.7/lib-dynload/audioop.so
+++ b/lib/python2.7/lib-dynload/audioop.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/binascii.so b/lib/python2.7/lib-dynload/binascii.so
index 34cee49..f256888 100755
--- a/lib/python2.7/lib-dynload/binascii.so
+++ b/lib/python2.7/lib-dynload/binascii.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cPickle.so b/lib/python2.7/lib-dynload/cPickle.so
index a7620d7..9c1774c 100755
--- a/lib/python2.7/lib-dynload/cPickle.so
+++ b/lib/python2.7/lib-dynload/cPickle.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cStringIO.so b/lib/python2.7/lib-dynload/cStringIO.so
index 9cc581d..55a9dc9 100755
--- a/lib/python2.7/lib-dynload/cStringIO.so
+++ b/lib/python2.7/lib-dynload/cStringIO.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cmath.so b/lib/python2.7/lib-dynload/cmath.so
index 7c4b5ff..7cc39a4 100755
--- a/lib/python2.7/lib-dynload/cmath.so
+++ b/lib/python2.7/lib-dynload/cmath.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/crypt.so b/lib/python2.7/lib-dynload/crypt.so
index e0bbc60..620fdb9 100755
--- a/lib/python2.7/lib-dynload/crypt.so
+++ b/lib/python2.7/lib-dynload/crypt.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/datetime.so b/lib/python2.7/lib-dynload/datetime.so
index 1c62758..0fef12b 100755
--- a/lib/python2.7/lib-dynload/datetime.so
+++ b/lib/python2.7/lib-dynload/datetime.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/fcntl.so b/lib/python2.7/lib-dynload/fcntl.so
index 4a47f7c..d193172 100755
--- a/lib/python2.7/lib-dynload/fcntl.so
+++ b/lib/python2.7/lib-dynload/fcntl.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/future_builtins.so b/lib/python2.7/lib-dynload/future_builtins.so
index eeea768..2ec2a11 100755
--- a/lib/python2.7/lib-dynload/future_builtins.so
+++ b/lib/python2.7/lib-dynload/future_builtins.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/grp.so b/lib/python2.7/lib-dynload/grp.so
index c06a488..082a22b 100755
--- a/lib/python2.7/lib-dynload/grp.so
+++ b/lib/python2.7/lib-dynload/grp.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/itertools.so b/lib/python2.7/lib-dynload/itertools.so
index c20a1fb..eb4e746 100755
--- a/lib/python2.7/lib-dynload/itertools.so
+++ b/lib/python2.7/lib-dynload/itertools.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/linuxaudiodev.so b/lib/python2.7/lib-dynload/linuxaudiodev.so
index eac02c3..fe1bc0f 100755
--- a/lib/python2.7/lib-dynload/linuxaudiodev.so
+++ b/lib/python2.7/lib-dynload/linuxaudiodev.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/math.so b/lib/python2.7/lib-dynload/math.so
index b42f469..27fc3a0 100755
--- a/lib/python2.7/lib-dynload/math.so
+++ b/lib/python2.7/lib-dynload/math.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/mmap.so b/lib/python2.7/lib-dynload/mmap.so
index eb7812d..60dc53b 100755
--- a/lib/python2.7/lib-dynload/mmap.so
+++ b/lib/python2.7/lib-dynload/mmap.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/nis.so b/lib/python2.7/lib-dynload/nis.so
index 6e82515..300fed4 100755
--- a/lib/python2.7/lib-dynload/nis.so
+++ b/lib/python2.7/lib-dynload/nis.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/operator.so b/lib/python2.7/lib-dynload/operator.so
index ea26878..f1ab3af 100755
--- a/lib/python2.7/lib-dynload/operator.so
+++ b/lib/python2.7/lib-dynload/operator.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/ossaudiodev.so b/lib/python2.7/lib-dynload/ossaudiodev.so
index 68a9d82..da590cb 100755
--- a/lib/python2.7/lib-dynload/ossaudiodev.so
+++ b/lib/python2.7/lib-dynload/ossaudiodev.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/parser.so b/lib/python2.7/lib-dynload/parser.so
index 12e8378..b87089f 100755
--- a/lib/python2.7/lib-dynload/parser.so
+++ b/lib/python2.7/lib-dynload/parser.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/pwd.so b/lib/python2.7/lib-dynload/pwd.so
index bdf244b..895e3e4 100755
--- a/lib/python2.7/lib-dynload/pwd.so
+++ b/lib/python2.7/lib-dynload/pwd.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/pyexpat.so b/lib/python2.7/lib-dynload/pyexpat.so
index 972d58a..d127d8e 100755
--- a/lib/python2.7/lib-dynload/pyexpat.so
+++ b/lib/python2.7/lib-dynload/pyexpat.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/resource.so b/lib/python2.7/lib-dynload/resource.so
index 5fd6355..d1bfb98 100755
--- a/lib/python2.7/lib-dynload/resource.so
+++ b/lib/python2.7/lib-dynload/resource.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/select.so b/lib/python2.7/lib-dynload/select.so
index 79098fb..ce62073 100755
--- a/lib/python2.7/lib-dynload/select.so
+++ b/lib/python2.7/lib-dynload/select.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/spwd.so b/lib/python2.7/lib-dynload/spwd.so
index 28fab55..61b0197 100755
--- a/lib/python2.7/lib-dynload/spwd.so
+++ b/lib/python2.7/lib-dynload/spwd.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/strop.so b/lib/python2.7/lib-dynload/strop.so
index 0e77877..ef648e6 100755
--- a/lib/python2.7/lib-dynload/strop.so
+++ b/lib/python2.7/lib-dynload/strop.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/syslog.so b/lib/python2.7/lib-dynload/syslog.so
index c5aebcc..7a5ecfa 100755
--- a/lib/python2.7/lib-dynload/syslog.so
+++ b/lib/python2.7/lib-dynload/syslog.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/termios.so b/lib/python2.7/lib-dynload/termios.so
index 3b73872..c2ecfa0 100755
--- a/lib/python2.7/lib-dynload/termios.so
+++ b/lib/python2.7/lib-dynload/termios.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/time.so b/lib/python2.7/lib-dynload/time.so
index cd89daa..217ce63 100755
--- a/lib/python2.7/lib-dynload/time.so
+++ b/lib/python2.7/lib-dynload/time.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/unicodedata.so b/lib/python2.7/lib-dynload/unicodedata.so
index 48a5c1e..c55b928 100755
--- a/lib/python2.7/lib-dynload/unicodedata.so
+++ b/lib/python2.7/lib-dynload/unicodedata.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/zlib.so b/lib/python2.7/lib-dynload/zlib.so
index e149c00..f93eba6 100755
--- a/lib/python2.7/lib-dynload/zlib.so
+++ b/lib/python2.7/lib-dynload/zlib.so
Binary files differ
diff --git a/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle b/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
index d9b73ae..30d754d 100644
--- a/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
+++ b/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
Binary files differ
diff --git a/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle b/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
index dd783b1..050f1fb 100644
--- a/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
+++ b/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
Binary files differ
diff --git a/lib/python2.7/lib2to3/tests/__init__.py b/lib/python2.7/lib2to3/tests/__init__.py
deleted file mode 100644
index cfaea0d..0000000
--- a/lib/python2.7/lib2to3/tests/__init__.py
+++ /dev/null
@@ -1,24 +0,0 @@
-"""Make tests/ into a package. This allows us to "import tests" and
-have tests.all_tests be a TestSuite representing all test cases
-from all test_*.py files in tests/."""
-# Author: Collin Winter
-
-import os
-import os.path
-import unittest
-import types
-
-from . import support
-
-all_tests = unittest.TestSuite()
-
-tests_dir = os.path.join(os.path.dirname(__file__), '..', 'tests')
-tests = [t[0:-3] for t in os.listdir(tests_dir)
- if t.startswith('test_') and t.endswith('.py')]
-
-loader = unittest.TestLoader()
-
-for t in tests:
- __import__("",globals(),locals(),[t],level=1)
- mod = globals()[t]
- all_tests.addTests(loader.loadTestsFromModule(mod))
diff --git a/lib/python2.7/lib2to3/tests/data/README b/lib/python2.7/lib2to3/tests/data/README
deleted file mode 100644
index 7aa47e4..0000000
--- a/lib/python2.7/lib2to3/tests/data/README
+++ /dev/null
@@ -1,6 +0,0 @@
-In this directory:
-- py2_test_grammar.py -- test file that exercises most/all of Python 2.x's grammar.
-- py3_test_grammar.py -- test file that exercises most/all of Python 3.x's grammar.
-- infinite_recursion.py -- test file that causes lib2to3's faster recursive pattern matching
- scheme to fail, but passes when lib2to3 falls back to iterative pattern matching.
-- fixes/ -- for use by test_refactor.py
diff --git a/lib/python2.7/lib2to3/tests/data/bom.py b/lib/python2.7/lib2to3/tests/data/bom.py
deleted file mode 100644
index 9bc3975..0000000
--- a/lib/python2.7/lib2to3/tests/data/bom.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# coding: utf-8
-print "BOM BOOM!"
diff --git a/lib/python2.7/lib2to3/tests/data/crlf.py b/lib/python2.7/lib2to3/tests/data/crlf.py
deleted file mode 100644
index dbe2d7b..0000000
--- a/lib/python2.7/lib2to3/tests/data/crlf.py
+++ /dev/null
@@ -1,3 +0,0 @@
-print "hi"
-
-print "Like bad Windows newlines?"
diff --git a/lib/python2.7/lib2to3/tests/data/different_encoding.py b/lib/python2.7/lib2to3/tests/data/different_encoding.py
deleted file mode 100644
index 9f32bd0..0000000
--- a/lib/python2.7/lib2to3/tests/data/different_encoding.py
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-print u'ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ'
-
-def f(x):
- print '%s\t-> α(%2i):%s β(%s)'
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py b/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py
deleted file mode 100644
index 061bbf2..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixBadOrder(BaseFix):
-
- order = "crazy"
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py
+++ /dev/null
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py
deleted file mode 100644
index cbe16f6..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixExplicit(BaseFix):
- explicit = True
-
- def match(self): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py
deleted file mode 100644
index a88821f..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixFirst(BaseFix):
- run_order = 1
-
- def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py
deleted file mode 100644
index 9a077d4..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixLast(BaseFix):
-
- run_order = 10
-
- def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py
deleted file mode 100644
index 6db79ad..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-from lib2to3.fixer_util import Name
-
-class FixParrot(BaseFix):
- """
- Change functions named 'parrot' to 'cheese'.
- """
-
- PATTERN = """funcdef < 'def' name='parrot' any* >"""
-
- def transform(self, node, results):
- name = results["name"]
- name.replace(Name("cheese", name.prefix))
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py
deleted file mode 100644
index b9bfbba..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixPreorder(BaseFix):
- order = "pre"
-
- def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py b/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py
deleted file mode 100644
index 506f794..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py
+++ /dev/null
@@ -1 +0,0 @@
-# This is empty so trying to fetch the fixer class gives an AttributeError
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py b/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py
deleted file mode 100644
index 0852928..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py
+++ /dev/null
@@ -1,2 +0,0 @@
-def parrot():
- pass
diff --git a/lib/python2.7/lib2to3/tests/data/infinite_recursion.py b/lib/python2.7/lib2to3/tests/data/infinite_recursion.py
deleted file mode 100644
index 71715ef..0000000
--- a/lib/python2.7/lib2to3/tests/data/infinite_recursion.py
+++ /dev/null
@@ -1,2669 +0,0 @@
-# This file is used to verify that 2to3 falls back to a slower, iterative pattern matching
-# scheme in the event that the faster recursive system fails due to infinite recursion.
-from ctypes import *
-STRING = c_char_p
-
-
-OSUnknownByteOrder = 0
-UIT_PROMPT = 1
-P_PGID = 2
-P_PID = 1
-UIT_ERROR = 5
-UIT_INFO = 4
-UIT_NONE = 0
-P_ALL = 0
-UIT_VERIFY = 2
-OSBigEndian = 2
-UIT_BOOLEAN = 3
-OSLittleEndian = 1
-__darwin_nl_item = c_int
-__darwin_wctrans_t = c_int
-__darwin_wctype_t = c_ulong
-__int8_t = c_byte
-__uint8_t = c_ubyte
-__int16_t = c_short
-__uint16_t = c_ushort
-__int32_t = c_int
-__uint32_t = c_uint
-__int64_t = c_longlong
-__uint64_t = c_ulonglong
-__darwin_intptr_t = c_long
-__darwin_natural_t = c_uint
-__darwin_ct_rune_t = c_int
-class __mbstate_t(Union):
- pass
-__mbstate_t._pack_ = 4
-__mbstate_t._fields_ = [
- ('__mbstate8', c_char * 128),
- ('_mbstateL', c_longlong),
-]
-assert sizeof(__mbstate_t) == 128, sizeof(__mbstate_t)
-assert alignment(__mbstate_t) == 4, alignment(__mbstate_t)
-__darwin_mbstate_t = __mbstate_t
-__darwin_ptrdiff_t = c_int
-__darwin_size_t = c_ulong
-__darwin_va_list = STRING
-__darwin_wchar_t = c_int
-__darwin_rune_t = __darwin_wchar_t
-__darwin_wint_t = c_int
-__darwin_clock_t = c_ulong
-__darwin_socklen_t = __uint32_t
-__darwin_ssize_t = c_long
-__darwin_time_t = c_long
-sig_atomic_t = c_int
-class sigcontext(Structure):
- pass
-sigcontext._fields_ = [
- ('sc_onstack', c_int),
- ('sc_mask', c_int),
- ('sc_eax', c_uint),
- ('sc_ebx', c_uint),
- ('sc_ecx', c_uint),
- ('sc_edx', c_uint),
- ('sc_edi', c_uint),
- ('sc_esi', c_uint),
- ('sc_ebp', c_uint),
- ('sc_esp', c_uint),
- ('sc_ss', c_uint),
- ('sc_eflags', c_uint),
- ('sc_eip', c_uint),
- ('sc_cs', c_uint),
- ('sc_ds', c_uint),
- ('sc_es', c_uint),
- ('sc_fs', c_uint),
- ('sc_gs', c_uint),
-]
-assert sizeof(sigcontext) == 72, sizeof(sigcontext)
-assert alignment(sigcontext) == 4, alignment(sigcontext)
-u_int8_t = c_ubyte
-u_int16_t = c_ushort
-u_int32_t = c_uint
-u_int64_t = c_ulonglong
-int32_t = c_int
-register_t = int32_t
-user_addr_t = u_int64_t
-user_size_t = u_int64_t
-int64_t = c_longlong
-user_ssize_t = int64_t
-user_long_t = int64_t
-user_ulong_t = u_int64_t
-user_time_t = int64_t
-syscall_arg_t = u_int64_t
-
-# values for unnamed enumeration
-class aes_key_st(Structure):
- pass
-aes_key_st._fields_ = [
- ('rd_key', c_ulong * 60),
- ('rounds', c_int),
-]
-assert sizeof(aes_key_st) == 244, sizeof(aes_key_st)
-assert alignment(aes_key_st) == 4, alignment(aes_key_st)
-AES_KEY = aes_key_st
-class asn1_ctx_st(Structure):
- pass
-asn1_ctx_st._fields_ = [
- ('p', POINTER(c_ubyte)),
- ('eos', c_int),
- ('error', c_int),
- ('inf', c_int),
- ('tag', c_int),
- ('xclass', c_int),
- ('slen', c_long),
- ('max', POINTER(c_ubyte)),
- ('q', POINTER(c_ubyte)),
- ('pp', POINTER(POINTER(c_ubyte))),
- ('line', c_int),
-]
-assert sizeof(asn1_ctx_st) == 44, sizeof(asn1_ctx_st)
-assert alignment(asn1_ctx_st) == 4, alignment(asn1_ctx_st)
-ASN1_CTX = asn1_ctx_st
-class asn1_object_st(Structure):
- pass
-asn1_object_st._fields_ = [
- ('sn', STRING),
- ('ln', STRING),
- ('nid', c_int),
- ('length', c_int),
- ('data', POINTER(c_ubyte)),
- ('flags', c_int),
-]
-assert sizeof(asn1_object_st) == 24, sizeof(asn1_object_st)
-assert alignment(asn1_object_st) == 4, alignment(asn1_object_st)
-ASN1_OBJECT = asn1_object_st
-class asn1_string_st(Structure):
- pass
-asn1_string_st._fields_ = [
- ('length', c_int),
- ('type', c_int),
- ('data', POINTER(c_ubyte)),
- ('flags', c_long),
-]
-assert sizeof(asn1_string_st) == 16, sizeof(asn1_string_st)
-assert alignment(asn1_string_st) == 4, alignment(asn1_string_st)
-ASN1_STRING = asn1_string_st
-class ASN1_ENCODING_st(Structure):
- pass
-ASN1_ENCODING_st._fields_ = [
- ('enc', POINTER(c_ubyte)),
- ('len', c_long),
- ('modified', c_int),
-]
-assert sizeof(ASN1_ENCODING_st) == 12, sizeof(ASN1_ENCODING_st)
-assert alignment(ASN1_ENCODING_st) == 4, alignment(ASN1_ENCODING_st)
-ASN1_ENCODING = ASN1_ENCODING_st
-class asn1_string_table_st(Structure):
- pass
-asn1_string_table_st._fields_ = [
- ('nid', c_int),
- ('minsize', c_long),
- ('maxsize', c_long),
- ('mask', c_ulong),
- ('flags', c_ulong),
-]
-assert sizeof(asn1_string_table_st) == 20, sizeof(asn1_string_table_st)
-assert alignment(asn1_string_table_st) == 4, alignment(asn1_string_table_st)
-ASN1_STRING_TABLE = asn1_string_table_st
-class ASN1_TEMPLATE_st(Structure):
- pass
-ASN1_TEMPLATE_st._fields_ = [
-]
-ASN1_TEMPLATE = ASN1_TEMPLATE_st
-class ASN1_ITEM_st(Structure):
- pass
-ASN1_ITEM = ASN1_ITEM_st
-ASN1_ITEM_st._fields_ = [
-]
-class ASN1_TLC_st(Structure):
- pass
-ASN1_TLC = ASN1_TLC_st
-ASN1_TLC_st._fields_ = [
-]
-class ASN1_VALUE_st(Structure):
- pass
-ASN1_VALUE_st._fields_ = [
-]
-ASN1_VALUE = ASN1_VALUE_st
-ASN1_ITEM_EXP = ASN1_ITEM
-class asn1_type_st(Structure):
- pass
-class N12asn1_type_st4DOLLAR_11E(Union):
- pass
-ASN1_BOOLEAN = c_int
-ASN1_INTEGER = asn1_string_st
-ASN1_ENUMERATED = asn1_string_st
-ASN1_BIT_STRING = asn1_string_st
-ASN1_OCTET_STRING = asn1_string_st
-ASN1_PRINTABLESTRING = asn1_string_st
-ASN1_T61STRING = asn1_string_st
-ASN1_IA5STRING = asn1_string_st
-ASN1_GENERALSTRING = asn1_string_st
-ASN1_BMPSTRING = asn1_string_st
-ASN1_UNIVERSALSTRING = asn1_string_st
-ASN1_UTCTIME = asn1_string_st
-ASN1_GENERALIZEDTIME = asn1_string_st
-ASN1_VISIBLESTRING = asn1_string_st
-ASN1_UTF8STRING = asn1_string_st
-N12asn1_type_st4DOLLAR_11E._fields_ = [
- ('ptr', STRING),
- ('boolean', ASN1_BOOLEAN),
- ('asn1_string', POINTER(ASN1_STRING)),
- ('object', POINTER(ASN1_OBJECT)),
- ('integer', POINTER(ASN1_INTEGER)),
- ('enumerated', POINTER(ASN1_ENUMERATED)),
- ('bit_string', POINTER(ASN1_BIT_STRING)),
- ('octet_string', POINTER(ASN1_OCTET_STRING)),
- ('printablestring', POINTER(ASN1_PRINTABLESTRING)),
- ('t61string', POINTER(ASN1_T61STRING)),
- ('ia5string', POINTER(ASN1_IA5STRING)),
- ('generalstring', POINTER(ASN1_GENERALSTRING)),
- ('bmpstring', POINTER(ASN1_BMPSTRING)),
- ('universalstring', POINTER(ASN1_UNIVERSALSTRING)),
- ('utctime', POINTER(ASN1_UTCTIME)),
- ('generalizedtime', POINTER(ASN1_GENERALIZEDTIME)),
- ('visiblestring', POINTER(ASN1_VISIBLESTRING)),
- ('utf8string', POINTER(ASN1_UTF8STRING)),
- ('set', POINTER(ASN1_STRING)),
- ('sequence', POINTER(ASN1_STRING)),
-]
-assert sizeof(N12asn1_type_st4DOLLAR_11E) == 4, sizeof(N12asn1_type_st4DOLLAR_11E)
-assert alignment(N12asn1_type_st4DOLLAR_11E) == 4, alignment(N12asn1_type_st4DOLLAR_11E)
-asn1_type_st._fields_ = [
- ('type', c_int),
- ('value', N12asn1_type_st4DOLLAR_11E),
-]
-assert sizeof(asn1_type_st) == 8, sizeof(asn1_type_st)
-assert alignment(asn1_type_st) == 4, alignment(asn1_type_st)
-ASN1_TYPE = asn1_type_st
-class asn1_method_st(Structure):
- pass
-asn1_method_st._fields_ = [
- ('i2d', CFUNCTYPE(c_int)),
- ('d2i', CFUNCTYPE(STRING)),
- ('create', CFUNCTYPE(STRING)),
- ('destroy', CFUNCTYPE(None)),
-]
-assert sizeof(asn1_method_st) == 16, sizeof(asn1_method_st)
-assert alignment(asn1_method_st) == 4, alignment(asn1_method_st)
-ASN1_METHOD = asn1_method_st
-class asn1_header_st(Structure):
- pass
-asn1_header_st._fields_ = [
- ('header', POINTER(ASN1_OCTET_STRING)),
- ('data', STRING),
- ('meth', POINTER(ASN1_METHOD)),
-]
-assert sizeof(asn1_header_st) == 12, sizeof(asn1_header_st)
-assert alignment(asn1_header_st) == 4, alignment(asn1_header_st)
-ASN1_HEADER = asn1_header_st
-class BIT_STRING_BITNAME_st(Structure):
- pass
-BIT_STRING_BITNAME_st._fields_ = [
- ('bitnum', c_int),
- ('lname', STRING),
- ('sname', STRING),
-]
-assert sizeof(BIT_STRING_BITNAME_st) == 12, sizeof(BIT_STRING_BITNAME_st)
-assert alignment(BIT_STRING_BITNAME_st) == 4, alignment(BIT_STRING_BITNAME_st)
-BIT_STRING_BITNAME = BIT_STRING_BITNAME_st
-class bio_st(Structure):
- pass
-BIO = bio_st
-bio_info_cb = CFUNCTYPE(None, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)
-class bio_method_st(Structure):
- pass
-bio_method_st._fields_ = [
- ('type', c_int),
- ('name', STRING),
- ('bwrite', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
- ('bread', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
- ('bputs', CFUNCTYPE(c_int, POINTER(BIO), STRING)),
- ('bgets', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
- ('ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, c_long, c_void_p)),
- ('create', CFUNCTYPE(c_int, POINTER(BIO))),
- ('destroy', CFUNCTYPE(c_int, POINTER(BIO))),
- ('callback_ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, POINTER(bio_info_cb))),
-]
-assert sizeof(bio_method_st) == 40, sizeof(bio_method_st)
-assert alignment(bio_method_st) == 4, alignment(bio_method_st)
-BIO_METHOD = bio_method_st
-class crypto_ex_data_st(Structure):
- pass
-class stack_st(Structure):
- pass
-STACK = stack_st
-crypto_ex_data_st._fields_ = [
- ('sk', POINTER(STACK)),
- ('dummy', c_int),
-]
-assert sizeof(crypto_ex_data_st) == 8, sizeof(crypto_ex_data_st)
-assert alignment(crypto_ex_data_st) == 4, alignment(crypto_ex_data_st)
-CRYPTO_EX_DATA = crypto_ex_data_st
-bio_st._fields_ = [
- ('method', POINTER(BIO_METHOD)),
- ('callback', CFUNCTYPE(c_long, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)),
- ('cb_arg', STRING),
- ('init', c_int),
- ('shutdown', c_int),
- ('flags', c_int),
- ('retry_reason', c_int),
- ('num', c_int),
- ('ptr', c_void_p),
- ('next_bio', POINTER(bio_st)),
- ('prev_bio', POINTER(bio_st)),
- ('references', c_int),
- ('num_read', c_ulong),
- ('num_write', c_ulong),
- ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(bio_st) == 64, sizeof(bio_st)
-assert alignment(bio_st) == 4, alignment(bio_st)
-class bio_f_buffer_ctx_struct(Structure):
- pass
-bio_f_buffer_ctx_struct._fields_ = [
- ('ibuf_size', c_int),
- ('obuf_size', c_int),
- ('ibuf', STRING),
- ('ibuf_len', c_int),
- ('ibuf_off', c_int),
- ('obuf', STRING),
- ('obuf_len', c_int),
- ('obuf_off', c_int),
-]
-assert sizeof(bio_f_buffer_ctx_struct) == 32, sizeof(bio_f_buffer_ctx_struct)
-assert alignment(bio_f_buffer_ctx_struct) == 4, alignment(bio_f_buffer_ctx_struct)
-BIO_F_BUFFER_CTX = bio_f_buffer_ctx_struct
-class hostent(Structure):
- pass
-hostent._fields_ = [
-]
-class bf_key_st(Structure):
- pass
-bf_key_st._fields_ = [
- ('P', c_uint * 18),
- ('S', c_uint * 1024),
-]
-assert sizeof(bf_key_st) == 4168, sizeof(bf_key_st)
-assert alignment(bf_key_st) == 4, alignment(bf_key_st)
-BF_KEY = bf_key_st
-class bignum_st(Structure):
- pass
-bignum_st._fields_ = [
- ('d', POINTER(c_ulong)),
- ('top', c_int),
- ('dmax', c_int),
- ('neg', c_int),
- ('flags', c_int),
-]
-assert sizeof(bignum_st) == 20, sizeof(bignum_st)
-assert alignment(bignum_st) == 4, alignment(bignum_st)
-BIGNUM = bignum_st
-class bignum_ctx(Structure):
- pass
-bignum_ctx._fields_ = [
-]
-BN_CTX = bignum_ctx
-class bn_blinding_st(Structure):
- pass
-bn_blinding_st._fields_ = [
- ('init', c_int),
- ('A', POINTER(BIGNUM)),
- ('Ai', POINTER(BIGNUM)),
- ('mod', POINTER(BIGNUM)),
- ('thread_id', c_ulong),
-]
-assert sizeof(bn_blinding_st) == 20, sizeof(bn_blinding_st)
-assert alignment(bn_blinding_st) == 4, alignment(bn_blinding_st)
-BN_BLINDING = bn_blinding_st
-class bn_mont_ctx_st(Structure):
- pass
-bn_mont_ctx_st._fields_ = [
- ('ri', c_int),
- ('RR', BIGNUM),
- ('N', BIGNUM),
- ('Ni', BIGNUM),
- ('n0', c_ulong),
- ('flags', c_int),
-]
-assert sizeof(bn_mont_ctx_st) == 72, sizeof(bn_mont_ctx_st)
-assert alignment(bn_mont_ctx_st) == 4, alignment(bn_mont_ctx_st)
-BN_MONT_CTX = bn_mont_ctx_st
-class bn_recp_ctx_st(Structure):
- pass
-bn_recp_ctx_st._fields_ = [
- ('N', BIGNUM),
- ('Nr', BIGNUM),
- ('num_bits', c_int),
- ('shift', c_int),
- ('flags', c_int),
-]
-assert sizeof(bn_recp_ctx_st) == 52, sizeof(bn_recp_ctx_st)
-assert alignment(bn_recp_ctx_st) == 4, alignment(bn_recp_ctx_st)
-BN_RECP_CTX = bn_recp_ctx_st
-class buf_mem_st(Structure):
- pass
-buf_mem_st._fields_ = [
- ('length', c_int),
- ('data', STRING),
- ('max', c_int),
-]
-assert sizeof(buf_mem_st) == 12, sizeof(buf_mem_st)
-assert alignment(buf_mem_st) == 4, alignment(buf_mem_st)
-BUF_MEM = buf_mem_st
-class cast_key_st(Structure):
- pass
-cast_key_st._fields_ = [
- ('data', c_ulong * 32),
- ('short_key', c_int),
-]
-assert sizeof(cast_key_st) == 132, sizeof(cast_key_st)
-assert alignment(cast_key_st) == 4, alignment(cast_key_st)
-CAST_KEY = cast_key_st
-class comp_method_st(Structure):
- pass
-comp_method_st._fields_ = [
- ('type', c_int),
- ('name', STRING),
- ('init', CFUNCTYPE(c_int)),
- ('finish', CFUNCTYPE(None)),
- ('compress', CFUNCTYPE(c_int)),
- ('expand', CFUNCTYPE(c_int)),
- ('ctrl', CFUNCTYPE(c_long)),
- ('callback_ctrl', CFUNCTYPE(c_long)),
-]
-assert sizeof(comp_method_st) == 32, sizeof(comp_method_st)
-assert alignment(comp_method_st) == 4, alignment(comp_method_st)
-COMP_METHOD = comp_method_st
-class comp_ctx_st(Structure):
- pass
-comp_ctx_st._fields_ = [
- ('meth', POINTER(COMP_METHOD)),
- ('compress_in', c_ulong),
- ('compress_out', c_ulong),
- ('expand_in', c_ulong),
- ('expand_out', c_ulong),
- ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(comp_ctx_st) == 28, sizeof(comp_ctx_st)
-assert alignment(comp_ctx_st) == 4, alignment(comp_ctx_st)
-COMP_CTX = comp_ctx_st
-class CRYPTO_dynlock_value(Structure):
- pass
-CRYPTO_dynlock_value._fields_ = [
-]
-class CRYPTO_dynlock(Structure):
- pass
-CRYPTO_dynlock._fields_ = [
- ('references', c_int),
- ('data', POINTER(CRYPTO_dynlock_value)),
-]
-assert sizeof(CRYPTO_dynlock) == 8, sizeof(CRYPTO_dynlock)
-assert alignment(CRYPTO_dynlock) == 4, alignment(CRYPTO_dynlock)
-BIO_dummy = bio_st
-CRYPTO_EX_new = CFUNCTYPE(c_int, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
-CRYPTO_EX_free = CFUNCTYPE(None, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
-CRYPTO_EX_dup = CFUNCTYPE(c_int, POINTER(CRYPTO_EX_DATA), POINTER(CRYPTO_EX_DATA), c_void_p, c_int, c_long, c_void_p)
-class crypto_ex_data_func_st(Structure):
- pass
-crypto_ex_data_func_st._fields_ = [
- ('argl', c_long),
- ('argp', c_void_p),
- ('new_func', POINTER(CRYPTO_EX_new)),
- ('free_func', POINTER(CRYPTO_EX_free)),
- ('dup_func', POINTER(CRYPTO_EX_dup)),
-]
-assert sizeof(crypto_ex_data_func_st) == 20, sizeof(crypto_ex_data_func_st)
-assert alignment(crypto_ex_data_func_st) == 4, alignment(crypto_ex_data_func_st)
-CRYPTO_EX_DATA_FUNCS = crypto_ex_data_func_st
-class st_CRYPTO_EX_DATA_IMPL(Structure):
- pass
-CRYPTO_EX_DATA_IMPL = st_CRYPTO_EX_DATA_IMPL
-st_CRYPTO_EX_DATA_IMPL._fields_ = [
-]
-CRYPTO_MEM_LEAK_CB = CFUNCTYPE(c_void_p, c_ulong, STRING, c_int, c_int, c_void_p)
-DES_cblock = c_ubyte * 8
-const_DES_cblock = c_ubyte * 8
-class DES_ks(Structure):
- pass
-class N6DES_ks3DOLLAR_9E(Union):
- pass
-N6DES_ks3DOLLAR_9E._fields_ = [
- ('cblock', DES_cblock),
- ('deslong', c_ulong * 2),
-]
-assert sizeof(N6DES_ks3DOLLAR_9E) == 8, sizeof(N6DES_ks3DOLLAR_9E)
-assert alignment(N6DES_ks3DOLLAR_9E) == 4, alignment(N6DES_ks3DOLLAR_9E)
-DES_ks._fields_ = [
- ('ks', N6DES_ks3DOLLAR_9E * 16),
-]
-assert sizeof(DES_ks) == 128, sizeof(DES_ks)
-assert alignment(DES_ks) == 4, alignment(DES_ks)
-DES_key_schedule = DES_ks
-_ossl_old_des_cblock = c_ubyte * 8
-class _ossl_old_des_ks_struct(Structure):
- pass
-class N23_ossl_old_des_ks_struct4DOLLAR_10E(Union):
- pass
-N23_ossl_old_des_ks_struct4DOLLAR_10E._fields_ = [
- ('_', _ossl_old_des_cblock),
- ('pad', c_ulong * 2),
-]
-assert sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 8, sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E)
-assert alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 4, alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E)
-_ossl_old_des_ks_struct._fields_ = [
- ('ks', N23_ossl_old_des_ks_struct4DOLLAR_10E),
-]
-assert sizeof(_ossl_old_des_ks_struct) == 8, sizeof(_ossl_old_des_ks_struct)
-assert alignment(_ossl_old_des_ks_struct) == 4, alignment(_ossl_old_des_ks_struct)
-_ossl_old_des_key_schedule = _ossl_old_des_ks_struct * 16
-class dh_st(Structure):
- pass
-DH = dh_st
-class dh_method(Structure):
- pass
-dh_method._fields_ = [
- ('name', STRING),
- ('generate_key', CFUNCTYPE(c_int, POINTER(DH))),
- ('compute_key', CFUNCTYPE(c_int, POINTER(c_ubyte), POINTER(BIGNUM), POINTER(DH))),
- ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DH), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
- ('init', CFUNCTYPE(c_int, POINTER(DH))),
- ('finish', CFUNCTYPE(c_int, POINTER(DH))),
- ('flags', c_int),
- ('app_data', STRING),
-]
-assert sizeof(dh_method) == 32, sizeof(dh_method)
-assert alignment(dh_method) == 4, alignment(dh_method)
-DH_METHOD = dh_method
-class engine_st(Structure):
- pass
-ENGINE = engine_st
-dh_st._fields_ = [
- ('pad', c_int),
- ('version', c_int),
- ('p', POINTER(BIGNUM)),
- ('g', POINTER(BIGNUM)),
- ('length', c_long),
- ('pub_key', POINTER(BIGNUM)),
- ('priv_key', POINTER(BIGNUM)),
- ('flags', c_int),
- ('method_mont_p', STRING),
- ('q', POINTER(BIGNUM)),
- ('j', POINTER(BIGNUM)),
- ('seed', POINTER(c_ubyte)),
- ('seedlen', c_int),
- ('counter', POINTER(BIGNUM)),
- ('references', c_int),
- ('ex_data', CRYPTO_EX_DATA),
- ('meth', POINTER(DH_METHOD)),
- ('engine', POINTER(ENGINE)),
-]
-assert sizeof(dh_st) == 76, sizeof(dh_st)
-assert alignment(dh_st) == 4, alignment(dh_st)
-class dsa_st(Structure):
- pass
-DSA = dsa_st
-class DSA_SIG_st(Structure):
- pass
-DSA_SIG_st._fields_ = [
- ('r', POINTER(BIGNUM)),
- ('s', POINTER(BIGNUM)),
-]
-assert sizeof(DSA_SIG_st) == 8, sizeof(DSA_SIG_st)
-assert alignment(DSA_SIG_st) == 4, alignment(DSA_SIG_st)
-DSA_SIG = DSA_SIG_st
-class dsa_method(Structure):
- pass
-dsa_method._fields_ = [
- ('name', STRING),
- ('dsa_do_sign', CFUNCTYPE(POINTER(DSA_SIG), POINTER(c_ubyte), c_int, POINTER(DSA))),
- ('dsa_sign_setup', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BN_CTX), POINTER(POINTER(BIGNUM)), POINTER(POINTER(BIGNUM)))),
- ('dsa_do_verify', CFUNCTYPE(c_int, POINTER(c_ubyte), c_int, POINTER(DSA_SIG), POINTER(DSA))),
- ('dsa_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
- ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
- ('init', CFUNCTYPE(c_int, POINTER(DSA))),
- ('finish', CFUNCTYPE(c_int, POINTER(DSA))),
- ('flags', c_int),
- ('app_data', STRING),
-]
-assert sizeof(dsa_method) == 40, sizeof(dsa_method)
-assert alignment(dsa_method) == 4, alignment(dsa_method)
-DSA_METHOD = dsa_method
-dsa_st._fields_ = [
- ('pad', c_int),
- ('version', c_long),
- ('write_params', c_int),
- ('p', POINTER(BIGNUM)),
- ('q', POINTER(BIGNUM)),
- ('g', POINTER(BIGNUM)),
- ('pub_key', POINTER(BIGNUM)),
- ('priv_key', POINTER(BIGNUM)),
- ('kinv', POINTER(BIGNUM)),
- ('r', POINTER(BIGNUM)),
- ('flags', c_int),
- ('method_mont_p', STRING),
- ('references', c_int),
- ('ex_data', CRYPTO_EX_DATA),
- ('meth', POINTER(DSA_METHOD)),
- ('engine', POINTER(ENGINE)),
-]
-assert sizeof(dsa_st) == 68, sizeof(dsa_st)
-assert alignment(dsa_st) == 4, alignment(dsa_st)
-class evp_pkey_st(Structure):
- pass
-class N11evp_pkey_st4DOLLAR_12E(Union):
- pass
-class rsa_st(Structure):
- pass
-N11evp_pkey_st4DOLLAR_12E._fields_ = [
- ('ptr', STRING),
- ('rsa', POINTER(rsa_st)),
- ('dsa', POINTER(dsa_st)),
- ('dh', POINTER(dh_st)),
-]
-assert sizeof(N11evp_pkey_st4DOLLAR_12E) == 4, sizeof(N11evp_pkey_st4DOLLAR_12E)
-assert alignment(N11evp_pkey_st4DOLLAR_12E) == 4, alignment(N11evp_pkey_st4DOLLAR_12E)
-evp_pkey_st._fields_ = [
- ('type', c_int),
- ('save_type', c_int),
- ('references', c_int),
- ('pkey', N11evp_pkey_st4DOLLAR_12E),
- ('save_parameters', c_int),
- ('attributes', POINTER(STACK)),
-]
-assert sizeof(evp_pkey_st) == 24, sizeof(evp_pkey_st)
-assert alignment(evp_pkey_st) == 4, alignment(evp_pkey_st)
-class env_md_st(Structure):
- pass
-class env_md_ctx_st(Structure):
- pass
-EVP_MD_CTX = env_md_ctx_st
-env_md_st._fields_ = [
- ('type', c_int),
- ('pkey_type', c_int),
- ('md_size', c_int),
- ('flags', c_ulong),
- ('init', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
- ('update', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), c_void_p, c_ulong)),
- ('final', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(c_ubyte))),
- ('copy', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(EVP_MD_CTX))),
- ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
- ('sign', CFUNCTYPE(c_int)),
- ('verify', CFUNCTYPE(c_int)),
- ('required_pkey_type', c_int * 5),
- ('block_size', c_int),
- ('ctx_size', c_int),
-]
-assert sizeof(env_md_st) == 72, sizeof(env_md_st)
-assert alignment(env_md_st) == 4, alignment(env_md_st)
-EVP_MD = env_md_st
-env_md_ctx_st._fields_ = [
- ('digest', POINTER(EVP_MD)),
- ('engine', POINTER(ENGINE)),
- ('flags', c_ulong),
- ('md_data', c_void_p),
-]
-assert sizeof(env_md_ctx_st) == 16, sizeof(env_md_ctx_st)
-assert alignment(env_md_ctx_st) == 4, alignment(env_md_ctx_st)
-class evp_cipher_st(Structure):
- pass
-class evp_cipher_ctx_st(Structure):
- pass
-EVP_CIPHER_CTX = evp_cipher_ctx_st
-evp_cipher_st._fields_ = [
- ('nid', c_int),
- ('block_size', c_int),
- ('key_len', c_int),
- ('iv_len', c_int),
- ('flags', c_ulong),
- ('init', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_int)),
- ('do_cipher', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_uint)),
- ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX))),
- ('ctx_size', c_int),
- ('set_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
- ('get_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
- ('ctrl', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), c_int, c_int, c_void_p)),
- ('app_data', c_void_p),
-]
-assert sizeof(evp_cipher_st) == 52, sizeof(evp_cipher_st)
-assert alignment(evp_cipher_st) == 4, alignment(evp_cipher_st)
-class evp_cipher_info_st(Structure):
- pass
-EVP_CIPHER = evp_cipher_st
-evp_cipher_info_st._fields_ = [
- ('cipher', POINTER(EVP_CIPHER)),
- ('iv', c_ubyte * 16),
-]
-assert sizeof(evp_cipher_info_st) == 20, sizeof(evp_cipher_info_st)
-assert alignment(evp_cipher_info_st) == 4, alignment(evp_cipher_info_st)
-EVP_CIPHER_INFO = evp_cipher_info_st
-evp_cipher_ctx_st._fields_ = [
- ('cipher', POINTER(EVP_CIPHER)),
- ('engine', POINTER(ENGINE)),
- ('encrypt', c_int),
- ('buf_len', c_int),
- ('oiv', c_ubyte * 16),
- ('iv', c_ubyte * 16),
- ('buf', c_ubyte * 32),
- ('num', c_int),
- ('app_data', c_void_p),
- ('key_len', c_int),
- ('flags', c_ulong),
- ('cipher_data', c_void_p),
- ('final_used', c_int),
- ('block_mask', c_int),
- ('final', c_ubyte * 32),
-]
-assert sizeof(evp_cipher_ctx_st) == 140, sizeof(evp_cipher_ctx_st)
-assert alignment(evp_cipher_ctx_st) == 4, alignment(evp_cipher_ctx_st)
-class evp_Encode_Ctx_st(Structure):
- pass
-evp_Encode_Ctx_st._fields_ = [
- ('num', c_int),
- ('length', c_int),
- ('enc_data', c_ubyte * 80),
- ('line_num', c_int),
- ('expect_nl', c_int),
-]
-assert sizeof(evp_Encode_Ctx_st) == 96, sizeof(evp_Encode_Ctx_st)
-assert alignment(evp_Encode_Ctx_st) == 4, alignment(evp_Encode_Ctx_st)
-EVP_ENCODE_CTX = evp_Encode_Ctx_st
-EVP_PBE_KEYGEN = CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), STRING, c_int, POINTER(ASN1_TYPE), POINTER(EVP_CIPHER), POINTER(EVP_MD), c_int)
-class lhash_node_st(Structure):
- pass
-lhash_node_st._fields_ = [
- ('data', c_void_p),
- ('next', POINTER(lhash_node_st)),
- ('hash', c_ulong),
-]
-assert sizeof(lhash_node_st) == 12, sizeof(lhash_node_st)
-assert alignment(lhash_node_st) == 4, alignment(lhash_node_st)
-LHASH_NODE = lhash_node_st
-LHASH_COMP_FN_TYPE = CFUNCTYPE(c_int, c_void_p, c_void_p)
-LHASH_HASH_FN_TYPE = CFUNCTYPE(c_ulong, c_void_p)
-LHASH_DOALL_FN_TYPE = CFUNCTYPE(None, c_void_p)
-LHASH_DOALL_ARG_FN_TYPE = CFUNCTYPE(None, c_void_p, c_void_p)
-class lhash_st(Structure):
- pass
-lhash_st._fields_ = [
- ('b', POINTER(POINTER(LHASH_NODE))),
- ('comp', LHASH_COMP_FN_TYPE),
- ('hash', LHASH_HASH_FN_TYPE),
- ('num_nodes', c_uint),
- ('num_alloc_nodes', c_uint),
- ('p', c_uint),
- ('pmax', c_uint),
- ('up_load', c_ulong),
- ('down_load', c_ulong),
- ('num_items', c_ulong),
- ('num_expands', c_ulong),
- ('num_expand_reallocs', c_ulong),
- ('num_contracts', c_ulong),
- ('num_contract_reallocs', c_ulong),
- ('num_hash_calls', c_ulong),
- ('num_comp_calls', c_ulong),
- ('num_insert', c_ulong),
- ('num_replace', c_ulong),
- ('num_delete', c_ulong),
- ('num_no_delete', c_ulong),
- ('num_retrieve', c_ulong),
- ('num_retrieve_miss', c_ulong),
- ('num_hash_comps', c_ulong),
- ('error', c_int),
-]
-assert sizeof(lhash_st) == 96, sizeof(lhash_st)
-assert alignment(lhash_st) == 4, alignment(lhash_st)
-LHASH = lhash_st
-class MD2state_st(Structure):
- pass
-MD2state_st._fields_ = [
- ('num', c_int),
- ('data', c_ubyte * 16),
- ('cksm', c_uint * 16),
- ('state', c_uint * 16),
-]
-assert sizeof(MD2state_st) == 148, sizeof(MD2state_st)
-assert alignment(MD2state_st) == 4, alignment(MD2state_st)
-MD2_CTX = MD2state_st
-class MD4state_st(Structure):
- pass
-MD4state_st._fields_ = [
- ('A', c_uint),
- ('B', c_uint),
- ('C', c_uint),
- ('D', c_uint),
- ('Nl', c_uint),
- ('Nh', c_uint),
- ('data', c_uint * 16),
- ('num', c_int),
-]
-assert sizeof(MD4state_st) == 92, sizeof(MD4state_st)
-assert alignment(MD4state_st) == 4, alignment(MD4state_st)
-MD4_CTX = MD4state_st
-class MD5state_st(Structure):
- pass
-MD5state_st._fields_ = [
- ('A', c_uint),
- ('B', c_uint),
- ('C', c_uint),
- ('D', c_uint),
- ('Nl', c_uint),
- ('Nh', c_uint),
- ('data', c_uint * 16),
- ('num', c_int),
-]
-assert sizeof(MD5state_st) == 92, sizeof(MD5state_st)
-assert alignment(MD5state_st) == 4, alignment(MD5state_st)
-MD5_CTX = MD5state_st
-class mdc2_ctx_st(Structure):
- pass
-mdc2_ctx_st._fields_ = [
- ('num', c_int),
- ('data', c_ubyte * 8),
- ('h', DES_cblock),
- ('hh', DES_cblock),
- ('pad_type', c_int),
-]
-assert sizeof(mdc2_ctx_st) == 32, sizeof(mdc2_ctx_st)
-assert alignment(mdc2_ctx_st) == 4, alignment(mdc2_ctx_st)
-MDC2_CTX = mdc2_ctx_st
-class obj_name_st(Structure):
- pass
-obj_name_st._fields_ = [
- ('type', c_int),
- ('alias', c_int),
- ('name', STRING),
- ('data', STRING),
-]
-assert sizeof(obj_name_st) == 16, sizeof(obj_name_st)
-assert alignment(obj_name_st) == 4, alignment(obj_name_st)
-OBJ_NAME = obj_name_st
-ASN1_TIME = asn1_string_st
-ASN1_NULL = c_int
-EVP_PKEY = evp_pkey_st
-class x509_st(Structure):
- pass
-X509 = x509_st
-class X509_algor_st(Structure):
- pass
-X509_ALGOR = X509_algor_st
-class X509_crl_st(Structure):
- pass
-X509_CRL = X509_crl_st
-class X509_name_st(Structure):
- pass
-X509_NAME = X509_name_st
-class x509_store_st(Structure):
- pass
-X509_STORE = x509_store_st
-class x509_store_ctx_st(Structure):
- pass
-X509_STORE_CTX = x509_store_ctx_st
-engine_st._fields_ = [
-]
-class PEM_Encode_Seal_st(Structure):
- pass
-PEM_Encode_Seal_st._fields_ = [
- ('encode', EVP_ENCODE_CTX),
- ('md', EVP_MD_CTX),
- ('cipher', EVP_CIPHER_CTX),
-]
-assert sizeof(PEM_Encode_Seal_st) == 252, sizeof(PEM_Encode_Seal_st)
-assert alignment(PEM_Encode_Seal_st) == 4, alignment(PEM_Encode_Seal_st)
-PEM_ENCODE_SEAL_CTX = PEM_Encode_Seal_st
-class pem_recip_st(Structure):
- pass
-pem_recip_st._fields_ = [
- ('name', STRING),
- ('dn', POINTER(X509_NAME)),
- ('cipher', c_int),
- ('key_enc', c_int),
-]
-assert sizeof(pem_recip_st) == 16, sizeof(pem_recip_st)
-assert alignment(pem_recip_st) == 4, alignment(pem_recip_st)
-PEM_USER = pem_recip_st
-class pem_ctx_st(Structure):
- pass
-class N10pem_ctx_st4DOLLAR_16E(Structure):
- pass
-N10pem_ctx_st4DOLLAR_16E._fields_ = [
- ('version', c_int),
- ('mode', c_int),
-]
-assert sizeof(N10pem_ctx_st4DOLLAR_16E) == 8, sizeof(N10pem_ctx_st4DOLLAR_16E)
-assert alignment(N10pem_ctx_st4DOLLAR_16E) == 4, alignment(N10pem_ctx_st4DOLLAR_16E)
-class N10pem_ctx_st4DOLLAR_17E(Structure):
- pass
-N10pem_ctx_st4DOLLAR_17E._fields_ = [
- ('cipher', c_int),
-]
-assert sizeof(N10pem_ctx_st4DOLLAR_17E) == 4, sizeof(N10pem_ctx_st4DOLLAR_17E)
-assert alignment(N10pem_ctx_st4DOLLAR_17E) == 4, alignment(N10pem_ctx_st4DOLLAR_17E)
-pem_ctx_st._fields_ = [
- ('type', c_int),
- ('proc_type', N10pem_ctx_st4DOLLAR_16E),
- ('domain', STRING),
- ('DEK_info', N10pem_ctx_st4DOLLAR_17E),
- ('originator', POINTER(PEM_USER)),
- ('num_recipient', c_int),
- ('recipient', POINTER(POINTER(PEM_USER))),
- ('x509_chain', POINTER(STACK)),
- ('md', POINTER(EVP_MD)),
- ('md_enc', c_int),
- ('md_len', c_int),
- ('md_data', STRING),
- ('dec', POINTER(EVP_CIPHER)),
- ('key_len', c_int),
- ('key', POINTER(c_ubyte)),
- ('data_enc', c_int),
- ('data_len', c_int),
- ('data', POINTER(c_ubyte)),
-]
-assert sizeof(pem_ctx_st) == 76, sizeof(pem_ctx_st)
-assert alignment(pem_ctx_st) == 4, alignment(pem_ctx_st)
-PEM_CTX = pem_ctx_st
-pem_password_cb = CFUNCTYPE(c_int, STRING, c_int, c_int, c_void_p)
-class pkcs7_issuer_and_serial_st(Structure):
- pass
-pkcs7_issuer_and_serial_st._fields_ = [
- ('issuer', POINTER(X509_NAME)),
- ('serial', POINTER(ASN1_INTEGER)),
-]
-assert sizeof(pkcs7_issuer_and_serial_st) == 8, sizeof(pkcs7_issuer_and_serial_st)
-assert alignment(pkcs7_issuer_and_serial_st) == 4, alignment(pkcs7_issuer_and_serial_st)
-PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st
-class pkcs7_signer_info_st(Structure):
- pass
-pkcs7_signer_info_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
- ('digest_alg', POINTER(X509_ALGOR)),
- ('auth_attr', POINTER(STACK)),
- ('digest_enc_alg', POINTER(X509_ALGOR)),
- ('enc_digest', POINTER(ASN1_OCTET_STRING)),
- ('unauth_attr', POINTER(STACK)),
- ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(pkcs7_signer_info_st) == 32, sizeof(pkcs7_signer_info_st)
-assert alignment(pkcs7_signer_info_st) == 4, alignment(pkcs7_signer_info_st)
-PKCS7_SIGNER_INFO = pkcs7_signer_info_st
-class pkcs7_recip_info_st(Structure):
- pass
-pkcs7_recip_info_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
- ('key_enc_algor', POINTER(X509_ALGOR)),
- ('enc_key', POINTER(ASN1_OCTET_STRING)),
- ('cert', POINTER(X509)),
-]
-assert sizeof(pkcs7_recip_info_st) == 20, sizeof(pkcs7_recip_info_st)
-assert alignment(pkcs7_recip_info_st) == 4, alignment(pkcs7_recip_info_st)
-PKCS7_RECIP_INFO = pkcs7_recip_info_st
-class pkcs7_signed_st(Structure):
- pass
-class pkcs7_st(Structure):
- pass
-pkcs7_signed_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('md_algs', POINTER(STACK)),
- ('cert', POINTER(STACK)),
- ('crl', POINTER(STACK)),
- ('signer_info', POINTER(STACK)),
- ('contents', POINTER(pkcs7_st)),
-]
-assert sizeof(pkcs7_signed_st) == 24, sizeof(pkcs7_signed_st)
-assert alignment(pkcs7_signed_st) == 4, alignment(pkcs7_signed_st)
-PKCS7_SIGNED = pkcs7_signed_st
-class pkcs7_enc_content_st(Structure):
- pass
-pkcs7_enc_content_st._fields_ = [
- ('content_type', POINTER(ASN1_OBJECT)),
- ('algorithm', POINTER(X509_ALGOR)),
- ('enc_data', POINTER(ASN1_OCTET_STRING)),
- ('cipher', POINTER(EVP_CIPHER)),
-]
-assert sizeof(pkcs7_enc_content_st) == 16, sizeof(pkcs7_enc_content_st)
-assert alignment(pkcs7_enc_content_st) == 4, alignment(pkcs7_enc_content_st)
-PKCS7_ENC_CONTENT = pkcs7_enc_content_st
-class pkcs7_enveloped_st(Structure):
- pass
-pkcs7_enveloped_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('recipientinfo', POINTER(STACK)),
- ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
-]
-assert sizeof(pkcs7_enveloped_st) == 12, sizeof(pkcs7_enveloped_st)
-assert alignment(pkcs7_enveloped_st) == 4, alignment(pkcs7_enveloped_st)
-PKCS7_ENVELOPE = pkcs7_enveloped_st
-class pkcs7_signedandenveloped_st(Structure):
- pass
-pkcs7_signedandenveloped_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('md_algs', POINTER(STACK)),
- ('cert', POINTER(STACK)),
- ('crl', POINTER(STACK)),
- ('signer_info', POINTER(STACK)),
- ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
- ('recipientinfo', POINTER(STACK)),
-]
-assert sizeof(pkcs7_signedandenveloped_st) == 28, sizeof(pkcs7_signedandenveloped_st)
-assert alignment(pkcs7_signedandenveloped_st) == 4, alignment(pkcs7_signedandenveloped_st)
-PKCS7_SIGN_ENVELOPE = pkcs7_signedandenveloped_st
-class pkcs7_digest_st(Structure):
- pass
-pkcs7_digest_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('md', POINTER(X509_ALGOR)),
- ('contents', POINTER(pkcs7_st)),
- ('digest', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(pkcs7_digest_st) == 16, sizeof(pkcs7_digest_st)
-assert alignment(pkcs7_digest_st) == 4, alignment(pkcs7_digest_st)
-PKCS7_DIGEST = pkcs7_digest_st
-class pkcs7_encrypted_st(Structure):
- pass
-pkcs7_encrypted_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
-]
-assert sizeof(pkcs7_encrypted_st) == 8, sizeof(pkcs7_encrypted_st)
-assert alignment(pkcs7_encrypted_st) == 4, alignment(pkcs7_encrypted_st)
-PKCS7_ENCRYPT = pkcs7_encrypted_st
-class N8pkcs7_st4DOLLAR_15E(Union):
- pass
-N8pkcs7_st4DOLLAR_15E._fields_ = [
- ('ptr', STRING),
- ('data', POINTER(ASN1_OCTET_STRING)),
- ('sign', POINTER(PKCS7_SIGNED)),
- ('enveloped', POINTER(PKCS7_ENVELOPE)),
- ('signed_and_enveloped', POINTER(PKCS7_SIGN_ENVELOPE)),
- ('digest', POINTER(PKCS7_DIGEST)),
- ('encrypted', POINTER(PKCS7_ENCRYPT)),
- ('other', POINTER(ASN1_TYPE)),
-]
-assert sizeof(N8pkcs7_st4DOLLAR_15E) == 4, sizeof(N8pkcs7_st4DOLLAR_15E)
-assert alignment(N8pkcs7_st4DOLLAR_15E) == 4, alignment(N8pkcs7_st4DOLLAR_15E)
-pkcs7_st._fields_ = [
- ('asn1', POINTER(c_ubyte)),
- ('length', c_long),
- ('state', c_int),
- ('detached', c_int),
- ('type', POINTER(ASN1_OBJECT)),
- ('d', N8pkcs7_st4DOLLAR_15E),
-]
-assert sizeof(pkcs7_st) == 24, sizeof(pkcs7_st)
-assert alignment(pkcs7_st) == 4, alignment(pkcs7_st)
-PKCS7 = pkcs7_st
-class rc2_key_st(Structure):
- pass
-rc2_key_st._fields_ = [
- ('data', c_uint * 64),
-]
-assert sizeof(rc2_key_st) == 256, sizeof(rc2_key_st)
-assert alignment(rc2_key_st) == 4, alignment(rc2_key_st)
-RC2_KEY = rc2_key_st
-class rc4_key_st(Structure):
- pass
-rc4_key_st._fields_ = [
- ('x', c_ubyte),
- ('y', c_ubyte),
- ('data', c_ubyte * 256),
-]
-assert sizeof(rc4_key_st) == 258, sizeof(rc4_key_st)
-assert alignment(rc4_key_st) == 1, alignment(rc4_key_st)
-RC4_KEY = rc4_key_st
-class rc5_key_st(Structure):
- pass
-rc5_key_st._fields_ = [
- ('rounds', c_int),
- ('data', c_ulong * 34),
-]
-assert sizeof(rc5_key_st) == 140, sizeof(rc5_key_st)
-assert alignment(rc5_key_st) == 4, alignment(rc5_key_st)
-RC5_32_KEY = rc5_key_st
-class RIPEMD160state_st(Structure):
- pass
-RIPEMD160state_st._fields_ = [
- ('A', c_uint),
- ('B', c_uint),
- ('C', c_uint),
- ('D', c_uint),
- ('E', c_uint),
- ('Nl', c_uint),
- ('Nh', c_uint),
- ('data', c_uint * 16),
- ('num', c_int),
-]
-assert sizeof(RIPEMD160state_st) == 96, sizeof(RIPEMD160state_st)
-assert alignment(RIPEMD160state_st) == 4, alignment(RIPEMD160state_st)
-RIPEMD160_CTX = RIPEMD160state_st
-RSA = rsa_st
-class rsa_meth_st(Structure):
- pass
-rsa_meth_st._fields_ = [
- ('name', STRING),
- ('rsa_pub_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
- ('rsa_pub_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
- ('rsa_priv_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
- ('rsa_priv_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
- ('rsa_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(RSA))),
- ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
- ('init', CFUNCTYPE(c_int, POINTER(RSA))),
- ('finish', CFUNCTYPE(c_int, POINTER(RSA))),
- ('flags', c_int),
- ('app_data', STRING),
- ('rsa_sign', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), POINTER(c_uint), POINTER(RSA))),
- ('rsa_verify', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), c_uint, POINTER(RSA))),
-]
-assert sizeof(rsa_meth_st) == 52, sizeof(rsa_meth_st)
-assert alignment(rsa_meth_st) == 4, alignment(rsa_meth_st)
-RSA_METHOD = rsa_meth_st
-rsa_st._fields_ = [
- ('pad', c_int),
- ('version', c_long),
- ('meth', POINTER(RSA_METHOD)),
- ('engine', POINTER(ENGINE)),
- ('n', POINTER(BIGNUM)),
- ('e', POINTER(BIGNUM)),
- ('d', POINTER(BIGNUM)),
- ('p', POINTER(BIGNUM)),
- ('q', POINTER(BIGNUM)),
- ('dmp1', POINTER(BIGNUM)),
- ('dmq1', POINTER(BIGNUM)),
- ('iqmp', POINTER(BIGNUM)),
- ('ex_data', CRYPTO_EX_DATA),
- ('references', c_int),
- ('flags', c_int),
- ('_method_mod_n', POINTER(BN_MONT_CTX)),
- ('_method_mod_p', POINTER(BN_MONT_CTX)),
- ('_method_mod_q', POINTER(BN_MONT_CTX)),
- ('bignum_data', STRING),
- ('blinding', POINTER(BN_BLINDING)),
-]
-assert sizeof(rsa_st) == 84, sizeof(rsa_st)
-assert alignment(rsa_st) == 4, alignment(rsa_st)
-openssl_fptr = CFUNCTYPE(None)
-class SHAstate_st(Structure):
- pass
-SHAstate_st._fields_ = [
- ('h0', c_uint),
- ('h1', c_uint),
- ('h2', c_uint),
- ('h3', c_uint),
- ('h4', c_uint),
- ('Nl', c_uint),
- ('Nh', c_uint),
- ('data', c_uint * 16),
- ('num', c_int),
-]
-assert sizeof(SHAstate_st) == 96, sizeof(SHAstate_st)
-assert alignment(SHAstate_st) == 4, alignment(SHAstate_st)
-SHA_CTX = SHAstate_st
-class ssl_st(Structure):
- pass
-ssl_crock_st = POINTER(ssl_st)
-class ssl_cipher_st(Structure):
- pass
-ssl_cipher_st._fields_ = [
- ('valid', c_int),
- ('name', STRING),
- ('id', c_ulong),
- ('algorithms', c_ulong),
- ('algo_strength', c_ulong),
- ('algorithm2', c_ulong),
- ('strength_bits', c_int),
- ('alg_bits', c_int),
- ('mask', c_ulong),
- ('mask_strength', c_ulong),
-]
-assert sizeof(ssl_cipher_st) == 40, sizeof(ssl_cipher_st)
-assert alignment(ssl_cipher_st) == 4, alignment(ssl_cipher_st)
-SSL_CIPHER = ssl_cipher_st
-SSL = ssl_st
-class ssl_ctx_st(Structure):
- pass
-SSL_CTX = ssl_ctx_st
-class ssl_method_st(Structure):
- pass
-class ssl3_enc_method(Structure):
- pass
-ssl_method_st._fields_ = [
- ('version', c_int),
- ('ssl_new', CFUNCTYPE(c_int, POINTER(SSL))),
- ('ssl_clear', CFUNCTYPE(None, POINTER(SSL))),
- ('ssl_free', CFUNCTYPE(None, POINTER(SSL))),
- ('ssl_accept', CFUNCTYPE(c_int, POINTER(SSL))),
- ('ssl_connect', CFUNCTYPE(c_int, POINTER(SSL))),
- ('ssl_read', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
- ('ssl_peek', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
- ('ssl_write', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
- ('ssl_shutdown', CFUNCTYPE(c_int, POINTER(SSL))),
- ('ssl_renegotiate', CFUNCTYPE(c_int, POINTER(SSL))),
- ('ssl_renegotiate_check', CFUNCTYPE(c_int, POINTER(SSL))),
- ('ssl_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, c_long, c_void_p)),
- ('ssl_ctx_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, c_long, c_void_p)),
- ('get_cipher_by_char', CFUNCTYPE(POINTER(SSL_CIPHER), POINTER(c_ubyte))),
- ('put_cipher_by_char', CFUNCTYPE(c_int, POINTER(SSL_CIPHER), POINTER(c_ubyte))),
- ('ssl_pending', CFUNCTYPE(c_int, POINTER(SSL))),
- ('num_ciphers', CFUNCTYPE(c_int)),
- ('get_cipher', CFUNCTYPE(POINTER(SSL_CIPHER), c_uint)),
- ('get_ssl_method', CFUNCTYPE(POINTER(ssl_method_st), c_int)),
- ('get_timeout', CFUNCTYPE(c_long)),
- ('ssl3_enc', POINTER(ssl3_enc_method)),
- ('ssl_version', CFUNCTYPE(c_int)),
- ('ssl_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, CFUNCTYPE(None))),
- ('ssl_ctx_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, CFUNCTYPE(None))),
-]
-assert sizeof(ssl_method_st) == 100, sizeof(ssl_method_st)
-assert alignment(ssl_method_st) == 4, alignment(ssl_method_st)
-ssl3_enc_method._fields_ = [
-]
-SSL_METHOD = ssl_method_st
-class ssl_session_st(Structure):
- pass
-class sess_cert_st(Structure):
- pass
-ssl_session_st._fields_ = [
- ('ssl_version', c_int),
- ('key_arg_length', c_uint),
- ('key_arg', c_ubyte * 8),
- ('master_key_length', c_int),
- ('master_key', c_ubyte * 48),
- ('session_id_length', c_uint),
- ('session_id', c_ubyte * 32),
- ('sid_ctx_length', c_uint),
- ('sid_ctx', c_ubyte * 32),
- ('not_resumable', c_int),
- ('sess_cert', POINTER(sess_cert_st)),
- ('peer', POINTER(X509)),
- ('verify_result', c_long),
- ('references', c_int),
- ('timeout', c_long),
- ('time', c_long),
- ('compress_meth', c_int),
- ('cipher', POINTER(SSL_CIPHER)),
- ('cipher_id', c_ulong),
- ('ciphers', POINTER(STACK)),
- ('ex_data', CRYPTO_EX_DATA),
- ('prev', POINTER(ssl_session_st)),
- ('next', POINTER(ssl_session_st)),
-]
-assert sizeof(ssl_session_st) == 200, sizeof(ssl_session_st)
-assert alignment(ssl_session_st) == 4, alignment(ssl_session_st)
-sess_cert_st._fields_ = [
-]
-SSL_SESSION = ssl_session_st
-GEN_SESSION_CB = CFUNCTYPE(c_int, POINTER(SSL), POINTER(c_ubyte), POINTER(c_uint))
-class ssl_comp_st(Structure):
- pass
-ssl_comp_st._fields_ = [
- ('id', c_int),
- ('name', STRING),
- ('method', POINTER(COMP_METHOD)),
-]
-assert sizeof(ssl_comp_st) == 12, sizeof(ssl_comp_st)
-assert alignment(ssl_comp_st) == 4, alignment(ssl_comp_st)
-SSL_COMP = ssl_comp_st
-class N10ssl_ctx_st4DOLLAR_18E(Structure):
- pass
-N10ssl_ctx_st4DOLLAR_18E._fields_ = [
- ('sess_connect', c_int),
- ('sess_connect_renegotiate', c_int),
- ('sess_connect_good', c_int),
- ('sess_accept', c_int),
- ('sess_accept_renegotiate', c_int),
- ('sess_accept_good', c_int),
- ('sess_miss', c_int),
- ('sess_timeout', c_int),
- ('sess_cache_full', c_int),
- ('sess_hit', c_int),
- ('sess_cb_hit', c_int),
-]
-assert sizeof(N10ssl_ctx_st4DOLLAR_18E) == 44, sizeof(N10ssl_ctx_st4DOLLAR_18E)
-assert alignment(N10ssl_ctx_st4DOLLAR_18E) == 4, alignment(N10ssl_ctx_st4DOLLAR_18E)
-class cert_st(Structure):
- pass
-ssl_ctx_st._fields_ = [
- ('method', POINTER(SSL_METHOD)),
- ('cipher_list', POINTER(STACK)),
- ('cipher_list_by_id', POINTER(STACK)),
- ('cert_store', POINTER(x509_store_st)),
- ('sessions', POINTER(lhash_st)),
- ('session_cache_size', c_ulong),
- ('session_cache_head', POINTER(ssl_session_st)),
- ('session_cache_tail', POINTER(ssl_session_st)),
- ('session_cache_mode', c_int),
- ('session_timeout', c_long),
- ('new_session_cb', CFUNCTYPE(c_int, POINTER(ssl_st), POINTER(SSL_SESSION))),
- ('remove_session_cb', CFUNCTYPE(None, POINTER(ssl_ctx_st), POINTER(SSL_SESSION))),
- ('get_session_cb', CFUNCTYPE(POINTER(SSL_SESSION), POINTER(ssl_st), POINTER(c_ubyte), c_int, POINTER(c_int))),
- ('stats', N10ssl_ctx_st4DOLLAR_18E),
- ('references', c_int),
- ('app_verify_callback', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), c_void_p)),
- ('app_verify_arg', c_void_p),
- ('default_passwd_callback', POINTER(pem_password_cb)),
- ('default_passwd_callback_userdata', c_void_p),
- ('client_cert_cb', CFUNCTYPE(c_int, POINTER(SSL), POINTER(POINTER(X509)), POINTER(POINTER(EVP_PKEY)))),
- ('ex_data', CRYPTO_EX_DATA),
- ('rsa_md5', POINTER(EVP_MD)),
- ('md5', POINTER(EVP_MD)),
- ('sha1', POINTER(EVP_MD)),
- ('extra_certs', POINTER(STACK)),
- ('comp_methods', POINTER(STACK)),
- ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
- ('client_CA', POINTER(STACK)),
- ('options', c_ulong),
- ('mode', c_ulong),
- ('max_cert_list', c_long),
- ('cert', POINTER(cert_st)),
- ('read_ahead', c_int),
- ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
- ('msg_callback_arg', c_void_p),
- ('verify_mode', c_int),
- ('verify_depth', c_int),
- ('sid_ctx_length', c_uint),
- ('sid_ctx', c_ubyte * 32),
- ('default_verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
- ('generate_session_id', GEN_SESSION_CB),
- ('purpose', c_int),
- ('trust', c_int),
- ('quiet_shutdown', c_int),
-]
-assert sizeof(ssl_ctx_st) == 248, sizeof(ssl_ctx_st)
-assert alignment(ssl_ctx_st) == 4, alignment(ssl_ctx_st)
-cert_st._fields_ = [
-]
-class ssl2_state_st(Structure):
- pass
-class ssl3_state_st(Structure):
- pass
-ssl_st._fields_ = [
- ('version', c_int),
- ('type', c_int),
- ('method', POINTER(SSL_METHOD)),
- ('rbio', POINTER(BIO)),
- ('wbio', POINTER(BIO)),
- ('bbio', POINTER(BIO)),
- ('rwstate', c_int),
- ('in_handshake', c_int),
- ('handshake_func', CFUNCTYPE(c_int)),
- ('server', c_int),
- ('new_session', c_int),
- ('quiet_shutdown', c_int),
- ('shutdown', c_int),
- ('state', c_int),
- ('rstate', c_int),
- ('init_buf', POINTER(BUF_MEM)),
- ('init_msg', c_void_p),
- ('init_num', c_int),
- ('init_off', c_int),
- ('packet', POINTER(c_ubyte)),
- ('packet_length', c_uint),
- ('s2', POINTER(ssl2_state_st)),
- ('s3', POINTER(ssl3_state_st)),
- ('read_ahead', c_int),
- ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
- ('msg_callback_arg', c_void_p),
- ('hit', c_int),
- ('purpose', c_int),
- ('trust', c_int),
- ('cipher_list', POINTER(STACK)),
- ('cipher_list_by_id', POINTER(STACK)),
- ('enc_read_ctx', POINTER(EVP_CIPHER_CTX)),
- ('read_hash', POINTER(EVP_MD)),
- ('expand', POINTER(COMP_CTX)),
- ('enc_write_ctx', POINTER(EVP_CIPHER_CTX)),
- ('write_hash', POINTER(EVP_MD)),
- ('compress', POINTER(COMP_CTX)),
- ('cert', POINTER(cert_st)),
- ('sid_ctx_length', c_uint),
- ('sid_ctx', c_ubyte * 32),
- ('session', POINTER(SSL_SESSION)),
- ('generate_session_id', GEN_SESSION_CB),
- ('verify_mode', c_int),
- ('verify_depth', c_int),
- ('verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
- ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
- ('error', c_int),
- ('error_code', c_int),
- ('ctx', POINTER(SSL_CTX)),
- ('debug', c_int),
- ('verify_result', c_long),
- ('ex_data', CRYPTO_EX_DATA),
- ('client_CA', POINTER(STACK)),
- ('references', c_int),
- ('options', c_ulong),
- ('mode', c_ulong),
- ('max_cert_list', c_long),
- ('first_packet', c_int),
- ('client_version', c_int),
-]
-assert sizeof(ssl_st) == 268, sizeof(ssl_st)
-assert alignment(ssl_st) == 4, alignment(ssl_st)
-class N13ssl2_state_st4DOLLAR_19E(Structure):
- pass
-N13ssl2_state_st4DOLLAR_19E._fields_ = [
- ('conn_id_length', c_uint),
- ('cert_type', c_uint),
- ('cert_length', c_uint),
- ('csl', c_uint),
- ('clear', c_uint),
- ('enc', c_uint),
- ('ccl', c_ubyte * 32),
- ('cipher_spec_length', c_uint),
- ('session_id_length', c_uint),
- ('clen', c_uint),
- ('rlen', c_uint),
-]
-assert sizeof(N13ssl2_state_st4DOLLAR_19E) == 72, sizeof(N13ssl2_state_st4DOLLAR_19E)
-assert alignment(N13ssl2_state_st4DOLLAR_19E) == 4, alignment(N13ssl2_state_st4DOLLAR_19E)
-ssl2_state_st._fields_ = [
- ('three_byte_header', c_int),
- ('clear_text', c_int),
- ('escape', c_int),
- ('ssl2_rollback', c_int),
- ('wnum', c_uint),
- ('wpend_tot', c_int),
- ('wpend_buf', POINTER(c_ubyte)),
- ('wpend_off', c_int),
- ('wpend_len', c_int),
- ('wpend_ret', c_int),
- ('rbuf_left', c_int),
- ('rbuf_offs', c_int),
- ('rbuf', POINTER(c_ubyte)),
- ('wbuf', POINTER(c_ubyte)),
- ('write_ptr', POINTER(c_ubyte)),
- ('padding', c_uint),
- ('rlength', c_uint),
- ('ract_data_length', c_int),
- ('wlength', c_uint),
- ('wact_data_length', c_int),
- ('ract_data', POINTER(c_ubyte)),
- ('wact_data', POINTER(c_ubyte)),
- ('mac_data', POINTER(c_ubyte)),
- ('read_key', POINTER(c_ubyte)),
- ('write_key', POINTER(c_ubyte)),
- ('challenge_length', c_uint),
- ('challenge', c_ubyte * 32),
- ('conn_id_length', c_uint),
- ('conn_id', c_ubyte * 16),
- ('key_material_length', c_uint),
- ('key_material', c_ubyte * 48),
- ('read_sequence', c_ulong),
- ('write_sequence', c_ulong),
- ('tmp', N13ssl2_state_st4DOLLAR_19E),
-]
-assert sizeof(ssl2_state_st) == 288, sizeof(ssl2_state_st)
-assert alignment(ssl2_state_st) == 4, alignment(ssl2_state_st)
-SSL2_STATE = ssl2_state_st
-class ssl3_record_st(Structure):
- pass
-ssl3_record_st._fields_ = [
- ('type', c_int),
- ('length', c_uint),
- ('off', c_uint),
- ('data', POINTER(c_ubyte)),
- ('input', POINTER(c_ubyte)),
- ('comp', POINTER(c_ubyte)),
-]
-assert sizeof(ssl3_record_st) == 24, sizeof(ssl3_record_st)
-assert alignment(ssl3_record_st) == 4, alignment(ssl3_record_st)
-SSL3_RECORD = ssl3_record_st
-class ssl3_buffer_st(Structure):
- pass
-size_t = __darwin_size_t
-ssl3_buffer_st._fields_ = [
- ('buf', POINTER(c_ubyte)),
- ('len', size_t),
- ('offset', c_int),
- ('left', c_int),
-]
-assert sizeof(ssl3_buffer_st) == 16, sizeof(ssl3_buffer_st)
-assert alignment(ssl3_buffer_st) == 4, alignment(ssl3_buffer_st)
-SSL3_BUFFER = ssl3_buffer_st
-class N13ssl3_state_st4DOLLAR_20E(Structure):
- pass
-N13ssl3_state_st4DOLLAR_20E._fields_ = [
- ('cert_verify_md', c_ubyte * 72),
- ('finish_md', c_ubyte * 72),
- ('finish_md_len', c_int),
- ('peer_finish_md', c_ubyte * 72),
- ('peer_finish_md_len', c_int),
- ('message_size', c_ulong),
- ('message_type', c_int),
- ('new_cipher', POINTER(SSL_CIPHER)),
- ('dh', POINTER(DH)),
- ('next_state', c_int),
- ('reuse_message', c_int),
- ('cert_req', c_int),
- ('ctype_num', c_int),
- ('ctype', c_char * 7),
- ('ca_names', POINTER(STACK)),
- ('use_rsa_tmp', c_int),
- ('key_block_length', c_int),
- ('key_block', POINTER(c_ubyte)),
- ('new_sym_enc', POINTER(EVP_CIPHER)),
- ('new_hash', POINTER(EVP_MD)),
- ('new_compression', POINTER(SSL_COMP)),
- ('cert_request', c_int),
-]
-assert sizeof(N13ssl3_state_st4DOLLAR_20E) == 296, sizeof(N13ssl3_state_st4DOLLAR_20E)
-assert alignment(N13ssl3_state_st4DOLLAR_20E) == 4, alignment(N13ssl3_state_st4DOLLAR_20E)
-ssl3_state_st._fields_ = [
- ('flags', c_long),
- ('delay_buf_pop_ret', c_int),
- ('read_sequence', c_ubyte * 8),
- ('read_mac_secret', c_ubyte * 36),
- ('write_sequence', c_ubyte * 8),
- ('write_mac_secret', c_ubyte * 36),
- ('server_random', c_ubyte * 32),
- ('client_random', c_ubyte * 32),
- ('need_empty_fragments', c_int),
- ('empty_fragment_done', c_int),
- ('rbuf', SSL3_BUFFER),
- ('wbuf', SSL3_BUFFER),
- ('rrec', SSL3_RECORD),
- ('wrec', SSL3_RECORD),
- ('alert_fragment', c_ubyte * 2),
- ('alert_fragment_len', c_uint),
- ('handshake_fragment', c_ubyte * 4),
- ('handshake_fragment_len', c_uint),
- ('wnum', c_uint),
- ('wpend_tot', c_int),
- ('wpend_type', c_int),
- ('wpend_ret', c_int),
- ('wpend_buf', POINTER(c_ubyte)),
- ('finish_dgst1', EVP_MD_CTX),
- ('finish_dgst2', EVP_MD_CTX),
- ('change_cipher_spec', c_int),
- ('warn_alert', c_int),
- ('fatal_alert', c_int),
- ('alert_dispatch', c_int),
- ('send_alert', c_ubyte * 2),
- ('renegotiate', c_int),
- ('total_renegotiations', c_int),
- ('num_renegotiations', c_int),
- ('in_read_app_data', c_int),
- ('tmp', N13ssl3_state_st4DOLLAR_20E),
-]
-assert sizeof(ssl3_state_st) == 648, sizeof(ssl3_state_st)
-assert alignment(ssl3_state_st) == 4, alignment(ssl3_state_st)
-SSL3_STATE = ssl3_state_st
-stack_st._fields_ = [
- ('num', c_int),
- ('data', POINTER(STRING)),
- ('sorted', c_int),
- ('num_alloc', c_int),
- ('comp', CFUNCTYPE(c_int, POINTER(STRING), POINTER(STRING))),
-]
-assert sizeof(stack_st) == 20, sizeof(stack_st)
-assert alignment(stack_st) == 4, alignment(stack_st)
-class ui_st(Structure):
- pass
-ui_st._fields_ = [
-]
-UI = ui_st
-class ui_method_st(Structure):
- pass
-ui_method_st._fields_ = [
-]
-UI_METHOD = ui_method_st
-class ui_string_st(Structure):
- pass
-ui_string_st._fields_ = [
-]
-UI_STRING = ui_string_st
-
-# values for enumeration 'UI_string_types'
-UI_string_types = c_int # enum
-class X509_objects_st(Structure):
- pass
-X509_objects_st._fields_ = [
- ('nid', c_int),
- ('a2i', CFUNCTYPE(c_int)),
- ('i2a', CFUNCTYPE(c_int)),
-]
-assert sizeof(X509_objects_st) == 12, sizeof(X509_objects_st)
-assert alignment(X509_objects_st) == 4, alignment(X509_objects_st)
-X509_OBJECTS = X509_objects_st
-X509_algor_st._fields_ = [
- ('algorithm', POINTER(ASN1_OBJECT)),
- ('parameter', POINTER(ASN1_TYPE)),
-]
-assert sizeof(X509_algor_st) == 8, sizeof(X509_algor_st)
-assert alignment(X509_algor_st) == 4, alignment(X509_algor_st)
-class X509_val_st(Structure):
- pass
-X509_val_st._fields_ = [
- ('notBefore', POINTER(ASN1_TIME)),
- ('notAfter', POINTER(ASN1_TIME)),
-]
-assert sizeof(X509_val_st) == 8, sizeof(X509_val_st)
-assert alignment(X509_val_st) == 4, alignment(X509_val_st)
-X509_VAL = X509_val_st
-class X509_pubkey_st(Structure):
- pass
-X509_pubkey_st._fields_ = [
- ('algor', POINTER(X509_ALGOR)),
- ('public_key', POINTER(ASN1_BIT_STRING)),
- ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(X509_pubkey_st) == 12, sizeof(X509_pubkey_st)
-assert alignment(X509_pubkey_st) == 4, alignment(X509_pubkey_st)
-X509_PUBKEY = X509_pubkey_st
-class X509_sig_st(Structure):
- pass
-X509_sig_st._fields_ = [
- ('algor', POINTER(X509_ALGOR)),
- ('digest', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(X509_sig_st) == 8, sizeof(X509_sig_st)
-assert alignment(X509_sig_st) == 4, alignment(X509_sig_st)
-X509_SIG = X509_sig_st
-class X509_name_entry_st(Structure):
- pass
-X509_name_entry_st._fields_ = [
- ('object', POINTER(ASN1_OBJECT)),
- ('value', POINTER(ASN1_STRING)),
- ('set', c_int),
- ('size', c_int),
-]
-assert sizeof(X509_name_entry_st) == 16, sizeof(X509_name_entry_st)
-assert alignment(X509_name_entry_st) == 4, alignment(X509_name_entry_st)
-X509_NAME_ENTRY = X509_name_entry_st
-X509_name_st._fields_ = [
- ('entries', POINTER(STACK)),
- ('modified', c_int),
- ('bytes', POINTER(BUF_MEM)),
- ('hash', c_ulong),
-]
-assert sizeof(X509_name_st) == 16, sizeof(X509_name_st)
-assert alignment(X509_name_st) == 4, alignment(X509_name_st)
-class X509_extension_st(Structure):
- pass
-X509_extension_st._fields_ = [
- ('object', POINTER(ASN1_OBJECT)),
- ('critical', ASN1_BOOLEAN),
- ('value', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(X509_extension_st) == 12, sizeof(X509_extension_st)
-assert alignment(X509_extension_st) == 4, alignment(X509_extension_st)
-X509_EXTENSION = X509_extension_st
-class x509_attributes_st(Structure):
- pass
-class N18x509_attributes_st4DOLLAR_13E(Union):
- pass
-N18x509_attributes_st4DOLLAR_13E._fields_ = [
- ('ptr', STRING),
- ('set', POINTER(STACK)),
- ('single', POINTER(ASN1_TYPE)),
-]
-assert sizeof(N18x509_attributes_st4DOLLAR_13E) == 4, sizeof(N18x509_attributes_st4DOLLAR_13E)
-assert alignment(N18x509_attributes_st4DOLLAR_13E) == 4, alignment(N18x509_attributes_st4DOLLAR_13E)
-x509_attributes_st._fields_ = [
- ('object', POINTER(ASN1_OBJECT)),
- ('single', c_int),
- ('value', N18x509_attributes_st4DOLLAR_13E),
-]
-assert sizeof(x509_attributes_st) == 12, sizeof(x509_attributes_st)
-assert alignment(x509_attributes_st) == 4, alignment(x509_attributes_st)
-X509_ATTRIBUTE = x509_attributes_st
-class X509_req_info_st(Structure):
- pass
-X509_req_info_st._fields_ = [
- ('enc', ASN1_ENCODING),
- ('version', POINTER(ASN1_INTEGER)),
- ('subject', POINTER(X509_NAME)),
- ('pubkey', POINTER(X509_PUBKEY)),
- ('attributes', POINTER(STACK)),
-]
-assert sizeof(X509_req_info_st) == 28, sizeof(X509_req_info_st)
-assert alignment(X509_req_info_st) == 4, alignment(X509_req_info_st)
-X509_REQ_INFO = X509_req_info_st
-class X509_req_st(Structure):
- pass
-X509_req_st._fields_ = [
- ('req_info', POINTER(X509_REQ_INFO)),
- ('sig_alg', POINTER(X509_ALGOR)),
- ('signature', POINTER(ASN1_BIT_STRING)),
- ('references', c_int),
-]
-assert sizeof(X509_req_st) == 16, sizeof(X509_req_st)
-assert alignment(X509_req_st) == 4, alignment(X509_req_st)
-X509_REQ = X509_req_st
-class x509_cinf_st(Structure):
- pass
-x509_cinf_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('serialNumber', POINTER(ASN1_INTEGER)),
- ('signature', POINTER(X509_ALGOR)),
- ('issuer', POINTER(X509_NAME)),
- ('validity', POINTER(X509_VAL)),
- ('subject', POINTER(X509_NAME)),
- ('key', POINTER(X509_PUBKEY)),
- ('issuerUID', POINTER(ASN1_BIT_STRING)),
- ('subjectUID', POINTER(ASN1_BIT_STRING)),
- ('extensions', POINTER(STACK)),
-]
-assert sizeof(x509_cinf_st) == 40, sizeof(x509_cinf_st)
-assert alignment(x509_cinf_st) == 4, alignment(x509_cinf_st)
-X509_CINF = x509_cinf_st
-class x509_cert_aux_st(Structure):
- pass
-x509_cert_aux_st._fields_ = [
- ('trust', POINTER(STACK)),
- ('reject', POINTER(STACK)),
- ('alias', POINTER(ASN1_UTF8STRING)),
- ('keyid', POINTER(ASN1_OCTET_STRING)),
- ('other', POINTER(STACK)),
-]
-assert sizeof(x509_cert_aux_st) == 20, sizeof(x509_cert_aux_st)
-assert alignment(x509_cert_aux_st) == 4, alignment(x509_cert_aux_st)
-X509_CERT_AUX = x509_cert_aux_st
-class AUTHORITY_KEYID_st(Structure):
- pass
-x509_st._fields_ = [
- ('cert_info', POINTER(X509_CINF)),
- ('sig_alg', POINTER(X509_ALGOR)),
- ('signature', POINTER(ASN1_BIT_STRING)),
- ('valid', c_int),
- ('references', c_int),
- ('name', STRING),
- ('ex_data', CRYPTO_EX_DATA),
- ('ex_pathlen', c_long),
- ('ex_flags', c_ulong),
- ('ex_kusage', c_ulong),
- ('ex_xkusage', c_ulong),
- ('ex_nscert', c_ulong),
- ('skid', POINTER(ASN1_OCTET_STRING)),
- ('akid', POINTER(AUTHORITY_KEYID_st)),
- ('sha1_hash', c_ubyte * 20),
- ('aux', POINTER(X509_CERT_AUX)),
-]
-assert sizeof(x509_st) == 84, sizeof(x509_st)
-assert alignment(x509_st) == 4, alignment(x509_st)
-AUTHORITY_KEYID_st._fields_ = [
-]
-class x509_trust_st(Structure):
- pass
-x509_trust_st._fields_ = [
- ('trust', c_int),
- ('flags', c_int),
- ('check_trust', CFUNCTYPE(c_int, POINTER(x509_trust_st), POINTER(X509), c_int)),
- ('name', STRING),
- ('arg1', c_int),
- ('arg2', c_void_p),
-]
-assert sizeof(x509_trust_st) == 24, sizeof(x509_trust_st)
-assert alignment(x509_trust_st) == 4, alignment(x509_trust_st)
-X509_TRUST = x509_trust_st
-class X509_revoked_st(Structure):
- pass
-X509_revoked_st._fields_ = [
- ('serialNumber', POINTER(ASN1_INTEGER)),
- ('revocationDate', POINTER(ASN1_TIME)),
- ('extensions', POINTER(STACK)),
- ('sequence', c_int),
-]
-assert sizeof(X509_revoked_st) == 16, sizeof(X509_revoked_st)
-assert alignment(X509_revoked_st) == 4, alignment(X509_revoked_st)
-X509_REVOKED = X509_revoked_st
-class X509_crl_info_st(Structure):
- pass
-X509_crl_info_st._fields_ = [
- ('version', POINTER(ASN1_INTEGER)),
- ('sig_alg', POINTER(X509_ALGOR)),
- ('issuer', POINTER(X509_NAME)),
- ('lastUpdate', POINTER(ASN1_TIME)),
- ('nextUpdate', POINTER(ASN1_TIME)),
- ('revoked', POINTER(STACK)),
- ('extensions', POINTER(STACK)),
- ('enc', ASN1_ENCODING),
-]
-assert sizeof(X509_crl_info_st) == 40, sizeof(X509_crl_info_st)
-assert alignment(X509_crl_info_st) == 4, alignment(X509_crl_info_st)
-X509_CRL_INFO = X509_crl_info_st
-X509_crl_st._fields_ = [
- ('crl', POINTER(X509_CRL_INFO)),
- ('sig_alg', POINTER(X509_ALGOR)),
- ('signature', POINTER(ASN1_BIT_STRING)),
- ('references', c_int),
-]
-assert sizeof(X509_crl_st) == 16, sizeof(X509_crl_st)
-assert alignment(X509_crl_st) == 4, alignment(X509_crl_st)
-class private_key_st(Structure):
- pass
-private_key_st._fields_ = [
- ('version', c_int),
- ('enc_algor', POINTER(X509_ALGOR)),
- ('enc_pkey', POINTER(ASN1_OCTET_STRING)),
- ('dec_pkey', POINTER(EVP_PKEY)),
- ('key_length', c_int),
- ('key_data', STRING),
- ('key_free', c_int),
- ('cipher', EVP_CIPHER_INFO),
- ('references', c_int),
-]
-assert sizeof(private_key_st) == 52, sizeof(private_key_st)
-assert alignment(private_key_st) == 4, alignment(private_key_st)
-X509_PKEY = private_key_st
-class X509_info_st(Structure):
- pass
-X509_info_st._fields_ = [
- ('x509', POINTER(X509)),
- ('crl', POINTER(X509_CRL)),
- ('x_pkey', POINTER(X509_PKEY)),
- ('enc_cipher', EVP_CIPHER_INFO),
- ('enc_len', c_int),
- ('enc_data', STRING),
- ('references', c_int),
-]
-assert sizeof(X509_info_st) == 44, sizeof(X509_info_st)
-assert alignment(X509_info_st) == 4, alignment(X509_info_st)
-X509_INFO = X509_info_st
-class Netscape_spkac_st(Structure):
- pass
-Netscape_spkac_st._fields_ = [
- ('pubkey', POINTER(X509_PUBKEY)),
- ('challenge', POINTER(ASN1_IA5STRING)),
-]
-assert sizeof(Netscape_spkac_st) == 8, sizeof(Netscape_spkac_st)
-assert alignment(Netscape_spkac_st) == 4, alignment(Netscape_spkac_st)
-NETSCAPE_SPKAC = Netscape_spkac_st
-class Netscape_spki_st(Structure):
- pass
-Netscape_spki_st._fields_ = [
- ('spkac', POINTER(NETSCAPE_SPKAC)),
- ('sig_algor', POINTER(X509_ALGOR)),
- ('signature', POINTER(ASN1_BIT_STRING)),
-]
-assert sizeof(Netscape_spki_st) == 12, sizeof(Netscape_spki_st)
-assert alignment(Netscape_spki_st) == 4, alignment(Netscape_spki_st)
-NETSCAPE_SPKI = Netscape_spki_st
-class Netscape_certificate_sequence(Structure):
- pass
-Netscape_certificate_sequence._fields_ = [
- ('type', POINTER(ASN1_OBJECT)),
- ('certs', POINTER(STACK)),
-]
-assert sizeof(Netscape_certificate_sequence) == 8, sizeof(Netscape_certificate_sequence)
-assert alignment(Netscape_certificate_sequence) == 4, alignment(Netscape_certificate_sequence)
-NETSCAPE_CERT_SEQUENCE = Netscape_certificate_sequence
-class PBEPARAM_st(Structure):
- pass
-PBEPARAM_st._fields_ = [
- ('salt', POINTER(ASN1_OCTET_STRING)),
- ('iter', POINTER(ASN1_INTEGER)),
-]
-assert sizeof(PBEPARAM_st) == 8, sizeof(PBEPARAM_st)
-assert alignment(PBEPARAM_st) == 4, alignment(PBEPARAM_st)
-PBEPARAM = PBEPARAM_st
-class PBE2PARAM_st(Structure):
- pass
-PBE2PARAM_st._fields_ = [
- ('keyfunc', POINTER(X509_ALGOR)),
- ('encryption', POINTER(X509_ALGOR)),
-]
-assert sizeof(PBE2PARAM_st) == 8, sizeof(PBE2PARAM_st)
-assert alignment(PBE2PARAM_st) == 4, alignment(PBE2PARAM_st)
-PBE2PARAM = PBE2PARAM_st
-class PBKDF2PARAM_st(Structure):
- pass
-PBKDF2PARAM_st._fields_ = [
- ('salt', POINTER(ASN1_TYPE)),
- ('iter', POINTER(ASN1_INTEGER)),
- ('keylength', POINTER(ASN1_INTEGER)),
- ('prf', POINTER(X509_ALGOR)),
-]
-assert sizeof(PBKDF2PARAM_st) == 16, sizeof(PBKDF2PARAM_st)
-assert alignment(PBKDF2PARAM_st) == 4, alignment(PBKDF2PARAM_st)
-PBKDF2PARAM = PBKDF2PARAM_st
-class pkcs8_priv_key_info_st(Structure):
- pass
-pkcs8_priv_key_info_st._fields_ = [
- ('broken', c_int),
- ('version', POINTER(ASN1_INTEGER)),
- ('pkeyalg', POINTER(X509_ALGOR)),
- ('pkey', POINTER(ASN1_TYPE)),
- ('attributes', POINTER(STACK)),
-]
-assert sizeof(pkcs8_priv_key_info_st) == 20, sizeof(pkcs8_priv_key_info_st)
-assert alignment(pkcs8_priv_key_info_st) == 4, alignment(pkcs8_priv_key_info_st)
-PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st
-class x509_hash_dir_st(Structure):
- pass
-x509_hash_dir_st._fields_ = [
- ('num_dirs', c_int),
- ('dirs', POINTER(STRING)),
- ('dirs_type', POINTER(c_int)),
- ('num_dirs_alloced', c_int),
-]
-assert sizeof(x509_hash_dir_st) == 16, sizeof(x509_hash_dir_st)
-assert alignment(x509_hash_dir_st) == 4, alignment(x509_hash_dir_st)
-X509_HASH_DIR_CTX = x509_hash_dir_st
-class x509_file_st(Structure):
- pass
-x509_file_st._fields_ = [
- ('num_paths', c_int),
- ('num_alloced', c_int),
- ('paths', POINTER(STRING)),
- ('path_type', POINTER(c_int)),
-]
-assert sizeof(x509_file_st) == 16, sizeof(x509_file_st)
-assert alignment(x509_file_st) == 4, alignment(x509_file_st)
-X509_CERT_FILE_CTX = x509_file_st
-class x509_object_st(Structure):
- pass
-class N14x509_object_st4DOLLAR_14E(Union):
- pass
-N14x509_object_st4DOLLAR_14E._fields_ = [
- ('ptr', STRING),
- ('x509', POINTER(X509)),
- ('crl', POINTER(X509_CRL)),
- ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(N14x509_object_st4DOLLAR_14E) == 4, sizeof(N14x509_object_st4DOLLAR_14E)
-assert alignment(N14x509_object_st4DOLLAR_14E) == 4, alignment(N14x509_object_st4DOLLAR_14E)
-x509_object_st._fields_ = [
- ('type', c_int),
- ('data', N14x509_object_st4DOLLAR_14E),
-]
-assert sizeof(x509_object_st) == 8, sizeof(x509_object_st)
-assert alignment(x509_object_st) == 4, alignment(x509_object_st)
-X509_OBJECT = x509_object_st
-class x509_lookup_st(Structure):
- pass
-X509_LOOKUP = x509_lookup_st
-class x509_lookup_method_st(Structure):
- pass
-x509_lookup_method_st._fields_ = [
- ('name', STRING),
- ('new_item', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
- ('free', CFUNCTYPE(None, POINTER(X509_LOOKUP))),
- ('init', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
- ('shutdown', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
- ('ctrl', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, STRING, c_long, POINTER(STRING))),
- ('get_by_subject', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(X509_NAME), POINTER(X509_OBJECT))),
- ('get_by_issuer_serial', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(X509_NAME), POINTER(ASN1_INTEGER), POINTER(X509_OBJECT))),
- ('get_by_fingerprint', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(c_ubyte), c_int, POINTER(X509_OBJECT))),
- ('get_by_alias', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, STRING, c_int, POINTER(X509_OBJECT))),
-]
-assert sizeof(x509_lookup_method_st) == 40, sizeof(x509_lookup_method_st)
-assert alignment(x509_lookup_method_st) == 4, alignment(x509_lookup_method_st)
-X509_LOOKUP_METHOD = x509_lookup_method_st
-x509_store_st._fields_ = [
- ('cache', c_int),
- ('objs', POINTER(STACK)),
- ('get_cert_methods', POINTER(STACK)),
- ('flags', c_ulong),
- ('purpose', c_int),
- ('trust', c_int),
- ('verify', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
- ('verify_cb', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
- ('get_issuer', CFUNCTYPE(c_int, POINTER(POINTER(X509)), POINTER(X509_STORE_CTX), POINTER(X509))),
- ('check_issued', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509), POINTER(X509))),
- ('check_revocation', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
- ('get_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(POINTER(X509_CRL)), POINTER(X509))),
- ('check_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL))),
- ('cert_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL), POINTER(X509))),
- ('cleanup', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
- ('ex_data', CRYPTO_EX_DATA),
- ('references', c_int),
- ('depth', c_int),
-]
-assert sizeof(x509_store_st) == 76, sizeof(x509_store_st)
-assert alignment(x509_store_st) == 4, alignment(x509_store_st)
-x509_lookup_st._fields_ = [
- ('init', c_int),
- ('skip', c_int),
- ('method', POINTER(X509_LOOKUP_METHOD)),
- ('method_data', STRING),
- ('store_ctx', POINTER(X509_STORE)),
-]
-assert sizeof(x509_lookup_st) == 20, sizeof(x509_lookup_st)
-assert alignment(x509_lookup_st) == 4, alignment(x509_lookup_st)
-time_t = __darwin_time_t
-x509_store_ctx_st._fields_ = [
- ('ctx', POINTER(X509_STORE)),
- ('current_method', c_int),
- ('cert', POINTER(X509)),
- ('untrusted', POINTER(STACK)),
- ('purpose', c_int),
- ('trust', c_int),
- ('check_time', time_t),
- ('flags', c_ulong),
- ('other_ctx', c_void_p),
- ('verify', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
- ('verify_cb', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
- ('get_issuer', CFUNCTYPE(c_int, POINTER(POINTER(X509)), POINTER(X509_STORE_CTX), POINTER(X509))),
- ('check_issued', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509), POINTER(X509))),
- ('check_revocation', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
- ('get_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(POINTER(X509_CRL)), POINTER(X509))),
- ('check_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL))),
- ('cert_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL), POINTER(X509))),
- ('cleanup', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
- ('depth', c_int),
- ('valid', c_int),
- ('last_untrusted', c_int),
- ('chain', POINTER(STACK)),
- ('error_depth', c_int),
- ('error', c_int),
- ('current_cert', POINTER(X509)),
- ('current_issuer', POINTER(X509)),
- ('current_crl', POINTER(X509_CRL)),
- ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(x509_store_ctx_st) == 116, sizeof(x509_store_ctx_st)
-assert alignment(x509_store_ctx_st) == 4, alignment(x509_store_ctx_st)
-va_list = __darwin_va_list
-__darwin_off_t = __int64_t
-fpos_t = __darwin_off_t
-class __sbuf(Structure):
- pass
-__sbuf._fields_ = [
- ('_base', POINTER(c_ubyte)),
- ('_size', c_int),
-]
-assert sizeof(__sbuf) == 8, sizeof(__sbuf)
-assert alignment(__sbuf) == 4, alignment(__sbuf)
-class __sFILEX(Structure):
- pass
-__sFILEX._fields_ = [
-]
-class __sFILE(Structure):
- pass
-__sFILE._pack_ = 4
-__sFILE._fields_ = [
- ('_p', POINTER(c_ubyte)),
- ('_r', c_int),
- ('_w', c_int),
- ('_flags', c_short),
- ('_file', c_short),
- ('_bf', __sbuf),
- ('_lbfsize', c_int),
- ('_cookie', c_void_p),
- ('_close', CFUNCTYPE(c_int, c_void_p)),
- ('_read', CFUNCTYPE(c_int, c_void_p, STRING, c_int)),
- ('_seek', CFUNCTYPE(fpos_t, c_void_p, c_longlong, c_int)),
- ('_write', CFUNCTYPE(c_int, c_void_p, STRING, c_int)),
- ('_ub', __sbuf),
- ('_extra', POINTER(__sFILEX)),
- ('_ur', c_int),
- ('_ubuf', c_ubyte * 3),
- ('_nbuf', c_ubyte * 1),
- ('_lb', __sbuf),
- ('_blksize', c_int),
- ('_offset', fpos_t),
-]
-assert sizeof(__sFILE) == 88, sizeof(__sFILE)
-assert alignment(__sFILE) == 4, alignment(__sFILE)
-FILE = __sFILE
-ct_rune_t = __darwin_ct_rune_t
-rune_t = __darwin_rune_t
-class div_t(Structure):
- pass
-div_t._fields_ = [
- ('quot', c_int),
- ('rem', c_int),
-]
-assert sizeof(div_t) == 8, sizeof(div_t)
-assert alignment(div_t) == 4, alignment(div_t)
-class ldiv_t(Structure):
- pass
-ldiv_t._fields_ = [
- ('quot', c_long),
- ('rem', c_long),
-]
-assert sizeof(ldiv_t) == 8, sizeof(ldiv_t)
-assert alignment(ldiv_t) == 4, alignment(ldiv_t)
-class lldiv_t(Structure):
- pass
-lldiv_t._pack_ = 4
-lldiv_t._fields_ = [
- ('quot', c_longlong),
- ('rem', c_longlong),
-]
-assert sizeof(lldiv_t) == 16, sizeof(lldiv_t)
-assert alignment(lldiv_t) == 4, alignment(lldiv_t)
-__darwin_dev_t = __int32_t
-dev_t = __darwin_dev_t
-__darwin_mode_t = __uint16_t
-mode_t = __darwin_mode_t
-class mcontext(Structure):
- pass
-mcontext._fields_ = [
-]
-class mcontext64(Structure):
- pass
-mcontext64._fields_ = [
-]
-class __darwin_pthread_handler_rec(Structure):
- pass
-__darwin_pthread_handler_rec._fields_ = [
- ('__routine', CFUNCTYPE(None, c_void_p)),
- ('__arg', c_void_p),
- ('__next', POINTER(__darwin_pthread_handler_rec)),
-]
-assert sizeof(__darwin_pthread_handler_rec) == 12, sizeof(__darwin_pthread_handler_rec)
-assert alignment(__darwin_pthread_handler_rec) == 4, alignment(__darwin_pthread_handler_rec)
-class _opaque_pthread_attr_t(Structure):
- pass
-_opaque_pthread_attr_t._fields_ = [
- ('__sig', c_long),
- ('__opaque', c_char * 36),
-]
-assert sizeof(_opaque_pthread_attr_t) == 40, sizeof(_opaque_pthread_attr_t)
-assert alignment(_opaque_pthread_attr_t) == 4, alignment(_opaque_pthread_attr_t)
-class _opaque_pthread_cond_t(Structure):
- pass
-_opaque_pthread_cond_t._fields_ = [
- ('__sig', c_long),
- ('__opaque', c_char * 24),
-]
-assert sizeof(_opaque_pthread_cond_t) == 28, sizeof(_opaque_pthread_cond_t)
-assert alignment(_opaque_pthread_cond_t) == 4, alignment(_opaque_pthread_cond_t)
-class _opaque_pthread_condattr_t(Structure):
- pass
-_opaque_pthread_condattr_t._fields_ = [
- ('__sig', c_long),
- ('__opaque', c_char * 4),
-]
-assert sizeof(_opaque_pthread_condattr_t) == 8, sizeof(_opaque_pthread_condattr_t)
-assert alignment(_opaque_pthread_condattr_t) == 4, alignment(_opaque_pthread_condattr_t)
-class _opaque_pthread_mutex_t(Structure):
- pass
-_opaque_pthread_mutex_t._fields_ = [
- ('__sig', c_long),
- ('__opaque', c_char * 40),
-]
-assert sizeof(_opaque_pthread_mutex_t) == 44, sizeof(_opaque_pthread_mutex_t)
-assert alignment(_opaque_pthread_mutex_t) == 4, alignment(_opaque_pthread_mutex_t)
-class _opaque_pthread_mutexattr_t(Structure):
- pass
-_opaque_pthread_mutexattr_t._fields_ = [
- ('__sig', c_long),
- ('__opaque', c_char * 8),
-]
-assert sizeof(_opaque_pthread_mutexattr_t) == 12, sizeof(_opaque_pthread_mutexattr_t)
-assert alignment(_opaque_pthread_mutexattr_t) == 4, alignment(_opaque_pthread_mutexattr_t)
-class _opaque_pthread_once_t(Structure):
- pass
-_opaque_pthread_once_t._fields_ = [
- ('__sig', c_long),
- ('__opaque', c_char * 4),
-]
-assert sizeof(_opaque_pthread_once_t) == 8, sizeof(_opaque_pthread_once_t)
-assert alignment(_opaque_pthread_once_t) == 4, alignment(_opaque_pthread_once_t)
-class _opaque_pthread_rwlock_t(Structure):
- pass
-_opaque_pthread_rwlock_t._fields_ = [
- ('__sig', c_long),
- ('__opaque', c_char * 124),
-]
-assert sizeof(_opaque_pthread_rwlock_t) == 128, sizeof(_opaque_pthread_rwlock_t)
-assert alignment(_opaque_pthread_rwlock_t) == 4, alignment(_opaque_pthread_rwlock_t)
-class _opaque_pthread_rwlockattr_t(Structure):
- pass
-_opaque_pthread_rwlockattr_t._fields_ = [
- ('__sig', c_long),
- ('__opaque', c_char * 12),
-]
-assert sizeof(_opaque_pthread_rwlockattr_t) == 16, sizeof(_opaque_pthread_rwlockattr_t)
-assert alignment(_opaque_pthread_rwlockattr_t) == 4, alignment(_opaque_pthread_rwlockattr_t)
-class _opaque_pthread_t(Structure):
- pass
-_opaque_pthread_t._fields_ = [
- ('__sig', c_long),
- ('__cleanup_stack', POINTER(__darwin_pthread_handler_rec)),
- ('__opaque', c_char * 596),
-]
-assert sizeof(_opaque_pthread_t) == 604, sizeof(_opaque_pthread_t)
-assert alignment(_opaque_pthread_t) == 4, alignment(_opaque_pthread_t)
-__darwin_blkcnt_t = __int64_t
-__darwin_blksize_t = __int32_t
-__darwin_fsblkcnt_t = c_uint
-__darwin_fsfilcnt_t = c_uint
-__darwin_gid_t = __uint32_t
-__darwin_id_t = __uint32_t
-__darwin_ino_t = __uint32_t
-__darwin_mach_port_name_t = __darwin_natural_t
-__darwin_mach_port_t = __darwin_mach_port_name_t
-__darwin_mcontext_t = POINTER(mcontext)
-__darwin_mcontext64_t = POINTER(mcontext64)
-__darwin_pid_t = __int32_t
-__darwin_pthread_attr_t = _opaque_pthread_attr_t
-__darwin_pthread_cond_t = _opaque_pthread_cond_t
-__darwin_pthread_condattr_t = _opaque_pthread_condattr_t
-__darwin_pthread_key_t = c_ulong
-__darwin_pthread_mutex_t = _opaque_pthread_mutex_t
-__darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t
-__darwin_pthread_once_t = _opaque_pthread_once_t
-__darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t
-__darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t
-__darwin_pthread_t = POINTER(_opaque_pthread_t)
-__darwin_sigset_t = __uint32_t
-__darwin_suseconds_t = __int32_t
-__darwin_uid_t = __uint32_t
-__darwin_useconds_t = __uint32_t
-__darwin_uuid_t = c_ubyte * 16
-class sigaltstack(Structure):
- pass
-sigaltstack._fields_ = [
- ('ss_sp', c_void_p),
- ('ss_size', __darwin_size_t),
- ('ss_flags', c_int),
-]
-assert sizeof(sigaltstack) == 12, sizeof(sigaltstack)
-assert alignment(sigaltstack) == 4, alignment(sigaltstack)
-__darwin_stack_t = sigaltstack
-class ucontext(Structure):
- pass
-ucontext._fields_ = [
- ('uc_onstack', c_int),
- ('uc_sigmask', __darwin_sigset_t),
- ('uc_stack', __darwin_stack_t),
- ('uc_link', POINTER(ucontext)),
- ('uc_mcsize', __darwin_size_t),
- ('uc_mcontext', __darwin_mcontext_t),
-]
-assert sizeof(ucontext) == 32, sizeof(ucontext)
-assert alignment(ucontext) == 4, alignment(ucontext)
-__darwin_ucontext_t = ucontext
-class ucontext64(Structure):
- pass
-ucontext64._fields_ = [
- ('uc_onstack', c_int),
- ('uc_sigmask', __darwin_sigset_t),
- ('uc_stack', __darwin_stack_t),
- ('uc_link', POINTER(ucontext64)),
- ('uc_mcsize', __darwin_size_t),
- ('uc_mcontext64', __darwin_mcontext64_t),
-]
-assert sizeof(ucontext64) == 32, sizeof(ucontext64)
-assert alignment(ucontext64) == 4, alignment(ucontext64)
-__darwin_ucontext64_t = ucontext64
-class timeval(Structure):
- pass
-timeval._fields_ = [
- ('tv_sec', __darwin_time_t),
- ('tv_usec', __darwin_suseconds_t),
-]
-assert sizeof(timeval) == 8, sizeof(timeval)
-assert alignment(timeval) == 4, alignment(timeval)
-rlim_t = __int64_t
-class rusage(Structure):
- pass
-rusage._fields_ = [
- ('ru_utime', timeval),
- ('ru_stime', timeval),
- ('ru_maxrss', c_long),
- ('ru_ixrss', c_long),
- ('ru_idrss', c_long),
- ('ru_isrss', c_long),
- ('ru_minflt', c_long),
- ('ru_majflt', c_long),
- ('ru_nswap', c_long),
- ('ru_inblock', c_long),
- ('ru_oublock', c_long),
- ('ru_msgsnd', c_long),
- ('ru_msgrcv', c_long),
- ('ru_nsignals', c_long),
- ('ru_nvcsw', c_long),
- ('ru_nivcsw', c_long),
-]
-assert sizeof(rusage) == 72, sizeof(rusage)
-assert alignment(rusage) == 4, alignment(rusage)
-class rlimit(Structure):
- pass
-rlimit._pack_ = 4
-rlimit._fields_ = [
- ('rlim_cur', rlim_t),
- ('rlim_max', rlim_t),
-]
-assert sizeof(rlimit) == 16, sizeof(rlimit)
-assert alignment(rlimit) == 4, alignment(rlimit)
-mcontext_t = __darwin_mcontext_t
-mcontext64_t = __darwin_mcontext64_t
-pthread_attr_t = __darwin_pthread_attr_t
-sigset_t = __darwin_sigset_t
-ucontext_t = __darwin_ucontext_t
-ucontext64_t = __darwin_ucontext64_t
-uid_t = __darwin_uid_t
-class sigval(Union):
- pass
-sigval._fields_ = [
- ('sival_int', c_int),
- ('sival_ptr', c_void_p),
-]
-assert sizeof(sigval) == 4, sizeof(sigval)
-assert alignment(sigval) == 4, alignment(sigval)
-class sigevent(Structure):
- pass
-sigevent._fields_ = [
- ('sigev_notify', c_int),
- ('sigev_signo', c_int),
- ('sigev_value', sigval),
- ('sigev_notify_function', CFUNCTYPE(None, sigval)),
- ('sigev_notify_attributes', POINTER(pthread_attr_t)),
-]
-assert sizeof(sigevent) == 20, sizeof(sigevent)
-assert alignment(sigevent) == 4, alignment(sigevent)
-class __siginfo(Structure):
- pass
-pid_t = __darwin_pid_t
-__siginfo._fields_ = [
- ('si_signo', c_int),
- ('si_errno', c_int),
- ('si_code', c_int),
- ('si_pid', pid_t),
- ('si_uid', uid_t),
- ('si_status', c_int),
- ('si_addr', c_void_p),
- ('si_value', sigval),
- ('si_band', c_long),
- ('pad', c_ulong * 7),
-]
-assert sizeof(__siginfo) == 64, sizeof(__siginfo)
-assert alignment(__siginfo) == 4, alignment(__siginfo)
-siginfo_t = __siginfo
-class __sigaction_u(Union):
- pass
-__sigaction_u._fields_ = [
- ('__sa_handler', CFUNCTYPE(None, c_int)),
- ('__sa_sigaction', CFUNCTYPE(None, c_int, POINTER(__siginfo), c_void_p)),
-]
-assert sizeof(__sigaction_u) == 4, sizeof(__sigaction_u)
-assert alignment(__sigaction_u) == 4, alignment(__sigaction_u)
-class __sigaction(Structure):
- pass
-__sigaction._fields_ = [
- ('__sigaction_u', __sigaction_u),
- ('sa_tramp', CFUNCTYPE(None, c_void_p, c_int, c_int, POINTER(siginfo_t), c_void_p)),
- ('sa_mask', sigset_t),
- ('sa_flags', c_int),
-]
-assert sizeof(__sigaction) == 16, sizeof(__sigaction)
-assert alignment(__sigaction) == 4, alignment(__sigaction)
-class sigaction(Structure):
- pass
-sigaction._fields_ = [
- ('__sigaction_u', __sigaction_u),
- ('sa_mask', sigset_t),
- ('sa_flags', c_int),
-]
-assert sizeof(sigaction) == 12, sizeof(sigaction)
-assert alignment(sigaction) == 4, alignment(sigaction)
-sig_t = CFUNCTYPE(None, c_int)
-stack_t = __darwin_stack_t
-class sigvec(Structure):
- pass
-sigvec._fields_ = [
- ('sv_handler', CFUNCTYPE(None, c_int)),
- ('sv_mask', c_int),
- ('sv_flags', c_int),
-]
-assert sizeof(sigvec) == 12, sizeof(sigvec)
-assert alignment(sigvec) == 4, alignment(sigvec)
-class sigstack(Structure):
- pass
-sigstack._fields_ = [
- ('ss_sp', STRING),
- ('ss_onstack', c_int),
-]
-assert sizeof(sigstack) == 8, sizeof(sigstack)
-assert alignment(sigstack) == 4, alignment(sigstack)
-u_char = c_ubyte
-u_short = c_ushort
-u_int = c_uint
-u_long = c_ulong
-ushort = c_ushort
-uint = c_uint
-u_quad_t = u_int64_t
-quad_t = int64_t
-qaddr_t = POINTER(quad_t)
-caddr_t = STRING
-daddr_t = int32_t
-fixpt_t = u_int32_t
-blkcnt_t = __darwin_blkcnt_t
-blksize_t = __darwin_blksize_t
-gid_t = __darwin_gid_t
-in_addr_t = __uint32_t
-in_port_t = __uint16_t
-ino_t = __darwin_ino_t
-key_t = __int32_t
-nlink_t = __uint16_t
-off_t = __darwin_off_t
-segsz_t = int32_t
-swblk_t = int32_t
-clock_t = __darwin_clock_t
-ssize_t = __darwin_ssize_t
-useconds_t = __darwin_useconds_t
-suseconds_t = __darwin_suseconds_t
-fd_mask = __int32_t
-class fd_set(Structure):
- pass
-fd_set._fields_ = [
- ('fds_bits', __int32_t * 32),
-]
-assert sizeof(fd_set) == 128, sizeof(fd_set)
-assert alignment(fd_set) == 4, alignment(fd_set)
-pthread_cond_t = __darwin_pthread_cond_t
-pthread_condattr_t = __darwin_pthread_condattr_t
-pthread_mutex_t = __darwin_pthread_mutex_t
-pthread_mutexattr_t = __darwin_pthread_mutexattr_t
-pthread_once_t = __darwin_pthread_once_t
-pthread_rwlock_t = __darwin_pthread_rwlock_t
-pthread_rwlockattr_t = __darwin_pthread_rwlockattr_t
-pthread_t = __darwin_pthread_t
-pthread_key_t = __darwin_pthread_key_t
-fsblkcnt_t = __darwin_fsblkcnt_t
-fsfilcnt_t = __darwin_fsfilcnt_t
-
-# values for enumeration 'idtype_t'
-idtype_t = c_int # enum
-id_t = __darwin_id_t
-class wait(Union):
- pass
-class N4wait3DOLLAR_3E(Structure):
- pass
-N4wait3DOLLAR_3E._fields_ = [
- ('w_Termsig', c_uint, 7),
- ('w_Coredump', c_uint, 1),
- ('w_Retcode', c_uint, 8),
- ('w_Filler', c_uint, 16),
-]
-assert sizeof(N4wait3DOLLAR_3E) == 4, sizeof(N4wait3DOLLAR_3E)
-assert alignment(N4wait3DOLLAR_3E) == 4, alignment(N4wait3DOLLAR_3E)
-class N4wait3DOLLAR_4E(Structure):
- pass
-N4wait3DOLLAR_4E._fields_ = [
- ('w_Stopval', c_uint, 8),
- ('w_Stopsig', c_uint, 8),
- ('w_Filler', c_uint, 16),
-]
-assert sizeof(N4wait3DOLLAR_4E) == 4, sizeof(N4wait3DOLLAR_4E)
-assert alignment(N4wait3DOLLAR_4E) == 4, alignment(N4wait3DOLLAR_4E)
-wait._fields_ = [
- ('w_status', c_int),
- ('w_T', N4wait3DOLLAR_3E),
- ('w_S', N4wait3DOLLAR_4E),
-]
-assert sizeof(wait) == 4, sizeof(wait)
-assert alignment(wait) == 4, alignment(wait)
-class timespec(Structure):
- pass
-timespec._fields_ = [
- ('tv_sec', time_t),
- ('tv_nsec', c_long),
-]
-assert sizeof(timespec) == 8, sizeof(timespec)
-assert alignment(timespec) == 4, alignment(timespec)
-class tm(Structure):
- pass
-tm._fields_ = [
- ('tm_sec', c_int),
- ('tm_min', c_int),
- ('tm_hour', c_int),
- ('tm_mday', c_int),
- ('tm_mon', c_int),
- ('tm_year', c_int),
- ('tm_wday', c_int),
- ('tm_yday', c_int),
- ('tm_isdst', c_int),
- ('tm_gmtoff', c_long),
- ('tm_zone', STRING),
-]
-assert sizeof(tm) == 44, sizeof(tm)
-assert alignment(tm) == 4, alignment(tm)
-__gnuc_va_list = STRING
-ptrdiff_t = c_int
-int8_t = c_byte
-int16_t = c_short
-uint8_t = c_ubyte
-uint16_t = c_ushort
-uint32_t = c_uint
-uint64_t = c_ulonglong
-int_least8_t = int8_t
-int_least16_t = int16_t
-int_least32_t = int32_t
-int_least64_t = int64_t
-uint_least8_t = uint8_t
-uint_least16_t = uint16_t
-uint_least32_t = uint32_t
-uint_least64_t = uint64_t
-int_fast8_t = int8_t
-int_fast16_t = int16_t
-int_fast32_t = int32_t
-int_fast64_t = int64_t
-uint_fast8_t = uint8_t
-uint_fast16_t = uint16_t
-uint_fast32_t = uint32_t
-uint_fast64_t = uint64_t
-intptr_t = c_long
-uintptr_t = c_ulong
-intmax_t = c_longlong
-uintmax_t = c_ulonglong
-__all__ = ['ENGINE', 'pkcs7_enc_content_st', '__int16_t',
- 'X509_REVOKED', 'SSL_CTX', 'UIT_BOOLEAN',
- '__darwin_time_t', 'ucontext64_t', 'int_fast32_t',
- 'pem_ctx_st', 'uint8_t', 'fpos_t', 'X509', 'COMP_CTX',
- 'tm', 'N10pem_ctx_st4DOLLAR_17E', 'swblk_t',
- 'ASN1_TEMPLATE', '__darwin_pthread_t', 'fixpt_t',
- 'BIO_METHOD', 'ASN1_PRINTABLESTRING', 'EVP_ENCODE_CTX',
- 'dh_method', 'bio_f_buffer_ctx_struct', 'in_port_t',
- 'X509_SIG', '__darwin_ssize_t', '__darwin_sigset_t',
- 'wait', 'uint_fast16_t', 'N12asn1_type_st4DOLLAR_11E',
- 'uint_least8_t', 'pthread_rwlock_t', 'ASN1_IA5STRING',
- 'fsfilcnt_t', 'ucontext', '__uint64_t', 'timespec',
- 'x509_cinf_st', 'COMP_METHOD', 'MD5_CTX', 'buf_mem_st',
- 'ASN1_ENCODING_st', 'PBEPARAM', 'X509_NAME_ENTRY',
- '__darwin_va_list', 'ucontext_t', 'lhash_st',
- 'N4wait3DOLLAR_4E', '__darwin_uuid_t',
- '_ossl_old_des_ks_struct', 'id_t', 'ASN1_BIT_STRING',
- 'va_list', '__darwin_wchar_t', 'pthread_key_t',
- 'pkcs7_signer_info_st', 'ASN1_METHOD', 'DSA_SIG', 'DSA',
- 'UIT_NONE', 'pthread_t', '__darwin_useconds_t',
- 'uint_fast8_t', 'UI_STRING', 'DES_cblock',
- '__darwin_mcontext64_t', 'rlim_t', 'PEM_Encode_Seal_st',
- 'SHAstate_st', 'u_quad_t', 'openssl_fptr',
- '_opaque_pthread_rwlockattr_t',
- 'N18x509_attributes_st4DOLLAR_13E',
- '__darwin_pthread_rwlock_t', 'daddr_t', 'ui_string_st',
- 'x509_file_st', 'X509_req_info_st', 'int_least64_t',
- 'evp_Encode_Ctx_st', 'X509_OBJECTS', 'CRYPTO_EX_DATA',
- '__int8_t', 'AUTHORITY_KEYID_st', '_opaque_pthread_attr_t',
- 'sigstack', 'EVP_CIPHER_CTX', 'X509_extension_st', 'pid_t',
- 'RSA_METHOD', 'PEM_USER', 'pem_recip_st', 'env_md_ctx_st',
- 'rc5_key_st', 'ui_st', 'X509_PUBKEY', 'u_int8_t',
- 'ASN1_ITEM_st', 'pkcs7_recip_info_st', 'ssl2_state_st',
- 'off_t', 'N10ssl_ctx_st4DOLLAR_18E', 'crypto_ex_data_st',
- 'ui_method_st', '__darwin_pthread_rwlockattr_t',
- 'CRYPTO_EX_dup', '__darwin_ino_t', '__sFILE',
- 'OSUnknownByteOrder', 'BN_MONT_CTX', 'ASN1_NULL', 'time_t',
- 'CRYPTO_EX_new', 'asn1_type_st', 'CRYPTO_EX_DATA_FUNCS',
- 'user_time_t', 'BIGNUM', 'pthread_rwlockattr_t',
- 'ASN1_VALUE_st', 'DH_METHOD', '__darwin_off_t',
- '_opaque_pthread_t', 'bn_blinding_st', 'RSA', 'ssize_t',
- 'mcontext64_t', 'user_long_t', 'fsblkcnt_t', 'cert_st',
- '__darwin_pthread_condattr_t', 'X509_PKEY',
- '__darwin_id_t', '__darwin_nl_item', 'SSL2_STATE', 'FILE',
- 'pthread_mutexattr_t', 'size_t',
- '_ossl_old_des_key_schedule', 'pkcs7_issuer_and_serial_st',
- 'sigval', 'CRYPTO_MEM_LEAK_CB', 'X509_NAME', 'blkcnt_t',
- 'uint_least16_t', '__darwin_dev_t', 'evp_cipher_info_st',
- 'BN_BLINDING', 'ssl3_state_st', 'uint_least64_t',
- 'user_addr_t', 'DES_key_schedule', 'RIPEMD160_CTX',
- 'u_char', 'X509_algor_st', 'uid_t', 'sess_cert_st',
- 'u_int64_t', 'u_int16_t', 'sigset_t', '__darwin_ptrdiff_t',
- 'ASN1_CTX', 'STACK', '__int32_t', 'UI_METHOD',
- 'NETSCAPE_SPKI', 'UIT_PROMPT', 'st_CRYPTO_EX_DATA_IMPL',
- 'cast_key_st', 'X509_HASH_DIR_CTX', 'sigevent',
- 'user_ssize_t', 'clock_t', 'aes_key_st',
- '__darwin_socklen_t', '__darwin_intptr_t', 'int_fast64_t',
- 'asn1_string_table_st', 'uint_fast32_t',
- 'ASN1_VISIBLESTRING', 'DSA_SIG_st', 'obj_name_st',
- 'X509_LOOKUP_METHOD', 'u_int32_t', 'EVP_CIPHER_INFO',
- '__gnuc_va_list', 'AES_KEY', 'PKCS7_ISSUER_AND_SERIAL',
- 'BN_CTX', '__darwin_blkcnt_t', 'key_t', 'SHA_CTX',
- 'pkcs7_signed_st', 'SSL', 'N10pem_ctx_st4DOLLAR_16E',
- 'pthread_attr_t', 'EVP_MD', 'uint', 'ASN1_BOOLEAN',
- 'ino_t', '__darwin_clock_t', 'ASN1_OCTET_STRING',
- 'asn1_ctx_st', 'BIO_F_BUFFER_CTX', 'bn_mont_ctx_st',
- 'X509_REQ_INFO', 'PEM_CTX', 'sigvec',
- '__darwin_pthread_mutexattr_t', 'x509_attributes_st',
- 'stack_t', '__darwin_mode_t', '__mbstate_t',
- 'asn1_object_st', 'ASN1_ENCODING', '__uint8_t',
- 'LHASH_NODE', 'PKCS7_SIGNER_INFO', 'asn1_method_st',
- 'stack_st', 'bio_info_cb', 'div_t', 'UIT_VERIFY',
- 'PBEPARAM_st', 'N4wait3DOLLAR_3E', 'quad_t', '__siginfo',
- '__darwin_mbstate_t', 'rsa_st', 'ASN1_UNIVERSALSTRING',
- 'uint64_t', 'ssl_comp_st', 'X509_OBJECT', 'pthread_cond_t',
- 'DH', '__darwin_wctype_t', 'PKCS7_ENVELOPE', 'ASN1_TLC_st',
- 'sig_atomic_t', 'BIO', 'nlink_t', 'BUF_MEM', 'SSL3_RECORD',
- 'bio_method_st', 'timeval', 'UI_string_types', 'BIO_dummy',
- 'ssl_ctx_st', 'NETSCAPE_CERT_SEQUENCE',
- 'BIT_STRING_BITNAME_st', '__darwin_pthread_attr_t',
- 'int8_t', '__darwin_wint_t', 'OBJ_NAME',
- 'PKCS8_PRIV_KEY_INFO', 'PBE2PARAM_st',
- 'LHASH_DOALL_FN_TYPE', 'x509_st', 'X509_VAL', 'dev_t',
- 'ASN1_TEMPLATE_st', 'MD5state_st', '__uint16_t',
- 'LHASH_DOALL_ARG_FN_TYPE', 'mdc2_ctx_st', 'SSL3_STATE',
- 'ssl3_buffer_st', 'ASN1_ITEM_EXP',
- '_opaque_pthread_condattr_t', 'mode_t', 'ASN1_VALUE',
- 'qaddr_t', '__darwin_gid_t', 'EVP_PKEY', 'CRYPTO_EX_free',
- '_ossl_old_des_cblock', 'X509_INFO', 'asn1_string_st',
- 'intptr_t', 'UIT_INFO', 'int_fast8_t', 'sigaltstack',
- 'env_md_st', 'LHASH', '__darwin_ucontext_t',
- 'PKCS7_SIGN_ENVELOPE', '__darwin_mcontext_t', 'ct_rune_t',
- 'MD2_CTX', 'pthread_once_t', 'SSL3_BUFFER', 'fd_mask',
- 'ASN1_TYPE', 'PKCS7_SIGNED', 'ssl3_record_st', 'BF_KEY',
- 'MD4state_st', 'MD4_CTX', 'int16_t', 'SSL_CIPHER',
- 'rune_t', 'X509_TRUST', 'siginfo_t', 'X509_STORE',
- '__sbuf', 'X509_STORE_CTX', '__darwin_blksize_t', 'ldiv_t',
- 'ASN1_TIME', 'SSL_METHOD', 'X509_LOOKUP',
- 'Netscape_spki_st', 'P_PID', 'sigaction', 'sig_t',
- 'hostent', 'x509_cert_aux_st', '_opaque_pthread_cond_t',
- 'segsz_t', 'ushort', '__darwin_ct_rune_t', 'fd_set',
- 'BN_RECP_CTX', 'x509_lookup_st', 'uint16_t', 'pkcs7_st',
- 'asn1_header_st', '__darwin_pthread_key_t',
- 'x509_trust_st', '__darwin_pthread_handler_rec', 'int32_t',
- 'X509_CRL_INFO', 'N11evp_pkey_st4DOLLAR_12E', 'MDC2_CTX',
- 'N23_ossl_old_des_ks_struct4DOLLAR_10E', 'ASN1_HEADER',
- 'X509_crl_info_st', 'LHASH_HASH_FN_TYPE',
- '_opaque_pthread_mutexattr_t', 'ssl_st',
- 'N8pkcs7_st4DOLLAR_15E', 'evp_pkey_st',
- 'pkcs7_signedandenveloped_st', '__darwin_mach_port_t',
- 'EVP_PBE_KEYGEN', '_opaque_pthread_mutex_t',
- 'ASN1_UTCTIME', 'mcontext', 'crypto_ex_data_func_st',
- 'u_long', 'PBKDF2PARAM_st', 'rc4_key_st', 'DSA_METHOD',
- 'EVP_CIPHER', 'BIT_STRING_BITNAME', 'PKCS7_RECIP_INFO',
- 'ssl3_enc_method', 'X509_CERT_AUX', 'uintmax_t',
- 'int_fast16_t', 'RC5_32_KEY', 'ucontext64', 'ASN1_INTEGER',
- 'u_short', 'N14x509_object_st4DOLLAR_14E', 'mcontext64',
- 'X509_sig_st', 'ASN1_GENERALSTRING', 'PKCS7', '__sFILEX',
- 'X509_name_entry_st', 'ssl_session_st', 'caddr_t',
- 'bignum_st', 'X509_CINF', '__darwin_pthread_cond_t',
- 'ASN1_TLC', 'PKCS7_ENCRYPT', 'NETSCAPE_SPKAC',
- 'Netscape_spkac_st', 'idtype_t', 'UIT_ERROR',
- 'uint_fast64_t', 'in_addr_t', 'pthread_mutex_t',
- '__int64_t', 'ASN1_BMPSTRING', 'uint32_t',
- 'PEM_ENCODE_SEAL_CTX', 'suseconds_t', 'ASN1_OBJECT',
- 'X509_val_st', 'private_key_st', 'CRYPTO_dynlock',
- 'X509_objects_st', 'CRYPTO_EX_DATA_IMPL',
- 'pthread_condattr_t', 'PKCS7_DIGEST', 'uint_least32_t',
- 'ASN1_STRING', '__uint32_t', 'P_PGID', 'rsa_meth_st',
- 'X509_crl_st', 'RC2_KEY', '__darwin_fsfilcnt_t',
- 'X509_revoked_st', 'PBE2PARAM', 'blksize_t',
- 'Netscape_certificate_sequence', 'ssl_cipher_st',
- 'bignum_ctx', 'register_t', 'ASN1_UTF8STRING',
- 'pkcs7_encrypted_st', 'RC4_KEY', '__darwin_ucontext64_t',
- 'N13ssl2_state_st4DOLLAR_19E', 'bn_recp_ctx_st',
- 'CAST_KEY', 'X509_ATTRIBUTE', '__darwin_suseconds_t',
- '__sigaction', 'user_ulong_t', 'syscall_arg_t',
- 'evp_cipher_ctx_st', 'X509_ALGOR', 'mcontext_t',
- 'const_DES_cblock', '__darwin_fsblkcnt_t', 'dsa_st',
- 'int_least8_t', 'MD2state_st', 'X509_EXTENSION',
- 'GEN_SESSION_CB', 'int_least16_t', '__darwin_wctrans_t',
- 'PBKDF2PARAM', 'x509_lookup_method_st', 'pem_password_cb',
- 'X509_info_st', 'x509_store_st', '__darwin_natural_t',
- 'X509_pubkey_st', 'pkcs7_digest_st', '__darwin_size_t',
- 'ASN1_STRING_TABLE', 'OSLittleEndian', 'RIPEMD160state_st',
- 'pkcs7_enveloped_st', 'UI', 'ptrdiff_t', 'X509_REQ',
- 'CRYPTO_dynlock_value', 'X509_req_st', 'x509_store_ctx_st',
- 'N13ssl3_state_st4DOLLAR_20E', 'lhash_node_st',
- '__darwin_pthread_mutex_t', 'LHASH_COMP_FN_TYPE',
- '__darwin_rune_t', 'rlimit', '__darwin_pthread_once_t',
- 'OSBigEndian', 'uintptr_t', '__darwin_uid_t', 'u_int',
- 'ASN1_T61STRING', 'gid_t', 'ssl_method_st', 'ASN1_ITEM',
- 'ASN1_ENUMERATED', '_opaque_pthread_rwlock_t',
- 'pkcs8_priv_key_info_st', 'intmax_t', 'sigcontext',
- 'X509_CRL', 'rc2_key_st', 'engine_st', 'x509_object_st',
- '_opaque_pthread_once_t', 'DES_ks', 'SSL_COMP',
- 'dsa_method', 'int64_t', 'bio_st', 'bf_key_st',
- 'ASN1_GENERALIZEDTIME', 'PKCS7_ENC_CONTENT',
- '__darwin_pid_t', 'lldiv_t', 'comp_method_st',
- 'EVP_MD_CTX', 'evp_cipher_st', 'X509_name_st',
- 'x509_hash_dir_st', '__darwin_mach_port_name_t',
- 'useconds_t', 'user_size_t', 'SSL_SESSION', 'rusage',
- 'ssl_crock_st', 'int_least32_t', '__sigaction_u', 'dh_st',
- 'P_ALL', '__darwin_stack_t', 'N6DES_ks3DOLLAR_9E',
- 'comp_ctx_st', 'X509_CERT_FILE_CTX']
diff --git a/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py b/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py
deleted file mode 100644
index b5a4137..0000000
--- a/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py
+++ /dev/null
@@ -1,974 +0,0 @@
-# Python test set -- part 1, grammar.
-# This just tests whether the parser accepts them all.
-
-# NOTE: When you run this test as a script from the command line, you
-# get warnings about certain hex/oct constants. Since those are
-# issued by the parser, you can't suppress them by adding a
-# filterwarnings() call to this module. Therefore, to shut up the
-# regression test, the filterwarnings() call has been added to
-# regrtest.py.
-
-from test.test_support import run_unittest, check_syntax_error
-import unittest
-import sys
-# testing import *
-from sys import *
-
-class TokenTests(unittest.TestCase):
-
- def testBackslash(self):
- # Backslash means line continuation:
- x = 1 \
- + 1
- self.assertEquals(x, 2, 'backslash for line continuation')
-
- # Backslash does not means continuation in comments :\
- x = 0
- self.assertEquals(x, 0, 'backslash ending comment')
-
- def testPlainIntegers(self):
- self.assertEquals(0xff, 255)
- self.assertEquals(0377, 255)
- self.assertEquals(2147483647, 017777777777)
- # "0x" is not a valid literal
- self.assertRaises(SyntaxError, eval, "0x")
- from sys import maxint
- if maxint == 2147483647:
- self.assertEquals(-2147483647-1, -020000000000)
- # XXX -2147483648
- self.assert_(037777777777 > 0)
- self.assert_(0xffffffff > 0)
- for s in '2147483648', '040000000000', '0x100000000':
- try:
- x = eval(s)
- except OverflowError:
- self.fail("OverflowError on huge integer literal %r" % s)
- elif maxint == 9223372036854775807:
- self.assertEquals(-9223372036854775807-1, -01000000000000000000000)
- self.assert_(01777777777777777777777 > 0)
- self.assert_(0xffffffffffffffff > 0)
- for s in '9223372036854775808', '02000000000000000000000', \
- '0x10000000000000000':
- try:
- x = eval(s)
- except OverflowError:
- self.fail("OverflowError on huge integer literal %r" % s)
- else:
- self.fail('Weird maxint value %r' % maxint)
-
- def testLongIntegers(self):
- x = 0L
- x = 0l
- x = 0xffffffffffffffffL
- x = 0xffffffffffffffffl
- x = 077777777777777777L
- x = 077777777777777777l
- x = 123456789012345678901234567890L
- x = 123456789012345678901234567890l
-
- def testFloats(self):
- x = 3.14
- x = 314.
- x = 0.314
- # XXX x = 000.314
- x = .314
- x = 3e14
- x = 3E14
- x = 3e-14
- x = 3e+14
- x = 3.e14
- x = .3e14
- x = 3.1e4
-
- def testStringLiterals(self):
- x = ''; y = ""; self.assert_(len(x) == 0 and x == y)
- x = '\''; y = "'"; self.assert_(len(x) == 1 and x == y and ord(x) == 39)
- x = '"'; y = "\""; self.assert_(len(x) == 1 and x == y and ord(x) == 34)
- x = "doesn't \"shrink\" does it"
- y = 'doesn\'t "shrink" does it'
- self.assert_(len(x) == 24 and x == y)
- x = "does \"shrink\" doesn't it"
- y = 'does "shrink" doesn\'t it'
- self.assert_(len(x) == 24 and x == y)
- x = """
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-"""
- y = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n'
- self.assertEquals(x, y)
- y = '''
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-'''
- self.assertEquals(x, y)
- y = "\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the 'lazy' dog.\n\
-"
- self.assertEquals(x, y)
- y = '\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the \'lazy\' dog.\n\
-'
- self.assertEquals(x, y)
-
-
-class GrammarTests(unittest.TestCase):
-
- # single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
- # XXX can't test in a script -- this rule is only used when interactive
-
- # file_input: (NEWLINE | stmt)* ENDMARKER
- # Being tested as this very moment this very module
-
- # expr_input: testlist NEWLINE
- # XXX Hard to test -- used only in calls to input()
-
- def testEvalInput(self):
- # testlist ENDMARKER
- x = eval('1, 0 or 1')
-
- def testFuncdef(self):
- ### 'def' NAME parameters ':' suite
- ### parameters: '(' [varargslist] ')'
- ### varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' ('**'|'*' '*') NAME]
- ### | ('**'|'*' '*') NAME)
- ### | fpdef ['=' test] (',' fpdef ['=' test])* [',']
- ### fpdef: NAME | '(' fplist ')'
- ### fplist: fpdef (',' fpdef)* [',']
- ### arglist: (argument ',')* (argument | *' test [',' '**' test] | '**' test)
- ### argument: [test '='] test # Really [keyword '='] test
- def f1(): pass
- f1()
- f1(*())
- f1(*(), **{})
- def f2(one_argument): pass
- def f3(two, arguments): pass
- def f4(two, (compound, (argument, list))): pass
- def f5((compound, first), two): pass
- self.assertEquals(f2.func_code.co_varnames, ('one_argument',))
- self.assertEquals(f3.func_code.co_varnames, ('two', 'arguments'))
- if sys.platform.startswith('java'):
- self.assertEquals(f4.func_code.co_varnames,
- ('two', '(compound, (argument, list))', 'compound', 'argument',
- 'list',))
- self.assertEquals(f5.func_code.co_varnames,
- ('(compound, first)', 'two', 'compound', 'first'))
- else:
- self.assertEquals(f4.func_code.co_varnames,
- ('two', '.1', 'compound', 'argument', 'list'))
- self.assertEquals(f5.func_code.co_varnames,
- ('.0', 'two', 'compound', 'first'))
- def a1(one_arg,): pass
- def a2(two, args,): pass
- def v0(*rest): pass
- def v1(a, *rest): pass
- def v2(a, b, *rest): pass
- def v3(a, (b, c), *rest): return a, b, c, rest
-
- f1()
- f2(1)
- f2(1,)
- f3(1, 2)
- f3(1, 2,)
- f4(1, (2, (3, 4)))
- v0()
- v0(1)
- v0(1,)
- v0(1,2)
- v0(1,2,3,4,5,6,7,8,9,0)
- v1(1)
- v1(1,)
- v1(1,2)
- v1(1,2,3)
- v1(1,2,3,4,5,6,7,8,9,0)
- v2(1,2)
- v2(1,2,3)
- v2(1,2,3,4)
- v2(1,2,3,4,5,6,7,8,9,0)
- v3(1,(2,3))
- v3(1,(2,3),4)
- v3(1,(2,3),4,5,6,7,8,9,0)
-
- # ceval unpacks the formal arguments into the first argcount names;
- # thus, the names nested inside tuples must appear after these names.
- if sys.platform.startswith('java'):
- self.assertEquals(v3.func_code.co_varnames, ('a', '(b, c)', 'rest', 'b', 'c'))
- else:
- self.assertEquals(v3.func_code.co_varnames, ('a', '.1', 'rest', 'b', 'c'))
- self.assertEquals(v3(1, (2, 3), 4), (1, 2, 3, (4,)))
- def d01(a=1): pass
- d01()
- d01(1)
- d01(*(1,))
- d01(**{'a':2})
- def d11(a, b=1): pass
- d11(1)
- d11(1, 2)
- d11(1, **{'b':2})
- def d21(a, b, c=1): pass
- d21(1, 2)
- d21(1, 2, 3)
- d21(*(1, 2, 3))
- d21(1, *(2, 3))
- d21(1, 2, *(3,))
- d21(1, 2, **{'c':3})
- def d02(a=1, b=2): pass
- d02()
- d02(1)
- d02(1, 2)
- d02(*(1, 2))
- d02(1, *(2,))
- d02(1, **{'b':2})
- d02(**{'a': 1, 'b': 2})
- def d12(a, b=1, c=2): pass
- d12(1)
- d12(1, 2)
- d12(1, 2, 3)
- def d22(a, b, c=1, d=2): pass
- d22(1, 2)
- d22(1, 2, 3)
- d22(1, 2, 3, 4)
- def d01v(a=1, *rest): pass
- d01v()
- d01v(1)
- d01v(1, 2)
- d01v(*(1, 2, 3, 4))
- d01v(*(1,))
- d01v(**{'a':2})
- def d11v(a, b=1, *rest): pass
- d11v(1)
- d11v(1, 2)
- d11v(1, 2, 3)
- def d21v(a, b, c=1, *rest): pass
- d21v(1, 2)
- d21v(1, 2, 3)
- d21v(1, 2, 3, 4)
- d21v(*(1, 2, 3, 4))
- d21v(1, 2, **{'c': 3})
- def d02v(a=1, b=2, *rest): pass
- d02v()
- d02v(1)
- d02v(1, 2)
- d02v(1, 2, 3)
- d02v(1, *(2, 3, 4))
- d02v(**{'a': 1, 'b': 2})
- def d12v(a, b=1, c=2, *rest): pass
- d12v(1)
- d12v(1, 2)
- d12v(1, 2, 3)
- d12v(1, 2, 3, 4)
- d12v(*(1, 2, 3, 4))
- d12v(1, 2, *(3, 4, 5))
- d12v(1, *(2,), **{'c': 3})
- def d22v(a, b, c=1, d=2, *rest): pass
- d22v(1, 2)
- d22v(1, 2, 3)
- d22v(1, 2, 3, 4)
- d22v(1, 2, 3, 4, 5)
- d22v(*(1, 2, 3, 4))
- d22v(1, 2, *(3, 4, 5))
- d22v(1, *(2, 3), **{'d': 4})
- def d31v((x)): pass
- d31v(1)
- def d32v((x,)): pass
- d32v((1,))
-
- # keyword arguments after *arglist
- def f(*args, **kwargs):
- return args, kwargs
- self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4),
- {'x':2, 'y':5}))
- self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)")
- self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)")
-
- # Check ast errors in *args and *kwargs
- check_syntax_error(self, "f(*g(1=2))")
- check_syntax_error(self, "f(**g(1=2))")
-
- def testLambdef(self):
- ### lambdef: 'lambda' [varargslist] ':' test
- l1 = lambda : 0
- self.assertEquals(l1(), 0)
- l2 = lambda : a[d] # XXX just testing the expression
- l3 = lambda : [2 < x for x in [-1, 3, 0L]]
- self.assertEquals(l3(), [0, 1, 0])
- l4 = lambda x = lambda y = lambda z=1 : z : y() : x()
- self.assertEquals(l4(), 1)
- l5 = lambda x, y, z=2: x + y + z
- self.assertEquals(l5(1, 2), 5)
- self.assertEquals(l5(1, 2, 3), 6)
- check_syntax_error(self, "lambda x: x = 2")
- check_syntax_error(self, "lambda (None,): None")
-
- ### stmt: simple_stmt | compound_stmt
- # Tested below
-
- def testSimpleStmt(self):
- ### simple_stmt: small_stmt (';' small_stmt)* [';']
- x = 1; pass; del x
- def foo():
- # verify statements that end with semi-colons
- x = 1; pass; del x;
- foo()
-
- ### small_stmt: expr_stmt | print_stmt | pass_stmt | del_stmt | flow_stmt | import_stmt | global_stmt | access_stmt | exec_stmt
- # Tested below
-
- def testExprStmt(self):
- # (exprlist '=')* exprlist
- 1
- 1, 2, 3
- x = 1
- x = 1, 2, 3
- x = y = z = 1, 2, 3
- x, y, z = 1, 2, 3
- abc = a, b, c = x, y, z = xyz = 1, 2, (3, 4)
-
- check_syntax_error(self, "x + 1 = 1")
- check_syntax_error(self, "a + 1 = b + 2")
-
- def testPrintStmt(self):
- # 'print' (test ',')* [test]
- import StringIO
-
- # Can't test printing to real stdout without comparing output
- # which is not available in unittest.
- save_stdout = sys.stdout
- sys.stdout = StringIO.StringIO()
-
- print 1, 2, 3
- print 1, 2, 3,
- print
- print 0 or 1, 0 or 1,
- print 0 or 1
-
- # 'print' '>>' test ','
- print >> sys.stdout, 1, 2, 3
- print >> sys.stdout, 1, 2, 3,
- print >> sys.stdout
- print >> sys.stdout, 0 or 1, 0 or 1,
- print >> sys.stdout, 0 or 1
-
- # test printing to an instance
- class Gulp:
- def write(self, msg): pass
-
- gulp = Gulp()
- print >> gulp, 1, 2, 3
- print >> gulp, 1, 2, 3,
- print >> gulp
- print >> gulp, 0 or 1, 0 or 1,
- print >> gulp, 0 or 1
-
- # test print >> None
- def driver():
- oldstdout = sys.stdout
- sys.stdout = Gulp()
- try:
- tellme(Gulp())
- tellme()
- finally:
- sys.stdout = oldstdout
-
- # we should see this once
- def tellme(file=sys.stdout):
- print >> file, 'hello world'
-
- driver()
-
- # we should not see this at all
- def tellme(file=None):
- print >> file, 'goodbye universe'
-
- driver()
-
- self.assertEqual(sys.stdout.getvalue(), '''\
-1 2 3
-1 2 3
-1 1 1
-1 2 3
-1 2 3
-1 1 1
-hello world
-''')
- sys.stdout = save_stdout
-
- # syntax errors
- check_syntax_error(self, 'print ,')
- check_syntax_error(self, 'print >> x,')
-
- def testDelStmt(self):
- # 'del' exprlist
- abc = [1,2,3]
- x, y, z = abc
- xyz = x, y, z
-
- del abc
- del x, y, (z, xyz)
-
- def testPassStmt(self):
- # 'pass'
- pass
-
- # flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt
- # Tested below
-
- def testBreakStmt(self):
- # 'break'
- while 1: break
-
- def testContinueStmt(self):
- # 'continue'
- i = 1
- while i: i = 0; continue
-
- msg = ""
- while not msg:
- msg = "ok"
- try:
- continue
- msg = "continue failed to continue inside try"
- except:
- msg = "continue inside try called except block"
- if msg != "ok":
- self.fail(msg)
-
- msg = ""
- while not msg:
- msg = "finally block not called"
- try:
- continue
- finally:
- msg = "ok"
- if msg != "ok":
- self.fail(msg)
-
- def test_break_continue_loop(self):
- # This test warrants an explanation. It is a test specifically for SF bugs
- # #463359 and #462937. The bug is that a 'break' statement executed or
- # exception raised inside a try/except inside a loop, *after* a continue
- # statement has been executed in that loop, will cause the wrong number of
- # arguments to be popped off the stack and the instruction pointer reset to
- # a very small number (usually 0.) Because of this, the following test
- # *must* written as a function, and the tracking vars *must* be function
- # arguments with default values. Otherwise, the test will loop and loop.
-
- def test_inner(extra_burning_oil = 1, count=0):
- big_hippo = 2
- while big_hippo:
- count += 1
- try:
- if extra_burning_oil and big_hippo == 1:
- extra_burning_oil -= 1
- break
- big_hippo -= 1
- continue
- except:
- raise
- if count > 2 or big_hippo <> 1:
- self.fail("continue then break in try/except in loop broken!")
- test_inner()
-
- def testReturn(self):
- # 'return' [testlist]
- def g1(): return
- def g2(): return 1
- g1()
- x = g2()
- check_syntax_error(self, "class foo:return 1")
-
- def testYield(self):
- check_syntax_error(self, "class foo:yield 1")
-
- def testRaise(self):
- # 'raise' test [',' test]
- try: raise RuntimeError, 'just testing'
- except RuntimeError: pass
- try: raise KeyboardInterrupt
- except KeyboardInterrupt: pass
-
- def testImport(self):
- # 'import' dotted_as_names
- import sys
- import time, sys
- # 'from' dotted_name 'import' ('*' | '(' import_as_names ')' | import_as_names)
- from time import time
- from time import (time)
- # not testable inside a function, but already done at top of the module
- # from sys import *
- from sys import path, argv
- from sys import (path, argv)
- from sys import (path, argv,)
-
- def testGlobal(self):
- # 'global' NAME (',' NAME)*
- global a
- global a, b
- global one, two, three, four, five, six, seven, eight, nine, ten
-
- def testExec(self):
- # 'exec' expr ['in' expr [',' expr]]
- z = None
- del z
- exec 'z=1+1\n'
- if z != 2: self.fail('exec \'z=1+1\'\\n')
- del z
- exec 'z=1+1'
- if z != 2: self.fail('exec \'z=1+1\'')
- z = None
- del z
- import types
- if hasattr(types, "UnicodeType"):
- exec r"""if 1:
- exec u'z=1+1\n'
- if z != 2: self.fail('exec u\'z=1+1\'\\n')
- del z
- exec u'z=1+1'
- if z != 2: self.fail('exec u\'z=1+1\'')"""
- g = {}
- exec 'z = 1' in g
- if g.has_key('__builtins__'): del g['__builtins__']
- if g != {'z': 1}: self.fail('exec \'z = 1\' in g')
- g = {}
- l = {}
-
- import warnings
- warnings.filterwarnings("ignore", "global statement", module="<string>")
- exec 'global a; a = 1; b = 2' in g, l
- if g.has_key('__builtins__'): del g['__builtins__']
- if l.has_key('__builtins__'): del l['__builtins__']
- if (g, l) != ({'a':1}, {'b':2}):
- self.fail('exec ... in g (%s), l (%s)' %(g,l))
-
- def testAssert(self):
- # assert_stmt: 'assert' test [',' test]
- assert 1
- assert 1, 1
- assert lambda x:x
- assert 1, lambda x:x+1
- try:
- assert 0, "msg"
- except AssertionError, e:
- self.assertEquals(e.args[0], "msg")
- else:
- if __debug__:
- self.fail("AssertionError not raised by assert 0")
-
- ### compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef
- # Tested below
-
- def testIf(self):
- # 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
- if 1: pass
- if 1: pass
- else: pass
- if 0: pass
- elif 0: pass
- if 0: pass
- elif 0: pass
- elif 0: pass
- elif 0: pass
- else: pass
-
- def testWhile(self):
- # 'while' test ':' suite ['else' ':' suite]
- while 0: pass
- while 0: pass
- else: pass
-
- # Issue1920: "while 0" is optimized away,
- # ensure that the "else" clause is still present.
- x = 0
- while 0:
- x = 1
- else:
- x = 2
- self.assertEquals(x, 2)
-
- def testFor(self):
- # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite]
- for i in 1, 2, 3: pass
- for i, j, k in (): pass
- else: pass
- class Squares:
- def __init__(self, max):
- self.max = max
- self.sofar = []
- def __len__(self): return len(self.sofar)
- def __getitem__(self, i):
- if not 0 <= i < self.max: raise IndexError
- n = len(self.sofar)
- while n <= i:
- self.sofar.append(n*n)
- n = n+1
- return self.sofar[i]
- n = 0
- for x in Squares(10): n = n+x
- if n != 285:
- self.fail('for over growing sequence')
-
- result = []
- for x, in [(1,), (2,), (3,)]:
- result.append(x)
- self.assertEqual(result, [1, 2, 3])
-
- def testTry(self):
- ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite]
- ### | 'try' ':' suite 'finally' ':' suite
- ### except_clause: 'except' [expr [('as' | ',') expr]]
- try:
- 1/0
- except ZeroDivisionError:
- pass
- else:
- pass
- try: 1/0
- except EOFError: pass
- except TypeError as msg: pass
- except RuntimeError, msg: pass
- except: pass
- else: pass
- try: 1/0
- except (EOFError, TypeError, ZeroDivisionError): pass
- try: 1/0
- except (EOFError, TypeError, ZeroDivisionError), msg: pass
- try: pass
- finally: pass
-
- def testSuite(self):
- # simple_stmt | NEWLINE INDENT NEWLINE* (stmt NEWLINE*)+ DEDENT
- if 1: pass
- if 1:
- pass
- if 1:
- #
- #
- #
- pass
- pass
- #
- pass
- #
-
- def testTest(self):
- ### and_test ('or' and_test)*
- ### and_test: not_test ('and' not_test)*
- ### not_test: 'not' not_test | comparison
- if not 1: pass
- if 1 and 1: pass
- if 1 or 1: pass
- if not not not 1: pass
- if not 1 and 1 and 1: pass
- if 1 and 1 or 1 and 1 and 1 or not 1 and 1: pass
-
- def testComparison(self):
- ### comparison: expr (comp_op expr)*
- ### comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
- if 1: pass
- x = (1 == 1)
- if 1 == 1: pass
- if 1 != 1: pass
- if 1 <> 1: pass
- if 1 < 1: pass
- if 1 > 1: pass
- if 1 <= 1: pass
- if 1 >= 1: pass
- if 1 is 1: pass
- if 1 is not 1: pass
- if 1 in (): pass
- if 1 not in (): pass
- if 1 < 1 > 1 == 1 >= 1 <= 1 <> 1 != 1 in 1 not in 1 is 1 is not 1: pass
-
- def testBinaryMaskOps(self):
- x = 1 & 1
- x = 1 ^ 1
- x = 1 | 1
-
- def testShiftOps(self):
- x = 1 << 1
- x = 1 >> 1
- x = 1 << 1 >> 1
-
- def testAdditiveOps(self):
- x = 1
- x = 1 + 1
- x = 1 - 1 - 1
- x = 1 - 1 + 1 - 1 + 1
-
- def testMultiplicativeOps(self):
- x = 1 * 1
- x = 1 / 1
- x = 1 % 1
- x = 1 / 1 * 1 % 1
-
- def testUnaryOps(self):
- x = +1
- x = -1
- x = ~1
- x = ~1 ^ 1 & 1 | 1 & 1 ^ -1
- x = -1*1/1 + 1*1 - ---1*1
-
- def testSelectors(self):
- ### trailer: '(' [testlist] ')' | '[' subscript ']' | '.' NAME
- ### subscript: expr | [expr] ':' [expr]
-
- import sys, time
- c = sys.path[0]
- x = time.time()
- x = sys.modules['time'].time()
- a = '01234'
- c = a[0]
- c = a[-1]
- s = a[0:5]
- s = a[:5]
- s = a[0:]
- s = a[:]
- s = a[-5:]
- s = a[:-1]
- s = a[-4:-3]
- # A rough test of SF bug 1333982. http://python.org/sf/1333982
- # The testing here is fairly incomplete.
- # Test cases should include: commas with 1 and 2 colons
- d = {}
- d[1] = 1
- d[1,] = 2
- d[1,2] = 3
- d[1,2,3] = 4
- L = list(d)
- L.sort()
- self.assertEquals(str(L), '[1, (1,), (1, 2), (1, 2, 3)]')
-
- def testAtoms(self):
- ### atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictmaker] '}' | '`' testlist '`' | NAME | NUMBER | STRING
- ### dictmaker: test ':' test (',' test ':' test)* [',']
-
- x = (1)
- x = (1 or 2 or 3)
- x = (1 or 2 or 3, 2, 3)
-
- x = []
- x = [1]
- x = [1 or 2 or 3]
- x = [1 or 2 or 3, 2, 3]
- x = []
-
- x = {}
- x = {'one': 1}
- x = {'one': 1,}
- x = {'one' or 'two': 1 or 2}
- x = {'one': 1, 'two': 2}
- x = {'one': 1, 'two': 2,}
- x = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6}
-
- x = `x`
- x = `1 or 2 or 3`
- self.assertEqual(`1,2`, '(1, 2)')
-
- x = x
- x = 'x'
- x = 123
-
- ### exprlist: expr (',' expr)* [',']
- ### testlist: test (',' test)* [',']
- # These have been exercised enough above
-
- def testClassdef(self):
- # 'class' NAME ['(' [testlist] ')'] ':' suite
- class B: pass
- class B2(): pass
- class C1(B): pass
- class C2(B): pass
- class D(C1, C2, B): pass
- class C:
- def meth1(self): pass
- def meth2(self, arg): pass
- def meth3(self, a1, a2): pass
- # decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
- # decorators: decorator+
- # decorated: decorators (classdef | funcdef)
- def class_decorator(x):
- x.decorated = True
- return x
- @class_decorator
- class G:
- pass
- self.assertEqual(G.decorated, True)
-
- def testListcomps(self):
- # list comprehension tests
- nums = [1, 2, 3, 4, 5]
- strs = ["Apple", "Banana", "Coconut"]
- spcs = [" Apple", " Banana ", "Coco nut "]
-
- self.assertEqual([s.strip() for s in spcs], ['Apple', 'Banana', 'Coco nut'])
- self.assertEqual([3 * x for x in nums], [3, 6, 9, 12, 15])
- self.assertEqual([x for x in nums if x > 2], [3, 4, 5])
- self.assertEqual([(i, s) for i in nums for s in strs],
- [(1, 'Apple'), (1, 'Banana'), (1, 'Coconut'),
- (2, 'Apple'), (2, 'Banana'), (2, 'Coconut'),
- (3, 'Apple'), (3, 'Banana'), (3, 'Coconut'),
- (4, 'Apple'), (4, 'Banana'), (4, 'Coconut'),
- (5, 'Apple'), (5, 'Banana'), (5, 'Coconut')])
- self.assertEqual([(i, s) for i in nums for s in [f for f in strs if "n" in f]],
- [(1, 'Banana'), (1, 'Coconut'), (2, 'Banana'), (2, 'Coconut'),
- (3, 'Banana'), (3, 'Coconut'), (4, 'Banana'), (4, 'Coconut'),
- (5, 'Banana'), (5, 'Coconut')])
- self.assertEqual([(lambda a:[a**i for i in range(a+1)])(j) for j in range(5)],
- [[1], [1, 1], [1, 2, 4], [1, 3, 9, 27], [1, 4, 16, 64, 256]])
-
- def test_in_func(l):
- return [None < x < 3 for x in l if x > 2]
-
- self.assertEqual(test_in_func(nums), [False, False, False])
-
- def test_nested_front():
- self.assertEqual([[y for y in [x, x + 1]] for x in [1,3,5]],
- [[1, 2], [3, 4], [5, 6]])
-
- test_nested_front()
-
- check_syntax_error(self, "[i, s for i in nums for s in strs]")
- check_syntax_error(self, "[x if y]")
-
- suppliers = [
- (1, "Boeing"),
- (2, "Ford"),
- (3, "Macdonalds")
- ]
-
- parts = [
- (10, "Airliner"),
- (20, "Engine"),
- (30, "Cheeseburger")
- ]
-
- suppart = [
- (1, 10), (1, 20), (2, 20), (3, 30)
- ]
-
- x = [
- (sname, pname)
- for (sno, sname) in suppliers
- for (pno, pname) in parts
- for (sp_sno, sp_pno) in suppart
- if sno == sp_sno and pno == sp_pno
- ]
-
- self.assertEqual(x, [('Boeing', 'Airliner'), ('Boeing', 'Engine'), ('Ford', 'Engine'),
- ('Macdonalds', 'Cheeseburger')])
-
- def testGenexps(self):
- # generator expression tests
- g = ([x for x in range(10)] for x in range(1))
- self.assertEqual(g.next(), [x for x in range(10)])
- try:
- g.next()
- self.fail('should produce StopIteration exception')
- except StopIteration:
- pass
-
- a = 1
- try:
- g = (a for d in a)
- g.next()
- self.fail('should produce TypeError')
- except TypeError:
- pass
-
- self.assertEqual(list((x, y) for x in 'abcd' for y in 'abcd'), [(x, y) for x in 'abcd' for y in 'abcd'])
- self.assertEqual(list((x, y) for x in 'ab' for y in 'xy'), [(x, y) for x in 'ab' for y in 'xy'])
-
- a = [x for x in range(10)]
- b = (x for x in (y for y in a))
- self.assertEqual(sum(b), sum([x for x in range(10)]))
-
- self.assertEqual(sum(x**2 for x in range(10)), sum([x**2 for x in range(10)]))
- self.assertEqual(sum(x*x for x in range(10) if x%2), sum([x*x for x in range(10) if x%2]))
- self.assertEqual(sum(x for x in (y for y in range(10))), sum([x for x in range(10)]))
- self.assertEqual(sum(x for x in (y for y in (z for z in range(10)))), sum([x for x in range(10)]))
- self.assertEqual(sum(x for x in [y for y in (z for z in range(10))]), sum([x for x in range(10)]))
- self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True)) if True), sum([x for x in range(10)]))
- self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True) if False) if True), 0)
- check_syntax_error(self, "foo(x for x in range(10), 100)")
- check_syntax_error(self, "foo(100, x for x in range(10))")
-
- def testComprehensionSpecials(self):
- # test for outmost iterable precomputation
- x = 10; g = (i for i in range(x)); x = 5
- self.assertEqual(len(list(g)), 10)
-
- # This should hold, since we're only precomputing outmost iterable.
- x = 10; t = False; g = ((i,j) for i in range(x) if t for j in range(x))
- x = 5; t = True;
- self.assertEqual([(i,j) for i in range(10) for j in range(5)], list(g))
-
- # Grammar allows multiple adjacent 'if's in listcomps and genexps,
- # even though it's silly. Make sure it works (ifelse broke this.)
- self.assertEqual([ x for x in range(10) if x % 2 if x % 3 ], [1, 5, 7])
- self.assertEqual(list(x for x in range(10) if x % 2 if x % 3), [1, 5, 7])
-
- # verify unpacking single element tuples in listcomp/genexp.
- self.assertEqual([x for x, in [(4,), (5,), (6,)]], [4, 5, 6])
- self.assertEqual(list(x for x, in [(7,), (8,), (9,)]), [7, 8, 9])
-
- def test_with_statement(self):
- class manager(object):
- def __enter__(self):
- return (1, 2)
- def __exit__(self, *args):
- pass
-
- with manager():
- pass
- with manager() as x:
- pass
- with manager() as (x, y):
- pass
- with manager(), manager():
- pass
- with manager() as x, manager() as y:
- pass
- with manager() as x, manager():
- pass
-
- def testIfElseExpr(self):
- # Test ifelse expressions in various cases
- def _checkeval(msg, ret):
- "helper to check that evaluation of expressions is done correctly"
- print x
- return ret
-
- self.assertEqual([ x() for x in lambda: True, lambda: False if x() ], [True])
- self.assertEqual([ x() for x in (lambda: True, lambda: False) if x() ], [True])
- self.assertEqual([ x(False) for x in (lambda x: False if x else True, lambda x: True if x else False) if x(False) ], [True])
- self.assertEqual((5 if 1 else _checkeval("check 1", 0)), 5)
- self.assertEqual((_checkeval("check 2", 0) if 0 else 5), 5)
- self.assertEqual((5 and 6 if 0 else 1), 1)
- self.assertEqual(((5 and 6) if 0 else 1), 1)
- self.assertEqual((5 and (6 if 1 else 1)), 6)
- self.assertEqual((0 or _checkeval("check 3", 2) if 0 else 3), 3)
- self.assertEqual((1 or _checkeval("check 4", 2) if 1 else _checkeval("check 5", 3)), 1)
- self.assertEqual((0 or 5 if 1 else _checkeval("check 6", 3)), 5)
- self.assertEqual((not 5 if 1 else 1), False)
- self.assertEqual((not 5 if 0 else 1), 1)
- self.assertEqual((6 + 1 if 1 else 2), 7)
- self.assertEqual((6 - 1 if 1 else 2), 5)
- self.assertEqual((6 * 2 if 1 else 4), 12)
- self.assertEqual((6 / 2 if 1 else 3), 3)
- self.assertEqual((6 < 4 if 0 else 2), 2)
-
-
-def test_main():
- run_unittest(TokenTests, GrammarTests)
-
-if __name__ == '__main__':
- test_main()
diff --git a/lib/python2.7/lib2to3/tests/data/py3_test_grammar.py b/lib/python2.7/lib2to3/tests/data/py3_test_grammar.py
deleted file mode 100644
index c0bf7f2..0000000
--- a/lib/python2.7/lib2to3/tests/data/py3_test_grammar.py
+++ /dev/null
@@ -1,923 +0,0 @@
-# Python test set -- part 1, grammar.
-# This just tests whether the parser accepts them all.
-
-# NOTE: When you run this test as a script from the command line, you
-# get warnings about certain hex/oct constants. Since those are
-# issued by the parser, you can't suppress them by adding a
-# filterwarnings() call to this module. Therefore, to shut up the
-# regression test, the filterwarnings() call has been added to
-# regrtest.py.
-
-from test.support import run_unittest, check_syntax_error
-import unittest
-import sys
-# testing import *
-from sys import *
-
-class TokenTests(unittest.TestCase):
-
- def testBackslash(self):
- # Backslash means line continuation:
- x = 1 \
- + 1
- self.assertEquals(x, 2, 'backslash for line continuation')
-
- # Backslash does not means continuation in comments :\
- x = 0
- self.assertEquals(x, 0, 'backslash ending comment')
-
- def testPlainIntegers(self):
- self.assertEquals(type(000), type(0))
- self.assertEquals(0xff, 255)
- self.assertEquals(0o377, 255)
- self.assertEquals(2147483647, 0o17777777777)
- self.assertEquals(0b1001, 9)
- # "0x" is not a valid literal
- self.assertRaises(SyntaxError, eval, "0x")
- from sys import maxsize
- if maxsize == 2147483647:
- self.assertEquals(-2147483647-1, -0o20000000000)
- # XXX -2147483648
- self.assert_(0o37777777777 > 0)
- self.assert_(0xffffffff > 0)
- self.assert_(0b1111111111111111111111111111111 > 0)
- for s in ('2147483648', '0o40000000000', '0x100000000',
- '0b10000000000000000000000000000000'):
- try:
- x = eval(s)
- except OverflowError:
- self.fail("OverflowError on huge integer literal %r" % s)
- elif maxsize == 9223372036854775807:
- self.assertEquals(-9223372036854775807-1, -0o1000000000000000000000)
- self.assert_(0o1777777777777777777777 > 0)
- self.assert_(0xffffffffffffffff > 0)
- self.assert_(0b11111111111111111111111111111111111111111111111111111111111111 > 0)
- for s in '9223372036854775808', '0o2000000000000000000000', \
- '0x10000000000000000', \
- '0b100000000000000000000000000000000000000000000000000000000000000':
- try:
- x = eval(s)
- except OverflowError:
- self.fail("OverflowError on huge integer literal %r" % s)
- else:
- self.fail('Weird maxsize value %r' % maxsize)
-
- def testLongIntegers(self):
- x = 0
- x = 0xffffffffffffffff
- x = 0Xffffffffffffffff
- x = 0o77777777777777777
- x = 0O77777777777777777
- x = 123456789012345678901234567890
- x = 0b100000000000000000000000000000000000000000000000000000000000000000000
- x = 0B111111111111111111111111111111111111111111111111111111111111111111111
-
- def testFloats(self):
- x = 3.14
- x = 314.
- x = 0.314
- # XXX x = 000.314
- x = .314
- x = 3e14
- x = 3E14
- x = 3e-14
- x = 3e+14
- x = 3.e14
- x = .3e14
- x = 3.1e4
-
- def testStringLiterals(self):
- x = ''; y = ""; self.assert_(len(x) == 0 and x == y)
- x = '\''; y = "'"; self.assert_(len(x) == 1 and x == y and ord(x) == 39)
- x = '"'; y = "\""; self.assert_(len(x) == 1 and x == y and ord(x) == 34)
- x = "doesn't \"shrink\" does it"
- y = 'doesn\'t "shrink" does it'
- self.assert_(len(x) == 24 and x == y)
- x = "does \"shrink\" doesn't it"
- y = 'does "shrink" doesn\'t it'
- self.assert_(len(x) == 24 and x == y)
- x = """
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-"""
- y = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n'
- self.assertEquals(x, y)
- y = '''
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-'''
- self.assertEquals(x, y)
- y = "\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the 'lazy' dog.\n\
-"
- self.assertEquals(x, y)
- y = '\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the \'lazy\' dog.\n\
-'
- self.assertEquals(x, y)
-
- def testEllipsis(self):
- x = ...
- self.assert_(x is Ellipsis)
- self.assertRaises(SyntaxError, eval, ".. .")
-
-class GrammarTests(unittest.TestCase):
-
- # single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
- # XXX can't test in a script -- this rule is only used when interactive
-
- # file_input: (NEWLINE | stmt)* ENDMARKER
- # Being tested as this very moment this very module
-
- # expr_input: testlist NEWLINE
- # XXX Hard to test -- used only in calls to input()
-
- def testEvalInput(self):
- # testlist ENDMARKER
- x = eval('1, 0 or 1')
-
- def testFuncdef(self):
- ### [decorators] 'def' NAME parameters ['->' test] ':' suite
- ### decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
- ### decorators: decorator+
- ### parameters: '(' [typedargslist] ')'
- ### typedargslist: ((tfpdef ['=' test] ',')*
- ### ('*' [tfpdef] (',' tfpdef ['=' test])* [',' '**' tfpdef] | '**' tfpdef)
- ### | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])
- ### tfpdef: NAME [':' test]
- ### varargslist: ((vfpdef ['=' test] ',')*
- ### ('*' [vfpdef] (',' vfpdef ['=' test])* [',' '**' vfpdef] | '**' vfpdef)
- ### | vfpdef ['=' test] (',' vfpdef ['=' test])* [','])
- ### vfpdef: NAME
- def f1(): pass
- f1()
- f1(*())
- f1(*(), **{})
- def f2(one_argument): pass
- def f3(two, arguments): pass
- self.assertEquals(f2.__code__.co_varnames, ('one_argument',))
- self.assertEquals(f3.__code__.co_varnames, ('two', 'arguments'))
- def a1(one_arg,): pass
- def a2(two, args,): pass
- def v0(*rest): pass
- def v1(a, *rest): pass
- def v2(a, b, *rest): pass
-
- f1()
- f2(1)
- f2(1,)
- f3(1, 2)
- f3(1, 2,)
- v0()
- v0(1)
- v0(1,)
- v0(1,2)
- v0(1,2,3,4,5,6,7,8,9,0)
- v1(1)
- v1(1,)
- v1(1,2)
- v1(1,2,3)
- v1(1,2,3,4,5,6,7,8,9,0)
- v2(1,2)
- v2(1,2,3)
- v2(1,2,3,4)
- v2(1,2,3,4,5,6,7,8,9,0)
-
- def d01(a=1): pass
- d01()
- d01(1)
- d01(*(1,))
- d01(**{'a':2})
- def d11(a, b=1): pass
- d11(1)
- d11(1, 2)
- d11(1, **{'b':2})
- def d21(a, b, c=1): pass
- d21(1, 2)
- d21(1, 2, 3)
- d21(*(1, 2, 3))
- d21(1, *(2, 3))
- d21(1, 2, *(3,))
- d21(1, 2, **{'c':3})
- def d02(a=1, b=2): pass
- d02()
- d02(1)
- d02(1, 2)
- d02(*(1, 2))
- d02(1, *(2,))
- d02(1, **{'b':2})
- d02(**{'a': 1, 'b': 2})
- def d12(a, b=1, c=2): pass
- d12(1)
- d12(1, 2)
- d12(1, 2, 3)
- def d22(a, b, c=1, d=2): pass
- d22(1, 2)
- d22(1, 2, 3)
- d22(1, 2, 3, 4)
- def d01v(a=1, *rest): pass
- d01v()
- d01v(1)
- d01v(1, 2)
- d01v(*(1, 2, 3, 4))
- d01v(*(1,))
- d01v(**{'a':2})
- def d11v(a, b=1, *rest): pass
- d11v(1)
- d11v(1, 2)
- d11v(1, 2, 3)
- def d21v(a, b, c=1, *rest): pass
- d21v(1, 2)
- d21v(1, 2, 3)
- d21v(1, 2, 3, 4)
- d21v(*(1, 2, 3, 4))
- d21v(1, 2, **{'c': 3})
- def d02v(a=1, b=2, *rest): pass
- d02v()
- d02v(1)
- d02v(1, 2)
- d02v(1, 2, 3)
- d02v(1, *(2, 3, 4))
- d02v(**{'a': 1, 'b': 2})
- def d12v(a, b=1, c=2, *rest): pass
- d12v(1)
- d12v(1, 2)
- d12v(1, 2, 3)
- d12v(1, 2, 3, 4)
- d12v(*(1, 2, 3, 4))
- d12v(1, 2, *(3, 4, 5))
- d12v(1, *(2,), **{'c': 3})
- def d22v(a, b, c=1, d=2, *rest): pass
- d22v(1, 2)
- d22v(1, 2, 3)
- d22v(1, 2, 3, 4)
- d22v(1, 2, 3, 4, 5)
- d22v(*(1, 2, 3, 4))
- d22v(1, 2, *(3, 4, 5))
- d22v(1, *(2, 3), **{'d': 4})
-
- # keyword argument type tests
- try:
- str('x', **{b'foo':1 })
- except TypeError:
- pass
- else:
- self.fail('Bytes should not work as keyword argument names')
- # keyword only argument tests
- def pos0key1(*, key): return key
- pos0key1(key=100)
- def pos2key2(p1, p2, *, k1, k2=100): return p1,p2,k1,k2
- pos2key2(1, 2, k1=100)
- pos2key2(1, 2, k1=100, k2=200)
- pos2key2(1, 2, k2=100, k1=200)
- def pos2key2dict(p1, p2, *, k1=100, k2, **kwarg): return p1,p2,k1,k2,kwarg
- pos2key2dict(1,2,k2=100,tokwarg1=100,tokwarg2=200)
- pos2key2dict(1,2,tokwarg1=100,tokwarg2=200, k2=100)
-
- # keyword arguments after *arglist
- def f(*args, **kwargs):
- return args, kwargs
- self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4),
- {'x':2, 'y':5}))
- self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)")
- self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)")
-
- # argument annotation tests
- def f(x) -> list: pass
- self.assertEquals(f.__annotations__, {'return': list})
- def f(x:int): pass
- self.assertEquals(f.__annotations__, {'x': int})
- def f(*x:str): pass
- self.assertEquals(f.__annotations__, {'x': str})
- def f(**x:float): pass
- self.assertEquals(f.__annotations__, {'x': float})
- def f(x, y:1+2): pass
- self.assertEquals(f.__annotations__, {'y': 3})
- def f(a, b:1, c:2, d): pass
- self.assertEquals(f.__annotations__, {'b': 1, 'c': 2})
- def f(a, b:1, c:2, d, e:3=4, f=5, *g:6): pass
- self.assertEquals(f.__annotations__,
- {'b': 1, 'c': 2, 'e': 3, 'g': 6})
- def f(a, b:1, c:2, d, e:3=4, f=5, *g:6, h:7, i=8, j:9=10,
- **k:11) -> 12: pass
- self.assertEquals(f.__annotations__,
- {'b': 1, 'c': 2, 'e': 3, 'g': 6, 'h': 7, 'j': 9,
- 'k': 11, 'return': 12})
- # Check for SF Bug #1697248 - mixing decorators and a return annotation
- def null(x): return x
- @null
- def f(x) -> list: pass
- self.assertEquals(f.__annotations__, {'return': list})
-
- # test MAKE_CLOSURE with a variety of oparg's
- closure = 1
- def f(): return closure
- def f(x=1): return closure
- def f(*, k=1): return closure
- def f() -> int: return closure
-
- # Check ast errors in *args and *kwargs
- check_syntax_error(self, "f(*g(1=2))")
- check_syntax_error(self, "f(**g(1=2))")
-
- def testLambdef(self):
- ### lambdef: 'lambda' [varargslist] ':' test
- l1 = lambda : 0
- self.assertEquals(l1(), 0)
- l2 = lambda : a[d] # XXX just testing the expression
- l3 = lambda : [2 < x for x in [-1, 3, 0]]
- self.assertEquals(l3(), [0, 1, 0])
- l4 = lambda x = lambda y = lambda z=1 : z : y() : x()
- self.assertEquals(l4(), 1)
- l5 = lambda x, y, z=2: x + y + z
- self.assertEquals(l5(1, 2), 5)
- self.assertEquals(l5(1, 2, 3), 6)
- check_syntax_error(self, "lambda x: x = 2")
- check_syntax_error(self, "lambda (None,): None")
- l6 = lambda x, y, *, k=20: x+y+k
- self.assertEquals(l6(1,2), 1+2+20)
- self.assertEquals(l6(1,2,k=10), 1+2+10)
-
-
- ### stmt: simple_stmt | compound_stmt
- # Tested below
-
- def testSimpleStmt(self):
- ### simple_stmt: small_stmt (';' small_stmt)* [';']
- x = 1; pass; del x
- def foo():
- # verify statements that end with semi-colons
- x = 1; pass; del x;
- foo()
-
- ### small_stmt: expr_stmt | pass_stmt | del_stmt | flow_stmt | import_stmt | global_stmt | access_stmt
- # Tested below
-
- def testExprStmt(self):
- # (exprlist '=')* exprlist
- 1
- 1, 2, 3
- x = 1
- x = 1, 2, 3
- x = y = z = 1, 2, 3
- x, y, z = 1, 2, 3
- abc = a, b, c = x, y, z = xyz = 1, 2, (3, 4)
-
- check_syntax_error(self, "x + 1 = 1")
- check_syntax_error(self, "a + 1 = b + 2")
-
- def testDelStmt(self):
- # 'del' exprlist
- abc = [1,2,3]
- x, y, z = abc
- xyz = x, y, z
-
- del abc
- del x, y, (z, xyz)
-
- def testPassStmt(self):
- # 'pass'
- pass
-
- # flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt
- # Tested below
-
- def testBreakStmt(self):
- # 'break'
- while 1: break
-
- def testContinueStmt(self):
- # 'continue'
- i = 1
- while i: i = 0; continue
-
- msg = ""
- while not msg:
- msg = "ok"
- try:
- continue
- msg = "continue failed to continue inside try"
- except:
- msg = "continue inside try called except block"
- if msg != "ok":
- self.fail(msg)
-
- msg = ""
- while not msg:
- msg = "finally block not called"
- try:
- continue
- finally:
- msg = "ok"
- if msg != "ok":
- self.fail(msg)
-
- def test_break_continue_loop(self):
- # This test warrants an explanation. It is a test specifically for SF bugs
- # #463359 and #462937. The bug is that a 'break' statement executed or
- # exception raised inside a try/except inside a loop, *after* a continue
- # statement has been executed in that loop, will cause the wrong number of
- # arguments to be popped off the stack and the instruction pointer reset to
- # a very small number (usually 0.) Because of this, the following test
- # *must* written as a function, and the tracking vars *must* be function
- # arguments with default values. Otherwise, the test will loop and loop.
-
- def test_inner(extra_burning_oil = 1, count=0):
- big_hippo = 2
- while big_hippo:
- count += 1
- try:
- if extra_burning_oil and big_hippo == 1:
- extra_burning_oil -= 1
- break
- big_hippo -= 1
- continue
- except:
- raise
- if count > 2 or big_hippo != 1:
- self.fail("continue then break in try/except in loop broken!")
- test_inner()
-
- def testReturn(self):
- # 'return' [testlist]
- def g1(): return
- def g2(): return 1
- g1()
- x = g2()
- check_syntax_error(self, "class foo:return 1")
-
- def testYield(self):
- check_syntax_error(self, "class foo:yield 1")
-
- def testRaise(self):
- # 'raise' test [',' test]
- try: raise RuntimeError('just testing')
- except RuntimeError: pass
- try: raise KeyboardInterrupt
- except KeyboardInterrupt: pass
-
- def testImport(self):
- # 'import' dotted_as_names
- import sys
- import time, sys
- # 'from' dotted_name 'import' ('*' | '(' import_as_names ')' | import_as_names)
- from time import time
- from time import (time)
- # not testable inside a function, but already done at top of the module
- # from sys import *
- from sys import path, argv
- from sys import (path, argv)
- from sys import (path, argv,)
-
- def testGlobal(self):
- # 'global' NAME (',' NAME)*
- global a
- global a, b
- global one, two, three, four, five, six, seven, eight, nine, ten
-
- def testNonlocal(self):
- # 'nonlocal' NAME (',' NAME)*
- x = 0
- y = 0
- def f():
- nonlocal x
- nonlocal x, y
-
- def testAssert(self):
- # assert_stmt: 'assert' test [',' test]
- assert 1
- assert 1, 1
- assert lambda x:x
- assert 1, lambda x:x+1
- try:
- assert 0, "msg"
- except AssertionError as e:
- self.assertEquals(e.args[0], "msg")
- else:
- if __debug__:
- self.fail("AssertionError not raised by assert 0")
-
- ### compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef
- # Tested below
-
- def testIf(self):
- # 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
- if 1: pass
- if 1: pass
- else: pass
- if 0: pass
- elif 0: pass
- if 0: pass
- elif 0: pass
- elif 0: pass
- elif 0: pass
- else: pass
-
- def testWhile(self):
- # 'while' test ':' suite ['else' ':' suite]
- while 0: pass
- while 0: pass
- else: pass
-
- # Issue1920: "while 0" is optimized away,
- # ensure that the "else" clause is still present.
- x = 0
- while 0:
- x = 1
- else:
- x = 2
- self.assertEquals(x, 2)
-
- def testFor(self):
- # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite]
- for i in 1, 2, 3: pass
- for i, j, k in (): pass
- else: pass
- class Squares:
- def __init__(self, max):
- self.max = max
- self.sofar = []
- def __len__(self): return len(self.sofar)
- def __getitem__(self, i):
- if not 0 <= i < self.max: raise IndexError
- n = len(self.sofar)
- while n <= i:
- self.sofar.append(n*n)
- n = n+1
- return self.sofar[i]
- n = 0
- for x in Squares(10): n = n+x
- if n != 285:
- self.fail('for over growing sequence')
-
- result = []
- for x, in [(1,), (2,), (3,)]:
- result.append(x)
- self.assertEqual(result, [1, 2, 3])
-
- def testTry(self):
- ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite]
- ### | 'try' ':' suite 'finally' ':' suite
- ### except_clause: 'except' [expr ['as' expr]]
- try:
- 1/0
- except ZeroDivisionError:
- pass
- else:
- pass
- try: 1/0
- except EOFError: pass
- except TypeError as msg: pass
- except RuntimeError as msg: pass
- except: pass
- else: pass
- try: 1/0
- except (EOFError, TypeError, ZeroDivisionError): pass
- try: 1/0
- except (EOFError, TypeError, ZeroDivisionError) as msg: pass
- try: pass
- finally: pass
-
- def testSuite(self):
- # simple_stmt | NEWLINE INDENT NEWLINE* (stmt NEWLINE*)+ DEDENT
- if 1: pass
- if 1:
- pass
- if 1:
- #
- #
- #
- pass
- pass
- #
- pass
- #
-
- def testTest(self):
- ### and_test ('or' and_test)*
- ### and_test: not_test ('and' not_test)*
- ### not_test: 'not' not_test | comparison
- if not 1: pass
- if 1 and 1: pass
- if 1 or 1: pass
- if not not not 1: pass
- if not 1 and 1 and 1: pass
- if 1 and 1 or 1 and 1 and 1 or not 1 and 1: pass
-
- def testComparison(self):
- ### comparison: expr (comp_op expr)*
- ### comp_op: '<'|'>'|'=='|'>='|'<='|'!='|'in'|'not' 'in'|'is'|'is' 'not'
- if 1: pass
- x = (1 == 1)
- if 1 == 1: pass
- if 1 != 1: pass
- if 1 < 1: pass
- if 1 > 1: pass
- if 1 <= 1: pass
- if 1 >= 1: pass
- if 1 is 1: pass
- if 1 is not 1: pass
- if 1 in (): pass
- if 1 not in (): pass
- if 1 < 1 > 1 == 1 >= 1 <= 1 != 1 in 1 not in 1 is 1 is not 1: pass
-
- def testBinaryMaskOps(self):
- x = 1 & 1
- x = 1 ^ 1
- x = 1 | 1
-
- def testShiftOps(self):
- x = 1 << 1
- x = 1 >> 1
- x = 1 << 1 >> 1
-
- def testAdditiveOps(self):
- x = 1
- x = 1 + 1
- x = 1 - 1 - 1
- x = 1 - 1 + 1 - 1 + 1
-
- def testMultiplicativeOps(self):
- x = 1 * 1
- x = 1 / 1
- x = 1 % 1
- x = 1 / 1 * 1 % 1
-
- def testUnaryOps(self):
- x = +1
- x = -1
- x = ~1
- x = ~1 ^ 1 & 1 | 1 & 1 ^ -1
- x = -1*1/1 + 1*1 - ---1*1
-
- def testSelectors(self):
- ### trailer: '(' [testlist] ')' | '[' subscript ']' | '.' NAME
- ### subscript: expr | [expr] ':' [expr]
-
- import sys, time
- c = sys.path[0]
- x = time.time()
- x = sys.modules['time'].time()
- a = '01234'
- c = a[0]
- c = a[-1]
- s = a[0:5]
- s = a[:5]
- s = a[0:]
- s = a[:]
- s = a[-5:]
- s = a[:-1]
- s = a[-4:-3]
- # A rough test of SF bug 1333982. http://python.org/sf/1333982
- # The testing here is fairly incomplete.
- # Test cases should include: commas with 1 and 2 colons
- d = {}
- d[1] = 1
- d[1,] = 2
- d[1,2] = 3
- d[1,2,3] = 4
- L = list(d)
- L.sort(key=lambda x: x if isinstance(x, tuple) else ())
- self.assertEquals(str(L), '[1, (1,), (1, 2), (1, 2, 3)]')
-
- def testAtoms(self):
- ### atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictsetmaker] '}' | NAME | NUMBER | STRING
- ### dictsetmaker: (test ':' test (',' test ':' test)* [',']) | (test (',' test)* [','])
-
- x = (1)
- x = (1 or 2 or 3)
- x = (1 or 2 or 3, 2, 3)
-
- x = []
- x = [1]
- x = [1 or 2 or 3]
- x = [1 or 2 or 3, 2, 3]
- x = []
-
- x = {}
- x = {'one': 1}
- x = {'one': 1,}
- x = {'one' or 'two': 1 or 2}
- x = {'one': 1, 'two': 2}
- x = {'one': 1, 'two': 2,}
- x = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6}
-
- x = {'one'}
- x = {'one', 1,}
- x = {'one', 'two', 'three'}
- x = {2, 3, 4,}
-
- x = x
- x = 'x'
- x = 123
-
- ### exprlist: expr (',' expr)* [',']
- ### testlist: test (',' test)* [',']
- # These have been exercised enough above
-
- def testClassdef(self):
- # 'class' NAME ['(' [testlist] ')'] ':' suite
- class B: pass
- class B2(): pass
- class C1(B): pass
- class C2(B): pass
- class D(C1, C2, B): pass
- class C:
- def meth1(self): pass
- def meth2(self, arg): pass
- def meth3(self, a1, a2): pass
-
- # decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
- # decorators: decorator+
- # decorated: decorators (classdef | funcdef)
- def class_decorator(x): return x
- @class_decorator
- class G: pass
-
- def testDictcomps(self):
- # dictorsetmaker: ( (test ':' test (comp_for |
- # (',' test ':' test)* [','])) |
- # (test (comp_for | (',' test)* [','])) )
- nums = [1, 2, 3]
- self.assertEqual({i:i+1 for i in nums}, {1: 2, 2: 3, 3: 4})
-
- def testListcomps(self):
- # list comprehension tests
- nums = [1, 2, 3, 4, 5]
- strs = ["Apple", "Banana", "Coconut"]
- spcs = [" Apple", " Banana ", "Coco nut "]
-
- self.assertEqual([s.strip() for s in spcs], ['Apple', 'Banana', 'Coco nut'])
- self.assertEqual([3 * x for x in nums], [3, 6, 9, 12, 15])
- self.assertEqual([x for x in nums if x > 2], [3, 4, 5])
- self.assertEqual([(i, s) for i in nums for s in strs],
- [(1, 'Apple'), (1, 'Banana'), (1, 'Coconut'),
- (2, 'Apple'), (2, 'Banana'), (2, 'Coconut'),
- (3, 'Apple'), (3, 'Banana'), (3, 'Coconut'),
- (4, 'Apple'), (4, 'Banana'), (4, 'Coconut'),
- (5, 'Apple'), (5, 'Banana'), (5, 'Coconut')])
- self.assertEqual([(i, s) for i in nums for s in [f for f in strs if "n" in f]],
- [(1, 'Banana'), (1, 'Coconut'), (2, 'Banana'), (2, 'Coconut'),
- (3, 'Banana'), (3, 'Coconut'), (4, 'Banana'), (4, 'Coconut'),
- (5, 'Banana'), (5, 'Coconut')])
- self.assertEqual([(lambda a:[a**i for i in range(a+1)])(j) for j in range(5)],
- [[1], [1, 1], [1, 2, 4], [1, 3, 9, 27], [1, 4, 16, 64, 256]])
-
- def test_in_func(l):
- return [0 < x < 3 for x in l if x > 2]
-
- self.assertEqual(test_in_func(nums), [False, False, False])
-
- def test_nested_front():
- self.assertEqual([[y for y in [x, x + 1]] for x in [1,3,5]],
- [[1, 2], [3, 4], [5, 6]])
-
- test_nested_front()
-
- check_syntax_error(self, "[i, s for i in nums for s in strs]")
- check_syntax_error(self, "[x if y]")
-
- suppliers = [
- (1, "Boeing"),
- (2, "Ford"),
- (3, "Macdonalds")
- ]
-
- parts = [
- (10, "Airliner"),
- (20, "Engine"),
- (30, "Cheeseburger")
- ]
-
- suppart = [
- (1, 10), (1, 20), (2, 20), (3, 30)
- ]
-
- x = [
- (sname, pname)
- for (sno, sname) in suppliers
- for (pno, pname) in parts
- for (sp_sno, sp_pno) in suppart
- if sno == sp_sno and pno == sp_pno
- ]
-
- self.assertEqual(x, [('Boeing', 'Airliner'), ('Boeing', 'Engine'), ('Ford', 'Engine'),
- ('Macdonalds', 'Cheeseburger')])
-
- def testGenexps(self):
- # generator expression tests
- g = ([x for x in range(10)] for x in range(1))
- self.assertEqual(next(g), [x for x in range(10)])
- try:
- next(g)
- self.fail('should produce StopIteration exception')
- except StopIteration:
- pass
-
- a = 1
- try:
- g = (a for d in a)
- next(g)
- self.fail('should produce TypeError')
- except TypeError:
- pass
-
- self.assertEqual(list((x, y) for x in 'abcd' for y in 'abcd'), [(x, y) for x in 'abcd' for y in 'abcd'])
- self.assertEqual(list((x, y) for x in 'ab' for y in 'xy'), [(x, y) for x in 'ab' for y in 'xy'])
-
- a = [x for x in range(10)]
- b = (x for x in (y for y in a))
- self.assertEqual(sum(b), sum([x for x in range(10)]))
-
- self.assertEqual(sum(x**2 for x in range(10)), sum([x**2 for x in range(10)]))
- self.assertEqual(sum(x*x for x in range(10) if x%2), sum([x*x for x in range(10) if x%2]))
- self.assertEqual(sum(x for x in (y for y in range(10))), sum([x for x in range(10)]))
- self.assertEqual(sum(x for x in (y for y in (z for z in range(10)))), sum([x for x in range(10)]))
- self.assertEqual(sum(x for x in [y for y in (z for z in range(10))]), sum([x for x in range(10)]))
- self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True)) if True), sum([x for x in range(10)]))
- self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True) if False) if True), 0)
- check_syntax_error(self, "foo(x for x in range(10), 100)")
- check_syntax_error(self, "foo(100, x for x in range(10))")
-
- def testComprehensionSpecials(self):
- # test for outmost iterable precomputation
- x = 10; g = (i for i in range(x)); x = 5
- self.assertEqual(len(list(g)), 10)
-
- # This should hold, since we're only precomputing outmost iterable.
- x = 10; t = False; g = ((i,j) for i in range(x) if t for j in range(x))
- x = 5; t = True;
- self.assertEqual([(i,j) for i in range(10) for j in range(5)], list(g))
-
- # Grammar allows multiple adjacent 'if's in listcomps and genexps,
- # even though it's silly. Make sure it works (ifelse broke this.)
- self.assertEqual([ x for x in range(10) if x % 2 if x % 3 ], [1, 5, 7])
- self.assertEqual(list(x for x in range(10) if x % 2 if x % 3), [1, 5, 7])
-
- # verify unpacking single element tuples in listcomp/genexp.
- self.assertEqual([x for x, in [(4,), (5,), (6,)]], [4, 5, 6])
- self.assertEqual(list(x for x, in [(7,), (8,), (9,)]), [7, 8, 9])
-
- def test_with_statement(self):
- class manager(object):
- def __enter__(self):
- return (1, 2)
- def __exit__(self, *args):
- pass
-
- with manager():
- pass
- with manager() as x:
- pass
- with manager() as (x, y):
- pass
- with manager(), manager():
- pass
- with manager() as x, manager() as y:
- pass
- with manager() as x, manager():
- pass
-
- def testIfElseExpr(self):
- # Test ifelse expressions in various cases
- def _checkeval(msg, ret):
- "helper to check that evaluation of expressions is done correctly"
- print(x)
- return ret
-
- # the next line is not allowed anymore
- #self.assertEqual([ x() for x in lambda: True, lambda: False if x() ], [True])
- self.assertEqual([ x() for x in (lambda: True, lambda: False) if x() ], [True])
- self.assertEqual([ x(False) for x in (lambda x: False if x else True, lambda x: True if x else False) if x(False) ], [True])
- self.assertEqual((5 if 1 else _checkeval("check 1", 0)), 5)
- self.assertEqual((_checkeval("check 2", 0) if 0 else 5), 5)
- self.assertEqual((5 and 6 if 0 else 1), 1)
- self.assertEqual(((5 and 6) if 0 else 1), 1)
- self.assertEqual((5 and (6 if 1 else 1)), 6)
- self.assertEqual((0 or _checkeval("check 3", 2) if 0 else 3), 3)
- self.assertEqual((1 or _checkeval("check 4", 2) if 1 else _checkeval("check 5", 3)), 1)
- self.assertEqual((0 or 5 if 1 else _checkeval("check 6", 3)), 5)
- self.assertEqual((not 5 if 1 else 1), False)
- self.assertEqual((not 5 if 0 else 1), 1)
- self.assertEqual((6 + 1 if 1 else 2), 7)
- self.assertEqual((6 - 1 if 1 else 2), 5)
- self.assertEqual((6 * 2 if 1 else 4), 12)
- self.assertEqual((6 / 2 if 1 else 3), 3)
- self.assertEqual((6 < 4 if 0 else 2), 2)
-
-
-def test_main():
- run_unittest(TokenTests, GrammarTests)
-
-if __name__ == '__main__':
- test_main()
diff --git a/lib/python2.7/lib2to3/tests/pytree_idempotency.py b/lib/python2.7/lib2to3/tests/pytree_idempotency.py
deleted file mode 100755
index 243f7e8..0000000
--- a/lib/python2.7/lib2to3/tests/pytree_idempotency.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2006 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-"""Main program for testing the infrastructure."""
-
-__author__ = "Guido van Rossum <guido@python.org>"
-
-# Support imports (need to be imported first)
-from . import support
-
-# Python imports
-import os
-import sys
-import logging
-
-# Local imports
-from .. import pytree
-import pgen2
-from pgen2 import driver
-
-logging.basicConfig()
-
-def main():
- gr = driver.load_grammar("Grammar.txt")
- dr = driver.Driver(gr, convert=pytree.convert)
-
- fn = "example.py"
- tree = dr.parse_file(fn, debug=True)
- if not diff(fn, tree):
- print "No diffs."
- if not sys.argv[1:]:
- return # Pass a dummy argument to run the complete test suite below
-
- problems = []
-
- # Process every imported module
- for name in sys.modules:
- mod = sys.modules[name]
- if mod is None or not hasattr(mod, "__file__"):
- continue
- fn = mod.__file__
- if fn.endswith(".pyc"):
- fn = fn[:-1]
- if not fn.endswith(".py"):
- continue
- print >>sys.stderr, "Parsing", fn
- tree = dr.parse_file(fn, debug=True)
- if diff(fn, tree):
- problems.append(fn)
-
- # Process every single module on sys.path (but not in packages)
- for dir in sys.path:
- try:
- names = os.listdir(dir)
- except os.error:
- continue
- print >>sys.stderr, "Scanning", dir, "..."
- for name in names:
- if not name.endswith(".py"):
- continue
- print >>sys.stderr, "Parsing", name
- fn = os.path.join(dir, name)
- try:
- tree = dr.parse_file(fn, debug=True)
- except pgen2.parse.ParseError, err:
- print "ParseError:", err
- else:
- if diff(fn, tree):
- problems.append(fn)
-
- # Show summary of problem files
- if not problems:
- print "No problems. Congratulations!"
- else:
- print "Problems in following files:"
- for fn in problems:
- print "***", fn
-
-def diff(fn, tree):
- f = open("@", "w")
- try:
- f.write(str(tree))
- finally:
- f.close()
- try:
- return os.system("diff -u %s @" % fn)
- finally:
- os.remove("@")
-
-if __name__ == "__main__":
- main()
diff --git a/lib/python2.7/lib2to3/tests/support.py b/lib/python2.7/lib2to3/tests/support.py
deleted file mode 100644
index 3646935..0000000
--- a/lib/python2.7/lib2to3/tests/support.py
+++ /dev/null
@@ -1,54 +0,0 @@
-"""Support code for test_*.py files"""
-# Author: Collin Winter
-
-# Python imports
-import unittest
-import sys
-import os
-import os.path
-import re
-from textwrap import dedent
-
-# Local imports
-from lib2to3 import pytree, refactor
-from lib2to3.pgen2 import driver
-
-test_dir = os.path.dirname(__file__)
-proj_dir = os.path.normpath(os.path.join(test_dir, ".."))
-grammar_path = os.path.join(test_dir, "..", "Grammar.txt")
-grammar = driver.load_grammar(grammar_path)
-driver = driver.Driver(grammar, convert=pytree.convert)
-
-def parse_string(string):
- return driver.parse_string(reformat(string), debug=True)
-
-def run_all_tests(test_mod=None, tests=None):
- if tests is None:
- tests = unittest.TestLoader().loadTestsFromModule(test_mod)
- unittest.TextTestRunner(verbosity=2).run(tests)
-
-def reformat(string):
- return dedent(string) + u"\n\n"
-
-def get_refactorer(fixer_pkg="lib2to3", fixers=None, options=None):
- """
- A convenience function for creating a RefactoringTool for tests.
-
- fixers is a list of fixers for the RefactoringTool to use. By default
- "lib2to3.fixes.*" is used. options is an optional dictionary of options to
- be passed to the RefactoringTool.
- """
- if fixers is not None:
- fixers = [fixer_pkg + ".fixes.fix_" + fix for fix in fixers]
- else:
- fixers = refactor.get_fixers_from_package(fixer_pkg + ".fixes")
- options = options or {}
- return refactor.RefactoringTool(fixers, options, explicit=True)
-
-def all_project_files():
- for dirpath, dirnames, filenames in os.walk(proj_dir):
- for filename in filenames:
- if filename.endswith(".py"):
- yield os.path.join(dirpath, filename)
-
-TestCase = unittest.TestCase
diff --git a/lib/python2.7/lib2to3/tests/test_all_fixers.py b/lib/python2.7/lib2to3/tests/test_all_fixers.py
deleted file mode 100644
index f64b3d9..0000000
--- a/lib/python2.7/lib2to3/tests/test_all_fixers.py
+++ /dev/null
@@ -1,23 +0,0 @@
-"""Tests that run all fixer modules over an input stream.
-
-This has been broken out into its own test module because of its
-running time.
-"""
-# Author: Collin Winter
-
-# Python imports
-import unittest
-
-# Local imports
-from lib2to3 import refactor
-from . import support
-
-
-class Test_all(support.TestCase):
-
- def setUp(self):
- self.refactor = support.get_refactorer()
-
- def test_all_project_files(self):
- for filepath in support.all_project_files():
- self.refactor.refactor_file(filepath)
diff --git a/lib/python2.7/lib2to3/tests/test_fixers.py b/lib/python2.7/lib2to3/tests/test_fixers.py
deleted file mode 100644
index 1548281..0000000
--- a/lib/python2.7/lib2to3/tests/test_fixers.py
+++ /dev/null
@@ -1,4541 +0,0 @@
-""" Test suite for the fixer modules """
-
-# Python imports
-import os
-import unittest
-from itertools import chain
-from operator import itemgetter
-
-# Local imports
-from lib2to3 import pygram, pytree, refactor, fixer_util
-from lib2to3.tests import support
-
-
-class FixerTestCase(support.TestCase):
-
- # Other test cases can subclass this class and replace "fixer_pkg" with
- # their own.
- def setUp(self, fix_list=None, fixer_pkg="lib2to3", options=None):
- if fix_list is None:
- fix_list = [self.fixer]
- self.refactor = support.get_refactorer(fixer_pkg, fix_list, options)
- self.fixer_log = []
- self.filename = u"<string>"
-
- for fixer in chain(self.refactor.pre_order,
- self.refactor.post_order):
- fixer.log = self.fixer_log
-
- def _check(self, before, after):
- before = support.reformat(before)
- after = support.reformat(after)
- tree = self.refactor.refactor_string(before, self.filename)
- self.assertEqual(after, unicode(tree))
- return tree
-
- def check(self, before, after, ignore_warnings=False):
- tree = self._check(before, after)
- self.assertTrue(tree.was_changed)
- if not ignore_warnings:
- self.assertEqual(self.fixer_log, [])
-
- def warns(self, before, after, message, unchanged=False):
- tree = self._check(before, after)
- self.assertTrue(message in "".join(self.fixer_log))
- if not unchanged:
- self.assertTrue(tree.was_changed)
-
- def warns_unchanged(self, before, message):
- self.warns(before, before, message, unchanged=True)
-
- def unchanged(self, before, ignore_warnings=False):
- self._check(before, before)
- if not ignore_warnings:
- self.assertEqual(self.fixer_log, [])
-
- def assert_runs_after(self, *names):
- fixes = [self.fixer]
- fixes.extend(names)
- r = support.get_refactorer("lib2to3", fixes)
- (pre, post) = r.get_fixers()
- n = "fix_" + self.fixer
- if post and post[-1].__class__.__module__.endswith(n):
- # We're the last fixer to run
- return
- if pre and pre[-1].__class__.__module__.endswith(n) and not post:
- # We're the last in pre and post is empty
- return
- self.fail("Fixer run order (%s) is incorrect; %s should be last."\
- %(", ".join([x.__class__.__module__ for x in (pre+post)]), n))
-
-class Test_ne(FixerTestCase):
- fixer = "ne"
-
- def test_basic(self):
- b = """if x <> y:
- pass"""
-
- a = """if x != y:
- pass"""
- self.check(b, a)
-
- def test_no_spaces(self):
- b = """if x<>y:
- pass"""
-
- a = """if x!=y:
- pass"""
- self.check(b, a)
-
- def test_chained(self):
- b = """if x<>y<>z:
- pass"""
-
- a = """if x!=y!=z:
- pass"""
- self.check(b, a)
-
-class Test_has_key(FixerTestCase):
- fixer = "has_key"
-
- def test_1(self):
- b = """x = d.has_key("x") or d.has_key("y")"""
- a = """x = "x" in d or "y" in d"""
- self.check(b, a)
-
- def test_2(self):
- b = """x = a.b.c.d.has_key("x") ** 3"""
- a = """x = ("x" in a.b.c.d) ** 3"""
- self.check(b, a)
-
- def test_3(self):
- b = """x = a.b.has_key(1 + 2).__repr__()"""
- a = """x = (1 + 2 in a.b).__repr__()"""
- self.check(b, a)
-
- def test_4(self):
- b = """x = a.b.has_key(1 + 2).__repr__() ** -3 ** 4"""
- a = """x = (1 + 2 in a.b).__repr__() ** -3 ** 4"""
- self.check(b, a)
-
- def test_5(self):
- b = """x = a.has_key(f or g)"""
- a = """x = (f or g) in a"""
- self.check(b, a)
-
- def test_6(self):
- b = """x = a + b.has_key(c)"""
- a = """x = a + (c in b)"""
- self.check(b, a)
-
- def test_7(self):
- b = """x = a.has_key(lambda: 12)"""
- a = """x = (lambda: 12) in a"""
- self.check(b, a)
-
- def test_8(self):
- b = """x = a.has_key(a for a in b)"""
- a = """x = (a for a in b) in a"""
- self.check(b, a)
-
- def test_9(self):
- b = """if not a.has_key(b): pass"""
- a = """if b not in a: pass"""
- self.check(b, a)
-
- def test_10(self):
- b = """if not a.has_key(b).__repr__(): pass"""
- a = """if not (b in a).__repr__(): pass"""
- self.check(b, a)
-
- def test_11(self):
- b = """if not a.has_key(b) ** 2: pass"""
- a = """if not (b in a) ** 2: pass"""
- self.check(b, a)
-
-class Test_apply(FixerTestCase):
- fixer = "apply"
-
- def test_1(self):
- b = """x = apply(f, g + h)"""
- a = """x = f(*g + h)"""
- self.check(b, a)
-
- def test_2(self):
- b = """y = apply(f, g, h)"""
- a = """y = f(*g, **h)"""
- self.check(b, a)
-
- def test_3(self):
- b = """z = apply(fs[0], g or h, h or g)"""
- a = """z = fs[0](*g or h, **h or g)"""
- self.check(b, a)
-
- def test_4(self):
- b = """apply(f, (x, y) + t)"""
- a = """f(*(x, y) + t)"""
- self.check(b, a)
-
- def test_5(self):
- b = """apply(f, args,)"""
- a = """f(*args)"""
- self.check(b, a)
-
- def test_6(self):
- b = """apply(f, args, kwds,)"""
- a = """f(*args, **kwds)"""
- self.check(b, a)
-
- # Test that complex functions are parenthesized
-
- def test_complex_1(self):
- b = """x = apply(f+g, args)"""
- a = """x = (f+g)(*args)"""
- self.check(b, a)
-
- def test_complex_2(self):
- b = """x = apply(f*g, args)"""
- a = """x = (f*g)(*args)"""
- self.check(b, a)
-
- def test_complex_3(self):
- b = """x = apply(f**g, args)"""
- a = """x = (f**g)(*args)"""
- self.check(b, a)
-
- # But dotted names etc. not
-
- def test_dotted_name(self):
- b = """x = apply(f.g, args)"""
- a = """x = f.g(*args)"""
- self.check(b, a)
-
- def test_subscript(self):
- b = """x = apply(f[x], args)"""
- a = """x = f[x](*args)"""
- self.check(b, a)
-
- def test_call(self):
- b = """x = apply(f(), args)"""
- a = """x = f()(*args)"""
- self.check(b, a)
-
- # Extreme case
- def test_extreme(self):
- b = """x = apply(a.b.c.d.e.f, args, kwds)"""
- a = """x = a.b.c.d.e.f(*args, **kwds)"""
- self.check(b, a)
-
- # XXX Comments in weird places still get lost
- def test_weird_comments(self):
- b = """apply( # foo
- f, # bar
- args)"""
- a = """f(*args)"""
- self.check(b, a)
-
- # These should *not* be touched
-
- def test_unchanged_1(self):
- s = """apply()"""
- self.unchanged(s)
-
- def test_unchanged_2(self):
- s = """apply(f)"""
- self.unchanged(s)
-
- def test_unchanged_3(self):
- s = """apply(f,)"""
- self.unchanged(s)
-
- def test_unchanged_4(self):
- s = """apply(f, args, kwds, extras)"""
- self.unchanged(s)
-
- def test_unchanged_5(self):
- s = """apply(f, *args, **kwds)"""
- self.unchanged(s)
-
- def test_unchanged_6(self):
- s = """apply(f, *args)"""
- self.unchanged(s)
-
- def test_unchanged_7(self):
- s = """apply(func=f, args=args, kwds=kwds)"""
- self.unchanged(s)
-
- def test_unchanged_8(self):
- s = """apply(f, args=args, kwds=kwds)"""
- self.unchanged(s)
-
- def test_unchanged_9(self):
- s = """apply(f, args, kwds=kwds)"""
- self.unchanged(s)
-
- def test_space_1(self):
- a = """apply( f, args, kwds)"""
- b = """f(*args, **kwds)"""
- self.check(a, b)
-
- def test_space_2(self):
- a = """apply( f ,args,kwds )"""
- b = """f(*args, **kwds)"""
- self.check(a, b)
-
-class Test_intern(FixerTestCase):
- fixer = "intern"
-
- def test_prefix_preservation(self):
- b = """x = intern( a )"""
- a = """import sys\nx = sys.intern( a )"""
- self.check(b, a)
-
- b = """y = intern("b" # test
- )"""
- a = """import sys\ny = sys.intern("b" # test
- )"""
- self.check(b, a)
-
- b = """z = intern(a+b+c.d, )"""
- a = """import sys\nz = sys.intern(a+b+c.d, )"""
- self.check(b, a)
-
- def test(self):
- b = """x = intern(a)"""
- a = """import sys\nx = sys.intern(a)"""
- self.check(b, a)
-
- b = """z = intern(a+b+c.d,)"""
- a = """import sys\nz = sys.intern(a+b+c.d,)"""
- self.check(b, a)
-
- b = """intern("y%s" % 5).replace("y", "")"""
- a = """import sys\nsys.intern("y%s" % 5).replace("y", "")"""
- self.check(b, a)
-
- # These should not be refactored
-
- def test_unchanged(self):
- s = """intern(a=1)"""
- self.unchanged(s)
-
- s = """intern(f, g)"""
- self.unchanged(s)
-
- s = """intern(*h)"""
- self.unchanged(s)
-
- s = """intern(**i)"""
- self.unchanged(s)
-
- s = """intern()"""
- self.unchanged(s)
-
-class Test_reduce(FixerTestCase):
- fixer = "reduce"
-
- def test_simple_call(self):
- b = "reduce(a, b, c)"
- a = "from functools import reduce\nreduce(a, b, c)"
- self.check(b, a)
-
- def test_bug_7253(self):
- # fix_tuple_params was being bad and orphaning nodes in the tree.
- b = "def x(arg): reduce(sum, [])"
- a = "from functools import reduce\ndef x(arg): reduce(sum, [])"
- self.check(b, a)
-
- def test_call_with_lambda(self):
- b = "reduce(lambda x, y: x + y, seq)"
- a = "from functools import reduce\nreduce(lambda x, y: x + y, seq)"
- self.check(b, a)
-
- def test_unchanged(self):
- s = "reduce(a)"
- self.unchanged(s)
-
- s = "reduce(a, b=42)"
- self.unchanged(s)
-
- s = "reduce(a, b, c, d)"
- self.unchanged(s)
-
- s = "reduce(**c)"
- self.unchanged(s)
-
- s = "reduce()"
- self.unchanged(s)
-
-class Test_print(FixerTestCase):
- fixer = "print"
-
- def test_prefix_preservation(self):
- b = """print 1, 1+1, 1+1+1"""
- a = """print(1, 1+1, 1+1+1)"""
- self.check(b, a)
-
- def test_idempotency(self):
- s = """print()"""
- self.unchanged(s)
-
- s = """print('')"""
- self.unchanged(s)
-
- def test_idempotency_print_as_function(self):
- self.refactor.driver.grammar = pygram.python_grammar_no_print_statement
- s = """print(1, 1+1, 1+1+1)"""
- self.unchanged(s)
-
- s = """print()"""
- self.unchanged(s)
-
- s = """print('')"""
- self.unchanged(s)
-
- def test_1(self):
- b = """print 1, 1+1, 1+1+1"""
- a = """print(1, 1+1, 1+1+1)"""
- self.check(b, a)
-
- def test_2(self):
- b = """print 1, 2"""
- a = """print(1, 2)"""
- self.check(b, a)
-
- def test_3(self):
- b = """print"""
- a = """print()"""
- self.check(b, a)
-
- def test_4(self):
- # from bug 3000
- b = """print whatever; print"""
- a = """print(whatever); print()"""
- self.check(b, a)
-
- def test_5(self):
- b = """print; print whatever;"""
- a = """print(); print(whatever);"""
- self.check(b, a)
-
- def test_tuple(self):
- b = """print (a, b, c)"""
- a = """print((a, b, c))"""
- self.check(b, a)
-
- # trailing commas
-
- def test_trailing_comma_1(self):
- b = """print 1, 2, 3,"""
- a = """print(1, 2, 3, end=' ')"""
- self.check(b, a)
-
- def test_trailing_comma_2(self):
- b = """print 1, 2,"""
- a = """print(1, 2, end=' ')"""
- self.check(b, a)
-
- def test_trailing_comma_3(self):
- b = """print 1,"""
- a = """print(1, end=' ')"""
- self.check(b, a)
-
- # >> stuff
-
- def test_vargs_without_trailing_comma(self):
- b = """print >>sys.stderr, 1, 2, 3"""
- a = """print(1, 2, 3, file=sys.stderr)"""
- self.check(b, a)
-
- def test_with_trailing_comma(self):
- b = """print >>sys.stderr, 1, 2,"""
- a = """print(1, 2, end=' ', file=sys.stderr)"""
- self.check(b, a)
-
- def test_no_trailing_comma(self):
- b = """print >>sys.stderr, 1+1"""
- a = """print(1+1, file=sys.stderr)"""
- self.check(b, a)
-
- def test_spaces_before_file(self):
- b = """print >> sys.stderr"""
- a = """print(file=sys.stderr)"""
- self.check(b, a)
-
- def test_with_future_print_function(self):
- s = "from __future__ import print_function\n" \
- "print('Hai!', end=' ')"
- self.unchanged(s)
-
- b = "print 'Hello, world!'"
- a = "print('Hello, world!')"
- self.check(b, a)
-
-
-class Test_exec(FixerTestCase):
- fixer = "exec"
-
- def test_prefix_preservation(self):
- b = """ exec code in ns1, ns2"""
- a = """ exec(code, ns1, ns2)"""
- self.check(b, a)
-
- def test_basic(self):
- b = """exec code"""
- a = """exec(code)"""
- self.check(b, a)
-
- def test_with_globals(self):
- b = """exec code in ns"""
- a = """exec(code, ns)"""
- self.check(b, a)
-
- def test_with_globals_locals(self):
- b = """exec code in ns1, ns2"""
- a = """exec(code, ns1, ns2)"""
- self.check(b, a)
-
- def test_complex_1(self):
- b = """exec (a.b()) in ns"""
- a = """exec((a.b()), ns)"""
- self.check(b, a)
-
- def test_complex_2(self):
- b = """exec a.b() + c in ns"""
- a = """exec(a.b() + c, ns)"""
- self.check(b, a)
-
- # These should not be touched
-
- def test_unchanged_1(self):
- s = """exec(code)"""
- self.unchanged(s)
-
- def test_unchanged_2(self):
- s = """exec (code)"""
- self.unchanged(s)
-
- def test_unchanged_3(self):
- s = """exec(code, ns)"""
- self.unchanged(s)
-
- def test_unchanged_4(self):
- s = """exec(code, ns1, ns2)"""
- self.unchanged(s)
-
-class Test_repr(FixerTestCase):
- fixer = "repr"
-
- def test_prefix_preservation(self):
- b = """x = `1 + 2`"""
- a = """x = repr(1 + 2)"""
- self.check(b, a)
-
- def test_simple_1(self):
- b = """x = `1 + 2`"""
- a = """x = repr(1 + 2)"""
- self.check(b, a)
-
- def test_simple_2(self):
- b = """y = `x`"""
- a = """y = repr(x)"""
- self.check(b, a)
-
- def test_complex(self):
- b = """z = `y`.__repr__()"""
- a = """z = repr(y).__repr__()"""
- self.check(b, a)
-
- def test_tuple(self):
- b = """x = `1, 2, 3`"""
- a = """x = repr((1, 2, 3))"""
- self.check(b, a)
-
- def test_nested(self):
- b = """x = `1 + `2``"""
- a = """x = repr(1 + repr(2))"""
- self.check(b, a)
-
- def test_nested_tuples(self):
- b = """x = `1, 2 + `3, 4``"""
- a = """x = repr((1, 2 + repr((3, 4))))"""
- self.check(b, a)
-
-class Test_except(FixerTestCase):
- fixer = "except"
-
- def test_prefix_preservation(self):
- b = """
- try:
- pass
- except (RuntimeError, ImportError), e:
- pass"""
- a = """
- try:
- pass
- except (RuntimeError, ImportError) as e:
- pass"""
- self.check(b, a)
-
- def test_simple(self):
- b = """
- try:
- pass
- except Foo, e:
- pass"""
- a = """
- try:
- pass
- except Foo as e:
- pass"""
- self.check(b, a)
-
- def test_simple_no_space_before_target(self):
- b = """
- try:
- pass
- except Foo,e:
- pass"""
- a = """
- try:
- pass
- except Foo as e:
- pass"""
- self.check(b, a)
-
- def test_tuple_unpack(self):
- b = """
- def foo():
- try:
- pass
- except Exception, (f, e):
- pass
- except ImportError, e:
- pass"""
-
- a = """
- def foo():
- try:
- pass
- except Exception as xxx_todo_changeme:
- (f, e) = xxx_todo_changeme.args
- pass
- except ImportError as e:
- pass"""
- self.check(b, a)
-
- def test_multi_class(self):
- b = """
- try:
- pass
- except (RuntimeError, ImportError), e:
- pass"""
-
- a = """
- try:
- pass
- except (RuntimeError, ImportError) as e:
- pass"""
- self.check(b, a)
-
- def test_list_unpack(self):
- b = """
- try:
- pass
- except Exception, [a, b]:
- pass"""
-
- a = """
- try:
- pass
- except Exception as xxx_todo_changeme:
- [a, b] = xxx_todo_changeme.args
- pass"""
- self.check(b, a)
-
- def test_weird_target_1(self):
- b = """
- try:
- pass
- except Exception, d[5]:
- pass"""
-
- a = """
- try:
- pass
- except Exception as xxx_todo_changeme:
- d[5] = xxx_todo_changeme
- pass"""
- self.check(b, a)
-
- def test_weird_target_2(self):
- b = """
- try:
- pass
- except Exception, a.foo:
- pass"""
-
- a = """
- try:
- pass
- except Exception as xxx_todo_changeme:
- a.foo = xxx_todo_changeme
- pass"""
- self.check(b, a)
-
- def test_weird_target_3(self):
- b = """
- try:
- pass
- except Exception, a().foo:
- pass"""
-
- a = """
- try:
- pass
- except Exception as xxx_todo_changeme:
- a().foo = xxx_todo_changeme
- pass"""
- self.check(b, a)
-
- def test_bare_except(self):
- b = """
- try:
- pass
- except Exception, a:
- pass
- except:
- pass"""
-
- a = """
- try:
- pass
- except Exception as a:
- pass
- except:
- pass"""
- self.check(b, a)
-
- def test_bare_except_and_else_finally(self):
- b = """
- try:
- pass
- except Exception, a:
- pass
- except:
- pass
- else:
- pass
- finally:
- pass"""
-
- a = """
- try:
- pass
- except Exception as a:
- pass
- except:
- pass
- else:
- pass
- finally:
- pass"""
- self.check(b, a)
-
- def test_multi_fixed_excepts_before_bare_except(self):
- b = """
- try:
- pass
- except TypeError, b:
- pass
- except Exception, a:
- pass
- except:
- pass"""
-
- a = """
- try:
- pass
- except TypeError as b:
- pass
- except Exception as a:
- pass
- except:
- pass"""
- self.check(b, a)
-
- def test_one_line_suites(self):
- b = """
- try: raise TypeError
- except TypeError, e:
- pass
- """
- a = """
- try: raise TypeError
- except TypeError as e:
- pass
- """
- self.check(b, a)
- b = """
- try:
- raise TypeError
- except TypeError, e: pass
- """
- a = """
- try:
- raise TypeError
- except TypeError as e: pass
- """
- self.check(b, a)
- b = """
- try: raise TypeError
- except TypeError, e: pass
- """
- a = """
- try: raise TypeError
- except TypeError as e: pass
- """
- self.check(b, a)
- b = """
- try: raise TypeError
- except TypeError, e: pass
- else: function()
- finally: done()
- """
- a = """
- try: raise TypeError
- except TypeError as e: pass
- else: function()
- finally: done()
- """
- self.check(b, a)
-
- # These should not be touched:
-
- def test_unchanged_1(self):
- s = """
- try:
- pass
- except:
- pass"""
- self.unchanged(s)
-
- def test_unchanged_2(self):
- s = """
- try:
- pass
- except Exception:
- pass"""
- self.unchanged(s)
-
- def test_unchanged_3(self):
- s = """
- try:
- pass
- except (Exception, SystemExit):
- pass"""
- self.unchanged(s)
-
-class Test_raise(FixerTestCase):
- fixer = "raise"
-
- def test_basic(self):
- b = """raise Exception, 5"""
- a = """raise Exception(5)"""
- self.check(b, a)
-
- def test_prefix_preservation(self):
- b = """raise Exception,5"""
- a = """raise Exception(5)"""
- self.check(b, a)
-
- b = """raise Exception, 5"""
- a = """raise Exception(5)"""
- self.check(b, a)
-
- def test_with_comments(self):
- b = """raise Exception, 5 # foo"""
- a = """raise Exception(5) # foo"""
- self.check(b, a)
-
- b = """raise E, (5, 6) % (a, b) # foo"""
- a = """raise E((5, 6) % (a, b)) # foo"""
- self.check(b, a)
-
- b = """def foo():
- raise Exception, 5, 6 # foo"""
- a = """def foo():
- raise Exception(5).with_traceback(6) # foo"""
- self.check(b, a)
-
- def test_None_value(self):
- b = """raise Exception(5), None, tb"""
- a = """raise Exception(5).with_traceback(tb)"""
- self.check(b, a)
-
- def test_tuple_value(self):
- b = """raise Exception, (5, 6, 7)"""
- a = """raise Exception(5, 6, 7)"""
- self.check(b, a)
-
- def test_tuple_detection(self):
- b = """raise E, (5, 6) % (a, b)"""
- a = """raise E((5, 6) % (a, b))"""
- self.check(b, a)
-
- def test_tuple_exc_1(self):
- b = """raise (((E1, E2), E3), E4), V"""
- a = """raise E1(V)"""
- self.check(b, a)
-
- def test_tuple_exc_2(self):
- b = """raise (E1, (E2, E3), E4), V"""
- a = """raise E1(V)"""
- self.check(b, a)
-
- # These should produce a warning
-
- def test_string_exc(self):
- s = """raise 'foo'"""
- self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
- def test_string_exc_val(self):
- s = """raise "foo", 5"""
- self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
- def test_string_exc_val_tb(self):
- s = """raise "foo", 5, 6"""
- self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
- # These should result in traceback-assignment
-
- def test_tb_1(self):
- b = """def foo():
- raise Exception, 5, 6"""
- a = """def foo():
- raise Exception(5).with_traceback(6)"""
- self.check(b, a)
-
- def test_tb_2(self):
- b = """def foo():
- a = 5
- raise Exception, 5, 6
- b = 6"""
- a = """def foo():
- a = 5
- raise Exception(5).with_traceback(6)
- b = 6"""
- self.check(b, a)
-
- def test_tb_3(self):
- b = """def foo():
- raise Exception,5,6"""
- a = """def foo():
- raise Exception(5).with_traceback(6)"""
- self.check(b, a)
-
- def test_tb_4(self):
- b = """def foo():
- a = 5
- raise Exception,5,6
- b = 6"""
- a = """def foo():
- a = 5
- raise Exception(5).with_traceback(6)
- b = 6"""
- self.check(b, a)
-
- def test_tb_5(self):
- b = """def foo():
- raise Exception, (5, 6, 7), 6"""
- a = """def foo():
- raise Exception(5, 6, 7).with_traceback(6)"""
- self.check(b, a)
-
- def test_tb_6(self):
- b = """def foo():
- a = 5
- raise Exception, (5, 6, 7), 6
- b = 6"""
- a = """def foo():
- a = 5
- raise Exception(5, 6, 7).with_traceback(6)
- b = 6"""
- self.check(b, a)
-
-class Test_throw(FixerTestCase):
- fixer = "throw"
-
- def test_1(self):
- b = """g.throw(Exception, 5)"""
- a = """g.throw(Exception(5))"""
- self.check(b, a)
-
- def test_2(self):
- b = """g.throw(Exception,5)"""
- a = """g.throw(Exception(5))"""
- self.check(b, a)
-
- def test_3(self):
- b = """g.throw(Exception, (5, 6, 7))"""
- a = """g.throw(Exception(5, 6, 7))"""
- self.check(b, a)
-
- def test_4(self):
- b = """5 + g.throw(Exception, 5)"""
- a = """5 + g.throw(Exception(5))"""
- self.check(b, a)
-
- # These should produce warnings
-
- def test_warn_1(self):
- s = """g.throw("foo")"""
- self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
- def test_warn_2(self):
- s = """g.throw("foo", 5)"""
- self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
- def test_warn_3(self):
- s = """g.throw("foo", 5, 6)"""
- self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
- # These should not be touched
-
- def test_untouched_1(self):
- s = """g.throw(Exception)"""
- self.unchanged(s)
-
- def test_untouched_2(self):
- s = """g.throw(Exception(5, 6))"""
- self.unchanged(s)
-
- def test_untouched_3(self):
- s = """5 + g.throw(Exception(5, 6))"""
- self.unchanged(s)
-
- # These should result in traceback-assignment
-
- def test_tb_1(self):
- b = """def foo():
- g.throw(Exception, 5, 6)"""
- a = """def foo():
- g.throw(Exception(5).with_traceback(6))"""
- self.check(b, a)
-
- def test_tb_2(self):
- b = """def foo():
- a = 5
- g.throw(Exception, 5, 6)
- b = 6"""
- a = """def foo():
- a = 5
- g.throw(Exception(5).with_traceback(6))
- b = 6"""
- self.check(b, a)
-
- def test_tb_3(self):
- b = """def foo():
- g.throw(Exception,5,6)"""
- a = """def foo():
- g.throw(Exception(5).with_traceback(6))"""
- self.check(b, a)
-
- def test_tb_4(self):
- b = """def foo():
- a = 5
- g.throw(Exception,5,6)
- b = 6"""
- a = """def foo():
- a = 5
- g.throw(Exception(5).with_traceback(6))
- b = 6"""
- self.check(b, a)
-
- def test_tb_5(self):
- b = """def foo():
- g.throw(Exception, (5, 6, 7), 6)"""
- a = """def foo():
- g.throw(Exception(5, 6, 7).with_traceback(6))"""
- self.check(b, a)
-
- def test_tb_6(self):
- b = """def foo():
- a = 5
- g.throw(Exception, (5, 6, 7), 6)
- b = 6"""
- a = """def foo():
- a = 5
- g.throw(Exception(5, 6, 7).with_traceback(6))
- b = 6"""
- self.check(b, a)
-
- def test_tb_7(self):
- b = """def foo():
- a + g.throw(Exception, 5, 6)"""
- a = """def foo():
- a + g.throw(Exception(5).with_traceback(6))"""
- self.check(b, a)
-
- def test_tb_8(self):
- b = """def foo():
- a = 5
- a + g.throw(Exception, 5, 6)
- b = 6"""
- a = """def foo():
- a = 5
- a + g.throw(Exception(5).with_traceback(6))
- b = 6"""
- self.check(b, a)
-
-class Test_long(FixerTestCase):
- fixer = "long"
-
- def test_1(self):
- b = """x = long(x)"""
- a = """x = int(x)"""
- self.check(b, a)
-
- def test_2(self):
- b = """y = isinstance(x, long)"""
- a = """y = isinstance(x, int)"""
- self.check(b, a)
-
- def test_3(self):
- b = """z = type(x) in (int, long)"""
- a = """z = type(x) in (int, int)"""
- self.check(b, a)
-
- def test_unchanged(self):
- s = """long = True"""
- self.unchanged(s)
-
- s = """s.long = True"""
- self.unchanged(s)
-
- s = """def long(): pass"""
- self.unchanged(s)
-
- s = """class long(): pass"""
- self.unchanged(s)
-
- s = """def f(long): pass"""
- self.unchanged(s)
-
- s = """def f(g, long): pass"""
- self.unchanged(s)
-
- s = """def f(x, long=True): pass"""
- self.unchanged(s)
-
- def test_prefix_preservation(self):
- b = """x = long( x )"""
- a = """x = int( x )"""
- self.check(b, a)
-
-
-class Test_execfile(FixerTestCase):
- fixer = "execfile"
-
- def test_conversion(self):
- b = """execfile("fn")"""
- a = """exec(compile(open("fn").read(), "fn", 'exec'))"""
- self.check(b, a)
-
- b = """execfile("fn", glob)"""
- a = """exec(compile(open("fn").read(), "fn", 'exec'), glob)"""
- self.check(b, a)
-
- b = """execfile("fn", glob, loc)"""
- a = """exec(compile(open("fn").read(), "fn", 'exec'), glob, loc)"""
- self.check(b, a)
-
- b = """execfile("fn", globals=glob)"""
- a = """exec(compile(open("fn").read(), "fn", 'exec'), globals=glob)"""
- self.check(b, a)
-
- b = """execfile("fn", locals=loc)"""
- a = """exec(compile(open("fn").read(), "fn", 'exec'), locals=loc)"""
- self.check(b, a)
-
- b = """execfile("fn", globals=glob, locals=loc)"""
- a = """exec(compile(open("fn").read(), "fn", 'exec'), globals=glob, locals=loc)"""
- self.check(b, a)
-
- def test_spacing(self):
- b = """execfile( "fn" )"""
- a = """exec(compile(open( "fn" ).read(), "fn", 'exec'))"""
- self.check(b, a)
-
- b = """execfile("fn", globals = glob)"""
- a = """exec(compile(open("fn").read(), "fn", 'exec'), globals = glob)"""
- self.check(b, a)
-
-
-class Test_isinstance(FixerTestCase):
- fixer = "isinstance"
-
- def test_remove_multiple_items(self):
- b = """isinstance(x, (int, int, int))"""
- a = """isinstance(x, int)"""
- self.check(b, a)
-
- b = """isinstance(x, (int, float, int, int, float))"""
- a = """isinstance(x, (int, float))"""
- self.check(b, a)
-
- b = """isinstance(x, (int, float, int, int, float, str))"""
- a = """isinstance(x, (int, float, str))"""
- self.check(b, a)
-
- b = """isinstance(foo() + bar(), (x(), y(), x(), int, int))"""
- a = """isinstance(foo() + bar(), (x(), y(), x(), int))"""
- self.check(b, a)
-
- def test_prefix_preservation(self):
- b = """if isinstance( foo(), ( bar, bar, baz )) : pass"""
- a = """if isinstance( foo(), ( bar, baz )) : pass"""
- self.check(b, a)
-
- def test_unchanged(self):
- self.unchanged("isinstance(x, (str, int))")
-
-class Test_dict(FixerTestCase):
- fixer = "dict"
-
- def test_prefix_preservation(self):
- b = "if d. keys ( ) : pass"
- a = "if list(d. keys ( )) : pass"
- self.check(b, a)
-
- b = "if d. items ( ) : pass"
- a = "if list(d. items ( )) : pass"
- self.check(b, a)
-
- b = "if d. iterkeys ( ) : pass"
- a = "if iter(d. keys ( )) : pass"
- self.check(b, a)
-
- b = "[i for i in d. iterkeys( ) ]"
- a = "[i for i in d. keys( ) ]"
- self.check(b, a)
-
- b = "if d. viewkeys ( ) : pass"
- a = "if d. keys ( ) : pass"
- self.check(b, a)
-
- b = "[i for i in d. viewkeys( ) ]"
- a = "[i for i in d. keys( ) ]"
- self.check(b, a)
-
- def test_trailing_comment(self):
- b = "d.keys() # foo"
- a = "list(d.keys()) # foo"
- self.check(b, a)
-
- b = "d.items() # foo"
- a = "list(d.items()) # foo"
- self.check(b, a)
-
- b = "d.iterkeys() # foo"
- a = "iter(d.keys()) # foo"
- self.check(b, a)
-
- b = """[i for i in d.iterkeys() # foo
- ]"""
- a = """[i for i in d.keys() # foo
- ]"""
- self.check(b, a)
-
- b = """[i for i in d.iterkeys() # foo
- ]"""
- a = """[i for i in d.keys() # foo
- ]"""
- self.check(b, a)
-
- b = "d.viewitems() # foo"
- a = "d.items() # foo"
- self.check(b, a)
-
- def test_unchanged(self):
- for wrapper in fixer_util.consuming_calls:
- s = "s = %s(d.keys())" % wrapper
- self.unchanged(s)
-
- s = "s = %s(d.values())" % wrapper
- self.unchanged(s)
-
- s = "s = %s(d.items())" % wrapper
- self.unchanged(s)
-
- def test_01(self):
- b = "d.keys()"
- a = "list(d.keys())"
- self.check(b, a)
-
- b = "a[0].foo().keys()"
- a = "list(a[0].foo().keys())"
- self.check(b, a)
-
- def test_02(self):
- b = "d.items()"
- a = "list(d.items())"
- self.check(b, a)
-
- def test_03(self):
- b = "d.values()"
- a = "list(d.values())"
- self.check(b, a)
-
- def test_04(self):
- b = "d.iterkeys()"
- a = "iter(d.keys())"
- self.check(b, a)
-
- def test_05(self):
- b = "d.iteritems()"
- a = "iter(d.items())"
- self.check(b, a)
-
- def test_06(self):
- b = "d.itervalues()"
- a = "iter(d.values())"
- self.check(b, a)
-
- def test_07(self):
- s = "list(d.keys())"
- self.unchanged(s)
-
- def test_08(self):
- s = "sorted(d.keys())"
- self.unchanged(s)
-
- def test_09(self):
- b = "iter(d.keys())"
- a = "iter(list(d.keys()))"
- self.check(b, a)
-
- def test_10(self):
- b = "foo(d.keys())"
- a = "foo(list(d.keys()))"
- self.check(b, a)
-
- def test_11(self):
- b = "for i in d.keys(): print i"
- a = "for i in list(d.keys()): print i"
- self.check(b, a)
-
- def test_12(self):
- b = "for i in d.iterkeys(): print i"
- a = "for i in d.keys(): print i"
- self.check(b, a)
-
- def test_13(self):
- b = "[i for i in d.keys()]"
- a = "[i for i in list(d.keys())]"
- self.check(b, a)
-
- def test_14(self):
- b = "[i for i in d.iterkeys()]"
- a = "[i for i in d.keys()]"
- self.check(b, a)
-
- def test_15(self):
- b = "(i for i in d.keys())"
- a = "(i for i in list(d.keys()))"
- self.check(b, a)
-
- def test_16(self):
- b = "(i for i in d.iterkeys())"
- a = "(i for i in d.keys())"
- self.check(b, a)
-
- def test_17(self):
- b = "iter(d.iterkeys())"
- a = "iter(d.keys())"
- self.check(b, a)
-
- def test_18(self):
- b = "list(d.iterkeys())"
- a = "list(d.keys())"
- self.check(b, a)
-
- def test_19(self):
- b = "sorted(d.iterkeys())"
- a = "sorted(d.keys())"
- self.check(b, a)
-
- def test_20(self):
- b = "foo(d.iterkeys())"
- a = "foo(iter(d.keys()))"
- self.check(b, a)
-
- def test_21(self):
- b = "print h.iterkeys().next()"
- a = "print iter(h.keys()).next()"
- self.check(b, a)
-
- def test_22(self):
- b = "print h.keys()[0]"
- a = "print list(h.keys())[0]"
- self.check(b, a)
-
- def test_23(self):
- b = "print list(h.iterkeys().next())"
- a = "print list(iter(h.keys()).next())"
- self.check(b, a)
-
- def test_24(self):
- b = "for x in h.keys()[0]: print x"
- a = "for x in list(h.keys())[0]: print x"
- self.check(b, a)
-
- def test_25(self):
- b = "d.viewkeys()"
- a = "d.keys()"
- self.check(b, a)
-
- def test_26(self):
- b = "d.viewitems()"
- a = "d.items()"
- self.check(b, a)
-
- def test_27(self):
- b = "d.viewvalues()"
- a = "d.values()"
- self.check(b, a)
-
- def test_14(self):
- b = "[i for i in d.viewkeys()]"
- a = "[i for i in d.keys()]"
- self.check(b, a)
-
- def test_15(self):
- b = "(i for i in d.viewkeys())"
- a = "(i for i in d.keys())"
- self.check(b, a)
-
- def test_17(self):
- b = "iter(d.viewkeys())"
- a = "iter(d.keys())"
- self.check(b, a)
-
- def test_18(self):
- b = "list(d.viewkeys())"
- a = "list(d.keys())"
- self.check(b, a)
-
- def test_19(self):
- b = "sorted(d.viewkeys())"
- a = "sorted(d.keys())"
- self.check(b, a)
-
-class Test_xrange(FixerTestCase):
- fixer = "xrange"
-
- def test_prefix_preservation(self):
- b = """x = xrange( 10 )"""
- a = """x = range( 10 )"""
- self.check(b, a)
-
- b = """x = xrange( 1 , 10 )"""
- a = """x = range( 1 , 10 )"""
- self.check(b, a)
-
- b = """x = xrange( 0 , 10 , 2 )"""
- a = """x = range( 0 , 10 , 2 )"""
- self.check(b, a)
-
- def test_single_arg(self):
- b = """x = xrange(10)"""
- a = """x = range(10)"""
- self.check(b, a)
-
- def test_two_args(self):
- b = """x = xrange(1, 10)"""
- a = """x = range(1, 10)"""
- self.check(b, a)
-
- def test_three_args(self):
- b = """x = xrange(0, 10, 2)"""
- a = """x = range(0, 10, 2)"""
- self.check(b, a)
-
- def test_wrap_in_list(self):
- b = """x = range(10, 3, 9)"""
- a = """x = list(range(10, 3, 9))"""
- self.check(b, a)
-
- b = """x = foo(range(10, 3, 9))"""
- a = """x = foo(list(range(10, 3, 9)))"""
- self.check(b, a)
-
- b = """x = range(10, 3, 9) + [4]"""
- a = """x = list(range(10, 3, 9)) + [4]"""
- self.check(b, a)
-
- b = """x = range(10)[::-1]"""
- a = """x = list(range(10))[::-1]"""
- self.check(b, a)
-
- b = """x = range(10) [3]"""
- a = """x = list(range(10)) [3]"""
- self.check(b, a)
-
- def test_xrange_in_for(self):
- b = """for i in xrange(10):\n j=i"""
- a = """for i in range(10):\n j=i"""
- self.check(b, a)
-
- b = """[i for i in xrange(10)]"""
- a = """[i for i in range(10)]"""
- self.check(b, a)
-
- def test_range_in_for(self):
- self.unchanged("for i in range(10): pass")
- self.unchanged("[i for i in range(10)]")
-
- def test_in_contains_test(self):
- self.unchanged("x in range(10, 3, 9)")
-
- def test_in_consuming_context(self):
- for call in fixer_util.consuming_calls:
- self.unchanged("a = %s(range(10))" % call)
-
-class Test_xrange_with_reduce(FixerTestCase):
-
- def setUp(self):
- super(Test_xrange_with_reduce, self).setUp(["xrange", "reduce"])
-
- def test_double_transform(self):
- b = """reduce(x, xrange(5))"""
- a = """from functools import reduce
-reduce(x, range(5))"""
- self.check(b, a)
-
-class Test_raw_input(FixerTestCase):
- fixer = "raw_input"
-
- def test_prefix_preservation(self):
- b = """x = raw_input( )"""
- a = """x = input( )"""
- self.check(b, a)
-
- b = """x = raw_input( '' )"""
- a = """x = input( '' )"""
- self.check(b, a)
-
- def test_1(self):
- b = """x = raw_input()"""
- a = """x = input()"""
- self.check(b, a)
-
- def test_2(self):
- b = """x = raw_input('')"""
- a = """x = input('')"""
- self.check(b, a)
-
- def test_3(self):
- b = """x = raw_input('prompt')"""
- a = """x = input('prompt')"""
- self.check(b, a)
-
- def test_4(self):
- b = """x = raw_input(foo(a) + 6)"""
- a = """x = input(foo(a) + 6)"""
- self.check(b, a)
-
- def test_5(self):
- b = """x = raw_input(invite).split()"""
- a = """x = input(invite).split()"""
- self.check(b, a)
-
- def test_6(self):
- b = """x = raw_input(invite) . split ()"""
- a = """x = input(invite) . split ()"""
- self.check(b, a)
-
- def test_8(self):
- b = "x = int(raw_input())"
- a = "x = int(input())"
- self.check(b, a)
-
-class Test_funcattrs(FixerTestCase):
- fixer = "funcattrs"
-
- attrs = ["closure", "doc", "name", "defaults", "code", "globals", "dict"]
-
- def test(self):
- for attr in self.attrs:
- b = "a.func_%s" % attr
- a = "a.__%s__" % attr
- self.check(b, a)
-
- b = "self.foo.func_%s.foo_bar" % attr
- a = "self.foo.__%s__.foo_bar" % attr
- self.check(b, a)
-
- def test_unchanged(self):
- for attr in self.attrs:
- s = "foo(func_%s + 5)" % attr
- self.unchanged(s)
-
- s = "f(foo.__%s__)" % attr
- self.unchanged(s)
-
- s = "f(foo.__%s__.foo)" % attr
- self.unchanged(s)
-
-class Test_xreadlines(FixerTestCase):
- fixer = "xreadlines"
-
- def test_call(self):
- b = "for x in f.xreadlines(): pass"
- a = "for x in f: pass"
- self.check(b, a)
-
- b = "for x in foo().xreadlines(): pass"
- a = "for x in foo(): pass"
- self.check(b, a)
-
- b = "for x in (5 + foo()).xreadlines(): pass"
- a = "for x in (5 + foo()): pass"
- self.check(b, a)
-
- def test_attr_ref(self):
- b = "foo(f.xreadlines + 5)"
- a = "foo(f.__iter__ + 5)"
- self.check(b, a)
-
- b = "foo(f().xreadlines + 5)"
- a = "foo(f().__iter__ + 5)"
- self.check(b, a)
-
- b = "foo((5 + f()).xreadlines + 5)"
- a = "foo((5 + f()).__iter__ + 5)"
- self.check(b, a)
-
- def test_unchanged(self):
- s = "for x in f.xreadlines(5): pass"
- self.unchanged(s)
-
- s = "for x in f.xreadlines(k=5): pass"
- self.unchanged(s)
-
- s = "for x in f.xreadlines(*k, **v): pass"
- self.unchanged(s)
-
- s = "foo(xreadlines)"
- self.unchanged(s)
-
-
-class ImportsFixerTests:
-
- def test_import_module(self):
- for old, new in self.modules.items():
- b = "import %s" % old
- a = "import %s" % new
- self.check(b, a)
-
- b = "import foo, %s, bar" % old
- a = "import foo, %s, bar" % new
- self.check(b, a)
-
- def test_import_from(self):
- for old, new in self.modules.items():
- b = "from %s import foo" % old
- a = "from %s import foo" % new
- self.check(b, a)
-
- b = "from %s import foo, bar" % old
- a = "from %s import foo, bar" % new
- self.check(b, a)
-
- b = "from %s import (yes, no)" % old
- a = "from %s import (yes, no)" % new
- self.check(b, a)
-
- def test_import_module_as(self):
- for old, new in self.modules.items():
- b = "import %s as foo_bar" % old
- a = "import %s as foo_bar" % new
- self.check(b, a)
-
- b = "import %s as foo_bar" % old
- a = "import %s as foo_bar" % new
- self.check(b, a)
-
- def test_import_from_as(self):
- for old, new in self.modules.items():
- b = "from %s import foo as bar" % old
- a = "from %s import foo as bar" % new
- self.check(b, a)
-
- def test_star(self):
- for old, new in self.modules.items():
- b = "from %s import *" % old
- a = "from %s import *" % new
- self.check(b, a)
-
- def test_import_module_usage(self):
- for old, new in self.modules.items():
- b = """
- import %s
- foo(%s.bar)
- """ % (old, old)
- a = """
- import %s
- foo(%s.bar)
- """ % (new, new)
- self.check(b, a)
-
- b = """
- from %s import x
- %s = 23
- """ % (old, old)
- a = """
- from %s import x
- %s = 23
- """ % (new, old)
- self.check(b, a)
-
- s = """
- def f():
- %s.method()
- """ % (old,)
- self.unchanged(s)
-
- # test nested usage
- b = """
- import %s
- %s.bar(%s.foo)
- """ % (old, old, old)
- a = """
- import %s
- %s.bar(%s.foo)
- """ % (new, new, new)
- self.check(b, a)
-
- b = """
- import %s
- x.%s
- """ % (old, old)
- a = """
- import %s
- x.%s
- """ % (new, old)
- self.check(b, a)
-
-
-class Test_imports(FixerTestCase, ImportsFixerTests):
- fixer = "imports"
- from ..fixes.fix_imports import MAPPING as modules
-
- def test_multiple_imports(self):
- b = """import urlparse, cStringIO"""
- a = """import urllib.parse, io"""
- self.check(b, a)
-
- def test_multiple_imports_as(self):
- b = """
- import copy_reg as bar, HTMLParser as foo, urlparse
- s = urlparse.spam(bar.foo())
- """
- a = """
- import copyreg as bar, html.parser as foo, urllib.parse
- s = urllib.parse.spam(bar.foo())
- """
- self.check(b, a)
-
-
-class Test_imports2(FixerTestCase, ImportsFixerTests):
- fixer = "imports2"
- from ..fixes.fix_imports2 import MAPPING as modules
-
-
-class Test_imports_fixer_order(FixerTestCase, ImportsFixerTests):
-
- def setUp(self):
- super(Test_imports_fixer_order, self).setUp(['imports', 'imports2'])
- from ..fixes.fix_imports2 import MAPPING as mapping2
- self.modules = mapping2.copy()
- from ..fixes.fix_imports import MAPPING as mapping1
- for key in ('dbhash', 'dumbdbm', 'dbm', 'gdbm'):
- self.modules[key] = mapping1[key]
-
- def test_after_local_imports_refactoring(self):
- for fix in ("imports", "imports2"):
- self.fixer = fix
- self.assert_runs_after("import")
-
-
-class Test_urllib(FixerTestCase):
- fixer = "urllib"
- from ..fixes.fix_urllib import MAPPING as modules
-
- def test_import_module(self):
- for old, changes in self.modules.items():
- b = "import %s" % old
- a = "import %s" % ", ".join(map(itemgetter(0), changes))
- self.check(b, a)
-
- def test_import_from(self):
- for old, changes in self.modules.items():
- all_members = []
- for new, members in changes:
- for member in members:
- all_members.append(member)
- b = "from %s import %s" % (old, member)
- a = "from %s import %s" % (new, member)
- self.check(b, a)
-
- s = "from foo import %s" % member
- self.unchanged(s)
-
- b = "from %s import %s" % (old, ", ".join(members))
- a = "from %s import %s" % (new, ", ".join(members))
- self.check(b, a)
-
- s = "from foo import %s" % ", ".join(members)
- self.unchanged(s)
-
- # test the breaking of a module into multiple replacements
- b = "from %s import %s" % (old, ", ".join(all_members))
- a = "\n".join(["from %s import %s" % (new, ", ".join(members))
- for (new, members) in changes])
- self.check(b, a)
-
- def test_import_module_as(self):
- for old in self.modules:
- s = "import %s as foo" % old
- self.warns_unchanged(s, "This module is now multiple modules")
-
- def test_import_from_as(self):
- for old, changes in self.modules.items():
- for new, members in changes:
- for member in members:
- b = "from %s import %s as foo_bar" % (old, member)
- a = "from %s import %s as foo_bar" % (new, member)
- self.check(b, a)
- b = "from %s import %s as blah, %s" % (old, member, member)
- a = "from %s import %s as blah, %s" % (new, member, member)
- self.check(b, a)
-
- def test_star(self):
- for old in self.modules:
- s = "from %s import *" % old
- self.warns_unchanged(s, "Cannot handle star imports")
-
- def test_indented(self):
- b = """
-def foo():
- from urllib import urlencode, urlopen
-"""
- a = """
-def foo():
- from urllib.parse import urlencode
- from urllib.request import urlopen
-"""
- self.check(b, a)
-
- b = """
-def foo():
- other()
- from urllib import urlencode, urlopen
-"""
- a = """
-def foo():
- other()
- from urllib.parse import urlencode
- from urllib.request import urlopen
-"""
- self.check(b, a)
-
-
-
- def test_import_module_usage(self):
- for old, changes in self.modules.items():
- for new, members in changes:
- for member in members:
- new_import = ", ".join([n for (n, mems)
- in self.modules[old]])
- b = """
- import %s
- foo(%s.%s)
- """ % (old, old, member)
- a = """
- import %s
- foo(%s.%s)
- """ % (new_import, new, member)
- self.check(b, a)
- b = """
- import %s
- %s.%s(%s.%s)
- """ % (old, old, member, old, member)
- a = """
- import %s
- %s.%s(%s.%s)
- """ % (new_import, new, member, new, member)
- self.check(b, a)
-
-
-class Test_input(FixerTestCase):
- fixer = "input"
-
- def test_prefix_preservation(self):
- b = """x = input( )"""
- a = """x = eval(input( ))"""
- self.check(b, a)
-
- b = """x = input( '' )"""
- a = """x = eval(input( '' ))"""
- self.check(b, a)
-
- def test_trailing_comment(self):
- b = """x = input() # foo"""
- a = """x = eval(input()) # foo"""
- self.check(b, a)
-
- def test_idempotency(self):
- s = """x = eval(input())"""
- self.unchanged(s)
-
- s = """x = eval(input(''))"""
- self.unchanged(s)
-
- s = """x = eval(input(foo(5) + 9))"""
- self.unchanged(s)
-
- def test_1(self):
- b = """x = input()"""
- a = """x = eval(input())"""
- self.check(b, a)
-
- def test_2(self):
- b = """x = input('')"""
- a = """x = eval(input(''))"""
- self.check(b, a)
-
- def test_3(self):
- b = """x = input('prompt')"""
- a = """x = eval(input('prompt'))"""
- self.check(b, a)
-
- def test_4(self):
- b = """x = input(foo(5) + 9)"""
- a = """x = eval(input(foo(5) + 9))"""
- self.check(b, a)
-
-class Test_tuple_params(FixerTestCase):
- fixer = "tuple_params"
-
- def test_unchanged_1(self):
- s = """def foo(): pass"""
- self.unchanged(s)
-
- def test_unchanged_2(self):
- s = """def foo(a, b, c): pass"""
- self.unchanged(s)
-
- def test_unchanged_3(self):
- s = """def foo(a=3, b=4, c=5): pass"""
- self.unchanged(s)
-
- def test_1(self):
- b = """
- def foo(((a, b), c)):
- x = 5"""
-
- a = """
- def foo(xxx_todo_changeme):
- ((a, b), c) = xxx_todo_changeme
- x = 5"""
- self.check(b, a)
-
- def test_2(self):
- b = """
- def foo(((a, b), c), d):
- x = 5"""
-
- a = """
- def foo(xxx_todo_changeme, d):
- ((a, b), c) = xxx_todo_changeme
- x = 5"""
- self.check(b, a)
-
- def test_3(self):
- b = """
- def foo(((a, b), c), d) -> e:
- x = 5"""
-
- a = """
- def foo(xxx_todo_changeme, d) -> e:
- ((a, b), c) = xxx_todo_changeme
- x = 5"""
- self.check(b, a)
-
- def test_semicolon(self):
- b = """
- def foo(((a, b), c)): x = 5; y = 7"""
-
- a = """
- def foo(xxx_todo_changeme): ((a, b), c) = xxx_todo_changeme; x = 5; y = 7"""
- self.check(b, a)
-
- def test_keywords(self):
- b = """
- def foo(((a, b), c), d, e=5) -> z:
- x = 5"""
-
- a = """
- def foo(xxx_todo_changeme, d, e=5) -> z:
- ((a, b), c) = xxx_todo_changeme
- x = 5"""
- self.check(b, a)
-
- def test_varargs(self):
- b = """
- def foo(((a, b), c), d, *vargs, **kwargs) -> z:
- x = 5"""
-
- a = """
- def foo(xxx_todo_changeme, d, *vargs, **kwargs) -> z:
- ((a, b), c) = xxx_todo_changeme
- x = 5"""
- self.check(b, a)
-
- def test_multi_1(self):
- b = """
- def foo(((a, b), c), (d, e, f)) -> z:
- x = 5"""
-
- a = """
- def foo(xxx_todo_changeme, xxx_todo_changeme1) -> z:
- ((a, b), c) = xxx_todo_changeme
- (d, e, f) = xxx_todo_changeme1
- x = 5"""
- self.check(b, a)
-
- def test_multi_2(self):
- b = """
- def foo(x, ((a, b), c), d, (e, f, g), y) -> z:
- x = 5"""
-
- a = """
- def foo(x, xxx_todo_changeme, d, xxx_todo_changeme1, y) -> z:
- ((a, b), c) = xxx_todo_changeme
- (e, f, g) = xxx_todo_changeme1
- x = 5"""
- self.check(b, a)
-
- def test_docstring(self):
- b = """
- def foo(((a, b), c), (d, e, f)) -> z:
- "foo foo foo foo"
- x = 5"""
-
- a = """
- def foo(xxx_todo_changeme, xxx_todo_changeme1) -> z:
- "foo foo foo foo"
- ((a, b), c) = xxx_todo_changeme
- (d, e, f) = xxx_todo_changeme1
- x = 5"""
- self.check(b, a)
-
- def test_lambda_no_change(self):
- s = """lambda x: x + 5"""
- self.unchanged(s)
-
- def test_lambda_parens_single_arg(self):
- b = """lambda (x): x + 5"""
- a = """lambda x: x + 5"""
- self.check(b, a)
-
- b = """lambda(x): x + 5"""
- a = """lambda x: x + 5"""
- self.check(b, a)
-
- b = """lambda ((((x)))): x + 5"""
- a = """lambda x: x + 5"""
- self.check(b, a)
-
- b = """lambda((((x)))): x + 5"""
- a = """lambda x: x + 5"""
- self.check(b, a)
-
- def test_lambda_simple(self):
- b = """lambda (x, y): x + f(y)"""
- a = """lambda x_y: x_y[0] + f(x_y[1])"""
- self.check(b, a)
-
- b = """lambda(x, y): x + f(y)"""
- a = """lambda x_y: x_y[0] + f(x_y[1])"""
- self.check(b, a)
-
- b = """lambda (((x, y))): x + f(y)"""
- a = """lambda x_y: x_y[0] + f(x_y[1])"""
- self.check(b, a)
-
- b = """lambda(((x, y))): x + f(y)"""
- a = """lambda x_y: x_y[0] + f(x_y[1])"""
- self.check(b, a)
-
- def test_lambda_one_tuple(self):
- b = """lambda (x,): x + f(x)"""
- a = """lambda x1: x1[0] + f(x1[0])"""
- self.check(b, a)
-
- b = """lambda (((x,))): x + f(x)"""
- a = """lambda x1: x1[0] + f(x1[0])"""
- self.check(b, a)
-
- def test_lambda_simple_multi_use(self):
- b = """lambda (x, y): x + x + f(x) + x"""
- a = """lambda x_y: x_y[0] + x_y[0] + f(x_y[0]) + x_y[0]"""
- self.check(b, a)
-
- def test_lambda_simple_reverse(self):
- b = """lambda (x, y): y + x"""
- a = """lambda x_y: x_y[1] + x_y[0]"""
- self.check(b, a)
-
- def test_lambda_nested(self):
- b = """lambda (x, (y, z)): x + y + z"""
- a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + x_y_z[1][1]"""
- self.check(b, a)
-
- b = """lambda (((x, (y, z)))): x + y + z"""
- a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + x_y_z[1][1]"""
- self.check(b, a)
-
- def test_lambda_nested_multi_use(self):
- b = """lambda (x, (y, z)): x + y + f(y)"""
- a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + f(x_y_z[1][0])"""
- self.check(b, a)
-
-class Test_methodattrs(FixerTestCase):
- fixer = "methodattrs"
-
- attrs = ["func", "self", "class"]
-
- def test(self):
- for attr in self.attrs:
- b = "a.im_%s" % attr
- if attr == "class":
- a = "a.__self__.__class__"
- else:
- a = "a.__%s__" % attr
- self.check(b, a)
-
- b = "self.foo.im_%s.foo_bar" % attr
- if attr == "class":
- a = "self.foo.__self__.__class__.foo_bar"
- else:
- a = "self.foo.__%s__.foo_bar" % attr
- self.check(b, a)
-
- def test_unchanged(self):
- for attr in self.attrs:
- s = "foo(im_%s + 5)" % attr
- self.unchanged(s)
-
- s = "f(foo.__%s__)" % attr
- self.unchanged(s)
-
- s = "f(foo.__%s__.foo)" % attr
- self.unchanged(s)
-
-class Test_next(FixerTestCase):
- fixer = "next"
-
- def test_1(self):
- b = """it.next()"""
- a = """next(it)"""
- self.check(b, a)
-
- def test_2(self):
- b = """a.b.c.d.next()"""
- a = """next(a.b.c.d)"""
- self.check(b, a)
-
- def test_3(self):
- b = """(a + b).next()"""
- a = """next((a + b))"""
- self.check(b, a)
-
- def test_4(self):
- b = """a().next()"""
- a = """next(a())"""
- self.check(b, a)
-
- def test_5(self):
- b = """a().next() + b"""
- a = """next(a()) + b"""
- self.check(b, a)
-
- def test_6(self):
- b = """c( a().next() + b)"""
- a = """c( next(a()) + b)"""
- self.check(b, a)
-
- def test_prefix_preservation_1(self):
- b = """
- for a in b:
- foo(a)
- a.next()
- """
- a = """
- for a in b:
- foo(a)
- next(a)
- """
- self.check(b, a)
-
- def test_prefix_preservation_2(self):
- b = """
- for a in b:
- foo(a) # abc
- # def
- a.next()
- """
- a = """
- for a in b:
- foo(a) # abc
- # def
- next(a)
- """
- self.check(b, a)
-
- def test_prefix_preservation_3(self):
- b = """
- next = 5
- for a in b:
- foo(a)
- a.next()
- """
- a = """
- next = 5
- for a in b:
- foo(a)
- a.__next__()
- """
- self.check(b, a, ignore_warnings=True)
-
- def test_prefix_preservation_4(self):
- b = """
- next = 5
- for a in b:
- foo(a) # abc
- # def
- a.next()
- """
- a = """
- next = 5
- for a in b:
- foo(a) # abc
- # def
- a.__next__()
- """
- self.check(b, a, ignore_warnings=True)
-
- def test_prefix_preservation_5(self):
- b = """
- next = 5
- for a in b:
- foo(foo(a), # abc
- a.next())
- """
- a = """
- next = 5
- for a in b:
- foo(foo(a), # abc
- a.__next__())
- """
- self.check(b, a, ignore_warnings=True)
-
- def test_prefix_preservation_6(self):
- b = """
- for a in b:
- foo(foo(a), # abc
- a.next())
- """
- a = """
- for a in b:
- foo(foo(a), # abc
- next(a))
- """
- self.check(b, a)
-
- def test_method_1(self):
- b = """
- class A:
- def next(self):
- pass
- """
- a = """
- class A:
- def __next__(self):
- pass
- """
- self.check(b, a)
-
- def test_method_2(self):
- b = """
- class A(object):
- def next(self):
- pass
- """
- a = """
- class A(object):
- def __next__(self):
- pass
- """
- self.check(b, a)
-
- def test_method_3(self):
- b = """
- class A:
- def next(x):
- pass
- """
- a = """
- class A:
- def __next__(x):
- pass
- """
- self.check(b, a)
-
- def test_method_4(self):
- b = """
- class A:
- def __init__(self, foo):
- self.foo = foo
-
- def next(self):
- pass
-
- def __iter__(self):
- return self
- """
- a = """
- class A:
- def __init__(self, foo):
- self.foo = foo
-
- def __next__(self):
- pass
-
- def __iter__(self):
- return self
- """
- self.check(b, a)
-
- def test_method_unchanged(self):
- s = """
- class A:
- def next(self, a, b):
- pass
- """
- self.unchanged(s)
-
- def test_shadowing_assign_simple(self):
- s = """
- next = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_assign_tuple_1(self):
- s = """
- (next, a) = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_assign_tuple_2(self):
- s = """
- (a, (b, (next, c)), a) = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_assign_list_1(self):
- s = """
- [next, a] = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_assign_list_2(self):
- s = """
- [a, [b, [next, c]], a] = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_builtin_assign(self):
- s = """
- def foo():
- __builtin__.next = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_builtin_assign_in_tuple(self):
- s = """
- def foo():
- (a, __builtin__.next) = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_builtin_assign_in_list(self):
- s = """
- def foo():
- [a, __builtin__.next] = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_assign_to_next(self):
- s = """
- def foo():
- A.next = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.unchanged(s)
-
- def test_assign_to_next_in_tuple(self):
- s = """
- def foo():
- (a, A.next) = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.unchanged(s)
-
- def test_assign_to_next_in_list(self):
- s = """
- def foo():
- [a, A.next] = foo
-
- class A:
- def next(self, a, b):
- pass
- """
- self.unchanged(s)
-
- def test_shadowing_import_1(self):
- s = """
- import foo.bar as next
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_import_2(self):
- s = """
- import bar, bar.foo as next
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_import_3(self):
- s = """
- import bar, bar.foo as next, baz
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_import_from_1(self):
- s = """
- from x import next
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_import_from_2(self):
- s = """
- from x.a import next
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_import_from_3(self):
- s = """
- from x import a, next, b
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_import_from_4(self):
- s = """
- from x.a import a, next, b
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_funcdef_1(self):
- s = """
- def next(a):
- pass
-
- class A:
- def next(self, a, b):
- pass
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_funcdef_2(self):
- b = """
- def next(a):
- pass
-
- class A:
- def next(self):
- pass
-
- it.next()
- """
- a = """
- def next(a):
- pass
-
- class A:
- def __next__(self):
- pass
-
- it.__next__()
- """
- self.warns(b, a, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_global_1(self):
- s = """
- def f():
- global next
- next = 5
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_global_2(self):
- s = """
- def f():
- global a, next, b
- next = 5
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_for_simple(self):
- s = """
- for next in it():
- pass
-
- b = 5
- c = 6
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_for_tuple_1(self):
- s = """
- for next, b in it():
- pass
-
- b = 5
- c = 6
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_shadowing_for_tuple_2(self):
- s = """
- for a, (next, c), b in it():
- pass
-
- b = 5
- c = 6
- """
- self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
- def test_noncall_access_1(self):
- b = """gnext = g.next"""
- a = """gnext = g.__next__"""
- self.check(b, a)
-
- def test_noncall_access_2(self):
- b = """f(g.next + 5)"""
- a = """f(g.__next__ + 5)"""
- self.check(b, a)
-
- def test_noncall_access_3(self):
- b = """f(g().next + 5)"""
- a = """f(g().__next__ + 5)"""
- self.check(b, a)
-
-class Test_nonzero(FixerTestCase):
- fixer = "nonzero"
-
- def test_1(self):
- b = """
- class A:
- def __nonzero__(self):
- pass
- """
- a = """
- class A:
- def __bool__(self):
- pass
- """
- self.check(b, a)
-
- def test_2(self):
- b = """
- class A(object):
- def __nonzero__(self):
- pass
- """
- a = """
- class A(object):
- def __bool__(self):
- pass
- """
- self.check(b, a)
-
- def test_unchanged_1(self):
- s = """
- class A(object):
- def __bool__(self):
- pass
- """
- self.unchanged(s)
-
- def test_unchanged_2(self):
- s = """
- class A(object):
- def __nonzero__(self, a):
- pass
- """
- self.unchanged(s)
-
- def test_unchanged_func(self):
- s = """
- def __nonzero__(self):
- pass
- """
- self.unchanged(s)
-
-class Test_numliterals(FixerTestCase):
- fixer = "numliterals"
-
- def test_octal_1(self):
- b = """0755"""
- a = """0o755"""
- self.check(b, a)
-
- def test_long_int_1(self):
- b = """a = 12L"""
- a = """a = 12"""
- self.check(b, a)
-
- def test_long_int_2(self):
- b = """a = 12l"""
- a = """a = 12"""
- self.check(b, a)
-
- def test_long_hex(self):
- b = """b = 0x12l"""
- a = """b = 0x12"""
- self.check(b, a)
-
- def test_comments_and_spacing(self):
- b = """b = 0x12L"""
- a = """b = 0x12"""
- self.check(b, a)
-
- b = """b = 0755 # spam"""
- a = """b = 0o755 # spam"""
- self.check(b, a)
-
- def test_unchanged_int(self):
- s = """5"""
- self.unchanged(s)
-
- def test_unchanged_float(self):
- s = """5.0"""
- self.unchanged(s)
-
- def test_unchanged_octal(self):
- s = """0o755"""
- self.unchanged(s)
-
- def test_unchanged_hex(self):
- s = """0xABC"""
- self.unchanged(s)
-
- def test_unchanged_exp(self):
- s = """5.0e10"""
- self.unchanged(s)
-
- def test_unchanged_complex_int(self):
- s = """5 + 4j"""
- self.unchanged(s)
-
- def test_unchanged_complex_float(self):
- s = """5.4 + 4.9j"""
- self.unchanged(s)
-
- def test_unchanged_complex_bare(self):
- s = """4j"""
- self.unchanged(s)
- s = """4.4j"""
- self.unchanged(s)
-
-class Test_renames(FixerTestCase):
- fixer = "renames"
-
- modules = {"sys": ("maxint", "maxsize"),
- }
-
- def test_import_from(self):
- for mod, (old, new) in self.modules.items():
- b = "from %s import %s" % (mod, old)
- a = "from %s import %s" % (mod, new)
- self.check(b, a)
-
- s = "from foo import %s" % old
- self.unchanged(s)
-
- def test_import_from_as(self):
- for mod, (old, new) in self.modules.items():
- b = "from %s import %s as foo_bar" % (mod, old)
- a = "from %s import %s as foo_bar" % (mod, new)
- self.check(b, a)
-
- def test_import_module_usage(self):
- for mod, (old, new) in self.modules.items():
- b = """
- import %s
- foo(%s, %s.%s)
- """ % (mod, mod, mod, old)
- a = """
- import %s
- foo(%s, %s.%s)
- """ % (mod, mod, mod, new)
- self.check(b, a)
-
- def XXX_test_from_import_usage(self):
- # not implemented yet
- for mod, (old, new) in self.modules.items():
- b = """
- from %s import %s
- foo(%s, %s)
- """ % (mod, old, mod, old)
- a = """
- from %s import %s
- foo(%s, %s)
- """ % (mod, new, mod, new)
- self.check(b, a)
-
-class Test_unicode(FixerTestCase):
- fixer = "unicode"
-
- def test_whitespace(self):
- b = """unicode( x)"""
- a = """str( x)"""
- self.check(b, a)
-
- b = """ unicode(x )"""
- a = """ str(x )"""
- self.check(b, a)
-
- b = """ u'h'"""
- a = """ 'h'"""
- self.check(b, a)
-
- def test_unicode_call(self):
- b = """unicode(x, y, z)"""
- a = """str(x, y, z)"""
- self.check(b, a)
-
- def test_unichr(self):
- b = """unichr(u'h')"""
- a = """chr('h')"""
- self.check(b, a)
-
- def test_unicode_literal_1(self):
- b = '''u"x"'''
- a = '''"x"'''
- self.check(b, a)
-
- def test_unicode_literal_2(self):
- b = """ur'x'"""
- a = """r'x'"""
- self.check(b, a)
-
- def test_unicode_literal_3(self):
- b = """UR'''x''' """
- a = """R'''x''' """
- self.check(b, a)
-
-class Test_callable(FixerTestCase):
- fixer = "callable"
-
- def test_prefix_preservation(self):
- b = """callable( x)"""
- a = """import collections\nisinstance( x, collections.Callable)"""
- self.check(b, a)
-
- b = """if callable(x): pass"""
- a = """import collections
-if isinstance(x, collections.Callable): pass"""
- self.check(b, a)
-
- def test_callable_call(self):
- b = """callable(x)"""
- a = """import collections\nisinstance(x, collections.Callable)"""
- self.check(b, a)
-
- def test_global_import(self):
- b = """
-def spam(foo):
- callable(foo)"""[1:]
- a = """
-import collections
-def spam(foo):
- isinstance(foo, collections.Callable)"""[1:]
- self.check(b, a)
-
- b = """
-import collections
-def spam(foo):
- callable(foo)"""[1:]
- # same output if it was already imported
- self.check(b, a)
-
- b = """
-from collections import *
-def spam(foo):
- callable(foo)"""[1:]
- a = """
-from collections import *
-import collections
-def spam(foo):
- isinstance(foo, collections.Callable)"""[1:]
- self.check(b, a)
-
- b = """
-do_stuff()
-do_some_other_stuff()
-assert callable(do_stuff)"""[1:]
- a = """
-import collections
-do_stuff()
-do_some_other_stuff()
-assert isinstance(do_stuff, collections.Callable)"""[1:]
- self.check(b, a)
-
- b = """
-if isinstance(do_stuff, Callable):
- assert callable(do_stuff)
- do_stuff(do_stuff)
- if not callable(do_stuff):
- exit(1)
- else:
- assert callable(do_stuff)
-else:
- assert not callable(do_stuff)"""[1:]
- a = """
-import collections
-if isinstance(do_stuff, Callable):
- assert isinstance(do_stuff, collections.Callable)
- do_stuff(do_stuff)
- if not isinstance(do_stuff, collections.Callable):
- exit(1)
- else:
- assert isinstance(do_stuff, collections.Callable)
-else:
- assert not isinstance(do_stuff, collections.Callable)"""[1:]
- self.check(b, a)
-
- def test_callable_should_not_change(self):
- a = """callable(*x)"""
- self.unchanged(a)
-
- a = """callable(x, y)"""
- self.unchanged(a)
-
- a = """callable(x, kw=y)"""
- self.unchanged(a)
-
- a = """callable()"""
- self.unchanged(a)
-
-class Test_filter(FixerTestCase):
- fixer = "filter"
-
- def test_prefix_preservation(self):
- b = """x = filter( foo, 'abc' )"""
- a = """x = list(filter( foo, 'abc' ))"""
- self.check(b, a)
-
- b = """x = filter( None , 'abc' )"""
- a = """x = [_f for _f in 'abc' if _f]"""
- self.check(b, a)
-
- def test_filter_basic(self):
- b = """x = filter(None, 'abc')"""
- a = """x = [_f for _f in 'abc' if _f]"""
- self.check(b, a)
-
- b = """x = len(filter(f, 'abc'))"""
- a = """x = len(list(filter(f, 'abc')))"""
- self.check(b, a)
-
- b = """x = filter(lambda x: x%2 == 0, range(10))"""
- a = """x = [x for x in range(10) if x%2 == 0]"""
- self.check(b, a)
-
- # Note the parens around x
- b = """x = filter(lambda (x): x%2 == 0, range(10))"""
- a = """x = [x for x in range(10) if x%2 == 0]"""
- self.check(b, a)
-
- # XXX This (rare) case is not supported
-## b = """x = filter(f, 'abc')[0]"""
-## a = """x = list(filter(f, 'abc'))[0]"""
-## self.check(b, a)
-
- def test_filter_nochange(self):
- a = """b.join(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """(a + foo(5)).join(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """iter(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """list(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """list(filter(f, 'abc'))[0]"""
- self.unchanged(a)
- a = """set(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """set(filter(f, 'abc')).pop()"""
- self.unchanged(a)
- a = """tuple(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """any(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """all(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """sum(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """sorted(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """sorted(filter(f, 'abc'), key=blah)"""
- self.unchanged(a)
- a = """sorted(filter(f, 'abc'), key=blah)[0]"""
- self.unchanged(a)
- a = """enumerate(filter(f, 'abc'))"""
- self.unchanged(a)
- a = """enumerate(filter(f, 'abc'), start=1)"""
- self.unchanged(a)
- a = """for i in filter(f, 'abc'): pass"""
- self.unchanged(a)
- a = """[x for x in filter(f, 'abc')]"""
- self.unchanged(a)
- a = """(x for x in filter(f, 'abc'))"""
- self.unchanged(a)
-
- def test_future_builtins(self):
- a = "from future_builtins import spam, filter; filter(f, 'ham')"
- self.unchanged(a)
-
- b = """from future_builtins import spam; x = filter(f, 'abc')"""
- a = """from future_builtins import spam; x = list(filter(f, 'abc'))"""
- self.check(b, a)
-
- a = "from future_builtins import *; filter(f, 'ham')"
- self.unchanged(a)
-
-class Test_map(FixerTestCase):
- fixer = "map"
-
- def check(self, b, a):
- self.unchanged("from future_builtins import map; " + b, a)
- super(Test_map, self).check(b, a)
-
- def test_prefix_preservation(self):
- b = """x = map( f, 'abc' )"""
- a = """x = list(map( f, 'abc' ))"""
- self.check(b, a)
-
- def test_trailing_comment(self):
- b = """x = map(f, 'abc') # foo"""
- a = """x = list(map(f, 'abc')) # foo"""
- self.check(b, a)
-
- def test_None_with_multiple_arguments(self):
- s = """x = map(None, a, b, c)"""
- self.warns_unchanged(s, "cannot convert map(None, ...) with "
- "multiple arguments")
-
- def test_map_basic(self):
- b = """x = map(f, 'abc')"""
- a = """x = list(map(f, 'abc'))"""
- self.check(b, a)
-
- b = """x = len(map(f, 'abc', 'def'))"""
- a = """x = len(list(map(f, 'abc', 'def')))"""
- self.check(b, a)
-
- b = """x = map(None, 'abc')"""
- a = """x = list('abc')"""
- self.check(b, a)
-
- b = """x = map(lambda x: x+1, range(4))"""
- a = """x = [x+1 for x in range(4)]"""
- self.check(b, a)
-
- # Note the parens around x
- b = """x = map(lambda (x): x+1, range(4))"""
- a = """x = [x+1 for x in range(4)]"""
- self.check(b, a)
-
- b = """
- foo()
- # foo
- map(f, x)
- """
- a = """
- foo()
- # foo
- list(map(f, x))
- """
- self.warns(b, a, "You should use a for loop here")
-
- # XXX This (rare) case is not supported
-## b = """x = map(f, 'abc')[0]"""
-## a = """x = list(map(f, 'abc'))[0]"""
-## self.check(b, a)
-
- def test_map_nochange(self):
- a = """b.join(map(f, 'abc'))"""
- self.unchanged(a)
- a = """(a + foo(5)).join(map(f, 'abc'))"""
- self.unchanged(a)
- a = """iter(map(f, 'abc'))"""
- self.unchanged(a)
- a = """list(map(f, 'abc'))"""
- self.unchanged(a)
- a = """list(map(f, 'abc'))[0]"""
- self.unchanged(a)
- a = """set(map(f, 'abc'))"""
- self.unchanged(a)
- a = """set(map(f, 'abc')).pop()"""
- self.unchanged(a)
- a = """tuple(map(f, 'abc'))"""
- self.unchanged(a)
- a = """any(map(f, 'abc'))"""
- self.unchanged(a)
- a = """all(map(f, 'abc'))"""
- self.unchanged(a)
- a = """sum(map(f, 'abc'))"""
- self.unchanged(a)
- a = """sorted(map(f, 'abc'))"""
- self.unchanged(a)
- a = """sorted(map(f, 'abc'), key=blah)"""
- self.unchanged(a)
- a = """sorted(map(f, 'abc'), key=blah)[0]"""
- self.unchanged(a)
- a = """enumerate(map(f, 'abc'))"""
- self.unchanged(a)
- a = """enumerate(map(f, 'abc'), start=1)"""
- self.unchanged(a)
- a = """for i in map(f, 'abc'): pass"""
- self.unchanged(a)
- a = """[x for x in map(f, 'abc')]"""
- self.unchanged(a)
- a = """(x for x in map(f, 'abc'))"""
- self.unchanged(a)
-
- def test_future_builtins(self):
- a = "from future_builtins import spam, map, eggs; map(f, 'ham')"
- self.unchanged(a)
-
- b = """from future_builtins import spam, eggs; x = map(f, 'abc')"""
- a = """from future_builtins import spam, eggs; x = list(map(f, 'abc'))"""
- self.check(b, a)
-
- a = "from future_builtins import *; map(f, 'ham')"
- self.unchanged(a)
-
-class Test_zip(FixerTestCase):
- fixer = "zip"
-
- def check(self, b, a):
- self.unchanged("from future_builtins import zip; " + b, a)
- super(Test_zip, self).check(b, a)
-
- def test_zip_basic(self):
- b = """x = zip(a, b, c)"""
- a = """x = list(zip(a, b, c))"""
- self.check(b, a)
-
- b = """x = len(zip(a, b))"""
- a = """x = len(list(zip(a, b)))"""
- self.check(b, a)
-
- def test_zip_nochange(self):
- a = """b.join(zip(a, b))"""
- self.unchanged(a)
- a = """(a + foo(5)).join(zip(a, b))"""
- self.unchanged(a)
- a = """iter(zip(a, b))"""
- self.unchanged(a)
- a = """list(zip(a, b))"""
- self.unchanged(a)
- a = """list(zip(a, b))[0]"""
- self.unchanged(a)
- a = """set(zip(a, b))"""
- self.unchanged(a)
- a = """set(zip(a, b)).pop()"""
- self.unchanged(a)
- a = """tuple(zip(a, b))"""
- self.unchanged(a)
- a = """any(zip(a, b))"""
- self.unchanged(a)
- a = """all(zip(a, b))"""
- self.unchanged(a)
- a = """sum(zip(a, b))"""
- self.unchanged(a)
- a = """sorted(zip(a, b))"""
- self.unchanged(a)
- a = """sorted(zip(a, b), key=blah)"""
- self.unchanged(a)
- a = """sorted(zip(a, b), key=blah)[0]"""
- self.unchanged(a)
- a = """enumerate(zip(a, b))"""
- self.unchanged(a)
- a = """enumerate(zip(a, b), start=1)"""
- self.unchanged(a)
- a = """for i in zip(a, b): pass"""
- self.unchanged(a)
- a = """[x for x in zip(a, b)]"""
- self.unchanged(a)
- a = """(x for x in zip(a, b))"""
- self.unchanged(a)
-
- def test_future_builtins(self):
- a = "from future_builtins import spam, zip, eggs; zip(a, b)"
- self.unchanged(a)
-
- b = """from future_builtins import spam, eggs; x = zip(a, b)"""
- a = """from future_builtins import spam, eggs; x = list(zip(a, b))"""
- self.check(b, a)
-
- a = "from future_builtins import *; zip(a, b)"
- self.unchanged(a)
-
-class Test_standarderror(FixerTestCase):
- fixer = "standarderror"
-
- def test(self):
- b = """x = StandardError()"""
- a = """x = Exception()"""
- self.check(b, a)
-
- b = """x = StandardError(a, b, c)"""
- a = """x = Exception(a, b, c)"""
- self.check(b, a)
-
- b = """f(2 + StandardError(a, b, c))"""
- a = """f(2 + Exception(a, b, c))"""
- self.check(b, a)
-
-class Test_types(FixerTestCase):
- fixer = "types"
-
- def test_basic_types_convert(self):
- b = """types.StringType"""
- a = """bytes"""
- self.check(b, a)
-
- b = """types.DictType"""
- a = """dict"""
- self.check(b, a)
-
- b = """types . IntType"""
- a = """int"""
- self.check(b, a)
-
- b = """types.ListType"""
- a = """list"""
- self.check(b, a)
-
- b = """types.LongType"""
- a = """int"""
- self.check(b, a)
-
- b = """types.NoneType"""
- a = """type(None)"""
- self.check(b, a)
-
-class Test_idioms(FixerTestCase):
- fixer = "idioms"
-
- def test_while(self):
- b = """while 1: foo()"""
- a = """while True: foo()"""
- self.check(b, a)
-
- b = """while 1: foo()"""
- a = """while True: foo()"""
- self.check(b, a)
-
- b = """
- while 1:
- foo()
- """
- a = """
- while True:
- foo()
- """
- self.check(b, a)
-
- def test_while_unchanged(self):
- s = """while 11: foo()"""
- self.unchanged(s)
-
- s = """while 0: foo()"""
- self.unchanged(s)
-
- s = """while foo(): foo()"""
- self.unchanged(s)
-
- s = """while []: foo()"""
- self.unchanged(s)
-
- def test_eq_simple(self):
- b = """type(x) == T"""
- a = """isinstance(x, T)"""
- self.check(b, a)
-
- b = """if type(x) == T: pass"""
- a = """if isinstance(x, T): pass"""
- self.check(b, a)
-
- def test_eq_reverse(self):
- b = """T == type(x)"""
- a = """isinstance(x, T)"""
- self.check(b, a)
-
- b = """if T == type(x): pass"""
- a = """if isinstance(x, T): pass"""
- self.check(b, a)
-
- def test_eq_expression(self):
- b = """type(x+y) == d.get('T')"""
- a = """isinstance(x+y, d.get('T'))"""
- self.check(b, a)
-
- b = """type( x + y) == d.get('T')"""
- a = """isinstance(x + y, d.get('T'))"""
- self.check(b, a)
-
- def test_is_simple(self):
- b = """type(x) is T"""
- a = """isinstance(x, T)"""
- self.check(b, a)
-
- b = """if type(x) is T: pass"""
- a = """if isinstance(x, T): pass"""
- self.check(b, a)
-
- def test_is_reverse(self):
- b = """T is type(x)"""
- a = """isinstance(x, T)"""
- self.check(b, a)
-
- b = """if T is type(x): pass"""
- a = """if isinstance(x, T): pass"""
- self.check(b, a)
-
- def test_is_expression(self):
- b = """type(x+y) is d.get('T')"""
- a = """isinstance(x+y, d.get('T'))"""
- self.check(b, a)
-
- b = """type( x + y) is d.get('T')"""
- a = """isinstance(x + y, d.get('T'))"""
- self.check(b, a)
-
- def test_is_not_simple(self):
- b = """type(x) is not T"""
- a = """not isinstance(x, T)"""
- self.check(b, a)
-
- b = """if type(x) is not T: pass"""
- a = """if not isinstance(x, T): pass"""
- self.check(b, a)
-
- def test_is_not_reverse(self):
- b = """T is not type(x)"""
- a = """not isinstance(x, T)"""
- self.check(b, a)
-
- b = """if T is not type(x): pass"""
- a = """if not isinstance(x, T): pass"""
- self.check(b, a)
-
- def test_is_not_expression(self):
- b = """type(x+y) is not d.get('T')"""
- a = """not isinstance(x+y, d.get('T'))"""
- self.check(b, a)
-
- b = """type( x + y) is not d.get('T')"""
- a = """not isinstance(x + y, d.get('T'))"""
- self.check(b, a)
-
- def test_ne_simple(self):
- b = """type(x) != T"""
- a = """not isinstance(x, T)"""
- self.check(b, a)
-
- b = """if type(x) != T: pass"""
- a = """if not isinstance(x, T): pass"""
- self.check(b, a)
-
- def test_ne_reverse(self):
- b = """T != type(x)"""
- a = """not isinstance(x, T)"""
- self.check(b, a)
-
- b = """if T != type(x): pass"""
- a = """if not isinstance(x, T): pass"""
- self.check(b, a)
-
- def test_ne_expression(self):
- b = """type(x+y) != d.get('T')"""
- a = """not isinstance(x+y, d.get('T'))"""
- self.check(b, a)
-
- b = """type( x + y) != d.get('T')"""
- a = """not isinstance(x + y, d.get('T'))"""
- self.check(b, a)
-
- def test_type_unchanged(self):
- a = """type(x).__name__"""
- self.unchanged(a)
-
- def test_sort_list_call(self):
- b = """
- v = list(t)
- v.sort()
- foo(v)
- """
- a = """
- v = sorted(t)
- foo(v)
- """
- self.check(b, a)
-
- b = """
- v = list(foo(b) + d)
- v.sort()
- foo(v)
- """
- a = """
- v = sorted(foo(b) + d)
- foo(v)
- """
- self.check(b, a)
-
- b = """
- while x:
- v = list(t)
- v.sort()
- foo(v)
- """
- a = """
- while x:
- v = sorted(t)
- foo(v)
- """
- self.check(b, a)
-
- b = """
- v = list(t)
- # foo
- v.sort()
- foo(v)
- """
- a = """
- v = sorted(t)
- # foo
- foo(v)
- """
- self.check(b, a)
-
- b = r"""
- v = list( t)
- v.sort()
- foo(v)
- """
- a = r"""
- v = sorted( t)
- foo(v)
- """
- self.check(b, a)
-
- b = r"""
- try:
- m = list(s)
- m.sort()
- except: pass
- """
-
- a = r"""
- try:
- m = sorted(s)
- except: pass
- """
- self.check(b, a)
-
- b = r"""
- try:
- m = list(s)
- # foo
- m.sort()
- except: pass
- """
-
- a = r"""
- try:
- m = sorted(s)
- # foo
- except: pass
- """
- self.check(b, a)
-
- b = r"""
- m = list(s)
- # more comments
- m.sort()"""
-
- a = r"""
- m = sorted(s)
- # more comments"""
- self.check(b, a)
-
- def test_sort_simple_expr(self):
- b = """
- v = t
- v.sort()
- foo(v)
- """
- a = """
- v = sorted(t)
- foo(v)
- """
- self.check(b, a)
-
- b = """
- v = foo(b)
- v.sort()
- foo(v)
- """
- a = """
- v = sorted(foo(b))
- foo(v)
- """
- self.check(b, a)
-
- b = """
- v = b.keys()
- v.sort()
- foo(v)
- """
- a = """
- v = sorted(b.keys())
- foo(v)
- """
- self.check(b, a)
-
- b = """
- v = foo(b) + d
- v.sort()
- foo(v)
- """
- a = """
- v = sorted(foo(b) + d)
- foo(v)
- """
- self.check(b, a)
-
- b = """
- while x:
- v = t
- v.sort()
- foo(v)
- """
- a = """
- while x:
- v = sorted(t)
- foo(v)
- """
- self.check(b, a)
-
- b = """
- v = t
- # foo
- v.sort()
- foo(v)
- """
- a = """
- v = sorted(t)
- # foo
- foo(v)
- """
- self.check(b, a)
-
- b = r"""
- v = t
- v.sort()
- foo(v)
- """
- a = r"""
- v = sorted(t)
- foo(v)
- """
- self.check(b, a)
-
- def test_sort_unchanged(self):
- s = """
- v = list(t)
- w.sort()
- foo(w)
- """
- self.unchanged(s)
-
- s = """
- v = list(t)
- v.sort(u)
- foo(v)
- """
- self.unchanged(s)
-
-class Test_basestring(FixerTestCase):
- fixer = "basestring"
-
- def test_basestring(self):
- b = """isinstance(x, basestring)"""
- a = """isinstance(x, str)"""
- self.check(b, a)
-
-class Test_buffer(FixerTestCase):
- fixer = "buffer"
-
- def test_buffer(self):
- b = """x = buffer(y)"""
- a = """x = memoryview(y)"""
- self.check(b, a)
-
- def test_slicing(self):
- b = """buffer(y)[4:5]"""
- a = """memoryview(y)[4:5]"""
- self.check(b, a)
-
-class Test_future(FixerTestCase):
- fixer = "future"
-
- def test_future(self):
- b = """from __future__ import braces"""
- a = """"""
- self.check(b, a)
-
- b = """# comment\nfrom __future__ import braces"""
- a = """# comment\n"""
- self.check(b, a)
-
- b = """from __future__ import braces\n# comment"""
- a = """\n# comment"""
- self.check(b, a)
-
- def test_run_order(self):
- self.assert_runs_after('print')
-
-class Test_itertools(FixerTestCase):
- fixer = "itertools"
-
- def checkall(self, before, after):
- # Because we need to check with and without the itertools prefix
- # and on each of the three functions, these loops make it all
- # much easier
- for i in ('itertools.', ''):
- for f in ('map', 'filter', 'zip'):
- b = before %(i+'i'+f)
- a = after %(f)
- self.check(b, a)
-
- def test_0(self):
- # A simple example -- test_1 covers exactly the same thing,
- # but it's not quite as clear.
- b = "itertools.izip(a, b)"
- a = "zip(a, b)"
- self.check(b, a)
-
- def test_1(self):
- b = """%s(f, a)"""
- a = """%s(f, a)"""
- self.checkall(b, a)
-
- def test_qualified(self):
- b = """itertools.ifilterfalse(a, b)"""
- a = """itertools.filterfalse(a, b)"""
- self.check(b, a)
-
- b = """itertools.izip_longest(a, b)"""
- a = """itertools.zip_longest(a, b)"""
- self.check(b, a)
-
- def test_2(self):
- b = """ifilterfalse(a, b)"""
- a = """filterfalse(a, b)"""
- self.check(b, a)
-
- b = """izip_longest(a, b)"""
- a = """zip_longest(a, b)"""
- self.check(b, a)
-
- def test_space_1(self):
- b = """ %s(f, a)"""
- a = """ %s(f, a)"""
- self.checkall(b, a)
-
- def test_space_2(self):
- b = """ itertools.ifilterfalse(a, b)"""
- a = """ itertools.filterfalse(a, b)"""
- self.check(b, a)
-
- b = """ itertools.izip_longest(a, b)"""
- a = """ itertools.zip_longest(a, b)"""
- self.check(b, a)
-
- def test_run_order(self):
- self.assert_runs_after('map', 'zip', 'filter')
-
-
-class Test_itertools_imports(FixerTestCase):
- fixer = 'itertools_imports'
-
- def test_reduced(self):
- b = "from itertools import imap, izip, foo"
- a = "from itertools import foo"
- self.check(b, a)
-
- b = "from itertools import bar, imap, izip, foo"
- a = "from itertools import bar, foo"
- self.check(b, a)
-
- b = "from itertools import chain, imap, izip"
- a = "from itertools import chain"
- self.check(b, a)
-
- def test_comments(self):
- b = "#foo\nfrom itertools import imap, izip"
- a = "#foo\n"
- self.check(b, a)
-
- def test_none(self):
- b = "from itertools import imap, izip"
- a = ""
- self.check(b, a)
-
- b = "from itertools import izip"
- a = ""
- self.check(b, a)
-
- def test_import_as(self):
- b = "from itertools import izip, bar as bang, imap"
- a = "from itertools import bar as bang"
- self.check(b, a)
-
- b = "from itertools import izip as _zip, imap, bar"
- a = "from itertools import bar"
- self.check(b, a)
-
- b = "from itertools import imap as _map"
- a = ""
- self.check(b, a)
-
- b = "from itertools import imap as _map, izip as _zip"
- a = ""
- self.check(b, a)
-
- s = "from itertools import bar as bang"
- self.unchanged(s)
-
- def test_ifilter_and_zip_longest(self):
- for name in "filterfalse", "zip_longest":
- b = "from itertools import i%s" % (name,)
- a = "from itertools import %s" % (name,)
- self.check(b, a)
-
- b = "from itertools import imap, i%s, foo" % (name,)
- a = "from itertools import %s, foo" % (name,)
- self.check(b, a)
-
- b = "from itertools import bar, i%s, foo" % (name,)
- a = "from itertools import bar, %s, foo" % (name,)
- self.check(b, a)
-
- def test_import_star(self):
- s = "from itertools import *"
- self.unchanged(s)
-
-
- def test_unchanged(self):
- s = "from itertools import foo"
- self.unchanged(s)
-
-
-class Test_import(FixerTestCase):
- fixer = "import"
-
- def setUp(self):
- super(Test_import, self).setUp()
- # Need to replace fix_import's exists method
- # so we can check that it's doing the right thing
- self.files_checked = []
- self.present_files = set()
- self.always_exists = True
- def fake_exists(name):
- self.files_checked.append(name)
- return self.always_exists or (name in self.present_files)
-
- from lib2to3.fixes import fix_import
- fix_import.exists = fake_exists
-
- def tearDown(self):
- from lib2to3.fixes import fix_import
- fix_import.exists = os.path.exists
-
- def check_both(self, b, a):
- self.always_exists = True
- super(Test_import, self).check(b, a)
- self.always_exists = False
- super(Test_import, self).unchanged(b)
-
- def test_files_checked(self):
- def p(path):
- # Takes a unix path and returns a path with correct separators
- return os.path.pathsep.join(path.split("/"))
-
- self.always_exists = False
- self.present_files = set(['__init__.py'])
- expected_extensions = ('.py', os.path.sep, '.pyc', '.so', '.sl', '.pyd')
- names_to_test = (p("/spam/eggs.py"), "ni.py", p("../../shrubbery.py"))
-
- for name in names_to_test:
- self.files_checked = []
- self.filename = name
- self.unchanged("import jam")
-
- if os.path.dirname(name):
- name = os.path.dirname(name) + '/jam'
- else:
- name = 'jam'
- expected_checks = set(name + ext for ext in expected_extensions)
- expected_checks.add("__init__.py")
-
- self.assertEqual(set(self.files_checked), expected_checks)
-
- def test_not_in_package(self):
- s = "import bar"
- self.always_exists = False
- self.present_files = set(["bar.py"])
- self.unchanged(s)
-
- def test_with_absolute_import_enabled(self):
- s = "from __future__ import absolute_import\nimport bar"
- self.always_exists = False
- self.present_files = set(["__init__.py", "bar.py"])
- self.unchanged(s)
-
- def test_in_package(self):
- b = "import bar"
- a = "from . import bar"
- self.always_exists = False
- self.present_files = set(["__init__.py", "bar.py"])
- self.check(b, a)
-
- def test_import_from_package(self):
- b = "import bar"
- a = "from . import bar"
- self.always_exists = False
- self.present_files = set(["__init__.py", "bar" + os.path.sep])
- self.check(b, a)
-
- def test_already_relative_import(self):
- s = "from . import bar"
- self.unchanged(s)
-
- def test_comments_and_indent(self):
- b = "import bar # Foo"
- a = "from . import bar # Foo"
- self.check(b, a)
-
- def test_from(self):
- b = "from foo import bar, baz"
- a = "from .foo import bar, baz"
- self.check_both(b, a)
-
- b = "from foo import bar"
- a = "from .foo import bar"
- self.check_both(b, a)
-
- b = "from foo import (bar, baz)"
- a = "from .foo import (bar, baz)"
- self.check_both(b, a)
-
- def test_dotted_from(self):
- b = "from green.eggs import ham"
- a = "from .green.eggs import ham"
- self.check_both(b, a)
-
- def test_from_as(self):
- b = "from green.eggs import ham as spam"
- a = "from .green.eggs import ham as spam"
- self.check_both(b, a)
-
- def test_import(self):
- b = "import foo"
- a = "from . import foo"
- self.check_both(b, a)
-
- b = "import foo, bar"
- a = "from . import foo, bar"
- self.check_both(b, a)
-
- b = "import foo, bar, x"
- a = "from . import foo, bar, x"
- self.check_both(b, a)
-
- b = "import x, y, z"
- a = "from . import x, y, z"
- self.check_both(b, a)
-
- def test_import_as(self):
- b = "import foo as x"
- a = "from . import foo as x"
- self.check_both(b, a)
-
- b = "import a as b, b as c, c as d"
- a = "from . import a as b, b as c, c as d"
- self.check_both(b, a)
-
- def test_local_and_absolute(self):
- self.always_exists = False
- self.present_files = set(["foo.py", "__init__.py"])
-
- s = "import foo, bar"
- self.warns_unchanged(s, "absolute and local imports together")
-
- def test_dotted_import(self):
- b = "import foo.bar"
- a = "from . import foo.bar"
- self.check_both(b, a)
-
- def test_dotted_import_as(self):
- b = "import foo.bar as bang"
- a = "from . import foo.bar as bang"
- self.check_both(b, a)
-
- def test_prefix(self):
- b = """
- # prefix
- import foo.bar
- """
- a = """
- # prefix
- from . import foo.bar
- """
- self.check_both(b, a)
-
-
-class Test_set_literal(FixerTestCase):
-
- fixer = "set_literal"
-
- def test_basic(self):
- b = """set([1, 2, 3])"""
- a = """{1, 2, 3}"""
- self.check(b, a)
-
- b = """set((1, 2, 3))"""
- a = """{1, 2, 3}"""
- self.check(b, a)
-
- b = """set((1,))"""
- a = """{1}"""
- self.check(b, a)
-
- b = """set([1])"""
- self.check(b, a)
-
- b = """set((a, b))"""
- a = """{a, b}"""
- self.check(b, a)
-
- b = """set([a, b])"""
- self.check(b, a)
-
- b = """set((a*234, f(args=23)))"""
- a = """{a*234, f(args=23)}"""
- self.check(b, a)
-
- b = """set([a*23, f(23)])"""
- a = """{a*23, f(23)}"""
- self.check(b, a)
-
- b = """set([a-234**23])"""
- a = """{a-234**23}"""
- self.check(b, a)
-
- def test_listcomps(self):
- b = """set([x for x in y])"""
- a = """{x for x in y}"""
- self.check(b, a)
-
- b = """set([x for x in y if x == m])"""
- a = """{x for x in y if x == m}"""
- self.check(b, a)
-
- b = """set([x for x in y for a in b])"""
- a = """{x for x in y for a in b}"""
- self.check(b, a)
-
- b = """set([f(x) - 23 for x in y])"""
- a = """{f(x) - 23 for x in y}"""
- self.check(b, a)
-
- def test_whitespace(self):
- b = """set( [1, 2])"""
- a = """{1, 2}"""
- self.check(b, a)
-
- b = """set([1 , 2])"""
- a = """{1 , 2}"""
- self.check(b, a)
-
- b = """set([ 1 ])"""
- a = """{ 1 }"""
- self.check(b, a)
-
- b = """set( [1] )"""
- a = """{1}"""
- self.check(b, a)
-
- b = """set([ 1, 2 ])"""
- a = """{ 1, 2 }"""
- self.check(b, a)
-
- b = """set([x for x in y ])"""
- a = """{x for x in y }"""
- self.check(b, a)
-
- b = """set(
- [1, 2]
- )
- """
- a = """{1, 2}\n"""
- self.check(b, a)
-
- def test_comments(self):
- b = """set((1, 2)) # Hi"""
- a = """{1, 2} # Hi"""
- self.check(b, a)
-
- # This isn't optimal behavior, but the fixer is optional.
- b = """
- # Foo
- set( # Bar
- (1, 2)
- )
- """
- a = """
- # Foo
- {1, 2}
- """
- self.check(b, a)
-
- def test_unchanged(self):
- s = """set()"""
- self.unchanged(s)
-
- s = """set(a)"""
- self.unchanged(s)
-
- s = """set(a, b, c)"""
- self.unchanged(s)
-
- # Don't transform generators because they might have to be lazy.
- s = """set(x for x in y)"""
- self.unchanged(s)
-
- s = """set(x for x in y if z)"""
- self.unchanged(s)
-
- s = """set(a*823-23**2 + f(23))"""
- self.unchanged(s)
-
-
-class Test_sys_exc(FixerTestCase):
- fixer = "sys_exc"
-
- def test_0(self):
- b = "sys.exc_type"
- a = "sys.exc_info()[0]"
- self.check(b, a)
-
- def test_1(self):
- b = "sys.exc_value"
- a = "sys.exc_info()[1]"
- self.check(b, a)
-
- def test_2(self):
- b = "sys.exc_traceback"
- a = "sys.exc_info()[2]"
- self.check(b, a)
-
- def test_3(self):
- b = "sys.exc_type # Foo"
- a = "sys.exc_info()[0] # Foo"
- self.check(b, a)
-
- def test_4(self):
- b = "sys. exc_type"
- a = "sys. exc_info()[0]"
- self.check(b, a)
-
- def test_5(self):
- b = "sys .exc_type"
- a = "sys .exc_info()[0]"
- self.check(b, a)
-
-
-class Test_paren(FixerTestCase):
- fixer = "paren"
-
- def test_0(self):
- b = """[i for i in 1, 2 ]"""
- a = """[i for i in (1, 2) ]"""
- self.check(b, a)
-
- def test_1(self):
- b = """[i for i in 1, 2, ]"""
- a = """[i for i in (1, 2,) ]"""
- self.check(b, a)
-
- def test_2(self):
- b = """[i for i in 1, 2 ]"""
- a = """[i for i in (1, 2) ]"""
- self.check(b, a)
-
- def test_3(self):
- b = """[i for i in 1, 2 if i]"""
- a = """[i for i in (1, 2) if i]"""
- self.check(b, a)
-
- def test_4(self):
- b = """[i for i in 1, 2 ]"""
- a = """[i for i in (1, 2) ]"""
- self.check(b, a)
-
- def test_5(self):
- b = """(i for i in 1, 2)"""
- a = """(i for i in (1, 2))"""
- self.check(b, a)
-
- def test_6(self):
- b = """(i for i in 1 ,2 if i)"""
- a = """(i for i in (1 ,2) if i)"""
- self.check(b, a)
-
- def test_unchanged_0(self):
- s = """[i for i in (1, 2)]"""
- self.unchanged(s)
-
- def test_unchanged_1(self):
- s = """[i for i in foo()]"""
- self.unchanged(s)
-
- def test_unchanged_2(self):
- s = """[i for i in (1, 2) if nothing]"""
- self.unchanged(s)
-
- def test_unchanged_3(self):
- s = """(i for i in (1, 2))"""
- self.unchanged(s)
-
- def test_unchanged_4(self):
- s = """[i for i in m]"""
- self.unchanged(s)
-
-class Test_metaclass(FixerTestCase):
-
- fixer = 'metaclass'
-
- def test_unchanged(self):
- self.unchanged("class X(): pass")
- self.unchanged("class X(object): pass")
- self.unchanged("class X(object1, object2): pass")
- self.unchanged("class X(object1, object2, object3): pass")
- self.unchanged("class X(metaclass=Meta): pass")
- self.unchanged("class X(b, arg=23, metclass=Meta): pass")
- self.unchanged("class X(b, arg=23, metaclass=Meta, other=42): pass")
-
- s = """
- class X:
- def __metaclass__(self): pass
- """
- self.unchanged(s)
-
- s = """
- class X:
- a[23] = 74
- """
- self.unchanged(s)
-
- def test_comments(self):
- b = """
- class X:
- # hi
- __metaclass__ = AppleMeta
- """
- a = """
- class X(metaclass=AppleMeta):
- # hi
- pass
- """
- self.check(b, a)
-
- b = """
- class X:
- __metaclass__ = Meta
- # Bedtime!
- """
- a = """
- class X(metaclass=Meta):
- pass
- # Bedtime!
- """
- self.check(b, a)
-
- def test_meta(self):
- # no-parent class, odd body
- b = """
- class X():
- __metaclass__ = Q
- pass
- """
- a = """
- class X(metaclass=Q):
- pass
- """
- self.check(b, a)
-
- # one parent class, no body
- b = """class X(object): __metaclass__ = Q"""
- a = """class X(object, metaclass=Q): pass"""
- self.check(b, a)
-
-
- # one parent, simple body
- b = """
- class X(object):
- __metaclass__ = Meta
- bar = 7
- """
- a = """
- class X(object, metaclass=Meta):
- bar = 7
- """
- self.check(b, a)
-
- b = """
- class X:
- __metaclass__ = Meta; x = 4; g = 23
- """
- a = """
- class X(metaclass=Meta):
- x = 4; g = 23
- """
- self.check(b, a)
-
- # one parent, simple body, __metaclass__ last
- b = """
- class X(object):
- bar = 7
- __metaclass__ = Meta
- """
- a = """
- class X(object, metaclass=Meta):
- bar = 7
- """
- self.check(b, a)
-
- # redefining __metaclass__
- b = """
- class X():
- __metaclass__ = A
- __metaclass__ = B
- bar = 7
- """
- a = """
- class X(metaclass=B):
- bar = 7
- """
- self.check(b, a)
-
- # multiple inheritance, simple body
- b = """
- class X(clsA, clsB):
- __metaclass__ = Meta
- bar = 7
- """
- a = """
- class X(clsA, clsB, metaclass=Meta):
- bar = 7
- """
- self.check(b, a)
-
- # keywords in the class statement
- b = """class m(a, arg=23): __metaclass__ = Meta"""
- a = """class m(a, arg=23, metaclass=Meta): pass"""
- self.check(b, a)
-
- b = """
- class X(expression(2 + 4)):
- __metaclass__ = Meta
- """
- a = """
- class X(expression(2 + 4), metaclass=Meta):
- pass
- """
- self.check(b, a)
-
- b = """
- class X(expression(2 + 4), x**4):
- __metaclass__ = Meta
- """
- a = """
- class X(expression(2 + 4), x**4, metaclass=Meta):
- pass
- """
- self.check(b, a)
-
- b = """
- class X:
- __metaclass__ = Meta
- save.py = 23
- """
- a = """
- class X(metaclass=Meta):
- save.py = 23
- """
- self.check(b, a)
-
-
-class Test_getcwdu(FixerTestCase):
-
- fixer = 'getcwdu'
-
- def test_basic(self):
- b = """os.getcwdu"""
- a = """os.getcwd"""
- self.check(b, a)
-
- b = """os.getcwdu()"""
- a = """os.getcwd()"""
- self.check(b, a)
-
- b = """meth = os.getcwdu"""
- a = """meth = os.getcwd"""
- self.check(b, a)
-
- b = """os.getcwdu(args)"""
- a = """os.getcwd(args)"""
- self.check(b, a)
-
- def test_comment(self):
- b = """os.getcwdu() # Foo"""
- a = """os.getcwd() # Foo"""
- self.check(b, a)
-
- def test_unchanged(self):
- s = """os.getcwd()"""
- self.unchanged(s)
-
- s = """getcwdu()"""
- self.unchanged(s)
-
- s = """os.getcwdb()"""
- self.unchanged(s)
-
- def test_indentation(self):
- b = """
- if 1:
- os.getcwdu()
- """
- a = """
- if 1:
- os.getcwd()
- """
- self.check(b, a)
-
- def test_multilation(self):
- b = """os .getcwdu()"""
- a = """os .getcwd()"""
- self.check(b, a)
-
- b = """os. getcwdu"""
- a = """os. getcwd"""
- self.check(b, a)
-
- b = """os.getcwdu ( )"""
- a = """os.getcwd ( )"""
- self.check(b, a)
-
-
-class Test_operator(FixerTestCase):
-
- fixer = "operator"
-
- def test_operator_isCallable(self):
- b = "operator.isCallable(x)"
- a = "hasattr(x, '__call__')"
- self.check(b, a)
-
- def test_operator_sequenceIncludes(self):
- b = "operator.sequenceIncludes(x, y)"
- a = "operator.contains(x, y)"
- self.check(b, a)
-
- b = "operator .sequenceIncludes(x, y)"
- a = "operator .contains(x, y)"
- self.check(b, a)
-
- b = "operator. sequenceIncludes(x, y)"
- a = "operator. contains(x, y)"
- self.check(b, a)
-
- def test_operator_isSequenceType(self):
- b = "operator.isSequenceType(x)"
- a = "import collections\nisinstance(x, collections.Sequence)"
- self.check(b, a)
-
- def test_operator_isMappingType(self):
- b = "operator.isMappingType(x)"
- a = "import collections\nisinstance(x, collections.Mapping)"
- self.check(b, a)
-
- def test_operator_isNumberType(self):
- b = "operator.isNumberType(x)"
- a = "import numbers\nisinstance(x, numbers.Number)"
- self.check(b, a)
-
- def test_operator_repeat(self):
- b = "operator.repeat(x, n)"
- a = "operator.mul(x, n)"
- self.check(b, a)
-
- b = "operator .repeat(x, n)"
- a = "operator .mul(x, n)"
- self.check(b, a)
-
- b = "operator. repeat(x, n)"
- a = "operator. mul(x, n)"
- self.check(b, a)
-
- def test_operator_irepeat(self):
- b = "operator.irepeat(x, n)"
- a = "operator.imul(x, n)"
- self.check(b, a)
-
- b = "operator .irepeat(x, n)"
- a = "operator .imul(x, n)"
- self.check(b, a)
-
- b = "operator. irepeat(x, n)"
- a = "operator. imul(x, n)"
- self.check(b, a)
-
- def test_bare_isCallable(self):
- s = "isCallable(x)"
- t = "You should use 'hasattr(x, '__call__')' here."
- self.warns_unchanged(s, t)
-
- def test_bare_sequenceIncludes(self):
- s = "sequenceIncludes(x, y)"
- t = "You should use 'operator.contains(x, y)' here."
- self.warns_unchanged(s, t)
-
- def test_bare_operator_isSequenceType(self):
- s = "isSequenceType(z)"
- t = "You should use 'isinstance(z, collections.Sequence)' here."
- self.warns_unchanged(s, t)
-
- def test_bare_operator_isMappingType(self):
- s = "isMappingType(x)"
- t = "You should use 'isinstance(x, collections.Mapping)' here."
- self.warns_unchanged(s, t)
-
- def test_bare_operator_isNumberType(self):
- s = "isNumberType(y)"
- t = "You should use 'isinstance(y, numbers.Number)' here."
- self.warns_unchanged(s, t)
-
- def test_bare_operator_repeat(self):
- s = "repeat(x, n)"
- t = "You should use 'operator.mul(x, n)' here."
- self.warns_unchanged(s, t)
-
- def test_bare_operator_irepeat(self):
- s = "irepeat(y, 187)"
- t = "You should use 'operator.imul(y, 187)' here."
- self.warns_unchanged(s, t)
-
-
-class Test_exitfunc(FixerTestCase):
-
- fixer = "exitfunc"
-
- def test_simple(self):
- b = """
- import sys
- sys.exitfunc = my_atexit
- """
- a = """
- import sys
- import atexit
- atexit.register(my_atexit)
- """
- self.check(b, a)
-
- def test_names_import(self):
- b = """
- import sys, crumbs
- sys.exitfunc = my_func
- """
- a = """
- import sys, crumbs, atexit
- atexit.register(my_func)
- """
- self.check(b, a)
-
- def test_complex_expression(self):
- b = """
- import sys
- sys.exitfunc = do(d)/a()+complex(f=23, g=23)*expression
- """
- a = """
- import sys
- import atexit
- atexit.register(do(d)/a()+complex(f=23, g=23)*expression)
- """
- self.check(b, a)
-
- def test_comments(self):
- b = """
- import sys # Foo
- sys.exitfunc = f # Blah
- """
- a = """
- import sys
- import atexit # Foo
- atexit.register(f) # Blah
- """
- self.check(b, a)
-
- b = """
- import apples, sys, crumbs, larry # Pleasant comments
- sys.exitfunc = func
- """
- a = """
- import apples, sys, crumbs, larry, atexit # Pleasant comments
- atexit.register(func)
- """
- self.check(b, a)
-
- def test_in_a_function(self):
- b = """
- import sys
- def f():
- sys.exitfunc = func
- """
- a = """
- import sys
- import atexit
- def f():
- atexit.register(func)
- """
- self.check(b, a)
-
- def test_no_sys_import(self):
- b = """sys.exitfunc = f"""
- a = """atexit.register(f)"""
- msg = ("Can't find sys import; Please add an atexit import at the "
- "top of your file.")
- self.warns(b, a, msg)
-
-
- def test_unchanged(self):
- s = """f(sys.exitfunc)"""
- self.unchanged(s)
diff --git a/lib/python2.7/lib2to3/tests/test_main.py b/lib/python2.7/lib2to3/tests/test_main.py
deleted file mode 100644
index 7f8b25c..0000000
--- a/lib/python2.7/lib2to3/tests/test_main.py
+++ /dev/null
@@ -1,149 +0,0 @@
-# -*- coding: utf-8 -*-
-import sys
-import codecs
-import logging
-import os
-import re
-import shutil
-import StringIO
-import sys
-import tempfile
-import unittest
-
-from lib2to3 import main
-
-
-TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data")
-PY2_TEST_MODULE = os.path.join(TEST_DATA_DIR, "py2_test_grammar.py")
-
-
-class TestMain(unittest.TestCase):
-
- if not hasattr(unittest.TestCase, 'assertNotRegex'):
- # This method was only introduced in 3.2.
- def assertNotRegex(self, text, regexp, msg=None):
- import re
- if not hasattr(regexp, 'search'):
- regexp = re.compile(regexp)
- if regexp.search(text):
- self.fail("regexp %s MATCHED text %r" % (regexp.pattern, text))
-
- def setUp(self):
- self.temp_dir = None # tearDown() will rmtree this directory if set.
-
- def tearDown(self):
- # Clean up logging configuration down by main.
- del logging.root.handlers[:]
- if self.temp_dir:
- shutil.rmtree(self.temp_dir)
-
- def run_2to3_capture(self, args, in_capture, out_capture, err_capture):
- save_stdin = sys.stdin
- save_stdout = sys.stdout
- save_stderr = sys.stderr
- sys.stdin = in_capture
- sys.stdout = out_capture
- sys.stderr = err_capture
- try:
- return main.main("lib2to3.fixes", args)
- finally:
- sys.stdin = save_stdin
- sys.stdout = save_stdout
- sys.stderr = save_stderr
-
- def test_unencodable_diff(self):
- input_stream = StringIO.StringIO(u"print 'nothing'\nprint u'über'\n")
- out = StringIO.StringIO()
- out_enc = codecs.getwriter("ascii")(out)
- err = StringIO.StringIO()
- ret = self.run_2to3_capture(["-"], input_stream, out_enc, err)
- self.assertEqual(ret, 0)
- output = out.getvalue()
- self.assertTrue("-print 'nothing'" in output)
- self.assertTrue("WARNING: couldn't encode <stdin>'s diff for "
- "your terminal" in err.getvalue())
-
- def setup_test_source_trees(self):
- """Setup a test source tree and output destination tree."""
- self.temp_dir = tempfile.mkdtemp() # tearDown() cleans this up.
- self.py2_src_dir = os.path.join(self.temp_dir, "python2_project")
- self.py3_dest_dir = os.path.join(self.temp_dir, "python3_project")
- os.mkdir(self.py2_src_dir)
- os.mkdir(self.py3_dest_dir)
- # Turn it into a package with a few files.
- self.setup_files = []
- open(os.path.join(self.py2_src_dir, "__init__.py"), "w").close()
- self.setup_files.append("__init__.py")
- shutil.copy(PY2_TEST_MODULE, self.py2_src_dir)
- self.setup_files.append(os.path.basename(PY2_TEST_MODULE))
- self.trivial_py2_file = os.path.join(self.py2_src_dir, "trivial.py")
- self.init_py2_file = os.path.join(self.py2_src_dir, "__init__.py")
- with open(self.trivial_py2_file, "w") as trivial:
- trivial.write("print 'I need a simple conversion.'")
- self.setup_files.append("trivial.py")
-
- def test_filename_changing_on_output_single_dir(self):
- """2to3 a single directory with a new output dir and suffix."""
- self.setup_test_source_trees()
- out = StringIO.StringIO()
- err = StringIO.StringIO()
- suffix = "TEST"
- ret = self.run_2to3_capture(
- ["-n", "--add-suffix", suffix, "--write-unchanged-files",
- "--no-diffs", "--output-dir",
- self.py3_dest_dir, self.py2_src_dir],
- StringIO.StringIO(""), out, err)
- self.assertEqual(ret, 0)
- stderr = err.getvalue()
- self.assertIn(" implies -w.", stderr)
- self.assertIn(
- "Output in %r will mirror the input directory %r layout" % (
- self.py3_dest_dir, self.py2_src_dir), stderr)
- self.assertEqual(set(name+suffix for name in self.setup_files),
- set(os.listdir(self.py3_dest_dir)))
- for name in self.setup_files:
- self.assertIn("Writing converted %s to %s" % (
- os.path.join(self.py2_src_dir, name),
- os.path.join(self.py3_dest_dir, name+suffix)), stderr)
- sep = re.escape(os.sep)
- self.assertRegexpMatches(
- stderr, r"No changes to .*/__init__\.py".replace("/", sep))
- self.assertNotRegex(
- stderr, r"No changes to .*/trivial\.py".replace("/", sep))
-
- def test_filename_changing_on_output_two_files(self):
- """2to3 two files in one directory with a new output dir."""
- self.setup_test_source_trees()
- err = StringIO.StringIO()
- py2_files = [self.trivial_py2_file, self.init_py2_file]
- expected_files = set(os.path.basename(name) for name in py2_files)
- ret = self.run_2to3_capture(
- ["-n", "-w", "--write-unchanged-files",
- "--no-diffs", "--output-dir", self.py3_dest_dir] + py2_files,
- StringIO.StringIO(""), StringIO.StringIO(), err)
- self.assertEqual(ret, 0)
- stderr = err.getvalue()
- self.assertIn(
- "Output in %r will mirror the input directory %r layout" % (
- self.py3_dest_dir, self.py2_src_dir), stderr)
- self.assertEqual(expected_files, set(os.listdir(self.py3_dest_dir)))
-
- def test_filename_changing_on_output_single_file(self):
- """2to3 a single file with a new output dir."""
- self.setup_test_source_trees()
- err = StringIO.StringIO()
- ret = self.run_2to3_capture(
- ["-n", "-w", "--no-diffs", "--output-dir", self.py3_dest_dir,
- self.trivial_py2_file],
- StringIO.StringIO(""), StringIO.StringIO(), err)
- self.assertEqual(ret, 0)
- stderr = err.getvalue()
- self.assertIn(
- "Output in %r will mirror the input directory %r layout" % (
- self.py3_dest_dir, self.py2_src_dir), stderr)
- self.assertEqual(set([os.path.basename(self.trivial_py2_file)]),
- set(os.listdir(self.py3_dest_dir)))
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/lib/python2.7/lib2to3/tests/test_parser.py b/lib/python2.7/lib2to3/tests/test_parser.py
deleted file mode 100644
index 2602381..0000000
--- a/lib/python2.7/lib2to3/tests/test_parser.py
+++ /dev/null
@@ -1,227 +0,0 @@
-"""Test suite for 2to3's parser and grammar files.
-
-This is the place to add tests for changes to 2to3's grammar, such as those
-merging the grammars for Python 2 and 3. In addition to specific tests for
-parts of the grammar we've changed, we also make sure we can parse the
-test_grammar.py files from both Python 2 and Python 3.
-"""
-
-from __future__ import with_statement
-
-# Testing imports
-from . import support
-from .support import driver, test_dir
-
-# Python imports
-import os
-import sys
-
-# Local imports
-from lib2to3.pgen2 import tokenize
-from ..pgen2.parse import ParseError
-from lib2to3.pygram import python_symbols as syms
-
-
-class TestDriver(support.TestCase):
-
- def test_formfeed(self):
- s = """print 1\n\x0Cprint 2\n"""
- t = driver.parse_string(s)
- self.assertEqual(t.children[0].children[0].type, syms.print_stmt)
- self.assertEqual(t.children[1].children[0].type, syms.print_stmt)
-
-
-class GrammarTest(support.TestCase):
- def validate(self, code):
- support.parse_string(code)
-
- def invalid_syntax(self, code):
- try:
- self.validate(code)
- except ParseError:
- pass
- else:
- raise AssertionError("Syntax shouldn't have been valid")
-
-
-class TestRaiseChanges(GrammarTest):
- def test_2x_style_1(self):
- self.validate("raise")
-
- def test_2x_style_2(self):
- self.validate("raise E, V")
-
- def test_2x_style_3(self):
- self.validate("raise E, V, T")
-
- def test_2x_style_invalid_1(self):
- self.invalid_syntax("raise E, V, T, Z")
-
- def test_3x_style(self):
- self.validate("raise E1 from E2")
-
- def test_3x_style_invalid_1(self):
- self.invalid_syntax("raise E, V from E1")
-
- def test_3x_style_invalid_2(self):
- self.invalid_syntax("raise E from E1, E2")
-
- def test_3x_style_invalid_3(self):
- self.invalid_syntax("raise from E1, E2")
-
- def test_3x_style_invalid_4(self):
- self.invalid_syntax("raise E from")
-
-
-# Adapated from Python 3's Lib/test/test_grammar.py:GrammarTests.testFuncdef
-class TestFunctionAnnotations(GrammarTest):
- def test_1(self):
- self.validate("""def f(x) -> list: pass""")
-
- def test_2(self):
- self.validate("""def f(x:int): pass""")
-
- def test_3(self):
- self.validate("""def f(*x:str): pass""")
-
- def test_4(self):
- self.validate("""def f(**x:float): pass""")
-
- def test_5(self):
- self.validate("""def f(x, y:1+2): pass""")
-
- def test_6(self):
- self.validate("""def f(a, (b:1, c:2, d)): pass""")
-
- def test_7(self):
- self.validate("""def f(a, (b:1, c:2, d), e:3=4, f=5, *g:6): pass""")
-
- def test_8(self):
- s = """def f(a, (b:1, c:2, d), e:3=4, f=5,
- *g:6, h:7, i=8, j:9=10, **k:11) -> 12: pass"""
- self.validate(s)
-
-
-class TestExcept(GrammarTest):
- def test_new(self):
- s = """
- try:
- x
- except E as N:
- y"""
- self.validate(s)
-
- def test_old(self):
- s = """
- try:
- x
- except E, N:
- y"""
- self.validate(s)
-
-
-# Adapted from Python 3's Lib/test/test_grammar.py:GrammarTests.testAtoms
-class TestSetLiteral(GrammarTest):
- def test_1(self):
- self.validate("""x = {'one'}""")
-
- def test_2(self):
- self.validate("""x = {'one', 1,}""")
-
- def test_3(self):
- self.validate("""x = {'one', 'two', 'three'}""")
-
- def test_4(self):
- self.validate("""x = {2, 3, 4,}""")
-
-
-class TestNumericLiterals(GrammarTest):
- def test_new_octal_notation(self):
- self.validate("""0o7777777777777""")
- self.invalid_syntax("""0o7324528887""")
-
- def test_new_binary_notation(self):
- self.validate("""0b101010""")
- self.invalid_syntax("""0b0101021""")
-
-
-class TestClassDef(GrammarTest):
- def test_new_syntax(self):
- self.validate("class B(t=7): pass")
- self.validate("class B(t, *args): pass")
- self.validate("class B(t, **kwargs): pass")
- self.validate("class B(t, *args, **kwargs): pass")
- self.validate("class B(t, y=9, *args, **kwargs): pass")
-
-
-class TestParserIdempotency(support.TestCase):
-
- """A cut-down version of pytree_idempotency.py."""
-
- def test_all_project_files(self):
- if sys.platform.startswith("win"):
- # XXX something with newlines goes wrong on Windows.
- return
- for filepath in support.all_project_files():
- with open(filepath, "rb") as fp:
- encoding = tokenize.detect_encoding(fp.readline)[0]
- self.assertTrue(encoding is not None,
- "can't detect encoding for %s" % filepath)
- with open(filepath, "r") as fp:
- source = fp.read()
- source = source.decode(encoding)
- tree = driver.parse_string(source)
- new = unicode(tree)
- if diff(filepath, new, encoding):
- self.fail("Idempotency failed: %s" % filepath)
-
- def test_extended_unpacking(self):
- driver.parse_string("a, *b, c = x\n")
- driver.parse_string("[*a, b] = x\n")
- driver.parse_string("(z, *y, w) = m\n")
- driver.parse_string("for *z, m in d: pass\n")
-
-class TestLiterals(GrammarTest):
-
- def validate(self, s):
- driver.parse_string(support.dedent(s) + "\n\n")
-
- def test_multiline_bytes_literals(self):
- s = """
- md5test(b"\xaa" * 80,
- (b"Test Using Larger Than Block-Size Key "
- b"and Larger Than One Block-Size Data"),
- "6f630fad67cda0ee1fb1f562db3aa53e")
- """
- self.validate(s)
-
- def test_multiline_bytes_tripquote_literals(self):
- s = '''
- b"""
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN">
- """
- '''
- self.validate(s)
-
- def test_multiline_str_literals(self):
- s = """
- md5test("\xaa" * 80,
- ("Test Using Larger Than Block-Size Key "
- "and Larger Than One Block-Size Data"),
- "6f630fad67cda0ee1fb1f562db3aa53e")
- """
- self.validate(s)
-
-
-def diff(fn, result, encoding):
- f = open("@", "w")
- try:
- f.write(result.encode(encoding))
- finally:
- f.close()
- try:
- fn = fn.replace('"', '\\"')
- return os.system('diff -u "%s" @' % fn)
- finally:
- os.remove("@")
diff --git a/lib/python2.7/lib2to3/tests/test_pytree.py b/lib/python2.7/lib2to3/tests/test_pytree.py
deleted file mode 100644
index ac7d900..0000000
--- a/lib/python2.7/lib2to3/tests/test_pytree.py
+++ /dev/null
@@ -1,494 +0,0 @@
-# Copyright 2006 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-"""Unit tests for pytree.py.
-
-NOTE: Please *don't* add doc strings to individual test methods!
-In verbose mode, printing of the module, class and method name is much
-more helpful than printing of (the first line of) the docstring,
-especially when debugging a test.
-"""
-
-from __future__ import with_statement
-
-import sys
-import warnings
-
-# Testing imports
-from . import support
-
-from lib2to3 import pytree
-
-try:
- sorted
-except NameError:
- def sorted(lst):
- l = list(lst)
- l.sort()
- return l
-
-class TestNodes(support.TestCase):
-
- """Unit tests for nodes (Base, Leaf, Node)."""
-
- if sys.version_info >= (2,6):
- # warnings.catch_warnings is new in 2.6.
- def test_deprecated_prefix_methods(self):
- l = pytree.Leaf(100, "foo")
- with warnings.catch_warnings(record=True) as w:
- warnings.simplefilter("always", DeprecationWarning)
- self.assertEqual(l.get_prefix(), "")
- l.set_prefix("hi")
- self.assertEqual(l.prefix, "hi")
- self.assertEqual(len(w), 2)
- for warning in w:
- self.assertTrue(warning.category is DeprecationWarning)
- self.assertEqual(str(w[0].message), "get_prefix() is deprecated; " \
- "use the prefix property")
- self.assertEqual(str(w[1].message), "set_prefix() is deprecated; " \
- "use the prefix property")
-
- def test_instantiate_base(self):
- if __debug__:
- # Test that instantiating Base() raises an AssertionError
- self.assertRaises(AssertionError, pytree.Base)
-
- def test_leaf(self):
- l1 = pytree.Leaf(100, "foo")
- self.assertEqual(l1.type, 100)
- self.assertEqual(l1.value, "foo")
-
- def test_leaf_repr(self):
- l1 = pytree.Leaf(100, "foo")
- self.assertEqual(repr(l1), "Leaf(100, 'foo')")
-
- def test_leaf_str(self):
- l1 = pytree.Leaf(100, "foo")
- self.assertEqual(str(l1), "foo")
- l2 = pytree.Leaf(100, "foo", context=(" ", (10, 1)))
- self.assertEqual(str(l2), " foo")
-
- def test_leaf_str_numeric_value(self):
- # Make sure that the Leaf's value is stringified. Failing to
- # do this can cause a TypeError in certain situations.
- l1 = pytree.Leaf(2, 5)
- l1.prefix = "foo_"
- self.assertEqual(str(l1), "foo_5")
-
- def test_leaf_equality(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "foo", context=(" ", (1, 0)))
- self.assertEqual(l1, l2)
- l3 = pytree.Leaf(101, "foo")
- l4 = pytree.Leaf(100, "bar")
- self.assertNotEqual(l1, l3)
- self.assertNotEqual(l1, l4)
-
- def test_leaf_prefix(self):
- l1 = pytree.Leaf(100, "foo")
- self.assertEqual(l1.prefix, "")
- self.assertFalse(l1.was_changed)
- l1.prefix = " ##\n\n"
- self.assertEqual(l1.prefix, " ##\n\n")
- self.assertTrue(l1.was_changed)
-
- def test_node(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(200, "bar")
- n1 = pytree.Node(1000, [l1, l2])
- self.assertEqual(n1.type, 1000)
- self.assertEqual(n1.children, [l1, l2])
-
- def test_node_repr(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "bar", context=(" ", (1, 0)))
- n1 = pytree.Node(1000, [l1, l2])
- self.assertEqual(repr(n1),
- "Node(1000, [%s, %s])" % (repr(l1), repr(l2)))
-
- def test_node_str(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "bar", context=(" ", (1, 0)))
- n1 = pytree.Node(1000, [l1, l2])
- self.assertEqual(str(n1), "foo bar")
-
- def test_node_prefix(self):
- l1 = pytree.Leaf(100, "foo")
- self.assertEqual(l1.prefix, "")
- n1 = pytree.Node(1000, [l1])
- self.assertEqual(n1.prefix, "")
- n1.prefix = " "
- self.assertEqual(n1.prefix, " ")
- self.assertEqual(l1.prefix, " ")
-
- def test_get_suffix(self):
- l1 = pytree.Leaf(100, "foo", prefix="a")
- l2 = pytree.Leaf(100, "bar", prefix="b")
- n1 = pytree.Node(1000, [l1, l2])
-
- self.assertEqual(l1.get_suffix(), l2.prefix)
- self.assertEqual(l2.get_suffix(), "")
- self.assertEqual(n1.get_suffix(), "")
-
- l3 = pytree.Leaf(100, "bar", prefix="c")
- n2 = pytree.Node(1000, [n1, l3])
-
- self.assertEqual(n1.get_suffix(), l3.prefix)
- self.assertEqual(l3.get_suffix(), "")
- self.assertEqual(n2.get_suffix(), "")
-
- def test_node_equality(self):
- n1 = pytree.Node(1000, ())
- n2 = pytree.Node(1000, [], context=(" ", (1, 0)))
- self.assertEqual(n1, n2)
- n3 = pytree.Node(1001, ())
- self.assertNotEqual(n1, n3)
-
- def test_node_recursive_equality(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "foo")
- n1 = pytree.Node(1000, [l1])
- n2 = pytree.Node(1000, [l2])
- self.assertEqual(n1, n2)
- l3 = pytree.Leaf(100, "bar")
- n3 = pytree.Node(1000, [l3])
- self.assertNotEqual(n1, n3)
-
- def test_replace(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "+")
- l3 = pytree.Leaf(100, "bar")
- n1 = pytree.Node(1000, [l1, l2, l3])
- self.assertEqual(n1.children, [l1, l2, l3])
- self.assertTrue(isinstance(n1.children, list))
- self.assertFalse(n1.was_changed)
- l2new = pytree.Leaf(100, "-")
- l2.replace(l2new)
- self.assertEqual(n1.children, [l1, l2new, l3])
- self.assertTrue(isinstance(n1.children, list))
- self.assertTrue(n1.was_changed)
-
- def test_replace_with_list(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "+")
- l3 = pytree.Leaf(100, "bar")
- n1 = pytree.Node(1000, [l1, l2, l3])
-
- l2.replace([pytree.Leaf(100, "*"), pytree.Leaf(100, "*")])
- self.assertEqual(str(n1), "foo**bar")
- self.assertTrue(isinstance(n1.children, list))
-
- def test_leaves(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "bar")
- l3 = pytree.Leaf(100, "fooey")
- n2 = pytree.Node(1000, [l1, l2])
- n3 = pytree.Node(1000, [l3])
- n1 = pytree.Node(1000, [n2, n3])
-
- self.assertEqual(list(n1.leaves()), [l1, l2, l3])
-
- def test_depth(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "bar")
- n2 = pytree.Node(1000, [l1, l2])
- n3 = pytree.Node(1000, [])
- n1 = pytree.Node(1000, [n2, n3])
-
- self.assertEqual(l1.depth(), 2)
- self.assertEqual(n3.depth(), 1)
- self.assertEqual(n1.depth(), 0)
-
- def test_post_order(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "bar")
- l3 = pytree.Leaf(100, "fooey")
- c1 = pytree.Node(1000, [l1, l2])
- n1 = pytree.Node(1000, [c1, l3])
- self.assertEqual(list(n1.post_order()), [l1, l2, c1, l3, n1])
-
- def test_pre_order(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "bar")
- l3 = pytree.Leaf(100, "fooey")
- c1 = pytree.Node(1000, [l1, l2])
- n1 = pytree.Node(1000, [c1, l3])
- self.assertEqual(list(n1.pre_order()), [n1, c1, l1, l2, l3])
-
- def test_changed(self):
- l1 = pytree.Leaf(100, "f")
- self.assertFalse(l1.was_changed)
- l1.changed()
- self.assertTrue(l1.was_changed)
-
- l1 = pytree.Leaf(100, "f")
- n1 = pytree.Node(1000, [l1])
- self.assertFalse(n1.was_changed)
- n1.changed()
- self.assertTrue(n1.was_changed)
-
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "+")
- l3 = pytree.Leaf(100, "bar")
- n1 = pytree.Node(1000, [l1, l2, l3])
- n2 = pytree.Node(1000, [n1])
- self.assertFalse(l1.was_changed)
- self.assertFalse(n1.was_changed)
- self.assertFalse(n2.was_changed)
-
- n1.changed()
- self.assertTrue(n1.was_changed)
- self.assertTrue(n2.was_changed)
- self.assertFalse(l1.was_changed)
-
- def test_leaf_constructor_prefix(self):
- for prefix in ("xyz_", ""):
- l1 = pytree.Leaf(100, "self", prefix=prefix)
- self.assertTrue(str(l1), prefix + "self")
- self.assertEqual(l1.prefix, prefix)
-
- def test_node_constructor_prefix(self):
- for prefix in ("xyz_", ""):
- l1 = pytree.Leaf(100, "self")
- l2 = pytree.Leaf(100, "foo", prefix="_")
- n1 = pytree.Node(1000, [l1, l2], prefix=prefix)
- self.assertTrue(str(n1), prefix + "self_foo")
- self.assertEqual(n1.prefix, prefix)
- self.assertEqual(l1.prefix, prefix)
- self.assertEqual(l2.prefix, "_")
-
- def test_remove(self):
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "foo")
- n1 = pytree.Node(1000, [l1, l2])
- n2 = pytree.Node(1000, [n1])
-
- self.assertEqual(n1.remove(), 0)
- self.assertEqual(n2.children, [])
- self.assertEqual(l1.parent, n1)
- self.assertEqual(n1.parent, None)
- self.assertEqual(n2.parent, None)
- self.assertFalse(n1.was_changed)
- self.assertTrue(n2.was_changed)
-
- self.assertEqual(l2.remove(), 1)
- self.assertEqual(l1.remove(), 0)
- self.assertEqual(n1.children, [])
- self.assertEqual(l1.parent, None)
- self.assertEqual(n1.parent, None)
- self.assertEqual(n2.parent, None)
- self.assertTrue(n1.was_changed)
- self.assertTrue(n2.was_changed)
-
- def test_remove_parentless(self):
- n1 = pytree.Node(1000, [])
- n1.remove()
- self.assertEqual(n1.parent, None)
-
- l1 = pytree.Leaf(100, "foo")
- l1.remove()
- self.assertEqual(l1.parent, None)
-
- def test_node_set_child(self):
- l1 = pytree.Leaf(100, "foo")
- n1 = pytree.Node(1000, [l1])
-
- l2 = pytree.Leaf(100, "bar")
- n1.set_child(0, l2)
- self.assertEqual(l1.parent, None)
- self.assertEqual(l2.parent, n1)
- self.assertEqual(n1.children, [l2])
-
- n2 = pytree.Node(1000, [l1])
- n2.set_child(0, n1)
- self.assertEqual(l1.parent, None)
- self.assertEqual(n1.parent, n2)
- self.assertEqual(n2.parent, None)
- self.assertEqual(n2.children, [n1])
-
- self.assertRaises(IndexError, n1.set_child, 4, l2)
- # I don't care what it raises, so long as it's an exception
- self.assertRaises(Exception, n1.set_child, 0, list)
-
- def test_node_insert_child(self):
- l1 = pytree.Leaf(100, "foo")
- n1 = pytree.Node(1000, [l1])
-
- l2 = pytree.Leaf(100, "bar")
- n1.insert_child(0, l2)
- self.assertEqual(l2.parent, n1)
- self.assertEqual(n1.children, [l2, l1])
-
- l3 = pytree.Leaf(100, "abc")
- n1.insert_child(2, l3)
- self.assertEqual(n1.children, [l2, l1, l3])
-
- # I don't care what it raises, so long as it's an exception
- self.assertRaises(Exception, n1.insert_child, 0, list)
-
- def test_node_append_child(self):
- n1 = pytree.Node(1000, [])
-
- l1 = pytree.Leaf(100, "foo")
- n1.append_child(l1)
- self.assertEqual(l1.parent, n1)
- self.assertEqual(n1.children, [l1])
-
- l2 = pytree.Leaf(100, "bar")
- n1.append_child(l2)
- self.assertEqual(l2.parent, n1)
- self.assertEqual(n1.children, [l1, l2])
-
- # I don't care what it raises, so long as it's an exception
- self.assertRaises(Exception, n1.append_child, list)
-
- def test_node_next_sibling(self):
- n1 = pytree.Node(1000, [])
- n2 = pytree.Node(1000, [])
- p1 = pytree.Node(1000, [n1, n2])
-
- self.assertTrue(n1.next_sibling is n2)
- self.assertEqual(n2.next_sibling, None)
- self.assertEqual(p1.next_sibling, None)
-
- def test_leaf_next_sibling(self):
- l1 = pytree.Leaf(100, "a")
- l2 = pytree.Leaf(100, "b")
- p1 = pytree.Node(1000, [l1, l2])
-
- self.assertTrue(l1.next_sibling is l2)
- self.assertEqual(l2.next_sibling, None)
- self.assertEqual(p1.next_sibling, None)
-
- def test_node_prev_sibling(self):
- n1 = pytree.Node(1000, [])
- n2 = pytree.Node(1000, [])
- p1 = pytree.Node(1000, [n1, n2])
-
- self.assertTrue(n2.prev_sibling is n1)
- self.assertEqual(n1.prev_sibling, None)
- self.assertEqual(p1.prev_sibling, None)
-
- def test_leaf_prev_sibling(self):
- l1 = pytree.Leaf(100, "a")
- l2 = pytree.Leaf(100, "b")
- p1 = pytree.Node(1000, [l1, l2])
-
- self.assertTrue(l2.prev_sibling is l1)
- self.assertEqual(l1.prev_sibling, None)
- self.assertEqual(p1.prev_sibling, None)
-
-
-class TestPatterns(support.TestCase):
-
- """Unit tests for tree matching patterns."""
-
- def test_basic_patterns(self):
- # Build a tree
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "bar")
- l3 = pytree.Leaf(100, "foo")
- n1 = pytree.Node(1000, [l1, l2])
- n2 = pytree.Node(1000, [l3])
- root = pytree.Node(1000, [n1, n2])
- # Build a pattern matching a leaf
- pl = pytree.LeafPattern(100, "foo", name="pl")
- r = {}
- self.assertFalse(pl.match(root, results=r))
- self.assertEqual(r, {})
- self.assertFalse(pl.match(n1, results=r))
- self.assertEqual(r, {})
- self.assertFalse(pl.match(n2, results=r))
- self.assertEqual(r, {})
- self.assertTrue(pl.match(l1, results=r))
- self.assertEqual(r, {"pl": l1})
- r = {}
- self.assertFalse(pl.match(l2, results=r))
- self.assertEqual(r, {})
- # Build a pattern matching a node
- pn = pytree.NodePattern(1000, [pl], name="pn")
- self.assertFalse(pn.match(root, results=r))
- self.assertEqual(r, {})
- self.assertFalse(pn.match(n1, results=r))
- self.assertEqual(r, {})
- self.assertTrue(pn.match(n2, results=r))
- self.assertEqual(r, {"pn": n2, "pl": l3})
- r = {}
- self.assertFalse(pn.match(l1, results=r))
- self.assertEqual(r, {})
- self.assertFalse(pn.match(l2, results=r))
- self.assertEqual(r, {})
-
- def test_wildcard(self):
- # Build a tree for testing
- l1 = pytree.Leaf(100, "foo")
- l2 = pytree.Leaf(100, "bar")
- l3 = pytree.Leaf(100, "foo")
- n1 = pytree.Node(1000, [l1, l2])
- n2 = pytree.Node(1000, [l3])
- root = pytree.Node(1000, [n1, n2])
- # Build a pattern
- pl = pytree.LeafPattern(100, "foo", name="pl")
- pn = pytree.NodePattern(1000, [pl], name="pn")
- pw = pytree.WildcardPattern([[pn], [pl, pl]], name="pw")
- r = {}
- self.assertFalse(pw.match_seq([root], r))
- self.assertEqual(r, {})
- self.assertFalse(pw.match_seq([n1], r))
- self.assertEqual(r, {})
- self.assertTrue(pw.match_seq([n2], r))
- # These are easier to debug
- self.assertEqual(sorted(r.keys()), ["pl", "pn", "pw"])
- self.assertEqual(r["pl"], l1)
- self.assertEqual(r["pn"], n2)
- self.assertEqual(r["pw"], [n2])
- # But this is equivalent
- self.assertEqual(r, {"pl": l1, "pn": n2, "pw": [n2]})
- r = {}
- self.assertTrue(pw.match_seq([l1, l3], r))
- self.assertEqual(r, {"pl": l3, "pw": [l1, l3]})
- self.assertTrue(r["pl"] is l3)
- r = {}
-
- def test_generate_matches(self):
- la = pytree.Leaf(1, "a")
- lb = pytree.Leaf(1, "b")
- lc = pytree.Leaf(1, "c")
- ld = pytree.Leaf(1, "d")
- le = pytree.Leaf(1, "e")
- lf = pytree.Leaf(1, "f")
- leaves = [la, lb, lc, ld, le, lf]
- root = pytree.Node(1000, leaves)
- pa = pytree.LeafPattern(1, "a", "pa")
- pb = pytree.LeafPattern(1, "b", "pb")
- pc = pytree.LeafPattern(1, "c", "pc")
- pd = pytree.LeafPattern(1, "d", "pd")
- pe = pytree.LeafPattern(1, "e", "pe")
- pf = pytree.LeafPattern(1, "f", "pf")
- pw = pytree.WildcardPattern([[pa, pb, pc], [pd, pe],
- [pa, pb], [pc, pd], [pe, pf]],
- min=1, max=4, name="pw")
- self.assertEqual([x[0] for x in pw.generate_matches(leaves)],
- [3, 5, 2, 4, 6])
- pr = pytree.NodePattern(type=1000, content=[pw], name="pr")
- matches = list(pytree.generate_matches([pr], [root]))
- self.assertEqual(len(matches), 1)
- c, r = matches[0]
- self.assertEqual(c, 1)
- self.assertEqual(str(r["pr"]), "abcdef")
- self.assertEqual(r["pw"], [la, lb, lc, ld, le, lf])
- for c in "abcdef":
- self.assertEqual(r["p" + c], pytree.Leaf(1, c))
-
- def test_has_key_example(self):
- pattern = pytree.NodePattern(331,
- (pytree.LeafPattern(7),
- pytree.WildcardPattern(name="args"),
- pytree.LeafPattern(8)))
- l1 = pytree.Leaf(7, "(")
- l2 = pytree.Leaf(3, "x")
- l3 = pytree.Leaf(8, ")")
- node = pytree.Node(331, [l1, l2, l3])
- r = {}
- self.assertTrue(pattern.match(node, r))
- self.assertEqual(r["args"], [l2])
diff --git a/lib/python2.7/lib2to3/tests/test_refactor.py b/lib/python2.7/lib2to3/tests/test_refactor.py
deleted file mode 100644
index 6020d1f..0000000
--- a/lib/python2.7/lib2to3/tests/test_refactor.py
+++ /dev/null
@@ -1,317 +0,0 @@
-"""
-Unit tests for refactor.py.
-"""
-
-from __future__ import with_statement
-
-import sys
-import os
-import codecs
-import operator
-import StringIO
-import tempfile
-import shutil
-import unittest
-import warnings
-
-from lib2to3 import refactor, pygram, fixer_base
-from lib2to3.pgen2 import token
-
-from . import support
-
-
-TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data")
-FIXER_DIR = os.path.join(TEST_DATA_DIR, "fixers")
-
-sys.path.append(FIXER_DIR)
-try:
- _DEFAULT_FIXERS = refactor.get_fixers_from_package("myfixes")
-finally:
- sys.path.pop()
-
-_2TO3_FIXERS = refactor.get_fixers_from_package("lib2to3.fixes")
-
-class TestRefactoringTool(unittest.TestCase):
-
- def setUp(self):
- sys.path.append(FIXER_DIR)
-
- def tearDown(self):
- sys.path.pop()
-
- def check_instances(self, instances, classes):
- for inst, cls in zip(instances, classes):
- if not isinstance(inst, cls):
- self.fail("%s are not instances of %s" % instances, classes)
-
- def rt(self, options=None, fixers=_DEFAULT_FIXERS, explicit=None):
- return refactor.RefactoringTool(fixers, options, explicit)
-
- def test_print_function_option(self):
- rt = self.rt({"print_function" : True})
- self.assertTrue(rt.grammar is pygram.python_grammar_no_print_statement)
- self.assertTrue(rt.driver.grammar is
- pygram.python_grammar_no_print_statement)
-
- def test_write_unchanged_files_option(self):
- rt = self.rt()
- self.assertFalse(rt.write_unchanged_files)
- rt = self.rt({"write_unchanged_files" : True})
- self.assertTrue(rt.write_unchanged_files)
-
- def test_fixer_loading_helpers(self):
- contents = ["explicit", "first", "last", "parrot", "preorder"]
- non_prefixed = refactor.get_all_fix_names("myfixes")
- prefixed = refactor.get_all_fix_names("myfixes", False)
- full_names = refactor.get_fixers_from_package("myfixes")
- self.assertEqual(prefixed, ["fix_" + name for name in contents])
- self.assertEqual(non_prefixed, contents)
- self.assertEqual(full_names,
- ["myfixes.fix_" + name for name in contents])
-
- def test_detect_future_features(self):
- run = refactor._detect_future_features
- fs = frozenset
- empty = fs()
- self.assertEqual(run(""), empty)
- self.assertEqual(run("from __future__ import print_function"),
- fs(("print_function",)))
- self.assertEqual(run("from __future__ import generators"),
- fs(("generators",)))
- self.assertEqual(run("from __future__ import generators, feature"),
- fs(("generators", "feature")))
- inp = "from __future__ import generators, print_function"
- self.assertEqual(run(inp), fs(("generators", "print_function")))
- inp ="from __future__ import print_function, generators"
- self.assertEqual(run(inp), fs(("print_function", "generators")))
- inp = "from __future__ import (print_function,)"
- self.assertEqual(run(inp), fs(("print_function",)))
- inp = "from __future__ import (generators, print_function)"
- self.assertEqual(run(inp), fs(("generators", "print_function")))
- inp = "from __future__ import (generators, nested_scopes)"
- self.assertEqual(run(inp), fs(("generators", "nested_scopes")))
- inp = """from __future__ import generators
-from __future__ import print_function"""
- self.assertEqual(run(inp), fs(("generators", "print_function")))
- invalid = ("from",
- "from 4",
- "from x",
- "from x 5",
- "from x im",
- "from x import",
- "from x import 4",
- )
- for inp in invalid:
- self.assertEqual(run(inp), empty)
- inp = "'docstring'\nfrom __future__ import print_function"
- self.assertEqual(run(inp), fs(("print_function",)))
- inp = "'docstring'\n'somng'\nfrom __future__ import print_function"
- self.assertEqual(run(inp), empty)
- inp = "# comment\nfrom __future__ import print_function"
- self.assertEqual(run(inp), fs(("print_function",)))
- inp = "# comment\n'doc'\nfrom __future__ import print_function"
- self.assertEqual(run(inp), fs(("print_function",)))
- inp = "class x: pass\nfrom __future__ import print_function"
- self.assertEqual(run(inp), empty)
-
- def test_get_headnode_dict(self):
- class NoneFix(fixer_base.BaseFix):
- pass
-
- class FileInputFix(fixer_base.BaseFix):
- PATTERN = "file_input< any * >"
-
- class SimpleFix(fixer_base.BaseFix):
- PATTERN = "'name'"
-
- no_head = NoneFix({}, [])
- with_head = FileInputFix({}, [])
- simple = SimpleFix({}, [])
- d = refactor._get_headnode_dict([no_head, with_head, simple])
- top_fixes = d.pop(pygram.python_symbols.file_input)
- self.assertEqual(top_fixes, [with_head, no_head])
- name_fixes = d.pop(token.NAME)
- self.assertEqual(name_fixes, [simple, no_head])
- for fixes in d.itervalues():
- self.assertEqual(fixes, [no_head])
-
- def test_fixer_loading(self):
- from myfixes.fix_first import FixFirst
- from myfixes.fix_last import FixLast
- from myfixes.fix_parrot import FixParrot
- from myfixes.fix_preorder import FixPreorder
-
- rt = self.rt()
- pre, post = rt.get_fixers()
-
- self.check_instances(pre, [FixPreorder])
- self.check_instances(post, [FixFirst, FixParrot, FixLast])
-
- def test_naughty_fixers(self):
- self.assertRaises(ImportError, self.rt, fixers=["not_here"])
- self.assertRaises(refactor.FixerError, self.rt, fixers=["no_fixer_cls"])
- self.assertRaises(refactor.FixerError, self.rt, fixers=["bad_order"])
-
- def test_refactor_string(self):
- rt = self.rt()
- input = "def parrot(): pass\n\n"
- tree = rt.refactor_string(input, "<test>")
- self.assertNotEqual(str(tree), input)
-
- input = "def f(): pass\n\n"
- tree = rt.refactor_string(input, "<test>")
- self.assertEqual(str(tree), input)
-
- def test_refactor_stdin(self):
-
- class MyRT(refactor.RefactoringTool):
-
- def print_output(self, old_text, new_text, filename, equal):
- results.extend([old_text, new_text, filename, equal])
-
- results = []
- rt = MyRT(_DEFAULT_FIXERS)
- save = sys.stdin
- sys.stdin = StringIO.StringIO("def parrot(): pass\n\n")
- try:
- rt.refactor_stdin()
- finally:
- sys.stdin = save
- expected = ["def parrot(): pass\n\n",
- "def cheese(): pass\n\n",
- "<stdin>", False]
- self.assertEqual(results, expected)
-
- def check_file_refactoring(self, test_file, fixers=_2TO3_FIXERS,
- options=None, mock_log_debug=None,
- actually_write=True):
- tmpdir = tempfile.mkdtemp(prefix="2to3-test_refactor")
- self.addCleanup(shutil.rmtree, tmpdir)
- # make a copy of the tested file that we can write to
- shutil.copy(test_file, tmpdir)
- test_file = os.path.join(tmpdir, os.path.basename(test_file))
- os.chmod(test_file, 0o644)
-
- def read_file():
- with open(test_file, "rb") as fp:
- return fp.read()
-
- old_contents = read_file()
- rt = self.rt(fixers=fixers, options=options)
- if mock_log_debug:
- rt.log_debug = mock_log_debug
-
- rt.refactor_file(test_file)
- self.assertEqual(old_contents, read_file())
-
- if not actually_write:
- return
- rt.refactor_file(test_file, True)
- new_contents = read_file()
- self.assertNotEqual(old_contents, new_contents)
- return new_contents
-
- def test_refactor_file(self):
- test_file = os.path.join(FIXER_DIR, "parrot_example.py")
- self.check_file_refactoring(test_file, _DEFAULT_FIXERS)
-
- def test_refactor_file_write_unchanged_file(self):
- test_file = os.path.join(FIXER_DIR, "parrot_example.py")
- debug_messages = []
- def recording_log_debug(msg, *args):
- debug_messages.append(msg % args)
- self.check_file_refactoring(test_file, fixers=(),
- options={"write_unchanged_files": True},
- mock_log_debug=recording_log_debug,
- actually_write=False)
- # Testing that it logged this message when write=False was passed is
- # sufficient to see that it did not bail early after "No changes".
- message_regex = r"Not writing changes to .*%s%s" % (
- os.sep, os.path.basename(test_file))
- for message in debug_messages:
- if "Not writing changes" in message:
- self.assertRegexpMatches(message, message_regex)
- break
- else:
- self.fail("%r not matched in %r" % (message_regex, debug_messages))
-
- def test_refactor_dir(self):
- def check(structure, expected):
- def mock_refactor_file(self, f, *args):
- got.append(f)
- save_func = refactor.RefactoringTool.refactor_file
- refactor.RefactoringTool.refactor_file = mock_refactor_file
- rt = self.rt()
- got = []
- dir = tempfile.mkdtemp(prefix="2to3-test_refactor")
- try:
- os.mkdir(os.path.join(dir, "a_dir"))
- for fn in structure:
- open(os.path.join(dir, fn), "wb").close()
- rt.refactor_dir(dir)
- finally:
- refactor.RefactoringTool.refactor_file = save_func
- shutil.rmtree(dir)
- self.assertEqual(got,
- [os.path.join(dir, path) for path in expected])
- check([], [])
- tree = ["nothing",
- "hi.py",
- ".dumb",
- ".after.py",
- "notpy.npy",
- "sappy"]
- expected = ["hi.py"]
- check(tree, expected)
- tree = ["hi.py",
- os.path.join("a_dir", "stuff.py")]
- check(tree, tree)
-
- def test_file_encoding(self):
- fn = os.path.join(TEST_DATA_DIR, "different_encoding.py")
- self.check_file_refactoring(fn)
-
- def test_bom(self):
- fn = os.path.join(TEST_DATA_DIR, "bom.py")
- data = self.check_file_refactoring(fn)
- self.assertTrue(data.startswith(codecs.BOM_UTF8))
-
- def test_crlf_newlines(self):
- old_sep = os.linesep
- os.linesep = "\r\n"
- try:
- fn = os.path.join(TEST_DATA_DIR, "crlf.py")
- fixes = refactor.get_fixers_from_package("lib2to3.fixes")
- self.check_file_refactoring(fn, fixes)
- finally:
- os.linesep = old_sep
-
- def test_refactor_docstring(self):
- rt = self.rt()
-
- doc = """
->>> example()
-42
-"""
- out = rt.refactor_docstring(doc, "<test>")
- self.assertEqual(out, doc)
-
- doc = """
->>> def parrot():
-... return 43
-"""
- out = rt.refactor_docstring(doc, "<test>")
- self.assertNotEqual(out, doc)
-
- def test_explicit(self):
- from myfixes.fix_explicit import FixExplicit
-
- rt = self.rt(fixers=["myfixes.fix_explicit"])
- self.assertEqual(len(rt.post_order), 0)
-
- rt = self.rt(explicit=["myfixes.fix_explicit"])
- for fix in rt.post_order:
- if isinstance(fix, FixExplicit):
- break
- else:
- self.fail("explicit fixer not loaded")
diff --git a/lib/python2.7/lib2to3/tests/test_util.py b/lib/python2.7/lib2to3/tests/test_util.py
deleted file mode 100644
index 2fab8b9..0000000
--- a/lib/python2.7/lib2to3/tests/test_util.py
+++ /dev/null
@@ -1,594 +0,0 @@
-""" Test suite for the code in fixer_util """
-
-# Testing imports
-from . import support
-
-# Python imports
-import os.path
-
-# Local imports
-from lib2to3.pytree import Node, Leaf
-from lib2to3 import fixer_util
-from lib2to3.fixer_util import Attr, Name, Call, Comma
-from lib2to3.pgen2 import token
-
-def parse(code, strip_levels=0):
- # The topmost node is file_input, which we don't care about.
- # The next-topmost node is a *_stmt node, which we also don't care about
- tree = support.parse_string(code)
- for i in range(strip_levels):
- tree = tree.children[0]
- tree.parent = None
- return tree
-
-class MacroTestCase(support.TestCase):
- def assertStr(self, node, string):
- if isinstance(node, (tuple, list)):
- node = Node(fixer_util.syms.simple_stmt, node)
- self.assertEqual(str(node), string)
-
-
-class Test_is_tuple(support.TestCase):
- def is_tuple(self, string):
- return fixer_util.is_tuple(parse(string, strip_levels=2))
-
- def test_valid(self):
- self.assertTrue(self.is_tuple("(a, b)"))
- self.assertTrue(self.is_tuple("(a, (b, c))"))
- self.assertTrue(self.is_tuple("((a, (b, c)),)"))
- self.assertTrue(self.is_tuple("(a,)"))
- self.assertTrue(self.is_tuple("()"))
-
- def test_invalid(self):
- self.assertFalse(self.is_tuple("(a)"))
- self.assertFalse(self.is_tuple("('foo') % (b, c)"))
-
-
-class Test_is_list(support.TestCase):
- def is_list(self, string):
- return fixer_util.is_list(parse(string, strip_levels=2))
-
- def test_valid(self):
- self.assertTrue(self.is_list("[]"))
- self.assertTrue(self.is_list("[a]"))
- self.assertTrue(self.is_list("[a, b]"))
- self.assertTrue(self.is_list("[a, [b, c]]"))
- self.assertTrue(self.is_list("[[a, [b, c]],]"))
-
- def test_invalid(self):
- self.assertFalse(self.is_list("[]+[]"))
-
-
-class Test_Attr(MacroTestCase):
- def test(self):
- call = parse("foo()", strip_levels=2)
-
- self.assertStr(Attr(Name("a"), Name("b")), "a.b")
- self.assertStr(Attr(call, Name("b")), "foo().b")
-
- def test_returns(self):
- attr = Attr(Name("a"), Name("b"))
- self.assertEqual(type(attr), list)
-
-
-class Test_Name(MacroTestCase):
- def test(self):
- self.assertStr(Name("a"), "a")
- self.assertStr(Name("foo.foo().bar"), "foo.foo().bar")
- self.assertStr(Name("a", prefix="b"), "ba")
-
-
-class Test_Call(MacroTestCase):
- def _Call(self, name, args=None, prefix=None):
- """Help the next test"""
- children = []
- if isinstance(args, list):
- for arg in args:
- children.append(arg)
- children.append(Comma())
- children.pop()
- return Call(Name(name), children, prefix)
-
- def test(self):
- kids = [None,
- [Leaf(token.NUMBER, 1), Leaf(token.NUMBER, 2),
- Leaf(token.NUMBER, 3)],
- [Leaf(token.NUMBER, 1), Leaf(token.NUMBER, 3),
- Leaf(token.NUMBER, 2), Leaf(token.NUMBER, 4)],
- [Leaf(token.STRING, "b"), Leaf(token.STRING, "j", prefix=" ")]
- ]
- self.assertStr(self._Call("A"), "A()")
- self.assertStr(self._Call("b", kids[1]), "b(1,2,3)")
- self.assertStr(self._Call("a.b().c", kids[2]), "a.b().c(1,3,2,4)")
- self.assertStr(self._Call("d", kids[3], prefix=" "), " d(b, j)")
-
-
-class Test_does_tree_import(support.TestCase):
- def _find_bind_rec(self, name, node):
- # Search a tree for a binding -- used to find the starting
- # point for these tests.
- c = fixer_util.find_binding(name, node)
- if c: return c
- for child in node.children:
- c = self._find_bind_rec(name, child)
- if c: return c
-
- def does_tree_import(self, package, name, string):
- node = parse(string)
- # Find the binding of start -- that's what we'll go from
- node = self._find_bind_rec('start', node)
- return fixer_util.does_tree_import(package, name, node)
-
- def try_with(self, string):
- failing_tests = (("a", "a", "from a import b"),
- ("a.d", "a", "from a.d import b"),
- ("d.a", "a", "from d.a import b"),
- (None, "a", "import b"),
- (None, "a", "import b, c, d"))
- for package, name, import_ in failing_tests:
- n = self.does_tree_import(package, name, import_ + "\n" + string)
- self.assertFalse(n)
- n = self.does_tree_import(package, name, string + "\n" + import_)
- self.assertFalse(n)
-
- passing_tests = (("a", "a", "from a import a"),
- ("x", "a", "from x import a"),
- ("x", "a", "from x import b, c, a, d"),
- ("x.b", "a", "from x.b import a"),
- ("x.b", "a", "from x.b import b, c, a, d"),
- (None, "a", "import a"),
- (None, "a", "import b, c, a, d"))
- for package, name, import_ in passing_tests:
- n = self.does_tree_import(package, name, import_ + "\n" + string)
- self.assertTrue(n)
- n = self.does_tree_import(package, name, string + "\n" + import_)
- self.assertTrue(n)
-
- def test_in_function(self):
- self.try_with("def foo():\n\tbar.baz()\n\tstart=3")
-
-class Test_find_binding(support.TestCase):
- def find_binding(self, name, string, package=None):
- return fixer_util.find_binding(name, parse(string), package)
-
- def test_simple_assignment(self):
- self.assertTrue(self.find_binding("a", "a = b"))
- self.assertTrue(self.find_binding("a", "a = [b, c, d]"))
- self.assertTrue(self.find_binding("a", "a = foo()"))
- self.assertTrue(self.find_binding("a", "a = foo().foo.foo[6][foo]"))
- self.assertFalse(self.find_binding("a", "foo = a"))
- self.assertFalse(self.find_binding("a", "foo = (a, b, c)"))
-
- def test_tuple_assignment(self):
- self.assertTrue(self.find_binding("a", "(a,) = b"))
- self.assertTrue(self.find_binding("a", "(a, b, c) = [b, c, d]"))
- self.assertTrue(self.find_binding("a", "(c, (d, a), b) = foo()"))
- self.assertTrue(self.find_binding("a", "(a, b) = foo().foo[6][foo]"))
- self.assertFalse(self.find_binding("a", "(foo, b) = (b, a)"))
- self.assertFalse(self.find_binding("a", "(foo, (b, c)) = (a, b, c)"))
-
- def test_list_assignment(self):
- self.assertTrue(self.find_binding("a", "[a] = b"))
- self.assertTrue(self.find_binding("a", "[a, b, c] = [b, c, d]"))
- self.assertTrue(self.find_binding("a", "[c, [d, a], b] = foo()"))
- self.assertTrue(self.find_binding("a", "[a, b] = foo().foo[a][foo]"))
- self.assertFalse(self.find_binding("a", "[foo, b] = (b, a)"))
- self.assertFalse(self.find_binding("a", "[foo, [b, c]] = (a, b, c)"))
-
- def test_invalid_assignments(self):
- self.assertFalse(self.find_binding("a", "foo.a = 5"))
- self.assertFalse(self.find_binding("a", "foo[a] = 5"))
- self.assertFalse(self.find_binding("a", "foo(a) = 5"))
- self.assertFalse(self.find_binding("a", "foo(a, b) = 5"))
-
- def test_simple_import(self):
- self.assertTrue(self.find_binding("a", "import a"))
- self.assertTrue(self.find_binding("a", "import b, c, a, d"))
- self.assertFalse(self.find_binding("a", "import b"))
- self.assertFalse(self.find_binding("a", "import b, c, d"))
-
- def test_from_import(self):
- self.assertTrue(self.find_binding("a", "from x import a"))
- self.assertTrue(self.find_binding("a", "from a import a"))
- self.assertTrue(self.find_binding("a", "from x import b, c, a, d"))
- self.assertTrue(self.find_binding("a", "from x.b import a"))
- self.assertTrue(self.find_binding("a", "from x.b import b, c, a, d"))
- self.assertFalse(self.find_binding("a", "from a import b"))
- self.assertFalse(self.find_binding("a", "from a.d import b"))
- self.assertFalse(self.find_binding("a", "from d.a import b"))
-
- def test_import_as(self):
- self.assertTrue(self.find_binding("a", "import b as a"))
- self.assertTrue(self.find_binding("a", "import b as a, c, a as f, d"))
- self.assertFalse(self.find_binding("a", "import a as f"))
- self.assertFalse(self.find_binding("a", "import b, c as f, d as e"))
-
- def test_from_import_as(self):
- self.assertTrue(self.find_binding("a", "from x import b as a"))
- self.assertTrue(self.find_binding("a", "from x import g as a, d as b"))
- self.assertTrue(self.find_binding("a", "from x.b import t as a"))
- self.assertTrue(self.find_binding("a", "from x.b import g as a, d"))
- self.assertFalse(self.find_binding("a", "from a import b as t"))
- self.assertFalse(self.find_binding("a", "from a.d import b as t"))
- self.assertFalse(self.find_binding("a", "from d.a import b as t"))
-
- def test_simple_import_with_package(self):
- self.assertTrue(self.find_binding("b", "import b"))
- self.assertTrue(self.find_binding("b", "import b, c, d"))
- self.assertFalse(self.find_binding("b", "import b", "b"))
- self.assertFalse(self.find_binding("b", "import b, c, d", "c"))
-
- def test_from_import_with_package(self):
- self.assertTrue(self.find_binding("a", "from x import a", "x"))
- self.assertTrue(self.find_binding("a", "from a import a", "a"))
- self.assertTrue(self.find_binding("a", "from x import *", "x"))
- self.assertTrue(self.find_binding("a", "from x import b, c, a, d", "x"))
- self.assertTrue(self.find_binding("a", "from x.b import a", "x.b"))
- self.assertTrue(self.find_binding("a", "from x.b import *", "x.b"))
- self.assertTrue(self.find_binding("a", "from x.b import b, c, a, d", "x.b"))
- self.assertFalse(self.find_binding("a", "from a import b", "a"))
- self.assertFalse(self.find_binding("a", "from a.d import b", "a.d"))
- self.assertFalse(self.find_binding("a", "from d.a import b", "a.d"))
- self.assertFalse(self.find_binding("a", "from x.y import *", "a.b"))
-
- def test_import_as_with_package(self):
- self.assertFalse(self.find_binding("a", "import b.c as a", "b.c"))
- self.assertFalse(self.find_binding("a", "import a as f", "f"))
- self.assertFalse(self.find_binding("a", "import a as f", "a"))
-
- def test_from_import_as_with_package(self):
- # Because it would take a lot of special-case code in the fixers
- # to deal with from foo import bar as baz, we'll simply always
- # fail if there is an "from ... import ... as ..."
- self.assertFalse(self.find_binding("a", "from x import b as a", "x"))
- self.assertFalse(self.find_binding("a", "from x import g as a, d as b", "x"))
- self.assertFalse(self.find_binding("a", "from x.b import t as a", "x.b"))
- self.assertFalse(self.find_binding("a", "from x.b import g as a, d", "x.b"))
- self.assertFalse(self.find_binding("a", "from a import b as t", "a"))
- self.assertFalse(self.find_binding("a", "from a import b as t", "b"))
- self.assertFalse(self.find_binding("a", "from a import b as t", "t"))
-
- def test_function_def(self):
- self.assertTrue(self.find_binding("a", "def a(): pass"))
- self.assertTrue(self.find_binding("a", "def a(b, c, d): pass"))
- self.assertTrue(self.find_binding("a", "def a(): b = 7"))
- self.assertFalse(self.find_binding("a", "def d(b, (c, a), e): pass"))
- self.assertFalse(self.find_binding("a", "def d(a=7): pass"))
- self.assertFalse(self.find_binding("a", "def d(a): pass"))
- self.assertFalse(self.find_binding("a", "def d(): a = 7"))
-
- s = """
- def d():
- def a():
- pass"""
- self.assertFalse(self.find_binding("a", s))
-
- def test_class_def(self):
- self.assertTrue(self.find_binding("a", "class a: pass"))
- self.assertTrue(self.find_binding("a", "class a(): pass"))
- self.assertTrue(self.find_binding("a", "class a(b): pass"))
- self.assertTrue(self.find_binding("a", "class a(b, c=8): pass"))
- self.assertFalse(self.find_binding("a", "class d: pass"))
- self.assertFalse(self.find_binding("a", "class d(a): pass"))
- self.assertFalse(self.find_binding("a", "class d(b, a=7): pass"))
- self.assertFalse(self.find_binding("a", "class d(b, *a): pass"))
- self.assertFalse(self.find_binding("a", "class d(b, **a): pass"))
- self.assertFalse(self.find_binding("a", "class d: a = 7"))
-
- s = """
- class d():
- class a():
- pass"""
- self.assertFalse(self.find_binding("a", s))
-
- def test_for(self):
- self.assertTrue(self.find_binding("a", "for a in r: pass"))
- self.assertTrue(self.find_binding("a", "for a, b in r: pass"))
- self.assertTrue(self.find_binding("a", "for (a, b) in r: pass"))
- self.assertTrue(self.find_binding("a", "for c, (a,) in r: pass"))
- self.assertTrue(self.find_binding("a", "for c, (a, b) in r: pass"))
- self.assertTrue(self.find_binding("a", "for c in r: a = c"))
- self.assertFalse(self.find_binding("a", "for c in a: pass"))
-
- def test_for_nested(self):
- s = """
- for b in r:
- for a in b:
- pass"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- for b in r:
- for a, c in b:
- pass"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- for b in r:
- for (a, c) in b:
- pass"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- for b in r:
- for (a,) in b:
- pass"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- for b in r:
- for c, (a, d) in b:
- pass"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- for b in r:
- for c in b:
- a = 7"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- for b in r:
- for c in b:
- d = a"""
- self.assertFalse(self.find_binding("a", s))
-
- s = """
- for b in r:
- for c in a:
- d = 7"""
- self.assertFalse(self.find_binding("a", s))
-
- def test_if(self):
- self.assertTrue(self.find_binding("a", "if b in r: a = c"))
- self.assertFalse(self.find_binding("a", "if a in r: d = e"))
-
- def test_if_nested(self):
- s = """
- if b in r:
- if c in d:
- a = c"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- if b in r:
- if c in d:
- c = a"""
- self.assertFalse(self.find_binding("a", s))
-
- def test_while(self):
- self.assertTrue(self.find_binding("a", "while b in r: a = c"))
- self.assertFalse(self.find_binding("a", "while a in r: d = e"))
-
- def test_while_nested(self):
- s = """
- while b in r:
- while c in d:
- a = c"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- while b in r:
- while c in d:
- c = a"""
- self.assertFalse(self.find_binding("a", s))
-
- def test_try_except(self):
- s = """
- try:
- a = 6
- except:
- b = 8"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- except:
- a = 6"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- except KeyError:
- pass
- except:
- a = 6"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- except:
- b = 6"""
- self.assertFalse(self.find_binding("a", s))
-
- def test_try_except_nested(self):
- s = """
- try:
- try:
- a = 6
- except:
- pass
- except:
- b = 8"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- except:
- try:
- a = 6
- except:
- pass"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- except:
- try:
- pass
- except:
- a = 6"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- try:
- b = 8
- except KeyError:
- pass
- except:
- a = 6
- except:
- pass"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- pass
- except:
- try:
- b = 8
- except KeyError:
- pass
- except:
- a = 6"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- except:
- b = 6"""
- self.assertFalse(self.find_binding("a", s))
-
- s = """
- try:
- try:
- b = 8
- except:
- c = d
- except:
- try:
- b = 6
- except:
- t = 8
- except:
- o = y"""
- self.assertFalse(self.find_binding("a", s))
-
- def test_try_except_finally(self):
- s = """
- try:
- c = 6
- except:
- b = 8
- finally:
- a = 9"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- finally:
- a = 6"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- finally:
- b = 6"""
- self.assertFalse(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- except:
- b = 9
- finally:
- b = 6"""
- self.assertFalse(self.find_binding("a", s))
-
- def test_try_except_finally_nested(self):
- s = """
- try:
- c = 6
- except:
- b = 8
- finally:
- try:
- a = 9
- except:
- b = 9
- finally:
- c = 9"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- finally:
- try:
- pass
- finally:
- a = 6"""
- self.assertTrue(self.find_binding("a", s))
-
- s = """
- try:
- b = 8
- finally:
- try:
- b = 6
- finally:
- b = 7"""
- self.assertFalse(self.find_binding("a", s))
-
-class Test_touch_import(support.TestCase):
-
- def test_after_docstring(self):
- node = parse('"""foo"""\nbar()')
- fixer_util.touch_import(None, "foo", node)
- self.assertEqual(str(node), '"""foo"""\nimport foo\nbar()\n\n')
-
- def test_after_imports(self):
- node = parse('"""foo"""\nimport bar\nbar()')
- fixer_util.touch_import(None, "foo", node)
- self.assertEqual(str(node), '"""foo"""\nimport bar\nimport foo\nbar()\n\n')
-
- def test_beginning(self):
- node = parse('bar()')
- fixer_util.touch_import(None, "foo", node)
- self.assertEqual(str(node), 'import foo\nbar()\n\n')
-
- def test_from_import(self):
- node = parse('bar()')
- fixer_util.touch_import("html", "escape", node)
- self.assertEqual(str(node), 'from html import escape\nbar()\n\n')
-
- def test_name_import(self):
- node = parse('bar()')
- fixer_util.touch_import(None, "cgi", node)
- self.assertEqual(str(node), 'import cgi\nbar()\n\n')
-
-class Test_find_indentation(support.TestCase):
-
- def test_nothing(self):
- fi = fixer_util.find_indentation
- node = parse("node()")
- self.assertEqual(fi(node), u"")
- node = parse("")
- self.assertEqual(fi(node), u"")
-
- def test_simple(self):
- fi = fixer_util.find_indentation
- node = parse("def f():\n x()")
- self.assertEqual(fi(node), u"")
- self.assertEqual(fi(node.children[0].children[4].children[2]), u" ")
- node = parse("def f():\n x()\n y()")
- self.assertEqual(fi(node.children[0].children[4].children[4]), u" ")