<86>Mar 17 01:17:59 userdel[4035371]: delete user 'rooter' <86>Mar 17 01:17:59 userdel[4035371]: removed group 'rooter' owned by 'rooter' <86>Mar 17 01:17:59 userdel[4035371]: removed shadow group 'rooter' owned by 'rooter' <86>Mar 17 01:17:59 groupadd[4035395]: group added to /etc/group: name=rooter, GID=1811 <86>Mar 17 01:17:59 groupadd[4035395]: group added to /etc/gshadow: name=rooter <86>Mar 17 01:17:59 groupadd[4035395]: new group: name=rooter, GID=1811 <86>Mar 17 01:17:59 useradd[4035409]: new user: name=rooter, UID=1811, GID=1811, home=/root, shell=/bin/bash <86>Mar 17 01:17:59 userdel[4035435]: delete user 'builder' <86>Mar 17 01:17:59 userdel[4035435]: removed group 'builder' owned by 'builder' <86>Mar 17 01:17:59 userdel[4035435]: removed shadow group 'builder' owned by 'builder' <86>Mar 17 01:17:59 groupadd[4035453]: group added to /etc/group: name=builder, GID=1812 <86>Mar 17 01:17:59 groupadd[4035453]: group added to /etc/gshadow: name=builder <86>Mar 17 01:17:59 groupadd[4035453]: new group: name=builder, GID=1812 <86>Mar 17 01:17:59 useradd[4035471]: new user: name=builder, UID=1812, GID=1812, home=/usr/src, shell=/bin/bash /usr/src/in/srpm/python3-module-pyresttest-1.7.1-alt1.src.rpm: license not found in '/usr/share/license' directory: ASLv2.0 <13>Mar 17 01:18:03 rpmi: libgdbm-1.8.3-alt10 sisyphus+278100.1600.1.1 1626058413 installed <13>Mar 17 01:18:03 rpmi: libexpat-2.5.0-alt1 p10+324220.100.1.1 1688465137 installed <13>Mar 17 01:18:03 rpmi: libp11-kit-0.24.1-alt1 p10+305061.100.3.1 1660573397 installed <13>Mar 17 01:18:03 rpmi: libtasn1-4.19.0-alt1 p10+309071.100.2.1 1668522760 installed <13>Mar 17 01:18:03 rpmi: rpm-macros-alternatives-0.5.2-alt1 p10+309129.100.2.1 1668066636 installed <13>Mar 17 01:18:03 rpmi: alternatives-0.5.2-alt1 p10+309129.100.2.1 1668066636 installed <13>Mar 17 01:18:03 rpmi: ca-certificates-2022.09.15-alt1 p10+308004.100.2.1 1665748370 installed <13>Mar 17 01:18:03 rpmi: ca-trust-0.1.4-alt1 p10+308691.100.3.1 1667496283 installed <13>Mar 17 01:18:03 rpmi: p11-kit-trust-0.24.1-alt1 p10+305061.100.3.1 1660573397 installed <13>Mar 17 01:18:03 rpmi: libcrypto1.1-1.1.1w-alt0.p10.1 p10+330586.100.4.1 1697560982 installed <13>Mar 17 01:18:03 rpmi: libssl1.1-1.1.1w-alt0.p10.1 p10+330586.100.4.1 1697560982 installed <13>Mar 17 01:18:03 rpmi: python3-3.9.18-alt1 p10+340781.400.5.1 1709555259 installed <13>Mar 17 01:18:03 rpmi: python3-base-3.9.18-alt1 p10+340781.400.5.1 1709555259 installed <13>Mar 17 01:18:03 rpmi: tests-for-installed-python3-pkgs-0.1.22-alt1 p10+325520.200.7.1 1691156214 installed <13>Mar 17 01:18:03 rpmi: rpm-build-python3-0.1.22-alt1 p10+325520.200.7.1 1691156214 installed WARNING: %python3_build_debug is deprecated and will be removed in future, please use %pyproject_build instead WARNING: %python3_install is deprecated and will be removed in future, please use %pyproject_install instead <13>Mar 17 01:18:05 rpmi: python3-module-attrs-22.1.0-alt1 p10+307737.2052.28.1 1666775429 installed <13>Mar 17 01:18:05 rpmi: python3-module-six-1.16.0-alt1.p10 p10+340092.560.10.1 1707922977 installed <13>Mar 17 01:18:05 rpmi: python3-module-idna-3.2-alt1 sisyphus+274748.100.1.1 1624021080 installed <13>Mar 17 01:18:05 rpmi: python3-module-zope.interface-5.4.0-alt1 sisyphus+270674.200.1.1 1619413815 installed <13>Mar 17 01:18:05 rpmi: python3-module-pkg_resources-1:57.4.0-alt1 p10+281549.200.4.1 1628026198 installed <13>Mar 17 01:18:05 rpmi: python3-module-multidict-4.5.2-alt2 sisyphus+279721.200.1.1 1626647951 installed <13>Mar 17 01:18:05 rpmi: python3-module-chardet-1:3.0.4-alt2 sisyphus+275804.100.1.1 1624794263 installed <13>Mar 17 01:18:05 rpmi: libidn2-2.3.2-alt1 p10+281239.100.3.1 1627673251 installed <13>Mar 17 01:18:05 rpmi: python3-module-yarl-1.6.3-alt2 sisyphus+279721.100.1.1 1626647918 installed <13>Mar 17 01:18:05 rpmi: python3-module-idna_ssl-1.1.0-alt2 sisyphus+272418.100.1.1 1621876529 installed <13>Mar 17 01:18:05 rpmi: python3-module-hyperlink-19.0.0-alt1 sisyphus+275823.100.1.1 1624795895 installed <13>Mar 17 01:18:05 rpmi: python3-module-outcome-1.0.0-alt1 sisyphus+275966.100.1.1 1624808278 installed <13>Mar 17 01:18:05 rpmi: python3-module-pyrsistent-0.17.3-alt1 sisyphus+279112.100.1.1 1626379418 installed <13>Mar 17 01:18:05 rpmi: python3-module-sqlparse-0.4.1-alt1 sisyphus+276354.100.1.1 1624982189 installed <13>Mar 17 01:18:06 rpmi: python3-module-pytz-1:2021.1-alt1 sisyphus+267903.400.1.1 1615896636 installed <13>Mar 17 01:18:06 rpmi: python3-module-markupsafe-1:2.1.2-alt1 p10+317847.21460.110.1 1687547544 installed <13>Mar 17 01:18:06 rpmi: python3-module-jinja2-3.0.1-alt1 sisyphus+274841.1100.1.1 1624295237 installed <13>Mar 17 01:18:06 rpmi: python3-module-asgiref-3.4.1-alt1 p10+283535.100.4.1 1631192500 installed <13>Mar 17 01:18:06 rpmi: python3-module-ntlm-1.1.0-alt1.2 sisyphus+275841.100.1.1 1624797814 installed <13>Mar 17 01:18:06 rpmi: python3-module-ndg-0.4.2-alt1.qa1 sisyphus+275837.100.1.2 1624808487 installed <13>Mar 17 01:18:06 rpmi: python3-module-typing_extensions-4.4.0-alt1 p10+307737.2050.28.1 1666775411 installed <13>Mar 17 01:18:06 rpmi: python3-module-click-8.1.3-alt1 p10+317847.20130.110.1 1687546694 installed <13>Mar 17 01:18:06 rpmi: python3-module-incremental-21.3.0-alt1 sisyphus+277407.100.1.1 1625535091 installed <13>Mar 17 01:18:06 rpmi: python3-module-constantly-15.1.0-alt5.qa1 sisyphus+275808.100.1.1 1624794561 installed <13>Mar 17 01:18:06 rpmi: python3-module-pygobject-2.28.6-alt11 sisyphus+279128.100.1.1 1626380821 installed <13>Mar 17 01:18:06 rpmi: python3-module-appdirs-1.4.4-alt1 sisyphus+267613.300.2.1 1620039159 installed <13>Mar 17 01:18:06 rpmi: python3-module-pycares-2.3.0-alt1.1 sisyphus+277970.100.1.1 1625928541 installed <13>Mar 17 01:18:06 rpmi: python3-module-certifi-2021.5.30-alt1 p10+307833.177620.205.1 1693943703 installed <13>Mar 17 01:18:06 rpmi: python3-module-openid-3.2.0-alt1 sisyphus+278049.100.2.1 1625998936 installed <13>Mar 17 01:18:06 rpmi: python3-module-z3c-3.0.0-alt3 sisyphus+275882.100.1.1 1624802402 installed <13>Mar 17 01:18:06 rpmi: python3-module-zc-1.0.0-alt6.2 sisyphus+275883.100.2.1 1624872753 installed <13>Mar 17 01:18:06 rpmi: python3-module-zope-3.3.0-alt8.5 sisyphus+275884.100.2.1 1624872797 installed <13>Mar 17 01:18:06 rpmi: python3-module-zope.event-4.4-alt1 sisyphus+275885.100.1.1 1624802662 installed <13>Mar 17 01:18:06 rpmi: python3-module-packaging-23.0-alt1 p10+325520.240.7.1 1691156260 installed <13>Mar 17 01:18:06 rpmi: python3-module-sortedcontainers-2.4.0-alt1 sisyphus+272042.100.1.1 1621262424 installed <13>Mar 17 01:18:06 rpmi: python3-module-sniffio-1.0.0-alt2 sisyphus+276000.100.1.1 1624811306 installed <13>Mar 17 01:18:06 rpmi: python3-module-pycparser-2.20-alt2 sisyphus+278697.200.1.1 1626167452 installed <13>Mar 17 01:18:06 rpmi: python3-module-cffi-1.14.5-alt2 sisyphus+279395.100.1.2 1626532846 installed <13>Mar 17 01:18:06 rpmi: python3-module-cryptography-41.0.7-alt0.p10.1 p10+336509.100.11.1 1706333950 installed <13>Mar 17 01:18:06 rpmi: python3-module-openssl-23.2.0-alt2 p10+340922.540.5.1 1708214779 installed <13>Mar 17 01:18:06 rpmi: python3-module-ndg-httpsclient-0.4.2-alt1.qa1 sisyphus+275837.100.1.2 1624808487 installed <13>Mar 17 01:18:06 rpmi: python3-module-urllib3-2:1.26.17-alt0.p10.1 p10+336509.200.11.1 1706333977 installed <13>Mar 17 01:18:06 rpmi: python3-module-requests-2.25.1-alt2 sisyphus+267359.100.1.1 1614881487 installed <13>Mar 17 01:18:06 rpmi: python3-module-async_generator-1.10-alt2 sisyphus+274601.674.9.1 1623852161 installed <13>Mar 17 01:18:06 rpmi: python3-module-trio-0.10.0-alt2 sisyphus+276015.100.1.1 1624812141 installed <13>Mar 17 01:18:06 rpmi: python3-module-dns-1:2.2.0-alt2 p10+338224.100.3.1 1708886560 installed <13>Mar 17 01:18:06 rpmi: python3-module-async-timeout-3.0.1-alt1 sisyphus+275800.100.1.1 1624793982 installed <13>Mar 17 01:18:06 rpmi: python3-module-Cheetah-3.2.3-alt3 sisyphus+279534.100.1.3 1626591141 installed <13>Mar 17 01:18:06 rpmi: python3-module-paste-3.5.0-alt1 sisyphus+278050.10.9.1 1625992949 installed <13>Mar 17 01:18:06 rpmi: python3-module-PasteDeploy-1:3.0.1-alt1 p10+341944.200.5.1 1710442255 installed <13>Mar 17 01:18:06 rpmi: python3-module-PasteScript-1:2.0.2-alt2 sisyphus+272468.100.1.1 1621939313 installed <13>Mar 17 01:18:06 rpmi: libyaml2-0.2.5-alt1 sisyphus+278391.100.1.1 1626094928 installed <13>Mar 17 01:18:06 rpmi: python3-module-yaml-6.0.1-alt1.1 p10+340092.554.16.1 1709018089 installed <13>Mar 17 01:18:06 rpmi: libuv-1.44.2-alt0.p10.1 p10+310327.220.21.1 1678360827 installed <13>Mar 17 01:18:06 rpmi: libpython3-3.9.18-alt1 p10+340781.400.5.1 1709555259 installed <13>Mar 17 01:18:06 rpmi: libpython-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python2-base-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python-modules-encodings-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python-modules-compiler-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python-modules-email-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python-modules-unittest-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python-modules-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python-modules-ctypes-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python-modules-multiprocessing-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: python-modules-logging-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:06 rpmi: libncurses-6.3.20220618-alt1 p10+319472.100.4.1 1685092691 installed <13>Mar 17 01:18:06 rpmi: libtinfo-devel-6.3.20220618-alt1 p10+319472.100.4.1 1685092691 installed <13>Mar 17 01:18:06 rpmi: libncurses-devel-6.3.20220618-alt1 p10+319472.100.4.1 1685092691 installed <13>Mar 17 01:18:08 rpmi: python3-dev-3.9.18-alt1 p10+340781.400.5.1 1709555259 installed <13>Mar 17 01:18:08 rpmi: python3-module-greenlet-1.1.0-alt1 sisyphus+279721.1700.1.1 1626648808 installed <13>Mar 17 01:18:08 rpmi: libmaxminddb-1.7.1-alt1 p10+330589.60.5.1 1697468590 installed <13>Mar 17 01:18:08 rpmi: python3-module-MaxMindDB-2.0.3-alt1 sisyphus+265234.33300.49.1 1613764506 installed <13>Mar 17 01:18:08 rpmi: libusb-1.0.26-alt2 p10+305622.100.3.1 1662994398 installed <13>Mar 17 01:18:08 rpmi: libhidapi-0.10.1-alt1_2 sisyphus+279018.100.1.1 1626353631 installed <13>Mar 17 01:18:08 rpmi: python3-module-cython-hidapi-0.9.0-alt0.1 sisyphus+279127.100.1.1 1626380803 installed <13>Mar 17 01:18:08 rpmi: python3-module-serial-3.5-alt1 sisyphus+275865.100.2.1 1624872757 installed <13>Mar 17 01:18:08 rpmi: python3-module-automat-20.2.0-alt2 sisyphus+275898.100.1.2 1624826834 installed <13>Mar 17 01:18:08 rpmi: python3-module-twisted-logger-20.3.0-alt2 sisyphus+265234.27700.49.1 1613760186 installed <13>Mar 17 01:18:08 rpmi: python3-module-twisted-words-20.3.0-alt2 sisyphus+265234.27700.49.1 1613760186 installed <13>Mar 17 01:18:08 rpmi: python3-module-twisted-core-20.3.0-alt2 sisyphus+265234.27700.49.1 1613760186 installed <13>Mar 17 01:18:08 rpmi: python3-module-twisted-names-20.3.0-alt2 sisyphus+265234.27700.49.1 1613760186 installed <13>Mar 17 01:18:08 rpmi: python3-module-tornado-6.3.2-alt1 p10+307833.177640.205.1 1693943742 installed <13>Mar 17 01:18:08 rpmi: libev4-4.33-alt1 sisyphus+279015.100.1.1 1626353403 installed <13>Mar 17 01:18:08 rpmi: libssh2-1.11.0-alt2 p10+339351.200.2.1 1706598963 installed <13>Mar 17 01:18:08 rpmi: publicsuffix-list-dafsa-20240130-alt1 p10+339507.100.1.1 1706719851 installed <13>Mar 17 01:18:08 rpmi: libpsl-0.21.1-alt3 p10+308014.200.3.1 1670863945 installed <13>Mar 17 01:18:08 rpmi: libnghttp2-1.57.0-alt1 p10+331478.100.1.1 1697016650 installed <13>Mar 17 01:18:08 rpmi: openldap-common-2.4.59-alt1.p10.2 p10+322965.300.3.1 1687183733 installed <13>Mar 17 01:18:08 rpmi: libntlm-1.5-alt1 sisyphus+278100.3300.1.1 1626058899 installed <13>Mar 17 01:18:08 rpmi: libidn-1.37-alt1 sisyphus+278604.100.1.1 1626095122 installed <13>Mar 17 01:18:08 rpmi: libverto-0.3.2-alt1_1 sisyphus+279289.100.1.3 1626493868 installed <13>Mar 17 01:18:08 rpmi: liblmdb-0.9.23-alt1 sisyphus+275369.100.1.2 1624493869 installed <13>Mar 17 01:18:08 rpmi: libkeyutils-1.6.3-alt1 sisyphus+266061.100.1.1 1612919566 installed <13>Mar 17 01:18:08 rpmi: libcom_err-1.46.2.0.16.f114-alt1 sisyphus+278100.1000.1.1 1626056805 installed <86>Mar 17 01:18:08 groupadd[4100762]: group added to /etc/group: name=_keytab, GID=499 <86>Mar 17 01:18:08 groupadd[4100762]: group added to /etc/gshadow: name=_keytab <86>Mar 17 01:18:08 groupadd[4100762]: new group: name=_keytab, GID=499 <13>Mar 17 01:18:08 rpmi: libkrb5-1.19.4-alt3 p10+338175.100.6.1 1706280757 installed <13>Mar 17 01:18:08 rpmi: libgsasl-1.8.0-alt3 sisyphus+275307.100.1.2 1624478543 installed <86>Mar 17 01:18:08 groupadd[4101137]: group added to /etc/group: name=sasl, GID=498 <86>Mar 17 01:18:08 groupadd[4101137]: group added to /etc/gshadow: name=sasl <86>Mar 17 01:18:08 groupadd[4101137]: new group: name=sasl, GID=498 <13>Mar 17 01:18:08 rpmi: libsasl2-3-2.1.27-alt2.1 sisyphus+278407.100.1.3 1626205817 installed <13>Mar 17 01:18:08 rpmi: libldap-2.4.59-alt1.p10.2 p10+322965.300.3.1 1687183733 installed <13>Mar 17 01:18:08 rpmi: libpq5-16.2-alt0.p10.1 p10+340531.100.1.1 1707759757 installed <13>Mar 17 01:18:08 rpmi: python3-module-psycopg2-2.9.1-alt1 sisyphus+279721.1200.1.2 1626668985 installed <13>Mar 17 01:18:08 rpmi: python3-module-eventlet-0.33.3-alt2.p10 p10+336214.1240.7.1 1702970652 installed <13>Mar 17 01:18:08 rpmi: libcares-1.26.0-alt1 p10+341112.100.1.1 1708403992 installed <13>Mar 17 01:18:08 rpmi: python3-module-gevent-21.1.2-alt1 sisyphus+277782.100.1.1 1625798568 installed <13>Mar 17 01:18:08 rpmi: python3-module-gunicorn-20.1.0-alt2 p10+336214.1400.7.1 1702970784 installed <13>Mar 17 01:18:08 rpmi: python3-module-aiohttp-3.7.4-alt1 sisyphus+279809.100.1.1 1626732287 installed <13>Mar 17 01:18:08 rpmi: python3-module-GeoIP2-4.2.0-alt1 sisyphus+277971.100.1.1 1625928820 installed <13>Mar 17 01:18:08 rpmi: libbrotlicommon-1.0.9-alt2 sisyphus+278430.100.1.2 1626213212 installed <13>Mar 17 01:18:08 rpmi: libbrotlidec-1.0.9-alt2 sisyphus+278430.100.1.2 1626213212 installed <13>Mar 17 01:18:08 rpmi: libcurl-8.6.0-alt1 p10+339529.100.2.1 1710240836 installed <13>Mar 17 01:18:08 rpmi: python3-module-pycurl-7.43.0.6-alt3 sisyphus+277922.100.1.1 1625919296 installed <13>Mar 17 01:18:09 rpmi: python3-module-django-3.2.23-alt1 p10+337271.100.1.1 1703594362 installed <13>Mar 17 01:18:09 rpmi: python-tools-2to3-2.7.18-alt10 p10+309289.100.3.1 1668015444 installed <13>Mar 17 01:18:09 rpmi: python3-module-jsonschema-4.5.1-alt1 p10+301511.40.5.1 1655300994 installed WARNING: %python3_build_debug is deprecated and will be removed in future, please use %pyproject_build instead WARNING: %python3_install is deprecated and will be removed in future, please use %pyproject_install instead Building target platforms: x86_64 Building for target x86_64 Wrote: /usr/src/in/nosrpm/python3-module-pyresttest-1.7.1-alt1.nosrc.rpm (w1.gzdio) <13>Mar 17 01:18:10 rpmi: python3-module-setuptools-1:57.4.0-alt1 p10+281549.200.4.1 1628026198 installed WARNING: %python3_build_debug is deprecated and will be removed in future, please use %pyproject_build instead WARNING: %python3_install is deprecated and will be removed in future, please use %pyproject_install instead Installing python3-module-pyresttest-1.7.1-alt1.src.rpm Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.6934 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf python3-module-pyresttest-1.7.1 + echo 'Source #0 (python3-module-pyresttest-1.7.1.tar):' Source #0 (python3-module-pyresttest-1.7.1.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/python3-module-pyresttest-1.7.1.tar + cd python3-module-pyresttest-1.7.1 + /bin/chmod -c -Rf u+rwX,go-w . + chmod +x run_tests.sh + find ./ -type f -name '*.py' -exec 2to3 -w -n '{}' + RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: No changes to ./util/profile_basic_test.py RefactoringTool: No changes to ./setup.py RefactoringTool: Refactored ./sample_extension.py RefactoringTool: Refactored ./pyresttest/validators.py --- ./sample_extension.py (original) +++ ./sample_extension.py (refactored) @@ -5,7 +5,7 @@ # Python 3 compatibility if sys.version_info[0] > 2: - from past.builtins import basestring + from past.builtins import str from pyresttest.six import text_type from pyresttest.six import binary_type @@ -28,7 +28,7 @@ @staticmethod def parse(config): """ Parse a contains validator, which takes as the config a simple string to find """ - if not isinstance(config, basestring): + if not isinstance(config, str): raise TypeError("Contains input must be a simple string") validator = ContainsValidator() validator.contains_string = config --- ./pyresttest/validators.py (original) +++ ./pyresttest/validators.py (refactored) @@ -18,8 +18,8 @@ # Python 3 compatibility PYTHON_MAJOR_VERSION = sys.version_info[0] if PYTHON_MAJOR_VERSION > 2: - from past.builtins import basestring - from past.builtins import long + from past.builtins import str + from past.builtins import int """ Validator/Extractor logic for utility use @@ -70,16 +70,16 @@ TYPES = { 'null': type(None), 'none': type(None), - 'number': (int, long, float), - 'int': (int, long), + 'number': (int, int, float), + 'int': (int, int), 'float': float, 'boolean': bool, - 'string': basestring, + 'string': str, 'array': list, 'list': list, 'dict': dict, 'map': dict, - 'scalar': (bool, int, long, float, basestring, type(None)), + 'scalar': (bool, int, int, float, str, type(None)), 'collection': (list, dict, set) } @@ -143,7 +143,7 @@ details = None validator = None - def __nonzero__(self): + def __bool__(self): """ Failure objects test as False, simplifies coding with them """ return False @@ -215,7 +215,7 @@ except KeyError: raise ValueError( "Cannot define a dictionary config for abstract extractor without it having template key") - elif isinstance(config, basestring): + elif isinstance(config, str): extractor_base.query = config extractor_base.is_templated = False else: @@ -275,7 +275,7 @@ def extract_internal(self, query=None, args=None, body=None, headers=None): low = query.lower() # Value for all matching key names - extracted = [y[1] for y in filter(lambda x: x[0] == low, headers)] + extracted = [y[1] for y in [x for x in headers if x[0] == low]] if len(extracted) == 0: raise ValueError("Invalid header name {0}".format(query)) elif len(extracted) == 1: @@ -310,7 +310,7 @@ and error if more than one or none """ extractor = None extract_config = None - for key, value in config_dict.items(): + for key, value in list(config_dict.items()): if key in EXTRACTORS: return parse_extractor(key, value) else: # No valid extractor @@ -429,13 +429,13 @@ # Expected value can be another extractor query, or a single value, or # a templated value - if isinstance(expected, basestring) or isinstance(expected, (int, long, float, complex)): + if isinstance(expected, str) or isinstance(expected, (int, float, complex)): output.expected = expected elif isinstance(expected, dict): expected = parsing.lowercase_keys(expected) template = expected.get('template') if template: # Templated string - if not isinstance(template, basestring): + if not isinstance(template, str): raise ValueError( "Can't template a comparator-validator unless template value is a string") output.isTemplateExpected = True @@ -556,7 +556,7 @@ def register_extractor(extractor_name, parse_function): """ Register a new body extraction function """ - if not isinstance(extractor_name, basestring): + if not isinstance(extractor_RefactoringTool: Refactored ./pyresttest/tests.py name, str): raise TypeError("Cannot register a non-string extractor name") if extractor_name.lower() == 'comparator': raise ValueError( @@ -575,7 +575,7 @@ def register_test(test_name, test_function): """ Register a new one-argument test function """ - if not isinstance(test_name, basestring): + if not isinstance(test_name, str): raise TypeError("Cannot register a non-string test name") elif test_name in VALIDATOR_TESTS: raise ValueError( @@ -585,7 +585,7 @@ def register_comparator(comparator_name, comparator_function): """ Register a new twpo-argument comparator function returning true or false """ - if not isinstance(comparator_name, basestring): + if not isinstance(comparator_name, str): raise TypeError("Cannot register a non-string comparator name") elif comparator_name in COMPARATORS: raise ValueError( --- ./pyresttest/tests.py (original) +++ ./pyresttest/tests.py (refactored) @@ -14,10 +14,10 @@ # Find the best implementation available on this platform try: - from cStringIO import StringIO as MyIO + from io import StringIO as MyIO except: try: - from StringIO import StringIO as MyIO + from io import StringIO as MyIO except ImportError: from io import BytesIO as MyIO @@ -25,9 +25,9 @@ PYTHON_MAJOR_VERSION = sys.version_info[0] if PYTHON_MAJOR_VERSION > 2: import urllib.parse as urlparse - from past.builtins import basestring + from past.builtins import str else: - import urlparse + import urllib.parse # Python 3 compatibility shims from . import six @@ -50,11 +50,11 @@ # Map HTTP method names to curl methods # Kind of obnoxious that it works this way... -HTTP_METHODS = {u'GET': pycurl.HTTPGET, - u'PUT': pycurl.UPLOAD, - u'PATCH': pycurl.POSTFIELDS, - u'POST': pycurl.POST, - u'DELETE': 'DELETE'} +HTTP_METHODS = {'GET': pycurl.HTTPGET, + 'PUT': pycurl.UPLOAD, + 'PATCH': pycurl.POSTFIELDS, + 'POST': pycurl.POST, + 'DELETE': 'DELETE'} # Parsing helper functions def coerce_to_string(val): @@ -77,7 +77,7 @@ def coerce_http_method(val): myval = val - if not isinstance(myval, basestring) or len(val) == 0: + if not isinstance(myval, str) or len(val) == 0: raise TypeError("Invalid HTTP method name: input {0} is not a string or has 0 length".format(val)) if isinstance(myval, binary_type): myval = myval.decode('utf-8') @@ -96,9 +96,9 @@ expected_status = [200] # expected HTTP status code or codes _body = None _headers = dict() # HTTP Headers - method = u'GET' - group = u'Default' - name = u'Unnamed' + method = 'GET' + group = 'Default' + name = 'Unnamed' validators = None # Validators for response body, IE regexes, etc stop_on_failure = False failures = None @@ -157,7 +157,7 @@ """ Read body from file, applying template if pertinent """ if self._body is None: return None - elif isinstance(self._body, basestring): + elif isinstance(self._body, str): return self._body else: return self._body.get_content(context=context) @@ -204,7 +204,7 @@ def template_tuple(tuple_input): return (string.Template(str(tuple_item)).safe_substitute(vals) for tuple_item in tuple_input) - return dict(map(template_tuple, self._headers.items())) + return dict(list(map(template_tuple, list(self._headers.items())))) headers = property(get_headers, set_headers, None, 'Headers dictionary for request') @@ -214,13 +214,13 @@ if self.variable_binds: context.bind_variables(self.variable_binds) if self.generator_binds: - for key, value in self.generator_binds.items(): + for key, value in list(self.generator_binds.items()): context.bind_generator_next(key, value) def update_context_after(self, response_body, headers, context): """ Run the extraction routines to update variables based on HTTP response body """ if self.extract_binds: - for key, value in self.extract_binds.items(): + for key, value in list(self.extract_binds.items()): result = value.extract( body=response_body, headers=headers, context=context) context.bind_variable(key, result) @@ -325,21 +325,21 @@ if self.auth_type: curl.setopt(pycurl.HTTPAUTH, self.auth_type) - if self.method == u'POST': - curl.setopt(HTTP_METHODS[u'POST'], 1) + if self.method == 'POST': + curl.setopt(HTTP_METHODS['POST'], 1) # Required for some servers if bod is not None: curl.setopt(pycurl.POSTFIELDSIZE, len(bod)) else: curl.setopt(pycurl.POSTFIELDSIZE, 0) - elif self.method == u'PUT': - curl.setopt(HTTP_METHODS[u'PUT'], 1) + elif self.method == 'PUT': + curl.setopt(HTTP_METHODS['PUT'], 1) # Required for some servers if bod is not None: curl.setopt(pycurl.INFILESIZE, len(bod)) else: curl.setopt(pycurl.INFILESIZE, 0) - elif self.method == u'PATCH': + elif self.method == 'PATCH': curl.setopt(curl.POSTFIELDS, bod) curl.setopt(curl.CUSTOMREQUEST, 'PATCH') # Required for some servers @@ -348,12 +348,12 @@ curl.setopt(pycurl.INFILESIZE, len(bod)) else: curl.setopt(pycurl.INFILESIZE, 0) - elif self.method == u'DELETE': + elif self.method == 'DELETE': curl.setopt(curl.CUSTOMREQUEST, 'DELETE') if bod is not None: curl.setopt(pycurl.POSTFIELDS, bod) curl.setopt(pycurl.POSTFIELDSIZE, len(bod)) - elif self.method == u'HEAD': + elif self.method == 'HEAD': curl.setopt(curl.NOBODY, 1) curl.setopt(curl.CUSTOMREQUEST, 'HEAD') elif self.method and self.method.upper() != 'GET': # Alternate HTTP methods @@ -368,14 +368,14 @@ # Set charset if doing unicode conversion and not set explicitly # TESTME - if is_unicoded and u'content-type' in head.keys(): - content = head[u'content-type'] - if u'charset' not in content: - head[u'content-type'] = content + u' ; charset=UTF-8' + if is_unicoded and 'content-type' in list(head.keys()): + content = head['content-type'] + if 'charset' not in content: + head['content-type'] = content + ' ; charset=UTF-8' if head: headers = [str(headername) + ':' + str(headervalue) - for headername, headervalue in head.items()] + for headername, headervalue in list(head.items())] else: headers = list() # Fix for expecting 100-continue from server, which not all servers @@ -388,7 +388,7 @@ # And the key/value pairs are set if self.curl_options: filterfunc = lambda x: x[0] is not None and x[1] is not None # Must have key and value - for (key, value) in ifilter(filterfunc, self.curl_options.items()): + for (key, value) in filter(filterfunc, list(self.curl_options.items())): # getattr to look up constant for variable name curl.setopt(getattr(curl, key), value) return curl @@ -419,19 +419,19 @@ # Simple table of variable name, coerce function, and optionally special store function CONFIG_ELEMENTS = { # Simple variables - u'auth_username': [coerce_string_to_ascii], - u'auth_password': [coerce_string_to_ascii], - u'method': [coerce_http_method], # HTTP METHOD - u'delay': [lambda x: int(x)], # Delay before running - u'group': [coerce_to_string], # Test group name - u'name': [coerce_to_string], # Test name - u'expected_status': [coerce_list_of_ints], - u'delay': [lambda x: int(x)], - u'stop_on_failure': [safe_to_bool], + 'auth_username': [coerce_string_to_ascii], + 'auth_password': [coerce_string_to_ascii], + 'method': [coerce_http_method], # HTTP METHOD + 'delay': [lambda x: int(x)], # Delay before running + 'group': [coerce_to_string], # Test group name + 'name': [coerce_to_string], # Test name + 'expected_status': [coerce_list_of_ints], + 'delay': [lambda x: int(x)], + 'stop_on_failure': [safe_to_bool], # Templated / special handling #u'url': [coerce_templatable, set_templated), # TODO: special handling for templated content, sigh - u'body': [ContentHandler.parse_content] + 'body': [ContentHandler.parse_content] #u'headers': [], # COMPLEX PARSE OPTIONS @@ -457,31 +457,31 @@ return False # Copy/convert input elements into appropriate form for a test object - for configelement, configvalue in node.items(): + for configelement, configvalue in list(node.items()): if use_config_parser(mytest, configelement, configvalue): continue # Configure test using configuration elements - if configelement == u'url': + if configelement == 'url': temp = configvalue if isinstance(configvalue, dict): # Template is used for URL - val = lowercase_keys(configvalue)[u'template'] - assert isinstance(val, basestring) or isinstance(val, int) - url = urlparse.urljoin(base_url, coerce_to_string(val)) + val = lowercase_keys(configvalue)['template'] + assert isinstance(val, str) or isinstance(val, int) + url = urllib.parse.urljoin(base_url, coerce_to_string(val)) mytest.set_url(url, isTemplate=True) else: - assert isinstance(configvalue, basestring) or isinstance( + assert isinstance(configvalue, str) or isinstance( configvalue, int) - mytest.url = urlparse.urljoin(base_url, coerce_to_string(configvalue)) - elif configelement == u'extract_binds': + mytest.url = urllib.parse.urljoin(base_url, coerce_to_string(configvalue)) + elif configelement == 'extract_binds': # Add a list of extractors, of format: # {variable_name: {extractor_type: extractor_config}, ... } binds = flatten_dictionaries(configvalue) if mytest.extract_binds is None: mytest.extract_binds = dict() - for variable_name, extractor in binds.items(): + for variable_name, extractor in list(binds.items()): if not isinstance(extractor, dict) or len(extractor) == 0: raise TypeError( "Extractors must be defined as maps of extractorType:{configs} with 1 entry") @@ -490,11 +490,11 @@ "Cannot define multiple extractors for given variable name") # Safe because length can only be 1 - for extractor_type, extractor_config in extractor.items(): + for extractor_type, extractor_config in list(extractor.items()): mytest.extract_binds[variable_name] = validators.parse_extractor(extractor_type, extractor_config) - elif configelement == u'validators': + elif configelement == 'validators': # Add a list of validators if not isinstance(configvalue, list): raise Exception( @@ -507,7 +507,7 @RefactoringTool: No changes to ./pyresttest/testapp/testapp/wsgi.py RefactoringTool: No changes to ./pyresttest/testapp/testapp/urls.py RefactoringTool: No changes to ./pyresttest/testapp/testapp/settings.py RefactoringTool: No changes to ./pyresttest/testapp/testapp/models.py RefactoringTool: No changes to ./pyresttest/testapp/testapp/api.py RefactoringTool: No changes to ./pyresttest/testapp/manage.py RefactoringTool: Refactored ./pyresttest/test_validators.py WARNING: couldn't encode ./pyresttest/test_validators.py's diff for your terminal RefactoringTool: Refactored ./pyresttest/test_tests.py @ if not isinstance(var, dict): raise TypeError( "Validators must be defined as validatorType:{configs} ") - for validator_type, validator_config in var.items(): + for validator_type, validator_config in list(var.items()): validator = validators.parse_validator( validator_type, validator_config) mytest.validators.append(validator) @@ -518,7 +518,7 @@ if isinstance(configvalue, dict): filterfunc = lambda x: str(x[0]).lower() == 'template' # Templated items - templates = [x for x in ifilter(filterfunc, configvalue.items())] + templates = [x for x in filter(filterfunc, list(configvalue.items()))] else: templates = None @@ -535,7 +535,7 @@ elif configelement == 'generator_binds': output = flatten_dictionaries(configvalue) output2 = dict() - for key, value in output.items(): + for key, value in list(output.items()): output2[str(key)] = str(value) mytest.generator_binds = output2 elif configelement.startswith('curl_option_'): @@ -552,7 +552,7 @@ # (but only if not expected statuses are not explicitly specified) # this is per HTTP spec: # http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5 - if 'expected_status' not in node.keys(): + if 'expected_status' not in list(node.keys()): if mytest.method == 'POST': mytest.expected_status = [200, 201, 204] elif mytest.method == 'PUT': --- ./pyresttest/test_validators.py (original) +++ ./pyresttest/test_validators.py (refactored) @@ -21,7 +21,7 @@ self.assertTrue(cont_func('abagooberab23', 'goob')) self.assertTrue(cont_by_func('goob', 'abagooberab23')) - myarray = ['math', 1, None, u'lest'] + myarray = ['math', 1, None, 'lest'] self.assertTrue(cont_func(myarray, 1)) self.assertTrue(cont_func(myarray, None)) self.assertTrue(cont_by_func(None, myarray)) @@ -55,12 +55,12 @@ } # Check for basic types that they pass expected values - for mytype, myinstance in instances.items(): + for mytype, myinstance in list(instances.items()): try: self.assertTrue(type_test(myinstance, mytype)) except AssertionError: - print('Type test operator failed where should pass for type {0} and value {1}'.format( - mytype, myinstance)) + print(('Type test operator failed where should pass for type {0} and value {1}'.format( + mytype, myinstance))) hasFailed = True if hasFailed: @@ -86,12 +86,12 @@ } # Check for complex types that they don't pass expected values - for mytype, myinstance in failing_instances.items(): + for mytype, myinstance in list(failing_instances.items()): try: self.assertFalse(type_test(myinstance, mytype)) except AssertionError: - print('Type test operator passed where should fail for type {0} and value {1}'.format( - mytype, myinstance)) + print(('Type test operator passed where should fail for type {0} and value {1}'.format( + mytype, myinstance))) hasFailed = True if hasFailed: self.fail("Type test operator failed testing, see reasons above!") @@ -177,12 +177,12 @@ self.assertEqual('val', val) def test_jsonpathmini_unicode(self): --- ./pyresttest/test_tests.py (original) +++ ./pyresttest/test_tests.py (refactored) @@ -27,25 +27,25 @@ # Parsing methods def test_coerce_to_string(self): - self.assertEqual(u'1', coerce_to_stringWARNING: couldn't encode ./pyresttest/test_tests.py's diff for your terminal RefactoringTool: Refactored ./pyresttest/test_resttest.py RefactoringTool: Refactored ./pyresttest/test_parsing.py WARNING: couldn't encode ./pyresttest/test_parsing.py's diff for your terminal RefactoringTool: Refactored ./pyresttest/test_generators.py (1)) - self.assertEqual(u'stuff', coerce_to_string(u'stuff')) - self.assertEqual(u'stuff', coerce_to_string('stuff')) --- ./pyresttest/test_resttest.py (original) +++ ./pyresttest/test_resttest.py (refactored) @@ -29,7 +29,7 @@ analyzed = analyze_benchmark_results( benchmark_result, benchmark_config) - self.assertEqual(2, len(analyzed.results.keys())) + self.assertEqual(2, len(list(analyzed.results.keys()))) # Check that number of measurements is sane distinct_metrics = set([x[0] for x in analyzed.aggregates]) @@ -50,11 +50,11 @@ headers = packed[0] # Check header generation - for x in xrange(0, len(keys)): + for x in range(0, len(keys)): self.assertEqual(keys[x], headers[x]) # Check data was correctly converted to 2D format, in order of input - for x in xrange(1, len(array1) + 1): + for x in range(1, len(array1) + 1): my_tuple = packed[x] self.assertEqual(array1[x - 1], my_tuple[0]) self.assertEqual(array2[x - 1], my_tuple[1]) @@ -62,7 +62,7 @@ def test_parse_headers(self): """ Basic header parsing tests """ - headerstring = u'HTTP/1.1 200 OK\r\nDate: Mon, 29 Dec 2014 02:42:33 GMT\r\nExpires: -1\r\nCache-Control: private, max-age=0\r\nContent-Type: text/html; charset=ISO-8859-1\r\nX-XSS-Protection: 1; mode=block\r\nX-Frame-Options: SAMEORIGIN\r\nAlternate-Protocol: 80:quic,p=0.02\r\nTransfer-Encoding: chunked\r\n\r\n' + headerstring = 'HTTP/1.1 200 OK\r\nDate: Mon, 29 Dec 2014 02:42:33 GMT\r\nExpires: -1\r\nCache-Control: private, max-age=0\r\nContent-Type: text/html; charset=ISO-8859-1\r\nX-XSS-Protection: 1; mode=block\r\nX-Frame-Options: SAMEORIGIN\r\nAlternate-Protocol: 80:quic,p=0.02\r\nTransfer-Encoding: chunked\r\n\r\n' header_list = resttest.parse_headers(headerstring) header_dict = dict(header_list) @@ -85,7 +85,7 @@ def test_parse_headers_multiples(self): """ Test headers where there are duplicate values set """ - headerstring = u'HTTP/1.1 200 OK\r\nDate: Mon, 29 Dec 2014 02:42:33 GMT\r\nAccept: text/html\r\nAccept: application/json\r\n\r\n' + headerstring = 'HTTP/1.1 200 OK\r\nDate: Mon, 29 Dec 2014 02:42:33 GMT\r\nAccept: text/html\r\nAccept: application/json\r\n\r\n' headers = resttest.parse_headers(headerstring) self.assertTrue(isinstance(headers, list)) --- ./pyresttest/test_parsing.py (original) +++ ./pyresttest/test_parsing.py (refactored) @@ -12,7 +12,7 @@ def test_encode_unicode_bytes(self): val = 8 --- ./pyresttest/test_generators.py (original) +++ ./pyresttest/test_generators.py (refactored) @@ -18,7 +18,7 @@ """ Basic test for a generator, checks values and applies test function """ self.assertTrue(isinstance(generator, types.GeneratorType)) - for x in xrange(0, 100): + for x in range(0, 100): val = next(generator) self.assertTrue(val is not None) if value_test_function: @@ -30,7 +30,7 @@ val = next(generator_input) # Check for not repeating easily - for x in xrange(0, 5): + for x in range(0, 5): val2 = next(generator_input) self.assertTrue(val) self.assertTrue(val != val2) @@ -66,7 +66,7 @@ def test_random_ids(self): """ Test random in ids generator """ gen = generators.generator_random_int32() - print(next(gen)) + print((next(gen))) self.generator_repeat_test(gen) def test_system_variables(self): @@ -95,10 +95,10 @@ # Test multiple charsets and string lengths for charset in charsets: # Test different lengths for charset - for my_length in xrange(1, 17): + for my_length in range(1, 17): gen = generators.factory_generate_text( legal_characters=charset, min_length=my_length, max_length=my_length)() - for x RefactoringTool: Refactored ./pyresttest/test_contenthandling.py WARNING: couldn't encode ./pyresttest/test_contenthandling.py's diff for your terminal RefactoringTool: No changes to ./pyresttest/test_binding.py RefactoringTool: Refactored ./pyresttest/test_benchmarks.py RefactoringTool: Refactored ./pyresttest/six.py in xrange(0, 10): + for x in range(0, 10): val = next(gen) self.assertEqual(my_length, len(val)) @@ -157,7 +157,7 @@ def test_character_sets(self): """ Verify all charsets are valid """ sets = generators.CHARACTER_SETS - for key, value in sets.items(): + for key, value in list(sets.items()): self.assertTrue(value) def test_parse_text_generator(self): @@ -179,11 +179,11 @@ config['character_set'] = charset gen = generators.parse_generator(config) myset = set(generators.CHARACTER_SETS[charset]) - for x in xrange(0, 50): + for x in range(0, 50): val = next(gen) self.assertTrue(set(val).issubset(set(myset))) except Exception as e: - print('Exception occurred with charset: ' + charset) + print(('Exception occurred with charset: ' + charset)) raise e my_min = 1 --- ./pyresttest/test_contenthandling.py (original) +++ ./pyresttest/test_contenthandling.py (refactored) @@ -36,23 +36,23 @@ # ASCII body, unicode data body = '$variable value' --- ./pyresttest/test_benchmarks.py (original) +++ ./pyresttest/test_benchmarks.py (refactored) @@ -77,7 +77,7 @@ def test_aggregate_computations(self): """ Test running all the aggregates, just to see if they error """ array = [-1, 5, 2.245, 7] - for function in AGGREGATES.values(): + for function in list(AGGREGATES.values()): value = function(array) self.assertTrue(isinstance(value, int) or isinstance(value, float)) @@ -102,7 +102,7 @@ # Check that we don't add raw metrics if we do not have to benchmark_config.add_metric('connect_time', 'mean') self.assertEqual(1, len(benchmark_config.raw_metrics)) - self.assertEqual(2, len(benchmark_config.aggregated_metrics.keys())) + self.assertEqual(2, len(list(benchmark_config.aggregated_metrics.keys()))) self.assertEqual( 1, len(benchmark_config.aggregated_metrics['connect_time'])) @@ -110,7 +110,7 @@ benchmark_config.add_metric('redirect_time') self.assertEqual(3, len(benchmark_config.metrics)) self.assertEqual(2, len(benchmark_config.raw_metrics)) - self.assertEqual(2, len(benchmark_config.aggregated_metrics.keys())) + self.assertEqual(2, len(list(benchmark_config.aggregated_metrics.keys()))) if __name__ == '__main__': --- ./pyresttest/six.py (original) +++ ./pyresttest/six.py (refactored) @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from __future__ import absolute_import + import functools import itertools @@ -46,10 +46,10 @@ MAXSIZE = sys.maxsize else: - string_types = basestring, - integer_types = (int, long) - class_types = (type, types.ClassType) - text_type = unicode + string_types = str, + integer_types = (int, int) + class_types = (type, type) + text_type = str binary_type = str if sys.platform.startswith("java"): @@ -521,7 +521,7 @@ advance_iterator = next except NameError: def advance_iterator(it): - return it.next() + return it.__next__() next = advance_iterator @@ -544,7 +544,7 @@ Iterator = object else: def get_unbound_function(unbound): - return unbound.im_func + return unbound.__func__ def create_bound_method(func, obj): return types.MethodType(func, obj, obj.__class__) @@ -554,7 +554,7 @@ class Iterator(object): - def next(self): + def __next__(self): return type(self).__next__(self) callable = callable @@ -621,7 +621,7 @@ def u(s): return s - unichr = chr + chr = chr import struct int2byte = struct.Struct(">B").pack del struct @@ -644,8 +644,8 @@ # Workaround for standalRefactoringTool: Refactored ./pyresttest/resttest.py one backslash def u(s): - return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") - unichr = unichr + return str(s.replace(r'\\', r'\\\\'), "unicode_escape") + chr = chr int2byte = chr def byte2int(bs): @@ -654,8 +654,8 @@ def indexbytes(buf, i): return ord(buf[i]) iterbytes = functools.partial(itertools.imap, ord) - import StringIO - StringIO = BytesIO = StringIO.StringIO + import io + StringIO = BytesIO = io.StringIO _assertCountEqual = "assertItemsEqual" _assertRaisesRegex = "assertRaisesRegexp" _assertRegex = "assertRegexpMatches" @@ -727,11 +727,11 @@ return def write(data): - if not isinstance(data, basestring): + if not isinstance(data, str): data = str(data) # If the file has an encoding, encode unicode with it. if (isinstance(fp, file) and - isinstance(data, unicode) and + isinstance(data, str) and fp.encoding is not None): errors = getattr(fp, "errors", None) if errors is None: @@ -741,13 +741,13 @@ want_unicode = False sep = kwargs.pop("sep", None) if sep is not None: - if isinstance(sep, unicode): + if isinstance(sep, str): want_unicode = True elif not isinstance(sep, str): raise TypeError("sep must be None or a string") end = kwargs.pop("end", None) if end is not None: - if isinstance(end, unicode): + if isinstance(end, str): want_unicode = True elif not isinstance(end, str): raise TypeError("end must be None or a string") @@ -755,12 +755,12 @@ raise TypeError("invalid keyword arguments to print()") if not want_unicode: for arg in args: - if isinstance(arg, unicode): + if isinstance(arg, str): want_unicode = True break if want_unicode: - newline = unicode("\n") - space = unicode(" ") + newline = str("\n") + space = str(" ") else: newline = "\n" space = " " --- ./pyresttest/resttest.py (original) +++ ./pyresttest/resttest.py (refactored) @@ -13,17 +13,17 @@ import time try: - from cStringIO import StringIO as MyIO + from io import StringIO as MyIO except: try: - from StringIO import StringIO as MyIO + from io import StringIO as MyIO except ImportError: from io import BytesIO as MyIO ESCAPE_DECODING = 'string-escape' # Python 3 compatibility if sys.version_info[0] > 2: - from past.builtins import basestring + from past.builtins import str from builtins import range as xrange ESCAPE_DECODING = 'unicode_escape' @@ -135,7 +135,7 @@ class BenchmarkResult: """ Stores results from a benchmark for reporting use """ group = None - name = u'unnamed' + name = 'unnamed' results = dict() # Benchmark output, map the metric to the result array for that metric aggregates = list() # List of aggregates, as tuples of (metricname, aggregate, result) @@ -193,11 +193,11 @@ if sys.version_info < (2,7): header_msg = message_from_string(headers.encode(HEADER_ENCODING)) return [(text_type(k.lower(), HEADER_ENCODING), text_type(v, HEADER_ENCODING)) - for k, v in header_msg.items()] + for k, v in list(header_msg.items())] else: header_msg = message_from_string(headers) # Note: HTTP headers are *case-insensitive* per RFC 2616 - return [(k.lower(), v) for k, v in header_msg.items()] + return [(k.lower(), v) for k, v in list(header_msg.items())] def parse_testsets(base_url, test_structure, test_files=set(), working_directory=None, vars=None): @@ -230,7 +230,7 @@ if isinstance(node, dict): # Each config element is a miniature key-value dictionary node = lowercase_keys(node) for key in node: - if key == u'import': + if key == 'import': importfile = node[key] # import another file if importfile not in test_files: logger.debug("Importing test sets: " + importfile) @@ -240,21 +240,21 @@ import_testsets = parse_testsets( base_url, import_test_structure, test_files, vars=vars) testsets.extend(import_testsets) - elif key == u'url': # Simple test, just a GET to a URL + elif key == 'url': # Simple test, just a GET to a URL mytest = Test() val = node[key] - assert isinstance(val, basestring) + assert isinstance(val, str) mytest.url = base_url + val tests_out.append(mytest) - elif key == u'test': # Complex test with additional parameters + elif key == 'test': # Complex test with additional parameters with cd(working_directory): child = node[key] mytest = Test.parse_test(base_url, child) tests_out.append(mytest) - elif key == u'benchmark': + elif key == 'benchmark': benchmark = parse_benchmark(base_url, node[key]) benchmarks.append(benchmark) - elif key == u'config' or key == u'configuration': + elif key == 'config' or key == 'configuration': test_config = parse_configuration( node[key], base_config=test_config) testset = TestSet() @@ -273,21 +273,21 @@ node = lowercase_keys(flatten_dictionaries(node)) # Make it usable - for key, value in node.items(): - if key == u'timeout': + for key, value in list(node.items()): + if key == 'timeout': test_config.timeout = int(value) - elif key == u'print_bodies': + elif key == 'print_bodies': test_config.print_bodies = safe_to_bool(value) - elif key == u'retries': + elif key == 'retries': test_config.retries = int(value) - elif key == u'variable_binds': + elif key == 'variable_binds': if not test_config.variable_binds: test_config.variable_binds = dict() test_config.variable_binds.update(flatten_dictionaries(value)) - elif key == u'generators': + elif key == 'generators': flat = flatten_dictionaries(value) gen_map = dict() - for generator_name, generator_config in flat.items(): + for generator_name, generator_config in list(flat.items()): gen = parse_generator(generator_config) gen_map[str(generator_name)] = gen test_config.generators = gen_map @@ -333,18 +333,18 @@ if test_config.interactive: print("===================================") - print("%s" % mytest.name) + print(("%s" % mytest.name)) print("-----------------------------------") print("REQUEST:") - print("%s %s" % (templated_test.method, templated_test.url)) + print(("%s %s" % (templated_test.method, templated_test.url))) print("HEADERS:") - print("%s" % (templated_test.headers)) + print(("%s" % (templated_test.headers))) if mytest.body is not None: - print("\n%s" % templated_test.body) - raw_input("Press ENTER when ready (%d): " % (mytest.delay)) + print(("\n%s" % templated_test.body)) + input("Press ENTER when ready (%d): " % (mytest.delay)) if mytest.delay > 0: - print("Delaying for %ds" % mytest.delay) + print(("Delaying for %ds" % mytest.delay)) time.sleep(mytest.delay) try: @@ -425,12 +425,12 @@ if test_config.print_bodies or not result.passed: if test_config.interactive: print("RESPONSE:") - print(result.body.decode(ESCAPE_DECODING)) + print((result.body.decode(ESCAPE_DECODING))) if test_config.print_headers or not result.passed: if test_config.interactive: print("RESPONSE HEADERS:") - print(result.response_headers) + print((result.response_headers)) # TODO add string escape on body output logger.debug(result) @@ -474,12 +474,12 @@ # Metric variable for curl, to avoid hash lookup for every metric name metricvalues = [METRICS[name] for name in metricnames] # Initialize arrays to store results for each metric - results = [list() for x in xrange(0, len(metricnames))] + results = [list() for x in range(0, len(metricnames))] curl = pycurl.Curl() # Benchmark warm-up to allow for caching, JIT compiling, on client logger.info('Warmup: ' + message + ' started') - for x in xrange(0, warmup_runs): + for x in range(0, warmup_runs): benchmark.update_context_before(my_context) templated = benchmark.realize(my_context) curl = templated.configure_curl( @@ -492,7 +492,7 @@ logger.info('Benchmark: ' + message + ' starting') - for x in xrange(0, benchmark_runs): # Run the actual benchmarks + for x in range(0, benchmark_runs): # Run the actual benchmarks # Setup benchmark benchmark.update_context_before(my_context) templated = benchmark.realize(my_context) @@ -510,13 +510,13 @@ continue # Skip metrics collection # Get all metrics values for this run, and store to metric lists - for i in xrange(0, len(metricnames)): + for i in range(0, len(metricnames)): results[i].append(curl.getinfo(metricvalues[i])) logger.info('Benchmark: ' + message + ' ending') temp_results = dict() - for i in xrange(0, len(metricnames)): + for i in range(0, len(metricnames)): temp_results[metricnames[i]] = results[i] output.results = temp_results return analyze_benchmark_results(output, benchmark) @@ -542,7 +542,7 @@ # Compute aggregates for each metric, and add tuples to aggregate results aggregate_results = list() - for metricname, aggregate_list in benchmark.aggregated_metrics.items(): + for metricname, aggregate_list in list(benchmark.aggregated_metrics.items()): numbers = raw_results[metricname] for aggregate_name in aggregate_list: if numbers: # Only compute aggregates if numbers exist @@ -577,8 +577,8 @@ output.append(tuple(metrics)) # Add headers # Create list of tuples mimicking 2D array from input - for row in xrange(0, num_rows): - new_row = tuple([arrays[col][row] for col in xrange(0, len(arrays))]) + for row in range(0, num_rows): + new_row = tuple([arrays[col][row] for col in range(0, len(arrays))]) output.append(new_row) return output @@ -604,7 +604,7 @@ writer.writerows(benchmark_result.aggregates) # Method to call when writing benchmark file -OUTPUT_METHODS = {u'csv': write_benchmark_csv, u'json': write_benchmark_json} +OUTPUT_METHODS = {'csv': write_benchmark_csv, 'json': write_benchmark_json} def log_failure(failure, context=None, test_config=TestConfig()): @@ -633,7 +633,7 @@ if myconfig.variable_binds: context.bind_variables(myconfig.variable_binds) if myconfig.generators: - for key, value in myconfig.generators.items(): + for key, value in list(myconfig.generators.items()): context.add_generator(key, value) # Make sure we actually have tests to execute @@ -718,23 +718,23 @@ failures = group_failure_counts[group] total_failures = total_failures + failures - passfail = {True: u'SUCCEEDED: ', False: u'FAILED: '} + passfail = {True: 'SUCCEEDED: ', False: 'FAILED: '} output_string = "Test Group {0} {1}: {2}/{3} Tests Passed!".format(group, passfail[failures == 0], str(test_count - failures), str(test_count)) if myconfig.skip_term_colors: print(output_string) else: if failures > 0: - print('\033[91m' + output_string + '\033[0m') + print(('\033[91m' + output_string + '\033[0m')) else: - print('\033[92m' + output_string + '\033[0m') + print(('\033[92m' + output_string + '\033[0m')) return total_failures def register_extensions(modules): """ Import the modules and register their respective extensions """ - if isinstance(modules, basestring): # Catch supplying just a string arg + if isinstance(modules, str): # Catch supplying just a string arg modules = [modules] for ext in modules: # Get the package prefix and final module name @@ -755,10 +755,10 @@ } has_registry = False - for registry_name, register_function in extension_applies.items(): + for registry_name, register_function in list(extension_applies.items()): if hasattr(module, registry_name): registry = getattr(module, registry_name) - for key, val in registry.items(): + for key, val in list(registry.items()): register_function(key, val) if registry: has_registry = True @@ -859,29 +859,29 @@ """ Runs everything needed to execute from the command line, so main method is callable without arg parsing """ parser = OptionParser( usage="usage: %prog base_url test_filename.yaml [options] ") - parser.add_option(u"--print-bodies", help="Print all response bodies", + parser.add_option("--print-bodies", help="Print all response bodies", action="store", type="string", dest="print_bodies") - parser.add_option(u"--print-headers", help="Print all response headers", + parser.add_option("--print-headers", help="Print all response headers", action="store", type="string", dest="print_headers") - parser.add_option(u"--log", help="Logging level", + parser.add_option("--log", help="Logging level", action="store", type="string") - parser.add_option(u"--interactive", help="Interactive mode", + parser.add_option("--interactive", help="Interactive mode", action="store", type="string") parser.add_option( - u"--url", help="Base URL to run tests against", action="store", type="string") - parser.add_option(u"--test", help="Test file to use", + "--url", help="Base URL to run tests against", action="store", type="string") + parser.add_option("--test", help="Test file to use", action="store", type="string") - parser.add_option(u'--import_extensions', + parser.add_option('--import_extensions', help='Extensions to import, separated by semicolons', action="store", type="string") parser.add_option( - u'--vars', help='Variables to set, as a YAML dictionary', action="store", type="string") - parser.add_option(u'--verbose', help='Put cURL into verbose mode for extra debugging power', + '--vars', help='Variables to set, as a YAML dictionary', action="store", type="string") + parser.add_option('--verbose', help='Put cURL into verbose mode for extra debugging power', action='store_true', default=False, dest="verbose") - parser.add_option(u'--ssl-insecure', help='Disable cURL host and peer cert verification', + parser.add_option('--ssl-insecure', help='Disable cURL host and peer cert verification', action='store_true', default=False, dest="ssl_insecure") - parser.add_option(u'--absolute-urls', help='Enable absolute URLs in tests instead of relative paths', + parser.add_option('--absolute-urls', help='Enable absolute URLs in tests instead of relative paths', actiRefactoringTool: Refactored ./pyresttest/parsing.py RefactoringTool: Refactored ./pyresttest/generators.py on="store_true", dest="absolute_urls") - parser.add_option(u'--skip_term_colors', help='Turn off the output term colors', + parser.add_option('--skip_term_colors', help='Turn off the output term colors', action='store_true', default=False, dest="skip_term_colors") (args, unparsed_args) = parser.parse_args(args_in) @@ -890,8 +890,8 @@ # Handle url/test as named, or, failing that, positional arguments if not args['url'] or not args['test']: if len(unparsed_args) == 2: - args[u'url'] = unparsed_args[0] - args[u'test'] = unparsed_args[1] + args['url'] = unparsed_args[0] + args['test'] = unparsed_args[1] elif len(unparsed_args) == 1 and args['url']: args['test'] = unparsed_args[0] elif len(unparsed_args) == 1 and args['test']: --- ./pyresttest/parsing.py (original) +++ ./pyresttest/parsing.py (refactored) @@ -1,4 +1,4 @@ -from __future__ import absolute_import + import sys import string @@ -11,7 +11,7 @@ # Python 2/3 switches PYTHON_MAJOR_VERSION = sys.version_info[0] if PYTHON_MAJOR_VERSION > 2: - from past.builtins import basestring + from past.builtins import str """ Parsing utilities, pulled out so they can be used in multiple modules @@ -21,14 +21,14 @@ """ Shim function, converts Unicode to UTF-8 encoded bytes regardless of the source format Intended for python 3 compatibility mode, and b/c PyCurl only takes raw bytes """ - if not isinstance(my_string, basestring): + if not isinstance(my_string, str): my_string = repr(my_string) # TODO refactor this to use six types if PYTHON_MAJOR_VERSION == 2: if isinstance(my_string, str): return my_string - elif isinstance(my_string, unicode): + elif isinstance(my_string, str): return my_string.encode('utf-8') else: if isinstance(my_string, str): @@ -47,7 +47,7 @@ return string.Template(templated_string).safe_substitute(variable_map) my_template = string.Template(encode_unicode_bytes(templated_string)) - my_escaped_dict = dict(map(lambda x: (x[0], encode_unicode_bytes(x[1])), variable_map.items())) + my_escaped_dict = dict([(x[0], encode_unicode_bytes(x[1])) for x in list(variable_map.items())]) templated = my_template.safe_substitute(my_escaped_dict) return text_type(templated, 'utf-8') @@ -81,7 +81,7 @@ if not isinstance(input_dict, dict): return input_dict safe = dict() - for key, value in input_dict.items(): + for key, value in list(input_dict.items()): safe[str(key).lower()] = value return safe @@ -92,9 +92,9 @@ If it's not a boolean or string that matches 'false' or 'true' when ignoring case, throws an exception """ if isinstance(input, bool): return input - elif isinstance(input, basestring) and input.lower() == u'false': + elif isinstance(input, str) and input.lower() == 'false': return False - elif isinstance(input, basestring) and input.lower() == u'true': + elif isinstance(input, str) and input.lower() == 'true': return True else: raise TypeError( @@ -128,7 +128,7 @@ def configure(self, configs, configurable, handler, *args, **kwargs): """ Use the configs and configurable to parse""" - for key, value in configs.items(): + for key, value in list(configs.items()): # Read handler arguments and use them to call the configurator handler[key] = config_options self.run_configure(value, configurable) --- ./pyresttest/generators.py (original) +++ ./pyresttest/generators.py (refactored) @@ -10,7 +10,7 @@ # Python 3 compatibility if sys.version_info[0] > 2: from builtins import range as xrange - from past.builtins import basestring + from past.builtins import str """ Collection of generators to be used in templating for test data @@ -83,7 +83,7 @@ while(True): length = random.randint(locRefactoringTool: Refactored ./pyresttest/functionaltest.py al_min_len, local_max_len) array = [random.choice(legal_characters) - for x in xrange(0, length)] + for x in range(0, length)] yield ''.join(array) return generate_text @@ -159,7 +159,7 @@ def parse_random_text_generator(configuration): """ Parses configuration options for a random text generator """ - character_set = configuration.get(u'character_set') + character_set = configuration.get('character_set') characters = None if character_set: character_set = character_set.lower() @@ -168,18 +168,18 @@ "Illegal character set name, is not defined: {0}".format(character_set)) characters = CHARACTER_SETS[character_set] else: # Custom characters listing, not a character set - characters = str(configuration.get(u'characters')) + characters = str(configuration.get('characters')) min_length = 8 max_length = 8 - if configuration.get(u'min_length'): - min_length = int(configuration.get(u'min_length')) - if configuration.get(u'max_length'): - max_length = int(configuration.get(u'max_length')) - - if configuration.get(u'length'): - length = int(configuration.get(u'length')) + if configuration.get('min_length'): + min_length = int(configuration.get('min_length')) + if configuration.get('max_length'): + max_length = int(configuration.get('max_length')) + + if configuration.get('length'): + length = int(configuration.get('length')) min_length = length max_length = length @@ -206,7 +206,7 @@ typename is the new generator type name (must not already exist) parse_function will parse a configuration object (dict) """ - if not isinstance(typename, basestring): + if not isinstance(typename, str): raise TypeError( 'Generator type name {0} is invalid, must be a string'.format(typename)) if typename in GENERATOR_TYPES: @@ -225,18 +225,18 @@ """ configuration = lowercase_keys(flatten_dictionaries(configuration)) - gen_type = str(configuration.get(u'type')).lower() + gen_type = str(configuration.get('type')).lower() if gen_type not in GENERATOR_TYPES: raise ValueError( 'Generator type given {0} is not valid '.format(gen_type)) # Do the easy parsing, delegate more complex logic to parsing functions - if gen_type == u'env_variable': - return factory_env_variable(configuration[u'variable_name'])() - elif gen_type == u'env_string': - return factory_env_string(configuration[u'string'])() - elif gen_type == u'number_sequence': + if gen_type == 'env_variable': + return factory_env_variable(configuration['variable_name'])() + elif gen_type == 'env_string': + return factory_env_string(configuration['string'])() + elif gen_type == 'number_sequence': start = configuration.get('start') increment = configuration.get('increment') if not start: @@ -248,9 +248,9 @@ else: increment = int(increment) return factory_generate_ids(start, increment)() - elif gen_type == u'random_int': + elif gen_type == 'random_int': return generator_random_int32() - elif gen_type == u'random_text': + elif gen_type == 'random_text': return parse_random_text_generator(configuration) elif gen_type in GENERATOR_TYPES: return GENERATOR_PARSING[gen_type](configuration) --- ./pyresttest/functionaltest.py (original) +++ ./pyresttest/functionaltest.py (refactored) @@ -65,7 +65,7 @@ test_response = resttest.run_test(test) self.assertTrue(test_response.passed) self.assertEqual(200, test_response.response_code) - print("Github API response headers: \n{0}".format(test_response.response_headers)) + print(("Github API response headers: \n{0}".format(test_response.response_headers))) self.assertTrue(test_response.response_headers) def test_patch(self): @@ -74,8 +74,8 @@ test.url = self.prefix + '/api/person/2/' test.method = 'PATCH' test.body = '{"login":"special"}' - test.headers = {u'Content-Type': u'application/json', - u'X-HTTP-Method-Override': u'PATCH'} + test.headers = {'Content-Type': 'application/json', + 'X-HTTP-Method-Override': 'PATCH'} test.expected_status = [202] # Django returns 202 test_response = resttest.run_test(test) self.assertTrue(test_response.passed) @@ -118,10 +118,10 @@ test_response = resttest.run_test(test) for failure in test_response.failures: print("REAL FAILURE") - print("Test Failure, failure type: {0}, Reason: {1}".format( - failure.failure_type, failure.message)) + print(("Test Failure, failure type: {0}, Reason: {1}".format( + failure.failure_type, failure.message))) if failure.details: - print("Validator/Error details: " + str(failure.details)) + print(("Validator/Error details: " + str(failure.details))) self.assertFalse(test_response.failures) self.assertTrue(test_response.passed) @@ -201,9 +201,9 @@ """ Test PUT where item already exists """ test = Test() test.url = self.prefix + '/api/person/1/' - test.method = u'PUT' + test.method = 'PUT' test.body = '{"first_name": "Gaius","id": 1,"last_name": "Baltar","login": "gbaltar"}' - test.headers = {u'Content-Type': u'application/json'} + test.headers = {'Content-Type': 'application/json'} test_response = resttest.run_test(test) self.assertEqual(True, test_response.passed) self.assertEqual(200, test_response.response_code) @@ -212,10 +212,10 @@ """ Test PUT where item DOES NOT already exist """ test = Test() test.url = self.prefix + '/api/person/100/' - test.method = u'PUT' + test.method = 'PUT' test.expected_status = [200, 201, 204] test.body = '{"first_name": "Willim","last_name": "Adama","login":"theadmiral", "id": 100}' - test.headers = {u'Content-Type': u'application/json'} + test.headers = {'Content-Type': 'application/json'} test_response = resttest.run_test(test) self.assertEqual(True, test_response.passed) self.assertEqual(201, test_response.response_code) @@ -226,18 +226,18 @@ test_response2 = resttest.run_test(test2) self.assertTrue(test_response2.passed) self.assertTrue( - u'"last_name": "Adama"' in test_response2.body.decode('UTF-8')) + '"last_name": "Adama"' in test_response2.body.decode('UTF-8')) self.assertTrue( - u'"login": "theadmiral"' in test_response2.body.decode('UTF-8')) + '"login": "theadmiral"' in test_response2.body.decode('UTF-8')) def test_post(self): """ Test POST to create an item """ test = Test() test.url = self.prefix + '/api/person/' - test.method = u'POST' + test.method = 'POST' test.expected_status = [200, 201, 204] test.body = '{"first_name": "Willim","last_name": "Adama","login": "theadmiral"}' - test.headers = {u'Content-Type': u'application/json'} + test.headers = {'Content-Type': 'application/json'} test_response = resttest.run_test(test) self.assertEqual(True, test_response.passed) self.assertEqual(201, test_response.response_code) @@ -252,7 +252,7 @@ bod = test_response2.body if isinstance(bod, binary_type): bod = text_type(bod, 'utf-8') - print(json.dumps(json.loads(bod))) + print((json.dumps(json.loads(bod)))) def test_delete(self): @@ -260,13 +260,13 @@ test = Test() test.url = self.prefix + '/api/person/1/' test.expected_status = [200, 202, 204] - test.method = u'DELETE' + test.method = 'DELETE' test_response RefactoringTool: No changes to ./pyresttest/ext/validator_jsonschema.py RefactoringTool: No changes to ./pyresttest/ext/extractor_jmespath.py RefactoringTool: No changes to ./pyresttest/ext/__init__.py RefactoringTool: Refactored ./pyresttest/contenthandling.py = resttest.run_test(test) self.assertEqual(True, test_response.passed) self.assertEqual(204, test_response.response_code) # Verify it's really gone - test.method = u'GET' + test.method = 'GET' test.expected_status = [404] test_response = resttest.run_test(test) self.assertEqual(True, test_response.passed) @@ -277,7 +277,7 @@ test2.url = self.prefix + '/api/person/?first_name__contains=Gaius' test_response2 = resttest.run_test(test2) self.assertTrue(test_response2.passed) - self.assertTrue(u'"objects": []' in test_response2.body.decode('UTF-8')) + self.assertTrue('"objects": []' in test_response2.body.decode('UTF-8')) def test_full_context_use(self): """ Read and execute test set with context use, from file """ @@ -312,8 +312,8 @@ benchmark_config.add_metric( 'total_time').add_metric('total_time', 'median') benchmark_result = resttest.run_benchmark(benchmark_config) - print("Benchmark - median request time: " + - str(benchmark_result.aggregates[0])) + print(("Benchmark - median request time: " + + str(benchmark_result.aggregates[0]))) self.assertTrue(benchmark_config.benchmark_runs, len( benchmark_result.results['total_time'])) @@ -388,10 +388,10 @@ test_response = resttest.run_test(test) for failure in test_response.failures: print("REAL FAILURE") - print("Test Failure, failure type: {0}, Reason: {1}".format( - failure.failure_type, failure.message)) + print(("Test Failure, failure type: {0}, Reason: {1}".format( + failure.failure_type, failure.message))) if failure.details: - print("Validator/Error details: " + str(failure.details)) + print(("Validator/Error details: " + str(failure.details))) self.assertFalse(test_response.failures) self.assertTrue(test_response.passed) --- ./pyresttest/contenthandling.py (original) +++ ./pyresttest/contenthandling.py (refactored) @@ -7,7 +7,7 @@ # Python 2/3 switches PYTHON_MAJOR_VERSION = sys.version_info[0] if PYTHON_MAJOR_VERSION > 2: - from past.builtins import basestring + from past.builtins import str """ @@ -72,7 +72,7 @@ def setup(self, input, is_file=False, is_template_path=False, is_template_content=False): """ Self explanatory, input is inline content or file path. """ - if not isinstance(input, basestring): + if not isinstance(input, str): raise TypeError("Input is not a string") if is_file: input = os.path.abspath(input) @@ -103,7 +103,7 @@ while (node and not is_done): # Dive through the configuration tree # Finally we've found the value! - if isinstance(node, basestring): + if isinstance(node, str): output.content = node output.setup(node, is_file=is_file, is_template_path=is_template_path, is_template_content=is_template_content) @@ -116,9 +116,9 @@ # Dictionary or list of dictionaries flat = lowercase_keys(flatten_dictionaries(node)) - for key, value in flat.items(): - if key == u'template': - if isinstance(value, basestring): + for key, value in list(flat.items()): + if key == 'template': + if isinstance(value, str): if is_file: value = os.path.abspath(value) output.content = value @@ -134,7 +134,7 @@ break elif key == 'file': - if isinstance(value, basestring): + if isinstance(value, str): output.content = os.path.abspath(value) output.is_file = True output.is_template_cRefactoringTool: Refactored ./pyresttest/binding.py RefactoringTool: Refactored ./pyresttest/benchmarks.py ontent = is_template_content --- ./pyresttest/binding.py (original) +++ ./pyresttest/binding.py (refactored) @@ -26,7 +26,7 @@ #logging.debug('Context: altered variable named {0} to value {1}'.format(str_name, variable_value)) def bind_variables(self, variable_map): - for key, value in variable_map.items(): + for key, value in list(variable_map.items()): self.bind_variable(key, value) def add_generator(self, generator_name, generator): --- ./pyresttest/benchmarks.py (original) +++ ./pyresttest/benchmarks.py (refactored) @@ -10,7 +10,7 @@ # Python 2/3 switches if sys.version_info[0] > 2: - from past.builtins import basestring + from past.builtins import str # Python 3 compatibility shims from . import six @@ -88,7 +88,7 @@ 'total': lambda x: sum(x) } -OUTPUT_FORMATS = [u'csv', u'json'] +OUTPUT_FORMATS = ['csv', 'json'] def median(array): @@ -108,7 +108,7 @@ return 0 average = AGGREGATES['mean_arithmetic'](array) - variance = map(lambda x: (x - average)**2, array) + variance = [(x - average)**2 for x in array] try: len(variance) except TypeError: # Python 3.3 workaround until can use the statistics module from 3.4 @@ -129,7 +129,7 @@ """ warmup_runs = 10 # Times call is executed to warm up benchmark_runs = 100 # Times call is executed to generate benchmark results - output_format = u'csv' + output_format = 'csv' output_file = None # Metrics to gather, both raw and aggregated @@ -217,23 +217,23 @@ benchmark = Test.parse_test(base_url, node, benchmark) # Complex parsing because of list/dictionary/singleton legal cases - for key, value in node.items(): - if key == u'warmup_runs': + for key, value in list(node.items()): + if key == 'warmup_runs': benchmark.warmup_runs = int(value) - elif key == u'benchmark_runs': + elif key == 'benchmark_runs': benchmark.benchmark_runs = int(value) - elif key == u'output_format': + elif key == 'output_format': format = value.lower() if format in OUTPUT_FORMATS: benchmark.output_format = format else: raise ValueError('Invalid benchmark output format: ' + format) - elif key == u'output_file': - if not isinstance(value, basestring): + elif key == 'output_file': + if not isinstance(value, str): raise ValueError("Invalid output file format") benchmark.output_file = value - elif key == u'metrics': - if isinstance(value, basestring): + elif key == 'metrics': + if isinstance(value, str): # Single value benchmark.add_metric(tests.coerce_to_string(value)) # FIXME refactor the parsing of metrics here, lots of duplicated logic @@ -241,26 +241,26 @@ # List of single values or list of {metric:aggregate, ...} for metric in value: if isinstance(metric, dict): - for metricname, aggregate in metric.items(): - if not isinstance(metricname, basestring): + for metricname, aggregate in list(metric.items()): + if not isinstance(metricname, str): raise TypeError( "Invalid metric input: non-string metric name") - if not isinstance(aggregate, basestring): + if not isinstance(aggregate, str): raise TypeError( "Invalid aggregate input: non-string aggregate name") # TODO unicode-safe this benchmark.add_metric(tests.coerce_to_string(metricname), tests.coerce_to_string(aggregate)) - elif isinstance(metric, basestriRefactoringTool: Refactored ./pyresttest/benchmark_framework_mini.py RefactoringTool: Refactored ./profile_benchmark.py RefactoringTool: No changes to ./docker/ubuntu14-py27/verify_image.py RefactoringTool: No changes to ./docker/python3/verify_image.py RefactoringTool: No changes to ./docker/centos6-py26/verify_image.py RefactoringTool: Files that were modified: RefactoringTool: ./util/profile_basic_test.py RefactoringTool: ./setup.py RefactoringTool: ./sample_extension.py RefactoringTool: ./pyresttest/validators.py RefactoringTool: ./pyresttest/tests.py RefactoringTool: ./pyresttest/testapp/testapp/wsgi.py RefactoringTool: ./pyresttest/testapp/testapp/urls.py RefactoringTool: ./pyresttest/testapp/testapp/settings.py RefactoringTool: ./pyresttest/testapp/testapp/models.py RefactoringTool: ./pyresttest/testapp/testapp/api.py RefactoringTool: ./pyresttest/testapp/manage.py RefactoringTool: ./pyresttest/test_validators.py RefactoringTool: ./pyresttest/test_tests.py RefactoringTool: ./pyresttest/test_resttest.py RefactoringTool: ./pyresttest/test_parsing.py RefactoringTool: ./pyresttest/test_generators.py RefactoringTool: ./pyresttest/test_contenthandling.py RefactoringTool: ./pyresttest/test_binding.py RefactoringTool: ./pyresttest/test_benchmarks.py RefactoringTool: ./pyresttest/six.py RefactoringTool: ./pyresttest/resttest.py RefactoringTool: ./pyresttest/parsing.py RefactoringTool: ./pyresttest/generators.py RefactoringTool: ./pyresttest/functionaltest.py RefactoringTool: ./pyresttest/ext/validator_jsonschema.py RefactoringTool: ./pyresttest/ext/extractor_jmespath.py RefactoringTool: ./pyresttest/ext/__init__.py RefactoringTool: ./pyresttest/contenthandling.py RefactoringTool: ./pyresttest/binding.py RefactoringTool: ./pyresttest/benchmarks.py RefactoringTool: ./pyresttest/benchmark_framework_mini.py RefactoringTool: ./profile_benchmark.py RefactoringTool: ./docker/ubuntu14-py27/verify_image.py RefactoringTool: ./docker/python3/verify_image.py RefactoringTool: ./docker/centos6-py26/verify_image.py RefactoringTool: Warnings/messages while refactoring: RefactoringTool: ### In file ./pyresttest/six.py ### RefactoringTool: Line 525: Calls to builtin next() possibly shadowed by global binding ng): + elif isinstance(metric, str): benchmark.add_metric(tests.coerce_to_string(metric)) elif isinstance(value, dict): # Dictionary of metric-aggregate pairs - for metricname, aggregate in value.items(): - if not isinstance(metricname, basestring): + for metricname, aggregate in list(value.items()): + if not isinstance(metricname, str): raise TypeError( "Invalid metric input: non-string metric name") - if not isinstance(aggregate, basestring): + if not isinstance(aggregate, str): raise TypeError( "Invalid aggregate input: non-string aggregate name") benchmark.add_metric(tests.coerce_to_string(metricname), --- ./pyresttest/benchmark_framework_mini.py (original) +++ ./pyresttest/benchmark_framework_mini.py (refactored) @@ -5,21 +5,21 @@ # Test basic pycurl create/delete, time is ~2.5 microseconds time = timeit.timeit("mycurl=Curl(); mycurl.close()", setup="from pycurl import Curl", number=1000000) -print('Curl create/destroy runtime for 1M runs (s)' + str(time)) +print(('Curl create/destroy runtime for 1M runs (s)' + str(time))) # Test test interpret/build & configuration speeds for resttest # Runtime is 36.29 sec, so 36 microseconds per run, or 0.036 ms time = timeit.timeit("mytest=Test.parse_test('', input); mycurl=mytest.configure_curl(); mycurl.close()", setup='from resttest import Test; input = {"url": "/ping", "method": "DELETE", "NAME":"foo", "group":"bar", "body":"input","headers":{"Accept":"Application/json"}}', number=1000000) -print('Test interpret/configure test config for 1M runs (s)' + str(time)) +print(('Test interpret/configure test config for 1M runs (s)' + str(time))) # Just configuring the curl object from a pre-built test # 10s/1M runs, or 0.01 ms per time = timeit.timeit("mycurl=mytest.configure_curl(); mycurl.close()", setup='from resttest import Test; input = {"url": "/ping", "method": "DELETE", "NAME":"foo", "group":"bar", "body":"input","headers":{"Accept":"Application/json"}}; mytest=Test.parse_test("", input);', number=1000000) -print('Test configure curl for 1M runs (s)' + str(time)) +print(('Test configure curl for 1M runs (s)' + str(time))) # Time for full curl execution on Django testing rest app # Time: 41.4s for 10k runs, or about 4.14 ms per --- ./profile_benchmark.py (original) +++ ./profile_benchmark.py (refactored) @@ -18,7 +18,7 @@ # Basic get test test.url = 'http://localhost:8000/api/person/' test.name = 'Basic GET' -print 'Basic GET test' +print('Basic GET test') #cProfile.run('resttest.run_benchmark(test)', sort='cumtime') @@ -33,5 +33,5 @@ context = Context() context.add_generator('gen', factory_generate_ids(starting_id=10)()) test.generator_binds = {'id': 'gen'} -print 'Running templated PUT test' +print('Running templated PUT test') cProfile.run('resttest.run_benchmark(test, context=context)', sort='cumtime') ++ find ./ -name '*.py' + sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python3|' ./util/resttest.py ./util/profile_basic_test.py ./test_schema_validation.py ./setup.py ./sample_extension.py ./pyresttest/validators.py ./pyresttest/tests.py ./pyresttest/testapp/testapp/wsgi.py ./pyresttest/testapp/testapp/urls.py ./pyresttest/testapp/testapp/settings.py ./pyresttest/testapp/testapp/models.py ./pyresttest/testapp/testapp/api.py ./pyresttest/testapp/testapp/admin.py ./pyresttest/testapp/testapp/__init__.py ./pyresttest/testapp/manage.py ./pyresttest/test_validators.py ./pyresttest/test_tests.py ./pyresttest/test_resttest.py ./pyresttest/test_parsing.py ./pyresttest/test_generators.py ./pyresttest/test_contenthandling.py ./pyresttest/test_binding.py ./pyresttest/test_benchmarks.py ./pyresttest/six.py ./pyresttest/resttest.py ./pyresttest/parsing.py ./pyresttest/generators.py ./pyresttest/functionaltest.py ./pyresttest/ext/validator_jsonschema.py ./pyresttest/ext/extractor_jmespath.py ./pyresttest/ext/__init__.py ./pyresttest/contenthandling.py ./pyresttest/binding.py ./pyresttest/benchmarks.py ./pyresttest/benchmark_framework_mini.py ./pyresttest/__init__.py ./profile_benchmark.py ./docker/ubuntu14-py27/verify_image.py ./docker/python3/verify_image.py ./docker/centos6-py26/verify_image.py + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.79882 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-pyresttest-1.7.1 + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export CFLAGS + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export CXXFLAGS + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export FFLAGS + /usr/bin/python3 setup.py build --debug /usr/lib64/python3/site-packages/setuptools/dist.py:698: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead warnings.warn( running build running build_py creating build creating build/lib creating build/lib/pyresttest copying pyresttest/__init__.py -> build/lib/pyresttest copying pyresttest/resttest.py -> build/lib/pyresttest copying pyresttest/generators.py -> build/lib/pyresttest copying pyresttest/binding.py -> build/lib/pyresttest copying pyresttest/parsing.py -> build/lib/pyresttest copying pyresttest/validators.py -> build/lib/pyresttest copying pyresttest/contenthandling.py -> build/lib/pyresttest copying pyresttest/benchmarks.py -> build/lib/pyresttest copying pyresttest/tests.py -> build/lib/pyresttest copying pyresttest/six.py -> build/lib/pyresttest creating build/lib/pyresttest/ext copying pyresttest/ext/__init__.py -> build/lib/pyresttest/ext copying pyresttest/ext/validator_jsonschema.py -> build/lib/pyresttest/ext copying pyresttest/ext/extractor_jmespath.py -> build/lib/pyresttest/ext running build_scripts creating build/scripts-3.9 copying and adjusting util/pyresttest -> build/scripts-3.9 copying and adjusting util/resttest.py -> build/scripts-3.9 changing mode of build/scripts-3.9/pyresttest from 644 to 755 changing mode of build/scripts-3.9/resttest.py from 644 to 755 + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.79882 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/python3-module-pyresttest-buildroot + : + /bin/rm -rf -- /usr/src/tmp/python3-module-pyresttest-buildroot + PATH=/usr/libexec/rpm-build:/usr/src/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games + cd python3-module-pyresttest-1.7.1 + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export CFLAGS + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export CXXFLAGS + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export FFLAGS + /usr/bin/python3 setup.py install --skip-build --root=/usr/src/tmp/python3-module-pyresttest-buildroot --force /usr/lib64/python3/site-packages/setuptools/dist.py:698: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead warnings.warn( running install running install_lib creating /usr/src/tmp/python3-module-pyresttest-buildroot creating /usr/src/tmp/python3-module-pyresttest-buildroot/usr creating /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib creating /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3 creating /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages creating /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest creating /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext copying build/lib/pyresttest/ext/extractor_jmespath.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext copying build/lib/pyresttest/ext/validator_jsonschema.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext copying build/lib/pyresttest/ext/__init__.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext copying build/lib/pyresttest/six.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/tests.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/benchmarks.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/contenthandling.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/validators.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/parsing.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/binding.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/generators.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/resttest.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest copying build/lib/pyresttest/__init__.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py to extractor_jmespath.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/validator_jsonschema.py to validator_jsonschema.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__init__.py to __init__.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/six.py to six.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py to tests.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py to benchmarks.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/contenthandling.py to contenthandling.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/validators.py to validators.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/parsing.py to parsing.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/binding.py to binding.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py to generators.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py to resttest.cpython-39.pyc byte-compiling /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__init__.py to __init__.cpython-39.pyc running install_egg_info running egg_info creating pyresttest.egg-info writing pyresttest.egg-info/PKG-INFO writing dependency_links to pyresttest.egg-info/dependency_links.txt writing requirements to pyresttest.egg-info/requires.txt writing top-level names to pyresttest.egg-info/top_level.txt writing manifest file 'pyresttest.egg-info/SOURCES.txt' reading manifest file 'pyresttest.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found anywhere in distribution warning: no previously-included files matching 'test_*.py' found anywhere in distribution adding license file 'LICENSE' adding license file 'LICENSE.txt' writing manifest file 'pyresttest.egg-info/SOURCES.txt' Copying pyresttest.egg-info to /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info running install_scripts creating /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin copying build/scripts-3.9/resttest.py -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin copying build/scripts-3.9/pyresttest -> /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin changing mode of /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin/resttest.py to 755 changing mode of /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin/pyresttest to 755 + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/python3-module-pyresttest-buildroot (auto) Verifying and fixing files in /usr/src/tmp/python3-module-pyresttest-buildroot (binconfig,pkgconfig,libtool,desktop,gnuconfig) Checking contents of files in /usr/src/tmp/python3-module-pyresttest-buildroot/ (default) Compressing files in /usr/src/tmp/python3-module-pyresttest-buildroot (auto) Adjusting library links in /usr/src/tmp/python3-module-pyresttest-buildroot ./usr/lib: (from :0) Verifying ELF objects in /usr/src/tmp/python3-module-pyresttest-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) Bytecompiling python3 modules in /usr/src/tmp/python3-module-pyresttest-buildroot using /usr/bin/python3 unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.pyc unlink /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.pyc compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__init__.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/validator_jsonschema.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__init__.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/binding.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/contenthandling.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/parsing.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/six.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/validators.py Bytecompiling python3 modules with optimization in /usr/src/tmp/python3-module-pyresttest-buildroot using /usr/bin/python3 -O compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__init__.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/validator_jsonschema.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__init__.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/binding.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/contenthandling.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/parsing.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/six.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/validators.py Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python3-module-pyresttest-buildroot using /usr/bin/python3 -OO compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__init__.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/validator_jsonschema.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/__init__.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/binding.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/contenthandling.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/parsing.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/six.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py compile /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/validators.py Hardlinking identical .pyc and .opt-?.pyc files './usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.opt-2.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.opt-1.pyc' './usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.opt-2.pyc' => './usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.opt-1.pyc' './usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.pyc' './usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.opt-1.pyc' => './usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.pyc' Executing(%check): /bin/sh -e /usr/src/tmp/rpm-tmp.93946 Check is turned off by --disable check Processing files: python3-module-pyresttest-1.7.1-alt1 Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.93946 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-pyresttest-1.7.1 + DOCDIR=/usr/src/tmp/python3-module-pyresttest-buildroot/usr/share/doc/python3-module-pyresttest-1.7.1 + export DOCDIR + rm -rf /usr/src/tmp/python3-module-pyresttest-buildroot/usr/share/doc/python3-module-pyresttest-1.7.1 + /bin/mkdir -p /usr/src/tmp/python3-module-pyresttest-buildroot/usr/share/doc/python3-module-pyresttest-1.7.1 + cp -prL CHANGELOG.md README.md advanced_guide.md building.md extensions.md lessons.md quickstart.md /usr/src/tmp/python3-module-pyresttest-buildroot/usr/share/doc/python3-module-pyresttest-1.7.1 + chmod -R go-w /usr/src/tmp/python3-module-pyresttest-buildroot/usr/share/doc/python3-module-pyresttest-1.7.1 + chmod -R a+rX /usr/src/tmp/python3-module-pyresttest-buildroot/usr/share/doc/python3-module-pyresttest-1.7.1 + exit 0 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.zFF9Uj find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,python3,shell) Finding Requires (using /usr/lib/rpm/find-requires) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.iPAr5g find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services) /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin/pyresttest: pyresttest is possibly a self-providing dependency, skip it python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin/pyresttest: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin/resttest.py: pyresttest is possibly a self-providing dependency, skip it python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/bin/resttest.py: skipping sys /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py: Ignore for REQ=slight module=past.builtins python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py: pyresttest.parsing is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py: pyresttest.six is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/benchmarks.py: pyresttest.tests is possibly a self-providing dependency, skip it /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/contenthandling.py: Ignore for REQ=slight module=past.builtins python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/contenthandling.py: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/contenthandling.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/contenthandling.py: pyresttest.parsing is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__init__.py: pyresttest is possibly a self-providing dependency, skip it python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/__init__.py: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py: pyresttest is possibly a self-providing dependency, skip it python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/validator_jsonschema.py: pyresttest is possibly a self-providing dependency, skip it python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/validator_jsonschema.py: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/ext/validator_jsonschema.py: pyresttest is possibly a self-providing dependency, skip it python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py: skipping builtins /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py: Ignore for REQ=slight module=past.builtins python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/generators.py: pyresttest.parsing is possibly a self-providing dependency, skip it /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/parsing.py: Ignore for REQ=slight module=past.builtins python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/parsing.py: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/parsing.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/parsing.py: pyresttest.six is possibly a self-providing dependency, skip it python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: skipping builtins /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: Ignore for REQ=slight module=io /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: Ignore for REQ=slight module=jmespath /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: Ignore for REQ=slight module=jsonschema /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: Ignore for REQ=slight module=past.builtins /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.benchmarks is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.binding is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.generators is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.parsing is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.six is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.tests is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.validators is possibly a self-providing dependency, skip it python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: skipping sys python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: skipping time /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.benchmarks is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.binding is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.generators is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.parsing is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.six is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.tests is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py: pyresttest.validators is possibly a self-providing dependency, skip it /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/six.py: Ignore for REQ=slight module=io python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/six.py: skipping itertools /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/six.py: Ignore for REQ=slight module=struct python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/six.py: skipping sys /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: Ignore for REQ=slight module=io /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: Ignore for REQ=slight module=past.builtins python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: skipping sys /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: Ignore for REQ=slight module=urllib.parse /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: pyresttest.contenthandling is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: pyresttest.parsing is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: pyresttest.six is possibly a self-providing dependency, skip it /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/tests.py: Ignore for REQ=slight module=pyresttest.six.moves /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/validators.py: Ignore for REQ=slight module=past.builtins python3.req: /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/validators.py: skipping sys /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/validators.py: pyresttest is possibly a self-providing dependency, skip it /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/validators.py: pyresttest.six is possibly a self-providing dependency, skip it shebang.req.files: executable script /usr/src/tmp/python3-module-pyresttest-buildroot/usr/lib/python3/site-packages/pyresttest/resttest.py is not executable Provides: python3(pyresttest), python3(pyresttest.benchmarks), python3(pyresttest.binding), python3(pyresttest.contenthandling), python3(pyresttest.ext), python3(pyresttest.ext.extractor_jmespath), python3(pyresttest.ext.validator_jsonschema), python3(pyresttest.generators), python3(pyresttest.parsing), python3(pyresttest.resttest), python3(pyresttest.six), python3(pyresttest.tests), python3(pyresttest.validators) Requires: /usr/bin/python3, /usr/lib/python3/site-packages, python3(ast) < 0, python3(copy) < 0, python3(csv) < 0, python3(email) < 0, python3(functools) < 0, python3(inspect) < 0, python3(jmespath) < 0, python3(json) < 0, python3(jsonschema) < 0, python3(logging) < 0, python3(math) < 0, python3(operator) < 0, python3(optparse) < 0, python3(os) < 0, python3(pycurl) < 0, python3(random) < 0, python3(re) < 0, python3(string) < 0, python3(traceback) < 0, python3(types) < 0, python3(yaml) < 0 Wrote: /usr/src/RPM/RPMS/noarch/python3-module-pyresttest-1.7.1-alt1.noarch.rpm (w2.lzdio) 4.36user 0.54system 0:06.55elapsed 74%CPU (0avgtext+0avgdata 56764maxresident)k 0inputs+0outputs (0major+231295minor)pagefaults 0swaps /.out/python3-module-pyresttest-1.7.1-alt1.noarch.rpm: license not found in '/usr/share/license' directory: ASLv2.0 5.24user 1.67system 0:20.40elapsed 33%CPU (0avgtext+0avgdata 129096maxresident)k 1496inputs+0outputs (0major+346407minor)pagefaults 0swaps --- python3-module-pyresttest-1.7.1-alt1.noarch.rpm.repo 2019-11-07 14:46:42.000000000 +0000 +++ python3-module-pyresttest-1.7.1-alt1.noarch.rpm.hasher 2024-03-17 01:18:18.257815212 +0000 @@ -3,40 +3,40 @@ /usr/lib/python3/site-packages/pyresttest 40755 root:root -/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info 40755 root:root -/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/PKG-INFO 100644 root:root -/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/SOURCES.txt 100644 root:root -/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/dependency_links.txt 100644 root:root -/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/requires.txt 100644 root:root -/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/top_level.txt 100644 root:root +/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info 40755 root:root +/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/PKG-INFO 100644 root:root +/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/SOURCES.txt 100644 root:root +/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/dependency_links.txt 100644 root:root +/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/requires.txt 100644 root:root +/usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/top_level.txt 100644 root:root /usr/lib/python3/site-packages/pyresttest/__init__.py 100644 root:root /usr/lib/python3/site-packages/pyresttest/__pycache__ 40755 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-37.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.pyc 100644 root:root /usr/lib/python3/site-packages/pyresttest/benchmarks.py 100644 root:root @@ -47,11 +47,11 @@ /usr/lib/python3/site-packages/pyresttest/ext/__pycache__ 40755 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-37.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-37.opt-1.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-37.opt-2.pyc 100644 root:root -/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-37.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.opt-1.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.opt-2.pyc 100644 root:root +/usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.pyc 100644 root:root /usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py 100644 root:root @@ -113,40 +113,40 @@ File: /usr/lib/python3/site-packages/pyresttest 40755 root:root -File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info 40755 root:root -File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/PKG-INFO 100644 root:root 1223aedbe4e34337bc05e7bc5b4773c6 -File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/SOURCES.txt 100644 root:root fe8e83a4429a79235e8e3de6530ed14c -File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/dependency_links.txt 100644 root:root 68b329da9893e34099c7d8ad5cb9c940 -File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/requires.txt 100644 root:root 362724bf78d9d065b85a5cf3687514d0 -File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.7.egg-info/top_level.txt 100644 root:root 8de91c4e151677b7386d45ab3d968480 +File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info 40755 root:root +File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/PKG-INFO 100644 root:root 5482bc3fddd00735df009b5838e67430 +File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/SOURCES.txt 100644 root:root ae84971b022b67119c2d79b2f471e633 +File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/dependency_links.txt 100644 root:root 68b329da9893e34099c7d8ad5cb9c940 +File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/requires.txt 100644 root:root 362724bf78d9d065b85a5cf3687514d0 +File: /usr/lib/python3/site-packages/pyresttest-1.7.1-py3.9.egg-info/top_level.txt 100644 root:root 8de91c4e151677b7386d45ab3d968480 File: /usr/lib/python3/site-packages/pyresttest/__init__.py 100644 root:root 9be1d98023a6747d8da327012aa2ad05 File: /usr/lib/python3/site-packages/pyresttest/__pycache__ 40755 root:root -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-37.opt-1.pyc 100644 root:root 94f6a95653b44e79db1774c6e2fd4553 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-37.opt-2.pyc 100644 root:root 94f6a95653b44e79db1774c6e2fd4553 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-37.pyc 100644 root:root 94f6a95653b44e79db1774c6e2fd4553 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-37.opt-1.pyc 100644 root:root 2679df128e99466e68c606ec653b5ce6 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-37.opt-2.pyc 100644 root:root daa2d4afd1a95000ac32c8d90bfed69e -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-37.pyc 100644 root:root 2679df128e99466e68c606ec653b5ce6 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-37.opt-1.pyc 100644 root:root 15c60a420825e71d9201168bc4d235a7 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-37.opt-2.pyc 100644 root:root 8c748aa5824ad2ce9e21558b55ee63ca -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-37.pyc 100644 root:root 15c60a420825e71d9201168bc4d235a7 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-37.opt-1.pyc 100644 root:root 6fb840cf9df8f0db2f97dc4ff4379c6a -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-37.opt-2.pyc 100644 root:root 805d443f9722049a5b5f05ba41c33bbc -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-37.pyc 100644 root:root 6fb840cf9df8f0db2f97dc4ff4379c6a -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-37.opt-1.pyc 100644 root:root f48a04d080c8a0714db363502bbb16f3 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-37.opt-2.pyc 100644 root:root 9fd540a5cfb8894fb56e833712acd6d6 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-37.pyc 100644 root:root f48a04d080c8a0714db363502bbb16f3 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-37.opt-1.pyc 100644 root:root f9f8c912060f1669c941c0f2d02bb302 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-37.opt-2.pyc 100644 root:root bcb47962d6de230d9176f45bc046b02c -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-37.pyc 100644 root:root f9f8c912060f1669c941c0f2d02bb302 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-37.opt-1.pyc 100644 root:root 9255d4a988bd4312463ab218ade04330 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-37.opt-2.pyc 100644 root:root 158c05b007a9f433f9b841e6c4ccba86 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-37.pyc 100644 root:root 7b2ddae5c8963e95103a9f55c678e32c -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-37.opt-1.pyc 100644 root:root 90f5f09f054a53277a05a3b16150d42d -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-37.opt-2.pyc 100644 root:root 40d1d9f92441ffb7db7ea435c42b3e96 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-37.pyc 100644 root:root 90f5f09f054a53277a05a3b16150d42d -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-37.opt-1.pyc 100644 root:root f50c94acae13bac70d4b595c4649dc41 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-37.opt-2.pyc 100644 root:root 0a5fcc2f258aad1d0f23d2b62f045ba2 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-37.pyc 100644 root:root fc6c8e8c5240f697977ee468c7dc150d -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-37.opt-1.pyc 100644 root:root 505fa56646333dba2f3de77a84408fe6 -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-37.opt-2.pyc 100644 root:root e757a73fda4db78032475691deb24cbc -File: /usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-37.pyc 100644 root:root 505fa56646333dba2f3de77a84408fe6 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.opt-1.pyc 100644 root:root 2246cab2f354ba6f80b342a2b5bc31dc +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.opt-2.pyc 100644 root:root 2246cab2f354ba6f80b342a2b5bc31dc +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/__init__.cpython-39.pyc 100644 root:root 2246cab2f354ba6f80b342a2b5bc31dc +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.opt-1.pyc 100644 root:root c059984a3d56181651821cd2f8772e26 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.opt-2.pyc 100644 root:root aa28aacb9c57a04ffbdbc60a30dbaa69 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/benchmarks.cpython-39.pyc 100644 root:root c059984a3d56181651821cd2f8772e26 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.opt-1.pyc 100644 root:root 50b55638d7bf15441a0d7dcf97f645e1 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.opt-2.pyc 100644 root:root 373e6c65350bd360ebfe7a2f1c121d03 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/binding.cpython-39.pyc 100644 root:root 50b55638d7bf15441a0d7dcf97f645e1 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.opt-1.pyc 100644 root:root 281d03ff08621c63bda0aa3c81444996 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.opt-2.pyc 100644 root:root dc422ce5c4b04a38411f99269c0e02d4 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/contenthandling.cpython-39.pyc 100644 root:root 281d03ff08621c63bda0aa3c81444996 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.opt-1.pyc 100644 root:root a74c57c47e66c1ef213d5f2dc9f9e70f +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.opt-2.pyc 100644 root:root 94b7b8bd914e16e536b4056b478ef10a +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/generators.cpython-39.pyc 100644 root:root a74c57c47e66c1ef213d5f2dc9f9e70f +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.opt-1.pyc 100644 root:root 36d21afb157ae09db52586351666269a +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.opt-2.pyc 100644 root:root eaa122700235af989522ca7115b7338f +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/parsing.cpython-39.pyc 100644 root:root 36d21afb157ae09db52586351666269a +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-39.opt-1.pyc 100644 root:root 23dfd38df785501ccceab2927d1a9d04 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-39.opt-2.pyc 100644 root:root 15f32b13d42a6d9eae0b82b0190ba058 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/resttest.cpython-39.pyc 100644 root:root 1f2d629056f3098fc9eaeaf5ce5bf287 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.opt-1.pyc 100644 root:root 8e12873a68b3dc33750fa518508d2284 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.opt-2.pyc 100644 root:root 72080f7735ea527d8d710fef9b91b714 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/six.cpython-39.pyc 100644 root:root 8e12873a68b3dc33750fa518508d2284 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-39.opt-1.pyc 100644 root:root 2c0f912d3c66a465071a6453e324abe3 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-39.opt-2.pyc 100644 root:root dbaf1562539039a7d47e78d38945d0d2 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/tests.cpython-39.pyc 100644 root:root 2d046b0f14df2bbdbcf07add93a3e32a +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.opt-1.pyc 100644 root:root 97670ed69f3b1223e804bcf830bcb457 +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.opt-2.pyc 100644 root:root b6ce9f613dfd77af349db0603da1184d +File: /usr/lib/python3/site-packages/pyresttest/__pycache__/validators.cpython-39.pyc 100644 root:root 97670ed69f3b1223e804bcf830bcb457 File: /usr/lib/python3/site-packages/pyresttest/benchmarks.py 100644 root:root e9d8715f3b94f91a7b90a6bb472e454f @@ -157,11 +157,11 @@ File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__ 40755 root:root -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-37.opt-1.pyc 100644 root:root f869a827f5b97ff818144ecfff177668 -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-37.opt-2.pyc 100644 root:root f869a827f5b97ff818144ecfff177668 -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-37.pyc 100644 root:root f869a827f5b97ff818144ecfff177668 -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-37.opt-1.pyc 100644 root:root f34a4023987c49cc6cfc9b29ed69faf2 -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-37.opt-2.pyc 100644 root:root 0231240329ce92452d46a9b30139e2d7 -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-37.pyc 100644 root:root f34a4023987c49cc6cfc9b29ed69faf2 -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-37.opt-1.pyc 100644 root:root 10fdc61505852cfa671c3e6ca7f2dbbe -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-37.opt-2.pyc 100644 root:root a55db341ed71a17eae4dc9ee2ba6575d -File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-37.pyc 100644 root:root 10fdc61505852cfa671c3e6ca7f2dbbe +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.opt-1.pyc 100644 root:root 99b7722296bfee9311fe436b3830ce64 +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.opt-2.pyc 100644 root:root 99b7722296bfee9311fe436b3830ce64 +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/__init__.cpython-39.pyc 100644 root:root 99b7722296bfee9311fe436b3830ce64 +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.opt-1.pyc 100644 root:root 56fc873c643f697c91cb3a1d1d478277 +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.opt-2.pyc 100644 root:root eaa6b499b90fa66766c7d2651e41b173 +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/extractor_jmespath.cpython-39.pyc 100644 root:root 56fc873c643f697c91cb3a1d1d478277 +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.opt-1.pyc 100644 root:root 505418427b9691e21ae7c5721016c632 +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.opt-2.pyc 100644 root:root 69f6a1f25bd9d50e62deb93367ee0d33 +File: /usr/lib/python3/site-packages/pyresttest/ext/__pycache__/validator_jsonschema.cpython-39.pyc 100644 root:root 505418427b9691e21ae7c5721016c632 File: /usr/lib/python3/site-packages/pyresttest/ext/extractor_jmespath.py 100644 root:root 6b3a1b2b369a1dddf2dcd0cf07d91fdf @@ -182,2 +182,2 @@ File: /usr/share/doc/python3-module-pyresttest-1.7.1/quickstart.md 100644 root:root 5dba27f82bc229f90a6916763ee1e17f -RPMIdentity: a054dff96bb64e539af235df58bf7593da980bf8772848c2c4b36e4b0287a34dab306874c7c1a755be865b7ee8b3f13bdf8fb6b2490d984dc57524b8664d6dc7 +RPMIdentity: 264e8640f03f13cf6dd552cfe45399bf413ac3d9d62daad593bdf372f7a0e46a9d281a4302b1bcfb9adda5504bba91449619199b7a49d6873561bdbe9cc8360a