Warning: Permanently added '172.25.84.228' (ECDSA) to the list of known hosts. Running: /usr/bin/copr-rpmbuild --verbose --drop-resultdir --build-id 883567 --chroot fedora-rawhide-x86_64 --detached default Version: 0.24 Task: {'build_id': 883567, 'buildroot_pkgs': [], 'chroot': 'fedora-rawhide-x86_64', 'enable_net': False, 'fetch_sources_only': True, 'git_hash': '108a77c55a23b4b63360aeb8a27cd4c1a12b5a13', 'git_repo': 'duck/mailman3-rpm-repo-devel/python-passlib', 'memory_reqs': 2048, 'package_name': 'python-passlib', 'package_version': '1.7.1-3.fc28', 'project_dirname': 'mailman3-rpm-repo-devel', 'project_name': 'mailman3-rpm-repo-devel', 'project_owner': 'duck', 'repos': [{'baseurl': 'https://copr-be.cloud.fedoraproject.org/results/duck/mailman3-rpm-repo-devel/fedora-rawhide-x86_64/', 'id': 'copr_base', 'name': 'Copr repository'}], 'source_json': {'clone_url': 'https://copr-dist-git.fedorainfracloud.org/git/duck/mailman3-rpm-repo-devel/python-passlib.git', 'committish': '108a77c55a23b4b63360aeb8a27cd4c1a12b5a13'}, 'source_type': 8, 'submitter': 'duck', 'task_id': '883567-fedora-rawhide-x86_64', 'timeout': 64800, 'use_bootstrap_container': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/duck/mailman3-rpm-repo-devel/python-passlib.git /tmp/tmp5_jf61dv/python-passlib --depth 500 --no-single-branch cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/duck/mailman3-rpm-repo-devel/python-passlib.git', '/tmp/tmp5_jf61dv/python-passlib', '--depth', '500', '--no-single-branch'] cwd: . rc: 0 stdout: stderr: Cloning into '/tmp/tmp5_jf61dv/python-passlib'... Running: git checkout 108a77c55a23b4b63360aeb8a27cd4c1a12b5a13 cmd: ['git', 'checkout', '108a77c55a23b4b63360aeb8a27cd4c1a12b5a13'] cwd: /tmp/tmp5_jf61dv/python-passlib rc: 0 stdout: stderr: Note: checking out '108a77c55a23b4b63360aeb8a27cd4c1a12b5a13'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b HEAD is now at 108a77c automatic import of python-passlib Running: cp -r . /tmp/tmp43joapm0 cmd: ['cp', '-r', '.', '/tmp/tmp43joapm0'] cwd: /tmp/tmp5_jf61dv/python-passlib rc: 0 stdout: stderr: Generated rpkg config: [rpkg] preprocess_spec = True # auto-packing is deprecated: auto_pack = True [git] lookaside = https://copr-dist-git.fedorainfracloud.org/repo/pkgs/%(ns2)s/%(ns1)s/%(name)s/%(filename)s/%(hashtype)s/%(hash)s/%(filename)s anongiturl = https://copr-dist-git.fedorainfracloud.org/git/%(module)s Writing config into /tmp/tmp5_jf61dv/.config/rpkg.conf Running: rpkg -C /tmp/tmp5_jf61dv/.config/rpkg.conf sources --outdir /tmp/tmp43joapm0 /usr/bin/tail: /var/lib/copr-rpmbuild/main.log: file truncated cmd: ['rpkg', '-C', '/tmp/tmp5_jf61dv/.config/rpkg.conf', 'sources', '--outdir', '/tmp/tmp43joapm0'] cwd: /tmp/tmp5_jf61dv/python-passlib rc: 0 stdout: Downloading passlib-1.7.1.tar.gz from lookaside cache at copr-dist-git.fedorainfracloud.org stderr: Running (timeout=64800): unbuffer /usr/bin/mock --buildsrpm --spec /tmp/tmp43joapm0/python-passlib.spec --sources /tmp/tmp43joapm0 --configdir /var/lib/copr-rpmbuild/results/configs --resultdir /var/lib/copr-rpmbuild/results --define '%_disable_source_fetch 0' --uniqueext 1555337353.262598 -r child WARNING: Could not find required logging config file: /var/lib/copr-rpmbuild/results/configs/logging.ini. Using default... INFO: mock.py version 1.4.14 starting (python version = 3.6.5)... Start: init plugins INFO: tmpfs initialized INFO: selinux disabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins Start: run INFO: Start(/tmp/tmp43joapm0/python-passlib.spec) Config(883567-fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Start: chroot init INFO: mounting tmpfs at /var/lib/mock/883567-fedora-rawhide-x86_64-1555337353.262598/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled HW Info plugin Mock Version: 1.4.14 INFO: Mock Version: 1.4.14 Start: dnf install fedora 62 MB/s | 61 MB 00:00 Failed to synchronize cache for repo 'copr_base', disabling. Last metadata expiration check: 0:00:26 ago on Mon 15 Apr 2019 02:09:16 PM UTC. Dependencies resolved. ================================================================================ Group Packages ================================================================================ Marking packages as installed by the group: @Buildsystem building group rpm-build util-linux cpio which make unzip tar info fedora-release coreutils diffutils redhat-rpm-config gawk patch xz bzip2 grep shadow-utils glibc-minimal-langpack bash sed gzip findutils ================================================================================ Package Arch Version Repository Size ================================================================================ Installing group packages: bash x86_64 5.0.2-1.fc30 fedora 1.6 M bzip2 x86_64 1.0.6-29.fc30 fedora 49 k coreutils x86_64 8.31-2.fc31 fedora 1.2 M cpio x86_64 2.12-10.fc30 fedora 247 k diffutils x86_64 3.7-2.fc30 fedora 384 k fedora-release noarch 31-0.5 fedora 11 k findutils x86_64 1:4.6.0-22.fc30 fedora 504 k gawk x86_64 4.2.1-6.fc31 fedora 1.1 M glibc-minimal-langpack x86_64 2.29.9000-14.fc31 fedora 57 k grep x86_64 3.3-1.fc31 fedora 246 k gzip x86_64 1.9-9.fc31 fedora 151 k info x86_64 6.6-1.fc30 fedora 212 k make x86_64 1:4.2.1-13.fc30 fedora 482 k patch x86_64 2.7.6-9.fc31 fedora 123 k redhat-rpm-config noarch 128-1.fc30 fedora 60 k rpm-build x86_64 4.14.2.1-7.fc31 fedora 117 k sed x86_64 4.5-3.fc30 fedora 285 k shadow-utils x86_64 2:4.6-12.fc31 fedora 1.2 M tar x86_64 2:1.32-1.fc31 fedora 863 k unzip x86_64 6.0-43.fc30 fedora 175 k util-linux x86_64 2.33.2-1.fc31 fedora 2.4 M which x86_64 2.21-14.fc30 fedora 41 k xz x86_64 5.2.4-5.fc30 fedora 143 k Installing dependencies: alternatives x86_64 1.11-4.fc31 fedora 33 k audit-libs x86_64 3.0-0.7.20190326git03e7489.fc31 fedora 107 k basesystem noarch 11-7.fc30 fedora 6.9 k binutils x86_64 2.32-11.fc31 fedora 6.0 M binutils-gold x86_64 2.32-11.fc31 fedora 838 k boost-regex x86_64 1.69.0-6.fc30 fedora 289 k brotli x86_64 1.0.7-3.fc30 fedora 311 k bzip2-libs x86_64 1.0.6-29.fc30 fedora 37 k ca-certificates noarch 2018.2.26-3.fc30 fedora 385 k coreutils-common x86_64 8.31-2.fc31 fedora 2.0 M cracklib x86_64 2.9.6-19.fc30 fedora 77 k crypto-policies noarch 20190211-2.gite3eacfc.fc30 fedora 51 k ctags x86_64 5.8-25.fc30 fedora 158 k curl x86_64 7.64.1-1.fc31 fedora 297 k cyrus-sasl-lib x86_64 2.1.27-0.6rc7.fc30 fedora 92 k dwz x86_64 0.12-10.fc30 fedora 102 k efi-srpm-macros noarch 4-2.fc30 fedora 23 k elfutils x86_64 0.176-1.fc30 fedora 291 k elfutils-default-yama-scope noarch 0.176-1.fc30 fedora 16 k elfutils-libelf x86_64 0.176-1.fc30 fedora 177 k elfutils-libs x86_64 0.176-1.fc30 fedora 260 k expat x86_64 2.2.6-2.fc30 fedora 92 k fedora-gpg-keys noarch 31-0.2 fedora 102 k fedora-release-common noarch 31-0.5 fedora 18 k fedora-repos noarch 31-0.2 fedora 9.2 k fedora-repos-rawhide noarch 31-0.2 fedora 8.4 k file x86_64 5.36-2.fc31 fedora 49 k file-libs x86_64 5.36-2.fc31 fedora 545 k filesystem x86_64 3.10-1.fc30 fedora 1.1 M fpc-srpm-macros noarch 1.2-1.fc31 fedora 7.5 k gc x86_64 7.6.4-5.fc30 fedora 93 k gdb-headless x86_64 8.3.50.20190412-6.fc31 fedora 3.6 M gdbm-libs x86_64 1:1.18-4.fc30 fedora 50 k ghc-srpm-macros noarch 1.4.2-9.fc30 fedora 7.6 k glib2 x86_64 2.60.0-3.fc31 fedora 2.5 M glibc x86_64 2.29.9000-14.fc31 fedora 4.0 M glibc-common x86_64 2.29.9000-14.fc31 fedora 848 k gmp x86_64 1:6.1.2-10.fc31 fedora 265 k gnat-srpm-macros noarch 4-9.fc30 fedora 8.5 k go-srpm-macros noarch 2-19.fc30 fedora 11 k guile22 x86_64 2.2.4-3.fc30 fedora 6.4 M keyutils-libs x86_64 1.6-2.fc30 fedora 30 k krb5-libs x86_64 1.17-9.fc31 fedora 747 k libacl x86_64 2.2.53-3.fc30 fedora 24 k libarchive x86_64 3.3.3-7.fc31 fedora 342 k libatomic_ops x86_64 7.6.10-1.fc31 fedora 34 k libattr x86_64 2.4.48-5.fc30 fedora 17 k libbabeltrace x86_64 1.5.6-2.fc30 fedora 184 k libblkid x86_64 2.33.2-1.fc31 fedora 146 k libcap x86_64 2.26-5.fc30 fedora 46 k libcap-ng x86_64 0.7.9-7.fc31 fedora 27 k libcom_err x86_64 1.45.0-1.fc31 fedora 26 k libcurl x86_64 7.64.1-1.fc31 fedora 255 k libdb x86_64 5.3.28-37.fc30 fedora 735 k libdb-utils x86_64 5.3.28-37.fc30 fedora 129 k libfdisk x86_64 2.33.2-1.fc31 fedora 194 k libffi x86_64 3.1-19.fc30 fedora 31 k libgcc x86_64 9.0.1-0.12.fc31 fedora 83 k libgcrypt x86_64 1.8.4-3.fc30 fedora 435 k libgpg-error x86_64 1.33-2.fc30 fedora 238 k libicu x86_64 63.1-2.fc30 fedora 9.0 M libidn2 x86_64 2.1.1a-1.fc30 fedora 89 k libipt x86_64 2.0-2.fc30 fedora 51 k libmetalink x86_64 0.1.3-8.fc30 fedora 28 k libmount x86_64 2.33.2-1.fc31 fedora 168 k libnghttp2 x86_64 1.37.0-1.fc31 fedora 69 k libnsl2 x86_64 1.2.0-4.20180605git4a062cf.fc30 fedora 54 k libpkgconf x86_64 1.6.1-1.fc31 fedora 34 k libpsl x86_64 0.20.2-6.fc30 fedora 57 k libpwquality x86_64 1.4.0-12.fc30 fedora 96 k libselinux x86_64 2.9-1.fc31 fedora 79 k libsemanage x86_64 2.9-1.fc31 fedora 112 k libsepol x86_64 2.9-1.fc31 fedora 280 k libsigsegv x86_64 2.11-7.fc30 fedora 25 k libsmartcols x86_64 2.33.2-1.fc31 fedora 108 k libssh x86_64 0.8.7-1.fc31 fedora 212 k libstdc++ x86_64 9.0.1-0.12.fc31 fedora 572 k libtasn1 x86_64 4.13-7.fc30 fedora 67 k libtirpc x86_64 1.1.4-2.rc2.fc30.1 fedora 97 k libtool-ltdl x86_64 2.4.6-29.fc30 fedora 34 k libunistring x86_64 0.9.10-5.fc30 fedora 415 k libutempter x86_64 1.1.6-16.fc30 fedora 24 k libuuid x86_64 2.33.2-1.fc31 fedora 26 k libverto x86_64 0.3.0-7.fc30 fedora 20 k libxcrypt x86_64 4.4.4-2.fc31 fedora 119 k libxml2 x86_64 2.9.9-2.fc30 fedora 651 k libzstd x86_64 1.3.8-2.fc30 fedora 252 k lua-libs x86_64 5.3.5-5.fc30 fedora 104 k lz4-libs x86_64 1.8.3-2.fc30 fedora 60 k mpfr x86_64 3.1.6-4.fc30 fedora 212 k ncurses x86_64 6.1-10.20180923.fc30 fedora 360 k ncurses-base noarch 6.1-10.20180923.fc30 fedora 59 k ncurses-libs x86_64 6.1-10.20180923.fc30 fedora 288 k nim-srpm-macros noarch 1-4.fc30 fedora 8.1 k ocaml-srpm-macros noarch 5-5.fc30 fedora 7.7 k openblas-srpm-macros noarch 2-5.fc30 fedora 7.3 k openldap x86_64 2.4.47-1.fc30 fedora 280 k openssl-libs x86_64 1:1.1.1b-4.fc31 fedora 1.3 M p11-kit x86_64 0.23.15-3.fc30 fedora 240 k p11-kit-trust x86_64 0.23.15-3.fc30 fedora 125 k pam x86_64 1.3.1-17.fc30 fedora 624 k pcre x86_64 8.43-1.fc31 fedora 187 k pcre2 x86_64 10.33-0.4.RC1.fc31 fedora 248 k perl-srpm-macros noarch 1-29.fc30 fedora 8.2 k pkgconf x86_64 1.6.1-1.fc31 fedora 38 k pkgconf-m4 noarch 1.6.1-1.fc31 fedora 15 k pkgconf-pkg-config x86_64 1.6.1-1.fc31 fedora 11 k popt x86_64 1.16-17.fc30 fedora 55 k publicsuffix-list-dafsa noarch 20190128-2.fc30 fedora 54 k python-pip-wheel noarch 19.0.3-1.fc31 fedora 1.1 M python-setuptools-wheel noarch 40.8.0-1.fc30 fedora 279 k python-srpm-macros noarch 3-42.fc30 fedora 11 k python3-libs x86_64 3.7.3-1.fc31 fedora 7.7 M qt5-srpm-macros noarch 5.12.1-1.fc31 fedora 9.1 k readline x86_64 8.0-2.fc30 fedora 191 k rpm x86_64 4.14.2.1-7.fc31 fedora 489 k rpm-build-libs x86_64 4.14.2.1-7.fc31 fedora 94 k rpm-libs x86_64 4.14.2.1-7.fc31 fedora 287 k rust-srpm-macros noarch 6-4.fc30 fedora 9.0 k setup noarch 2.13.3-1.fc31 fedora 149 k source-highlight x86_64 3.1.8-24.fc31 fedora 649 k sqlite-libs x86_64 3.27.2-3.fc31 fedora 540 k systemd-libs x86_64 242-1.fc31 fedora 512 k tzdata noarch 2019a-1.fc31 fedora 425 k xz-libs x86_64 5.2.4-5.fc30 fedora 85 k zip x86_64 3.0-24.fc30 fedora 264 k zlib x86_64 1.2.11-15.fc30 fedora 89 k zstd x86_64 1.3.8-2.fc30 fedora 361 k Transaction Summary ================================================================================ Install 151 Packages Total download size: 76 M Installed size: 351 M Downloading Packages: (1/151): gzip-1.9-9.fc31.x86_64.rpm 2.3 MB/s | 151 kB 00:00 (2/151): diffutils-3.7-2.fc30.x86_64.rpm 5.4 MB/s | 384 kB 00:00 (3/151): redhat-rpm-config-128-1.fc30.noarch.rp 11 MB/s | 60 kB 00:00 (4/151): glibc-minimal-langpack-2.29.9000-14.fc 11 MB/s | 57 kB 00:00 (5/151): make-4.2.1-13.fc30.x86_64.rpm 20 MB/s | 482 kB 00:00 (6/151): shadow-utils-4.6-12.fc31.x86_64.rpm 12 MB/s | 1.2 MB 00:00 (7/151): fedora-release-31-0.5.noarch.rpm 1.4 MB/s | 11 kB 00:00 (8/151): rpm-build-4.14.2.1-7.fc31.x86_64.rpm 18 MB/s | 117 kB 00:00 (9/151): sed-4.5-3.fc30.x86_64.rpm 21 MB/s | 285 kB 00:00 (10/151): findutils-4.6.0-22.fc30.x86_64.rpm 15 MB/s | 504 kB 00:00 (11/151): which-2.21-14.fc30.x86_64.rpm 6.8 MB/s | 41 kB 00:00 (12/151): grep-3.3-1.fc31.x86_64.rpm 17 MB/s | 246 kB 00:00 (13/151): patch-2.7.6-9.fc31.x86_64.rpm 17 MB/s | 123 kB 00:00 (14/151): info-6.6-1.fc30.x86_64.rpm 23 MB/s | 212 kB 00:00 (15/151): unzip-6.0-43.fc30.x86_64.rpm 18 MB/s | 175 kB 00:00 (16/151): cpio-2.12-10.fc30.x86_64.rpm 24 MB/s | 247 kB 00:00 (17/151): tar-1.32-1.fc31.x86_64.rpm 25 MB/s | 863 kB 00:00 (18/151): xz-5.2.4-5.fc30.x86_64.rpm 12 MB/s | 143 kB 00:00 (19/151): bzip2-1.0.6-29.fc30.x86_64.rpm 12 MB/s | 49 kB 00:00 (20/151): coreutils-8.31-2.fc31.x86_64.rpm 25 MB/s | 1.2 MB 00:00 (21/151): gawk-4.2.1-6.fc31.x86_64.rpm 27 MB/s | 1.1 MB 00:00 (22/151): audit-libs-3.0-0.7.20190326git03e7489 18 MB/s | 107 kB 00:00 (23/151): util-linux-2.33.2-1.fc31.x86_64.rpm 27 MB/s | 2.4 MB 00:00 (24/151): bash-5.0.2-1.fc30.x86_64.rpm 22 MB/s | 1.6 MB 00:00 (25/151): libacl-2.2.53-3.fc30.x86_64.rpm 1.7 MB/s | 24 kB 00:00 (26/151): libattr-2.4.48-5.fc30.x86_64.rpm 4.6 MB/s | 17 kB 00:00 (27/151): libselinux-2.9-1.fc31.x86_64.rpm 16 MB/s | 79 kB 00:00 (28/151): libsemanage-2.9-1.fc31.x86_64.rpm 19 MB/s | 112 kB 00:00 (29/151): libxcrypt-4.4.4-2.fc31.x86_64.rpm 18 MB/s | 119 kB 00:00 (30/151): setup-2.13.3-1.fc31.noarch.rpm 19 MB/s | 149 kB 00:00 (31/151): dwz-0.12-10.fc30.x86_64.rpm 14 MB/s | 102 kB 00:00 (32/151): efi-srpm-macros-4-2.fc30.noarch.rpm 4.3 MB/s | 23 kB 00:00 (33/151): file-5.36-2.fc31.x86_64.rpm 8.5 MB/s | 49 kB 00:00 (34/151): fpc-srpm-macros-1.2-1.fc31.noarch.rpm 1.8 MB/s | 7.5 kB 00:00 (35/151): ghc-srpm-macros-1.4.2-9.fc30.noarch.r 2.5 MB/s | 7.6 kB 00:00 (36/151): gnat-srpm-macros-4-9.fc30.noarch.rpm 2.9 MB/s | 8.5 kB 00:00 (37/151): go-srpm-macros-2-19.fc30.noarch.rpm 3.8 MB/s | 11 kB 00:00 (38/151): nim-srpm-macros-1-4.fc30.noarch.rpm 3.0 MB/s | 8.1 kB 00:00 (39/151): ocaml-srpm-macros-5-5.fc30.noarch.rpm 2.7 MB/s | 7.7 kB 00:00 (40/151): openblas-srpm-macros-2-5.fc30.noarch. 2.5 MB/s | 7.3 kB 00:00 (41/151): glibc-2.29.9000-14.fc31.x86_64.rpm 28 MB/s | 4.0 MB 00:00 (42/151): perl-srpm-macros-1-29.fc30.noarch.rpm 385 kB/s | 8.2 kB 00:00 (43/151): python-srpm-macros-3-42.fc30.noarch.r 4.5 MB/s | 11 kB 00:00 (44/151): qt5-srpm-macros-5.12.1-1.fc31.noarch. 3.0 MB/s | 9.1 kB 00:00 (45/151): rust-srpm-macros-6-4.fc30.noarch.rpm 2.0 MB/s | 9.0 kB 00:00 (46/151): rpm-4.14.2.1-7.fc31.x86_64.rpm 33 MB/s | 489 kB 00:00 (47/151): zip-3.0-24.fc30.x86_64.rpm 21 MB/s | 264 kB 00:00 (48/151): fedora-release-common-31-0.5.noarch.r 3.2 MB/s | 18 kB 00:00 (49/151): glibc-common-2.29.9000-14.fc31.x86_64 30 MB/s | 848 kB 00:00 (50/151): elfutils-0.176-1.fc30.x86_64.rpm 25 MB/s | 291 kB 00:00 (51/151): elfutils-libelf-0.176-1.fc30.x86_64.r 21 MB/s | 177 kB 00:00 (52/151): elfutils-libs-0.176-1.fc30.x86_64.rpm 23 MB/s | 260 kB 00:00 (53/151): guile22-2.2.4-3.fc30.x86_64.rpm 32 MB/s | 6.4 MB 00:00 (54/151): popt-1.16-17.fc30.x86_64.rpm 6.5 MB/s | 55 kB 00:00 (55/151): rpm-build-libs-4.14.2.1-7.fc31.x86_64 12 MB/s | 94 kB 00:00 (56/151): rpm-libs-4.14.2.1-7.fc31.x86_64.rpm 22 MB/s | 287 kB 00:00 (57/151): zstd-1.3.8-2.fc30.x86_64.rpm 23 MB/s | 361 kB 00:00 (58/151): pcre-8.43-1.fc31.x86_64.rpm 16 MB/s | 187 kB 00:00 (59/151): gdb-headless-8.3.50.20190412-6.fc31.x 29 MB/s | 3.6 MB 00:00 (60/151): ncurses-libs-6.1-10.20180923.fc30.x86 11 MB/s | 288 kB 00:00 (61/151): zlib-1.2.11-15.fc30.x86_64.rpm 9.5 MB/s | 89 kB 00:00 (62/151): bzip2-libs-1.0.6-29.fc30.x86_64.rpm 9.1 MB/s | 37 kB 00:00 (63/151): gmp-6.1.2-10.fc31.x86_64.rpm 19 MB/s | 265 kB 00:00 (64/151): libcap-2.26-5.fc30.x86_64.rpm 6.1 MB/s | 46 kB 00:00 (65/151): ncurses-6.1-10.20180923.fc30.x86_64.r 20 MB/s | 360 kB 00:00 (66/151): coreutils-common-8.31-2.fc31.x86_64.r 36 MB/s | 2.0 MB 00:00 (67/151): xz-libs-5.2.4-5.fc30.x86_64.rpm 9.6 MB/s | 85 kB 00:00 (68/151): openssl-libs-1.1.1b-4.fc31.x86_64.rpm 26 MB/s | 1.3 MB 00:00 (69/151): libsigsegv-2.11-7.fc30.x86_64.rpm 5.0 MB/s | 25 kB 00:00 (70/151): filesystem-3.10-1.fc30.x86_64.rpm 25 MB/s | 1.1 MB 00:00 (71/151): mpfr-3.1.6-4.fc30.x86_64.rpm 15 MB/s | 212 kB 00:00 (72/151): readline-8.0-2.fc30.x86_64.rpm 21 MB/s | 191 kB 00:00 (73/151): libblkid-2.33.2-1.fc31.x86_64.rpm 21 MB/s | 146 kB 00:00 (74/151): libcap-ng-0.7.9-7.fc31.x86_64.rpm 5.0 MB/s | 27 kB 00:00 (75/151): libfdisk-2.33.2-1.fc31.x86_64.rpm 26 MB/s | 194 kB 00:00 (76/151): libmount-2.33.2-1.fc31.x86_64.rpm 18 MB/s | 168 kB 00:00 (77/151): libsmartcols-2.33.2-1.fc31.x86_64.rpm 17 MB/s | 108 kB 00:00 (78/151): libutempter-1.1.6-16.fc30.x86_64.rpm 5.3 MB/s | 24 kB 00:00 (79/151): libuuid-2.33.2-1.fc31.x86_64.rpm 8.2 MB/s | 26 kB 00:00 (80/151): binutils-2.32-11.fc31.x86_64.rpm 17 MB/s | 6.0 MB 00:00 (81/151): basesystem-11-7.fc30.noarch.rpm 1.8 MB/s | 6.9 kB 00:00 (82/151): pam-1.3.1-17.fc30.x86_64.rpm 13 MB/s | 624 kB 00:00 (83/151): libgcc-9.0.1-0.12.fc31.x86_64.rpm 9.0 MB/s | 83 kB 00:00 (84/151): systemd-libs-242-1.fc31.x86_64.rpm 10 MB/s | 512 kB 00:00 (85/151): pcre2-10.33-0.4.RC1.fc31.x86_64.rpm 25 MB/s | 248 kB 00:00 (86/151): gc-7.6.4-5.fc30.x86_64.rpm 13 MB/s | 93 kB 00:00 (87/151): libsepol-2.9-1.fc31.x86_64.rpm 11 MB/s | 280 kB 00:00 (88/151): libffi-3.1-19.fc30.x86_64.rpm 2.0 MB/s | 31 kB 00:00 (89/151): libtool-ltdl-2.4.6-29.fc30.x86_64.rpm 2.0 MB/s | 34 kB 00:00 (90/151): libunistring-0.9.10-5.fc30.x86_64.rpm 32 MB/s | 415 kB 00:00 (91/151): libarchive-3.3.3-7.fc31.x86_64.rpm 20 MB/s | 342 kB 00:00 (92/151): libdb-utils-5.3.28-37.fc30.x86_64.rpm 14 MB/s | 129 kB 00:00 (93/151): file-libs-5.36-2.fc31.x86_64.rpm 20 MB/s | 545 kB 00:00 (94/151): fedora-repos-31-0.2.noarch.rpm 1.5 MB/s | 9.2 kB 00:00 (95/151): alternatives-1.11-4.fc31.x86_64.rpm 9.5 MB/s | 33 kB 00:00 (96/151): tzdata-2019a-1.fc31.noarch.rpm 25 MB/s | 425 kB 00:00 (97/151): elfutils-default-yama-scope-0.176-1.f 3.4 MB/s | 16 kB 00:00 (98/151): expat-2.2.6-2.fc30.x86_64.rpm 16 MB/s | 92 kB 00:00 (99/151): binutils-gold-2.32-11.fc31.x86_64.rpm 32 MB/s | 838 kB 00:00 (100/151): libstdc++-9.0.1-0.12.fc31.x86_64.rpm 21 MB/s | 572 kB 00:00 (101/151): libipt-2.0-2.fc30.x86_64.rpm 8.7 MB/s | 51 kB 00:00 (102/151): libbabeltrace-1.5.6-2.fc30.x86_64.rp 12 MB/s | 184 kB 00:00 (103/151): source-highlight-3.1.8-24.fc31.x86_6 39 MB/s | 649 kB 00:00 (104/151): libdb-5.3.28-37.fc30.x86_64.rpm 28 MB/s | 735 kB 00:00 (105/151): libzstd-1.3.8-2.fc30.x86_64.rpm 18 MB/s | 252 kB 00:00 (106/151): lua-libs-5.3.5-5.fc30.x86_64.rpm 21 MB/s | 104 kB 00:00 (107/151): ncurses-base-6.1-10.20180923.fc30.no 12 MB/s | 59 kB 00:00 (108/151): crypto-policies-20190211-2.gite3eacf 8.5 MB/s | 51 kB 00:00 (109/151): ca-certificates-2018.2.26-3.fc30.noa 31 MB/s | 385 kB 00:00 (110/151): cracklib-2.9.6-19.fc30.x86_64.rpm 13 MB/s | 77 kB 00:00 (111/151): libnsl2-1.2.0-4.20180605git4a062cf.f 12 MB/s | 54 kB 00:00 (112/151): libtirpc-1.1.4-2.rc2.fc30.1.x86_64.r 19 MB/s | 97 kB 00:00 (113/151): lz4-libs-1.8.3-2.fc30.x86_64.rpm 8.9 MB/s | 60 kB 00:00 (114/151): libgcrypt-1.8.4-3.fc30.x86_64.rpm 30 MB/s | 435 kB 00:00 (115/151): libatomic_ops-7.6.10-1.fc31.x86_64.r 6.1 MB/s | 34 kB 00:00 (116/151): fedora-gpg-keys-31-0.2.noarch.rpm 14 MB/s | 102 kB 00:00 (117/151): fedora-repos-rawhide-31-0.2.noarch.r 2.1 MB/s | 8.4 kB 00:00 (118/151): libxml2-2.9.9-2.fc30.x86_64.rpm 34 MB/s | 651 kB 00:00 (119/151): gdbm-libs-1.18-4.fc30.x86_64.rpm 9.0 MB/s | 50 kB 00:00 (120/151): python-pip-wheel-19.0.3-1.fc31.noarc 34 MB/s | 1.1 MB 00:00 (121/151): python-setuptools-wheel-40.8.0-1.fc3 22 MB/s | 279 kB 00:00 (122/151): glib2-2.60.0-3.fc31.x86_64.rpm 33 MB/s | 2.5 MB 00:00 (123/151): sqlite-libs-3.27.2-3.fc31.x86_64.rpm 18 MB/s | 540 kB 00:00 (124/151): boost-regex-1.69.0-6.fc30.x86_64.rpm 21 MB/s | 289 kB 00:00 (125/151): ctags-5.8-25.fc30.x86_64.rpm 25 MB/s | 158 kB 00:00 (126/151): libcom_err-1.45.0-1.fc31.x86_64.rpm 4.0 MB/s | 26 kB 00:00 (127/151): krb5-libs-1.17-9.fc31.x86_64.rpm 33 MB/s | 747 kB 00:00 (128/151): libgpg-error-1.33-2.fc30.x86_64.rpm 18 MB/s | 238 kB 00:00 (129/151): keyutils-libs-1.6-2.fc30.x86_64.rpm 4.3 MB/s | 30 kB 00:00 (130/151): libverto-0.3.0-7.fc30.x86_64.rpm 3.3 MB/s | 20 kB 00:00 (131/151): pkgconf-pkg-config-1.6.1-1.fc31.x86_ 2.8 MB/s | 11 kB 00:00 (132/151): pkgconf-1.6.1-1.fc31.x86_64.rpm 7.9 MB/s | 38 kB 00:00 (133/151): python3-libs-3.7.3-1.fc31.x86_64.rpm 30 MB/s | 7.7 MB 00:00 (134/151): pkgconf-m4-1.6.1-1.fc31.noarch.rpm 406 kB/s | 15 kB 00:00 (135/151): libpkgconf-1.6.1-1.fc31.x86_64.rpm 6.5 MB/s | 34 kB 00:00 (136/151): libpwquality-1.4.0-12.fc30.x86_64.rp 13 MB/s | 96 kB 00:00 (137/151): p11-kit-0.23.15-3.fc30.x86_64.rpm 23 MB/s | 240 kB 00:00 (138/151): p11-kit-trust-0.23.15-3.fc30.x86_64. 13 MB/s | 125 kB 00:00 (139/151): libtasn1-4.13-7.fc30.x86_64.rpm 12 MB/s | 67 kB 00:00 (140/151): libmetalink-0.1.3-8.fc30.x86_64.rpm 4.2 MB/s | 28 kB 00:00 (141/151): curl-7.64.1-1.fc31.x86_64.rpm 17 MB/s | 297 kB 00:00 (142/151): libcurl-7.64.1-1.fc31.x86_64.rpm 14 MB/s | 255 kB 00:00 (143/151): brotli-1.0.7-3.fc30.x86_64.rpm 15 MB/s | 311 kB 00:00 (144/151): libidn2-2.1.1a-1.fc30.x86_64.rpm 8.3 MB/s | 89 kB 00:00 (145/151): libpsl-0.20.2-6.fc30.x86_64.rpm 8.8 MB/s | 57 kB 00:00 (146/151): libnghttp2-1.37.0-1.fc31.x86_64.rpm 7.5 MB/s | 69 kB 00:00 (147/151): libssh-0.8.7-1.fc31.x86_64.rpm 23 MB/s | 212 kB 00:00 (148/151): openldap-2.4.47-1.fc30.x86_64.rpm 23 MB/s | 280 kB 00:00 (149/151): publicsuffix-list-dafsa-20190128-2.f 7.3 MB/s | 54 kB 00:00 (150/151): cyrus-sasl-lib-2.1.27-0.6rc7.fc30.x8 18 MB/s | 92 kB 00:00 (151/151): libicu-63.1-2.fc30.x86_64.rpm 36 MB/s | 9.0 MB 00:00 -------------------------------------------------------------------------------- Total 47 MB/s | 76 MB 00:01 warning: /var/lib/mock/883567-fedora-rawhide-x86_64-1555337353.262598/root/var/cache/dnf/fedora-2d95c80a1fa0a67d/packages/shadow-utils-4.6-12.fc31.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 3c3359c4: NOKEY Importing GPG key 0x3C3359C4: Userid : "Fedora (31) " Fingerprint: 7D22 D586 7F2A 4236 474B F7B8 50CB 390B 3C33 59C4 From : /usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-31-primary Key imported successfully Importing GPG key 0xCFC659B9: Userid : "Fedora (30) " Fingerprint: F1D8 EC98 F241 AAF2 0DF6 9420 EF3C 111F CFC6 59B9 From : /usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-30-primary Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Running scriptlet: filesystem-3.10-1.fc30.x86_64 1/1 Preparing : 1/1 Installing : libgcc-9.0.1-0.12.fc31.x86_64 1/151 Running scriptlet: libgcc-9.0.1-0.12.fc31.x86_64 1/151 Installing : publicsuffix-list-dafsa-20190128-2.fc30.noarch 2/151 Installing : pkgconf-m4-1.6.1-1.fc31.noarch 3/151 Installing : python-setuptools-wheel-40.8.0-1.fc30.noarch 4/151 Installing : fedora-gpg-keys-31-0.2.noarch 5/151 Installing : fedora-release-common-31-0.5.noarch 6/151 Installing : fedora-release-31-0.5.noarch 7/151 Installing : fedora-repos-rawhide-31-0.2.noarch 8/151 Installing : fedora-repos-31-0.2.noarch 9/151 Installing : setup-2.13.3-1.fc31.noarch 10/151 Running scriptlet: setup-2.13.3-1.fc31.noarch 10/151 warning: /etc/hosts created as /etc/hosts.rpmnew Installing : filesystem-3.10-1.fc30.x86_64 11/151 Installing : basesystem-11-7.fc30.noarch 12/151 Installing : ncurses-base-6.1-10.20180923.fc30.noarch 13/151 Installing : tzdata-2019a-1.fc31.noarch 14/151 Installing : pcre2-10.33-0.4.RC1.fc31.x86_64 15/151 Installing : libselinux-2.9-1.fc31.x86_64 16/151 Installing : ncurses-libs-6.1-10.20180923.fc30.x86_64 17/151 Installing : glibc-common-2.29.9000-14.fc31.x86_64 18/151 Installing : glibc-minimal-langpack-2.29.9000-14.fc31.x86_64 19/151 Running scriptlet: glibc-2.29.9000-14.fc31.x86_64 20/151 Installing : glibc-2.29.9000-14.fc31.x86_64 20/151 Running scriptlet: glibc-2.29.9000-14.fc31.x86_64 20/151 Installing : bash-5.0.2-1.fc30.x86_64 21/151 Running scriptlet: bash-5.0.2-1.fc30.x86_64 21/151 Installing : libsepol-2.9-1.fc31.x86_64 22/151 Running scriptlet: libsepol-2.9-1.fc31.x86_64 22/151 Installing : zlib-1.2.11-15.fc30.x86_64 23/151 Installing : bzip2-libs-1.0.6-29.fc30.x86_64 24/151 Installing : xz-libs-5.2.4-5.fc30.x86_64 25/151 Installing : libstdc++-9.0.1-0.12.fc31.x86_64 26/151 Installing : elfutils-libelf-0.176-1.fc30.x86_64 27/151 Installing : libxcrypt-4.4.4-2.fc31.x86_64 28/151 Installing : libuuid-2.33.2-1.fc31.x86_64 29/151 Installing : popt-1.16-17.fc30.x86_64 30/151 Installing : libdb-5.3.28-37.fc30.x86_64 31/151 Installing : libattr-2.4.48-5.fc30.x86_64 32/151 Installing : libacl-2.2.53-3.fc30.x86_64 33/151 Installing : sed-4.5-3.fc30.x86_64 34/151 Installing : gmp-1:6.1.2-10.fc31.x86_64 35/151 Installing : readline-8.0-2.fc30.x86_64 36/151 Installing : libffi-3.1-19.fc30.x86_64 37/151 Installing : libcom_err-1.45.0-1.fc31.x86_64 38/151 Installing : libcap-2.26-5.fc30.x86_64 39/151 Installing : libunistring-0.9.10-5.fc30.x86_64 40/151 Installing : expat-2.2.6-2.fc30.x86_64 41/151 Installing : libzstd-1.3.8-2.fc30.x86_64 42/151 Installing : libidn2-2.1.1a-1.fc30.x86_64 43/151 Installing : p11-kit-0.23.15-3.fc30.x86_64 44/151 Installing : mpfr-3.1.6-4.fc30.x86_64 45/151 Installing : unzip-6.0-43.fc30.x86_64 46/151 Installing : file-libs-5.36-2.fc31.x86_64 47/151 Installing : file-5.36-2.fc31.x86_64 48/151 Installing : elfutils-default-yama-scope-0.176-1.fc30.noarch 49/151 Running scriptlet: elfutils-default-yama-scope-0.176-1.fc30.noarch 49/151 Installing : elfutils-libs-0.176-1.fc30.x86_64 50/151 Installing : findutils-1:4.6.0-22.fc30.x86_64 51/151 Installing : pcre-8.43-1.fc31.x86_64 52/151 Installing : grep-3.3-1.fc31.x86_64 53/151 Installing : libcap-ng-0.7.9-7.fc31.x86_64 54/151 Installing : audit-libs-3.0-0.7.20190326git03e7489.fc31.x86_6 55/151 Installing : alternatives-1.11-4.fc31.x86_64 56/151 Installing : lua-libs-5.3.5-5.fc30.x86_64 57/151 Installing : lz4-libs-1.8.3-2.fc30.x86_64 58/151 Installing : libsemanage-2.9-1.fc31.x86_64 59/151 Installing : shadow-utils-2:4.6-12.fc31.x86_64 60/151 Running scriptlet: libutempter-1.1.6-16.fc30.x86_64 61/151 Installing : libutempter-1.1.6-16.fc30.x86_64 61/151 Installing : xz-5.2.4-5.fc30.x86_64 62/151 Installing : elfutils-0.176-1.fc30.x86_64 63/151 Installing : zip-3.0-24.fc30.x86_64 64/151 Installing : libpsl-0.20.2-6.fc30.x86_64 65/151 Installing : libmetalink-0.1.3-8.fc30.x86_64 66/151 Installing : tar-2:1.32-1.fc31.x86_64 67/151 Installing : patch-2.7.6-9.fc31.x86_64 68/151 Installing : libdb-utils-5.3.28-37.fc30.x86_64 69/151 Installing : dwz-0.12-10.fc30.x86_64 70/151 Installing : zstd-1.3.8-2.fc30.x86_64 71/151 Installing : libicu-63.1-2.fc30.x86_64 72/151 Installing : boost-regex-1.69.0-6.fc30.x86_64 73/151 Installing : libxml2-2.9.9-2.fc30.x86_64 74/151 Installing : bzip2-1.0.6-29.fc30.x86_64 75/151 Installing : sqlite-libs-3.27.2-3.fc31.x86_64 76/151 Installing : diffutils-3.7-2.fc30.x86_64 77/151 Installing : cpio-2.12-10.fc30.x86_64 78/151 Installing : ncurses-6.1-10.20180923.fc30.x86_64 79/151 Installing : libsigsegv-2.11-7.fc30.x86_64 80/151 Installing : gawk-4.2.1-6.fc31.x86_64 81/151 Installing : libsmartcols-2.33.2-1.fc31.x86_64 82/151 Installing : libtool-ltdl-2.4.6-29.fc30.x86_64 83/151 Installing : libipt-2.0-2.fc30.x86_64 84/151 Installing : libatomic_ops-7.6.10-1.fc31.x86_64 85/151 Installing : gc-7.6.4-5.fc30.x86_64 86/151 Installing : gdbm-libs-1:1.18-4.fc30.x86_64 87/151 Installing : ctags-5.8-25.fc30.x86_64 88/151 Installing : source-highlight-3.1.8-24.fc31.x86_64 89/151 Installing : libgpg-error-1.33-2.fc30.x86_64 90/151 Installing : libgcrypt-1.8.4-3.fc30.x86_64 91/151 Installing : keyutils-libs-1.6-2.fc30.x86_64 92/151 Installing : libverto-0.3.0-7.fc30.x86_64 93/151 Installing : libpkgconf-1.6.1-1.fc31.x86_64 94/151 Installing : pkgconf-1.6.1-1.fc31.x86_64 95/151 Installing : pkgconf-pkg-config-1.6.1-1.fc31.x86_64 96/151 Installing : libtasn1-4.13-7.fc30.x86_64 97/151 Installing : p11-kit-trust-0.23.15-3.fc30.x86_64 98/151 Running scriptlet: p11-kit-trust-0.23.15-3.fc30.x86_64 98/151 Installing : brotli-1.0.7-3.fc30.x86_64 99/151 Installing : libnghttp2-1.37.0-1.fc31.x86_64 100/151 Installing : coreutils-common-8.31-2.fc31.x86_64 101/151 Installing : openssl-libs-1:1.1.1b-4.fc31.x86_64 102/151 Installing : coreutils-8.31-2.fc31.x86_64 103/151 Running scriptlet: ca-certificates-2018.2.26-3.fc30.noarch 104/151 Installing : ca-certificates-2018.2.26-3.fc30.noarch 104/151 Running scriptlet: ca-certificates-2018.2.26-3.fc30.noarch 104/151 Installing : crypto-policies-20190211-2.gite3eacfc.fc30.noarc 105/151 Running scriptlet: crypto-policies-20190211-2.gite3eacfc.fc30.noarc 105/151 Installing : krb5-libs-1.17-9.fc31.x86_64 106/151 Installing : libtirpc-1.1.4-2.rc2.fc30.1.x86_64 107/151 Installing : libblkid-2.33.2-1.fc31.x86_64 108/151 Running scriptlet: libblkid-2.33.2-1.fc31.x86_64 108/151 Installing : libmount-2.33.2-1.fc31.x86_64 109/151 Installing : libnsl2-1.2.0-4.20180605git4a062cf.fc30.x86_64 110/151 Installing : gzip-1.9-9.fc31.x86_64 111/151 Installing : cracklib-2.9.6-19.fc30.x86_64 112/151 Installing : pam-1.3.1-17.fc30.x86_64 113/151 Installing : libpwquality-1.4.0-12.fc30.x86_64 114/151 Installing : binutils-gold-2.32-11.fc31.x86_64 115/151 Installing : binutils-2.32-11.fc31.x86_64 116/151 Running scriptlet: binutils-2.32-11.fc31.x86_64 116/151 Installing : glib2-2.60.0-3.fc31.x86_64 117/151 Installing : libbabeltrace-1.5.6-2.fc30.x86_64 118/151 Installing : libfdisk-2.33.2-1.fc31.x86_64 119/151 Installing : libssh-0.8.7-1.fc31.x86_64 120/151 Installing : cyrus-sasl-lib-2.1.27-0.6rc7.fc30.x86_64 121/151 Installing : openldap-2.4.47-1.fc30.x86_64 122/151 Installing : libcurl-7.64.1-1.fc31.x86_64 123/151 Installing : curl-7.64.1-1.fc31.x86_64 124/151 Installing : python-pip-wheel-19.0.3-1.fc31.noarch 125/151 Installing : python3-libs-3.7.3-1.fc31.x86_64 126/151 Installing : guile22-2.2.4-3.fc30.x86_64 127/151 Running scriptlet: guile22-2.2.4-3.fc30.x86_64 127/151 Installing : systemd-libs-242-1.fc31.x86_64 128/151 Running scriptlet: systemd-libs-242-1.fc31.x86_64 128/151 Installing : libarchive-3.3.3-7.fc31.x86_64 129/151 Installing : rpm-libs-4.14.2.1-7.fc31.x86_64 130/151 Installing : rpm-4.14.2.1-7.fc31.x86_64 131/151 Installing : efi-srpm-macros-4-2.fc30.noarch 132/151 Installing : gdb-headless-8.3.50.20190412-6.fc31.x86_64 133/151 Installing : rpm-build-libs-4.14.2.1-7.fc31.x86_64 134/151 Installing : rust-srpm-macros-6-4.fc30.noarch 135/151 Installing : qt5-srpm-macros-5.12.1-1.fc31.noarch 136/151 Installing : python-srpm-macros-3-42.fc30.noarch 137/151 Installing : perl-srpm-macros-1-29.fc30.noarch 138/151 Installing : openblas-srpm-macros-2-5.fc30.noarch 139/151 Installing : ocaml-srpm-macros-5-5.fc30.noarch 140/151 Installing : nim-srpm-macros-1-4.fc30.noarch 141/151 Installing : go-srpm-macros-2-19.fc30.noarch 142/151 Installing : gnat-srpm-macros-4-9.fc30.noarch 143/151 Installing : ghc-srpm-macros-1.4.2-9.fc30.noarch 144/151 Installing : fpc-srpm-macros-1.2-1.fc31.noarch 145/151 Installing : redhat-rpm-config-128-1.fc30.noarch 146/151 Installing : rpm-build-4.14.2.1-7.fc31.x86_64 147/151 Installing : util-linux-2.33.2-1.fc31.x86_64 148/151 Running scriptlet: util-linux-2.33.2-1.fc31.x86_64 148/151 Installing : make-1:4.2.1-13.fc30.x86_64 149/151 Installing : info-6.6-1.fc30.x86_64 150/151 Installing : which-2.21-14.fc30.x86_64 151/151 Running scriptlet: filesystem-3.10-1.fc30.x86_64 151/151 Running scriptlet: glibc-common-2.29.9000-14.fc31.x86_64 151/151 Running scriptlet: glib2-2.60.0-3.fc31.x86_64 151/151 Running scriptlet: info-6.6-1.fc30.x86_64 151/151 Verifying : shadow-utils-2:4.6-12.fc31.x86_64 1/151 Verifying : diffutils-3.7-2.fc30.x86_64 2/151 Verifying : gzip-1.9-9.fc31.x86_64 3/151 Verifying : make-1:4.2.1-13.fc30.x86_64 4/151 Verifying : redhat-rpm-config-128-1.fc30.noarch 5/151 Verifying : glibc-minimal-langpack-2.29.9000-14.fc31.x86_64 6/151 Verifying : findutils-1:4.6.0-22.fc30.x86_64 7/151 Verifying : fedora-release-31-0.5.noarch 8/151 Verifying : sed-4.5-3.fc30.x86_64 9/151 Verifying : rpm-build-4.14.2.1-7.fc31.x86_64 10/151 Verifying : grep-3.3-1.fc31.x86_64 11/151 Verifying : which-2.21-14.fc30.x86_64 12/151 Verifying : patch-2.7.6-9.fc31.x86_64 13/151 Verifying : tar-2:1.32-1.fc31.x86_64 14/151 Verifying : info-6.6-1.fc30.x86_64 15/151 Verifying : unzip-6.0-43.fc30.x86_64 16/151 Verifying : cpio-2.12-10.fc30.x86_64 17/151 Verifying : coreutils-8.31-2.fc31.x86_64 18/151 Verifying : xz-5.2.4-5.fc30.x86_64 19/151 Verifying : bzip2-1.0.6-29.fc30.x86_64 20/151 Verifying : gawk-4.2.1-6.fc31.x86_64 21/151 Verifying : util-linux-2.33.2-1.fc31.x86_64 22/151 Verifying : bash-5.0.2-1.fc30.x86_64 23/151 Verifying : audit-libs-3.0-0.7.20190326git03e7489.fc31.x86_6 24/151 Verifying : glibc-2.29.9000-14.fc31.x86_64 25/151 Verifying : libacl-2.2.53-3.fc30.x86_64 26/151 Verifying : libattr-2.4.48-5.fc30.x86_64 27/151 Verifying : libselinux-2.9-1.fc31.x86_64 28/151 Verifying : libsemanage-2.9-1.fc31.x86_64 29/151 Verifying : libxcrypt-4.4.4-2.fc31.x86_64 30/151 Verifying : setup-2.13.3-1.fc31.noarch 31/151 Verifying : guile22-2.2.4-3.fc30.x86_64 32/151 Verifying : dwz-0.12-10.fc30.x86_64 33/151 Verifying : efi-srpm-macros-4-2.fc30.noarch 34/151 Verifying : file-5.36-2.fc31.x86_64 35/151 Verifying : fpc-srpm-macros-1.2-1.fc31.noarch 36/151 Verifying : ghc-srpm-macros-1.4.2-9.fc30.noarch 37/151 Verifying : gnat-srpm-macros-4-9.fc30.noarch 38/151 Verifying : go-srpm-macros-2-19.fc30.noarch 39/151 Verifying : nim-srpm-macros-1-4.fc30.noarch 40/151 Verifying : ocaml-srpm-macros-5-5.fc30.noarch 41/151 Verifying : openblas-srpm-macros-2-5.fc30.noarch 42/151 Verifying : perl-srpm-macros-1-29.fc30.noarch 43/151 Verifying : python-srpm-macros-3-42.fc30.noarch 44/151 Verifying : qt5-srpm-macros-5.12.1-1.fc31.noarch 45/151 Verifying : rpm-4.14.2.1-7.fc31.x86_64 46/151 Verifying : rust-srpm-macros-6-4.fc30.noarch 47/151 Verifying : zip-3.0-24.fc30.x86_64 48/151 Verifying : glibc-common-2.29.9000-14.fc31.x86_64 49/151 Verifying : fedora-release-common-31-0.5.noarch 50/151 Verifying : binutils-2.32-11.fc31.x86_64 51/151 Verifying : elfutils-0.176-1.fc30.x86_64 52/151 Verifying : elfutils-libelf-0.176-1.fc30.x86_64 53/151 Verifying : elfutils-libs-0.176-1.fc30.x86_64 54/151 Verifying : gdb-headless-8.3.50.20190412-6.fc31.x86_64 55/151 Verifying : popt-1.16-17.fc30.x86_64 56/151 Verifying : rpm-build-libs-4.14.2.1-7.fc31.x86_64 57/151 Verifying : rpm-libs-4.14.2.1-7.fc31.x86_64 58/151 Verifying : zstd-1.3.8-2.fc30.x86_64 59/151 Verifying : pcre-8.43-1.fc31.x86_64 60/151 Verifying : ncurses-libs-6.1-10.20180923.fc30.x86_64 61/151 Verifying : zlib-1.2.11-15.fc30.x86_64 62/151 Verifying : bzip2-libs-1.0.6-29.fc30.x86_64 63/151 Verifying : coreutils-common-8.31-2.fc31.x86_64 64/151 Verifying : gmp-1:6.1.2-10.fc31.x86_64 65/151 Verifying : libcap-2.26-5.fc30.x86_64 66/151 Verifying : ncurses-6.1-10.20180923.fc30.x86_64 67/151 Verifying : openssl-libs-1:1.1.1b-4.fc31.x86_64 68/151 Verifying : xz-libs-5.2.4-5.fc30.x86_64 69/151 Verifying : filesystem-3.10-1.fc30.x86_64 70/151 Verifying : libsigsegv-2.11-7.fc30.x86_64 71/151 Verifying : mpfr-3.1.6-4.fc30.x86_64 72/151 Verifying : readline-8.0-2.fc30.x86_64 73/151 Verifying : libblkid-2.33.2-1.fc31.x86_64 74/151 Verifying : libcap-ng-0.7.9-7.fc31.x86_64 75/151 Verifying : libfdisk-2.33.2-1.fc31.x86_64 76/151 Verifying : libmount-2.33.2-1.fc31.x86_64 77/151 Verifying : libsmartcols-2.33.2-1.fc31.x86_64 78/151 Verifying : libutempter-1.1.6-16.fc30.x86_64 79/151 Verifying : libuuid-2.33.2-1.fc31.x86_64 80/151 Verifying : pam-1.3.1-17.fc30.x86_64 81/151 Verifying : systemd-libs-242-1.fc31.x86_64 82/151 Verifying : basesystem-11-7.fc30.noarch 83/151 Verifying : libgcc-9.0.1-0.12.fc31.x86_64 84/151 Verifying : libsepol-2.9-1.fc31.x86_64 85/151 Verifying : pcre2-10.33-0.4.RC1.fc31.x86_64 86/151 Verifying : gc-7.6.4-5.fc30.x86_64 87/151 Verifying : libffi-3.1-19.fc30.x86_64 88/151 Verifying : libtool-ltdl-2.4.6-29.fc30.x86_64 89/151 Verifying : libunistring-0.9.10-5.fc30.x86_64 90/151 Verifying : file-libs-5.36-2.fc31.x86_64 91/151 Verifying : libarchive-3.3.3-7.fc31.x86_64 92/151 Verifying : libdb-utils-5.3.28-37.fc30.x86_64 93/151 Verifying : tzdata-2019a-1.fc31.noarch 94/151 Verifying : fedora-repos-31-0.2.noarch 95/151 Verifying : alternatives-1.11-4.fc31.x86_64 96/151 Verifying : binutils-gold-2.32-11.fc31.x86_64 97/151 Verifying : libstdc++-9.0.1-0.12.fc31.x86_64 98/151 Verifying : elfutils-default-yama-scope-0.176-1.fc30.noarch 99/151 Verifying : expat-2.2.6-2.fc30.x86_64 100/151 Verifying : libbabeltrace-1.5.6-2.fc30.x86_64 101/151 Verifying : libipt-2.0-2.fc30.x86_64 102/151 Verifying : python3-libs-3.7.3-1.fc31.x86_64 103/151 Verifying : source-highlight-3.1.8-24.fc31.x86_64 104/151 Verifying : libdb-5.3.28-37.fc30.x86_64 105/151 Verifying : libzstd-1.3.8-2.fc30.x86_64 106/151 Verifying : lua-libs-5.3.5-5.fc30.x86_64 107/151 Verifying : ncurses-base-6.1-10.20180923.fc30.noarch 108/151 Verifying : ca-certificates-2018.2.26-3.fc30.noarch 109/151 Verifying : crypto-policies-20190211-2.gite3eacfc.fc30.noarc 110/151 Verifying : cracklib-2.9.6-19.fc30.x86_64 111/151 Verifying : libnsl2-1.2.0-4.20180605git4a062cf.fc30.x86_64 112/151 Verifying : libtirpc-1.1.4-2.rc2.fc30.1.x86_64 113/151 Verifying : libgcrypt-1.8.4-3.fc30.x86_64 114/151 Verifying : lz4-libs-1.8.3-2.fc30.x86_64 115/151 Verifying : libatomic_ops-7.6.10-1.fc31.x86_64 116/151 Verifying : libxml2-2.9.9-2.fc30.x86_64 117/151 Verifying : fedora-gpg-keys-31-0.2.noarch 118/151 Verifying : fedora-repos-rawhide-31-0.2.noarch 119/151 Verifying : glib2-2.60.0-3.fc31.x86_64 120/151 Verifying : gdbm-libs-1:1.18-4.fc30.x86_64 121/151 Verifying : python-pip-wheel-19.0.3-1.fc31.noarch 122/151 Verifying : python-setuptools-wheel-40.8.0-1.fc30.noarch 123/151 Verifying : sqlite-libs-3.27.2-3.fc31.x86_64 124/151 Verifying : boost-regex-1.69.0-6.fc30.x86_64 125/151 Verifying : ctags-5.8-25.fc30.x86_64 126/151 Verifying : krb5-libs-1.17-9.fc31.x86_64 127/151 Verifying : libcom_err-1.45.0-1.fc31.x86_64 128/151 Verifying : libgpg-error-1.33-2.fc30.x86_64 129/151 Verifying : libicu-63.1-2.fc30.x86_64 130/151 Verifying : keyutils-libs-1.6-2.fc30.x86_64 131/151 Verifying : libverto-0.3.0-7.fc30.x86_64 132/151 Verifying : pkgconf-pkg-config-1.6.1-1.fc31.x86_64 133/151 Verifying : pkgconf-1.6.1-1.fc31.x86_64 134/151 Verifying : pkgconf-m4-1.6.1-1.fc31.noarch 135/151 Verifying : libpkgconf-1.6.1-1.fc31.x86_64 136/151 Verifying : libpwquality-1.4.0-12.fc30.x86_64 137/151 Verifying : p11-kit-0.23.15-3.fc30.x86_64 138/151 Verifying : p11-kit-trust-0.23.15-3.fc30.x86_64 139/151 Verifying : libtasn1-4.13-7.fc30.x86_64 140/151 Verifying : curl-7.64.1-1.fc31.x86_64 141/151 Verifying : libmetalink-0.1.3-8.fc30.x86_64 142/151 Verifying : libcurl-7.64.1-1.fc31.x86_64 143/151 Verifying : brotli-1.0.7-3.fc30.x86_64 144/151 Verifying : libidn2-2.1.1a-1.fc30.x86_64 145/151 Verifying : libnghttp2-1.37.0-1.fc31.x86_64 146/151 Verifying : libpsl-0.20.2-6.fc30.x86_64 147/151 Verifying : libssh-0.8.7-1.fc31.x86_64 148/151 Verifying : openldap-2.4.47-1.fc30.x86_64 149/151 Verifying : publicsuffix-list-dafsa-20190128-2.fc30.noarch 150/151 Verifying : cyrus-sasl-lib-2.1.27-0.6rc7.fc30.x86_64 151/151 Installed: bash.x86_64 5.0.2-1.fc30 bzip2.x86_64 1.0.6-29.fc30 coreutils.x86_64 8.31-2.fc31 cpio.x86_64 2.12-10.fc30 diffutils.x86_64 3.7-2.fc30 fedora-release.noarch 31-0.5 findutils.x86_64 1:4.6.0-22.fc30 gawk.x86_64 4.2.1-6.fc31 glibc-minimal-langpack.x86_64 2.29.9000-14.fc31 grep.x86_64 3.3-1.fc31 gzip.x86_64 1.9-9.fc31 info.x86_64 6.6-1.fc30 make.x86_64 1:4.2.1-13.fc30 patch.x86_64 2.7.6-9.fc31 redhat-rpm-config.noarch 128-1.fc30 rpm-build.x86_64 4.14.2.1-7.fc31 sed.x86_64 4.5-3.fc30 shadow-utils.x86_64 2:4.6-12.fc31 tar.x86_64 2:1.32-1.fc31 unzip.x86_64 6.0-43.fc30 util-linux.x86_64 2.33.2-1.fc31 which.x86_64 2.21-14.fc30 xz.x86_64 5.2.4-5.fc30 alternatives.x86_64 1.11-4.fc31 audit-libs.x86_64 3.0-0.7.20190326git03e7489.fc31 basesystem.noarch 11-7.fc30 binutils.x86_64 2.32-11.fc31 binutils-gold.x86_64 2.32-11.fc31 boost-regex.x86_64 1.69.0-6.fc30 brotli.x86_64 1.0.7-3.fc30 bzip2-libs.x86_64 1.0.6-29.fc30 ca-certificates.noarch 2018.2.26-3.fc30 coreutils-common.x86_64 8.31-2.fc31 cracklib.x86_64 2.9.6-19.fc30 crypto-policies.noarch 20190211-2.gite3eacfc.fc30 ctags.x86_64 5.8-25.fc30 curl.x86_64 7.64.1-1.fc31 cyrus-sasl-lib.x86_64 2.1.27-0.6rc7.fc30 dwz.x86_64 0.12-10.fc30 efi-srpm-macros.noarch 4-2.fc30 elfutils.x86_64 0.176-1.fc30 elfutils-default-yama-scope.noarch 0.176-1.fc30 elfutils-libelf.x86_64 0.176-1.fc30 elfutils-libs.x86_64 0.176-1.fc30 expat.x86_64 2.2.6-2.fc30 fedora-gpg-keys.noarch 31-0.2 fedora-release-common.noarch 31-0.5 fedora-repos.noarch 31-0.2 fedora-repos-rawhide.noarch 31-0.2 file.x86_64 5.36-2.fc31 file-libs.x86_64 5.36-2.fc31 filesystem.x86_64 3.10-1.fc30 fpc-srpm-macros.noarch 1.2-1.fc31 gc.x86_64 7.6.4-5.fc30 gdb-headless.x86_64 8.3.50.20190412-6.fc31 gdbm-libs.x86_64 1:1.18-4.fc30 ghc-srpm-macros.noarch 1.4.2-9.fc30 glib2.x86_64 2.60.0-3.fc31 glibc.x86_64 2.29.9000-14.fc31 glibc-common.x86_64 2.29.9000-14.fc31 gmp.x86_64 1:6.1.2-10.fc31 gnat-srpm-macros.noarch 4-9.fc30 go-srpm-macros.noarch 2-19.fc30 guile22.x86_64 2.2.4-3.fc30 keyutils-libs.x86_64 1.6-2.fc30 krb5-libs.x86_64 1.17-9.fc31 libacl.x86_64 2.2.53-3.fc30 libarchive.x86_64 3.3.3-7.fc31 libatomic_ops.x86_64 7.6.10-1.fc31 libattr.x86_64 2.4.48-5.fc30 libbabeltrace.x86_64 1.5.6-2.fc30 libblkid.x86_64 2.33.2-1.fc31 libcap.x86_64 2.26-5.fc30 libcap-ng.x86_64 0.7.9-7.fc31 libcom_err.x86_64 1.45.0-1.fc31 libcurl.x86_64 7.64.1-1.fc31 libdb.x86_64 5.3.28-37.fc30 libdb-utils.x86_64 5.3.28-37.fc30 libfdisk.x86_64 2.33.2-1.fc31 libffi.x86_64 3.1-19.fc30 libgcc.x86_64 9.0.1-0.12.fc31 libgcrypt.x86_64 1.8.4-3.fc30 libgpg-error.x86_64 1.33-2.fc30 libicu.x86_64 63.1-2.fc30 libidn2.x86_64 2.1.1a-1.fc30 libipt.x86_64 2.0-2.fc30 libmetalink.x86_64 0.1.3-8.fc30 libmount.x86_64 2.33.2-1.fc31 libnghttp2.x86_64 1.37.0-1.fc31 libnsl2.x86_64 1.2.0-4.20180605git4a062cf.fc30 libpkgconf.x86_64 1.6.1-1.fc31 libpsl.x86_64 0.20.2-6.fc30 libpwquality.x86_64 1.4.0-12.fc30 libselinux.x86_64 2.9-1.fc31 libsemanage.x86_64 2.9-1.fc31 libsepol.x86_64 2.9-1.fc31 libsigsegv.x86_64 2.11-7.fc30 libsmartcols.x86_64 2.33.2-1.fc31 libssh.x86_64 0.8.7-1.fc31 libstdc++.x86_64 9.0.1-0.12.fc31 libtasn1.x86_64 4.13-7.fc30 libtirpc.x86_64 1.1.4-2.rc2.fc30.1 libtool-ltdl.x86_64 2.4.6-29.fc30 libunistring.x86_64 0.9.10-5.fc30 libutempter.x86_64 1.1.6-16.fc30 libuuid.x86_64 2.33.2-1.fc31 libverto.x86_64 0.3.0-7.fc30 libxcrypt.x86_64 4.4.4-2.fc31 libxml2.x86_64 2.9.9-2.fc30 libzstd.x86_64 1.3.8-2.fc30 lua-libs.x86_64 5.3.5-5.fc30 lz4-libs.x86_64 1.8.3-2.fc30 mpfr.x86_64 3.1.6-4.fc30 ncurses.x86_64 6.1-10.20180923.fc30 ncurses-base.noarch 6.1-10.20180923.fc30 ncurses-libs.x86_64 6.1-10.20180923.fc30 nim-srpm-macros.noarch 1-4.fc30 ocaml-srpm-macros.noarch 5-5.fc30 openblas-srpm-macros.noarch 2-5.fc30 openldap.x86_64 2.4.47-1.fc30 openssl-libs.x86_64 1:1.1.1b-4.fc31 p11-kit.x86_64 0.23.15-3.fc30 p11-kit-trust.x86_64 0.23.15-3.fc30 pam.x86_64 1.3.1-17.fc30 pcre.x86_64 8.43-1.fc31 pcre2.x86_64 10.33-0.4.RC1.fc31 perl-srpm-macros.noarch 1-29.fc30 pkgconf.x86_64 1.6.1-1.fc31 pkgconf-m4.noarch 1.6.1-1.fc31 pkgconf-pkg-config.x86_64 1.6.1-1.fc31 popt.x86_64 1.16-17.fc30 publicsuffix-list-dafsa.noarch 20190128-2.fc30 python-pip-wheel.noarch 19.0.3-1.fc31 python-setuptools-wheel.noarch 40.8.0-1.fc30 python-srpm-macros.noarch 3-42.fc30 python3-libs.x86_64 3.7.3-1.fc31 qt5-srpm-macros.noarch 5.12.1-1.fc31 readline.x86_64 8.0-2.fc30 rpm.x86_64 4.14.2.1-7.fc31 rpm-build-libs.x86_64 4.14.2.1-7.fc31 rpm-libs.x86_64 4.14.2.1-7.fc31 rust-srpm-macros.noarch 6-4.fc30 setup.noarch 2.13.3-1.fc31 source-highlight.x86_64 3.1.8-24.fc31 sqlite-libs.x86_64 3.27.2-3.fc31 systemd-libs.x86_64 242-1.fc31 tzdata.noarch 2019a-1.fc31 xz-libs.x86_64 5.2.4-5.fc30 zip.x86_64 3.0-24.fc30 zlib.x86_64 1.2.11-15.fc30 zstd.x86_64 1.3.8-2.fc30 Complete! Finish: dnf install Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/python-passlib-1.7.1-3.fc31.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/883567-fedora-rawhide-x86_64-1555337353.262598/root/var/log/dnf.rpm.log /var/lib/mock/883567-fedora-rawhide-x86_64-1555337353.262598/root/var/log/dnf.librepo.log /var/lib/mock/883567-fedora-rawhide-x86_64-1555337353.262598/root/var/log/dnf.log Finish: buildsrpm INFO: Done(/tmp/tmp43joapm0/python-passlib.spec) Config(child) 1 minutes 6 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run Running (timeout=64800): unbuffer /usr/bin/mock --rebuild /var/lib/copr-rpmbuild/results/python-passlib-1.7.1-3.fc31.src.rpm --configdir /var/lib/copr-rpmbuild/results/configs --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1555337421.721624 -r child WARNING: Could not find required logging config file: /var/lib/copr-rpmbuild/results/configs/logging.ini. Using default... INFO: mock.py version 1.4.14 starting (python version = 3.6.5)... Start: init plugins INFO: tmpfs initialized INFO: selinux disabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins Start: run INFO: Start(/var/lib/copr-rpmbuild/results/python-passlib-1.7.1-3.fc31.src.rpm) Config(883567-fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Start: chroot init INFO: mounting tmpfs at /var/lib/mock/883567-fedora-rawhide-x86_64-1555337421.721624/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled HW Info plugin Mock Version: 1.4.14 INFO: Mock Version: 1.4.14 Start: dnf update 'Copr repository' 23 kB/s | 1.6 kB 00:00 fedora 65 MB/s | 61 MB 00:00 Last metadata expiration check: 0:00:00 ago on Mon 15 Apr 2019 02:10:28 PM UTC. Dependencies resolved. Nothing to do. Complete! Finish: dnf update Finish: chroot init Start: build phase for python-passlib-1.7.1-3.fc31.src.rpm Start: build setup for python-passlib-1.7.1-3.fc31.src.rpm Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/python-passlib-1.7.1-3.fc31.src.rpm 'Copr repository' 66 kB/s | 4.3 kB 00:00 Last metadata expiration check: 0:00:00 ago on Mon 15 Apr 2019 02:10:59 PM UTC. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: python2-devel x86_64 2.7.16-1.fc31 fedora 356 k python2-nose noarch 1.3.7-22.fc30 fedora 261 k python2-setuptools noarch 40.8.0-1.fc30 fedora 644 k python3-devel x86_64 3.7.3-1.fc31 fedora 211 k python3-nose noarch 1.3.7-22.fc30 fedora 261 k python3-setuptools noarch 40.8.0-1.fc30 fedora 636 k Installing dependencies: gdbm x86_64 1:1.18-4.fc30 fedora 116 k python-rpm-macros noarch 3-42.fc30 fedora 11 k python2 x86_64 2.7.16-1.fc31 fedora 46 k python2-libs x86_64 2.7.16-1.fc31 fedora 6.3 M python2-rpm-macros noarch 3-42.fc30 fedora 10 k python3 x86_64 3.7.3-1.fc31 fedora 37 k python3-rpm-generators noarch 7-2.fc30 fedora 23 k python3-rpm-macros noarch 3-42.fc30 fedora 10 k Transaction Summary ================================================================================ Install 14 Packages Total download size: 8.8 M Installed size: 37 M Downloading Packages: (1/14): python3-nose-1.3.7-22.fc30.noarch.rpm 4.4 MB/s | 261 kB 00:00 (2/14): python2-nose-1.3.7-22.fc30.noarch.rpm 3.8 MB/s | 261 kB 00:00 (3/14): python2-setuptools-40.8.0-1.fc30.noarch 8.7 MB/s | 644 kB 00:00 (4/14): python3-setuptools-40.8.0-1.fc30.noarch 24 MB/s | 636 kB 00:00 (5/14): python3-devel-3.7.3-1.fc31.x86_64.rpm 15 MB/s | 211 kB 00:00 (6/14): python2-devel-2.7.16-1.fc31.x86_64.rpm 14 MB/s | 356 kB 00:00 (7/14): python-rpm-macros-3-42.fc30.noarch.rpm 1.7 MB/s | 11 kB 00:00 (8/14): python2-2.7.16-1.fc31.x86_64.rpm 6.9 MB/s | 46 kB 00:00 (9/14): python2-rpm-macros-3-42.fc30.noarch.rpm 3.4 MB/s | 10 kB 00:00 (10/14): python3-rpm-generators-7-2.fc30.noarch 7.7 MB/s | 23 kB 00:00 (11/14): python3-rpm-macros-3-42.fc30.noarch.rp 3.5 MB/s | 10 kB 00:00 (12/14): python3-3.7.3-1.fc31.x86_64.rpm 9.8 MB/s | 37 kB 00:00 (13/14): gdbm-1.18-4.fc30.x86_64.rpm 18 MB/s | 116 kB 00:00 (14/14): python2-libs-2.7.16-1.fc31.x86_64.rpm 49 MB/s | 6.3 MB 00:00 -------------------------------------------------------------------------------- Total 28 MB/s | 8.8 MB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : python3-3.7.3-1.fc31.x86_64 1/14 Installing : python3-setuptools-40.8.0-1.fc30.noarch 2/14 Installing : python3-rpm-generators-7-2.fc30.noarch 3/14 Installing : python-rpm-macros-3-42.fc30.noarch 4/14 Installing : gdbm-1:1.18-4.fc30.x86_64 5/14 Installing : python2-libs-2.7.16-1.fc31.x86_64 6/14 Installing : python2-2.7.16-1.fc31.x86_64 7/14 Installing : python2-setuptools-40.8.0-1.fc30.noarch 8/14 Installing : python3-rpm-macros-3-42.fc30.noarch 9/14 Installing : python2-rpm-macros-3-42.fc30.noarch 10/14 Installing : python2-devel-2.7.16-1.fc31.x86_64 11/14 Installing : python3-devel-3.7.3-1.fc31.x86_64 12/14 Installing : python2-nose-1.3.7-22.fc30.noarch 13/14 Installing : python3-nose-1.3.7-22.fc30.noarch 14/14 Running scriptlet: python3-nose-1.3.7-22.fc30.noarch 14/14 Verifying : python2-nose-1.3.7-22.fc30.noarch 1/14 Verifying : python2-setuptools-40.8.0-1.fc30.noarch 2/14 Verifying : python3-nose-1.3.7-22.fc30.noarch 3/14 Verifying : python3-setuptools-40.8.0-1.fc30.noarch 4/14 Verifying : python2-devel-2.7.16-1.fc31.x86_64 5/14 Verifying : python3-devel-3.7.3-1.fc31.x86_64 6/14 Verifying : python-rpm-macros-3-42.fc30.noarch 7/14 Verifying : python2-2.7.16-1.fc31.x86_64 8/14 Verifying : python2-libs-2.7.16-1.fc31.x86_64 9/14 Verifying : python2-rpm-macros-3-42.fc30.noarch 10/14 Verifying : python3-rpm-generators-7-2.fc30.noarch 11/14 Verifying : python3-rpm-macros-3-42.fc30.noarch 12/14 Verifying : gdbm-1:1.18-4.fc30.x86_64 13/14 Verifying : python3-3.7.3-1.fc31.x86_64 14/14 Installed: python2-devel.x86_64 2.7.16-1.fc31 python2-nose.noarch 1.3.7-22.fc30 python2-setuptools.noarch 40.8.0-1.fc30 python3-devel.x86_64 3.7.3-1.fc31 python3-nose.noarch 1.3.7-22.fc30 python3-setuptools.noarch 40.8.0-1.fc30 gdbm.x86_64 1:1.18-4.fc30 python-rpm-macros.noarch 3-42.fc30 python2.x86_64 2.7.16-1.fc31 python2-libs.x86_64 2.7.16-1.fc31 python2-rpm-macros.noarch 3-42.fc30 python3.x86_64 3.7.3-1.fc31 python3-rpm-generators.noarch 7-2.fc30 python3-rpm-macros.noarch 3-42.fc30 Complete! Finish: build setup for python-passlib-1.7.1-3.fc31.src.rpm Start: rpmbuild python-passlib-1.7.1-3.fc31.src.rpm Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.pDNH6u + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf passlib-1.7.1 + /usr/bin/gzip -dc /builddir/build/SOURCES/passlib-1.7.1.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd passlib-1.7.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/bin/cat /builddir/build/SOURCES/python-passlib-1.7.1-libxcrypt-compat.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch + rm -fr passlib.egg-info + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.hcRyTv + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + sleep 1 + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python2 setup.py build '--executable=/usr/bin/python2 -s' running build running build_py creating build creating build/lib creating build/lib/passlib copying passlib/win32.py -> build/lib/passlib copying passlib/apache.py -> build/lib/passlib copying passlib/totp.py -> build/lib/passlib copying passlib/apps.py -> build/lib/passlib copying passlib/registry.py -> build/lib/passlib copying passlib/hash.py -> build/lib/passlib copying passlib/pwd.py -> build/lib/passlib copying passlib/exc.py -> build/lib/passlib copying passlib/hosts.py -> build/lib/passlib copying passlib/context.py -> build/lib/passlib copying passlib/ifc.py -> build/lib/passlib copying passlib/__init__.py -> build/lib/passlib creating build/lib/passlib/tests copying passlib/tests/test_handlers.py -> build/lib/passlib/tests copying passlib/tests/test_context.py -> build/lib/passlib/tests copying passlib/tests/test_context_deprecated.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_des.py -> build/lib/passlib/tests copying passlib/tests/__main__.py -> build/lib/passlib/tests copying passlib/tests/test_registry.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_scrypt.py -> build/lib/passlib/tests copying passlib/tests/test_ext_django.py -> build/lib/passlib/tests copying passlib/tests/test_win32.py -> build/lib/passlib/tests copying passlib/tests/tox_support.py -> build/lib/passlib/tests copying passlib/tests/test_hosts.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_builtin_md4.py -> build/lib/passlib/tests copying passlib/tests/utils.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_django.py -> build/lib/passlib/tests copying passlib/tests/backports.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_cisco.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_bcrypt.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_argon2.py -> build/lib/passlib/tests copying passlib/tests/_test_bad_register.py -> build/lib/passlib/tests copying passlib/tests/test_totp.py -> build/lib/passlib/tests copying passlib/tests/test_ext_django_source.py -> build/lib/passlib/tests copying passlib/tests/test_utils_pbkdf2.py -> build/lib/passlib/tests copying passlib/tests/test_apps.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_pbkdf2.py -> build/lib/passlib/tests copying passlib/tests/test_utils.py -> build/lib/passlib/tests copying passlib/tests/test_apache.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_digest.py -> build/lib/passlib/tests copying passlib/tests/test_pwd.py -> build/lib/passlib/tests copying passlib/tests/test_utils_md4.py -> build/lib/passlib/tests copying passlib/tests/test_utils_handlers.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_scrypt.py -> build/lib/passlib/tests copying passlib/tests/__init__.py -> build/lib/passlib/tests creating build/lib/passlib/handlers copying passlib/handlers/misc.py -> build/lib/passlib/handlers copying passlib/handlers/sun_md5_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/cisco.py -> build/lib/passlib/handlers copying passlib/handlers/mysql.py -> build/lib/passlib/handlers copying passlib/handlers/phpass.py -> build/lib/passlib/handlers copying passlib/handlers/pbkdf2.py -> build/lib/passlib/handlers copying passlib/handlers/django.py -> build/lib/passlib/handlers copying passlib/handlers/postgres.py -> build/lib/passlib/handlers copying passlib/handlers/windows.py -> build/lib/passlib/handlers copying passlib/handlers/digests.py -> build/lib/passlib/handlers copying passlib/handlers/mssql.py -> build/lib/passlib/handlers copying passlib/handlers/sha2_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/md5_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/bcrypt.py -> build/lib/passlib/handlers copying passlib/handlers/argon2.py -> build/lib/passlib/handlers copying passlib/handlers/sha1_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/des_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/roundup.py -> build/lib/passlib/handlers copying passlib/handlers/scram.py -> build/lib/passlib/handlers copying passlib/handlers/oracle.py -> build/lib/passlib/handlers copying passlib/handlers/scrypt.py -> build/lib/passlib/handlers copying passlib/handlers/ldap_digests.py -> build/lib/passlib/handlers copying passlib/handlers/__init__.py -> build/lib/passlib/handlers copying passlib/handlers/fshp.py -> build/lib/passlib/handlers creating build/lib/passlib/_setup copying passlib/_setup/stamp.py -> build/lib/passlib/_setup copying passlib/_setup/__init__.py -> build/lib/passlib/_setup creating build/lib/passlib/crypto copying passlib/crypto/des.py -> build/lib/passlib/crypto copying passlib/crypto/digest.py -> build/lib/passlib/crypto copying passlib/crypto/_md4.py -> build/lib/passlib/crypto copying passlib/crypto/__init__.py -> build/lib/passlib/crypto creating build/lib/passlib/ext copying passlib/ext/__init__.py -> build/lib/passlib/ext creating build/lib/passlib/utils copying passlib/utils/des.py -> build/lib/passlib/utils copying passlib/utils/pbkdf2.py -> build/lib/passlib/utils copying passlib/utils/binary.py -> build/lib/passlib/utils copying passlib/utils/decor.py -> build/lib/passlib/utils copying passlib/utils/handlers.py -> build/lib/passlib/utils copying passlib/utils/__init__.py -> build/lib/passlib/utils copying passlib/utils/md4.py -> build/lib/passlib/utils creating build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_gen_files.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_builtin.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_salsa.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/__init__.py -> build/lib/passlib/crypto/scrypt creating build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/_gen_files.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/unrolled.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/base.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/__init__.py -> build/lib/passlib/crypto/_blowfish creating build/lib/passlib/ext/django copying passlib/ext/django/models.py -> build/lib/passlib/ext/django copying passlib/ext/django/utils.py -> build/lib/passlib/ext/django copying passlib/ext/django/__init__.py -> build/lib/passlib/ext/django creating build/lib/passlib/utils/compat copying passlib/utils/compat/_ordered_dict.py -> build/lib/passlib/utils/compat copying passlib/utils/compat/__init__.py -> build/lib/passlib/utils/compat creating build/lib/passlib/_data creating build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_long.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/bip39.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_prefixed.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_short.txt -> build/lib/passlib/_data/wordsets copying passlib/tests/sample1c.cfg -> build/lib/passlib/tests copying passlib/tests/sample_config_1s.cfg -> build/lib/passlib/tests copying passlib/tests/sample1.cfg -> build/lib/passlib/tests copying passlib/tests/sample1b.cfg -> build/lib/passlib/tests + sleep 1 + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s' running build running build_py + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.twbn4t + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 ++ dirname /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 + cd passlib-1.7.1 + export PASSLIB_SETUP_TAG_RELEASE=no + PASSLIB_SETUP_TAG_RELEASE=no + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python2 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 running install running install_lib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7 creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_short.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_prefixed.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/bip39.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_long.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/_ordered_dict.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/decor.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/binary.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/models.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/base.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/unrolled.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_salsa.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_builtin.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup copying build/lib/passlib/_setup/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup copying build/lib/passlib/_setup/stamp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/fshp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/ldap_digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/oracle.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/scram.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/roundup.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/des_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha1_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha2_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/mssql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/windows.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/postgres.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/phpass.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/mysql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sun_md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/misc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1b.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample_config_1s.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1c.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django_source.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/_test_bad_register.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/backports.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_builtin_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/tox_support.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/__main__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_context_deprecated.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/ifc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/exc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/hash.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/md4.py to md4.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/handlers.py to handlers.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/decor.py to decor.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/binary.py to binary.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/pbkdf2.py to pbkdf2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/des.py to des.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django/models.py to models.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_salsa.py to _salsa.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_builtin.py to _builtin.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_md4.py to _md4.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/digest.py to digest.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/des.py to des.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup/stamp.py to stamp.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/fshp.py to fshp.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/ldap_digests.py to ldap_digests.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/scrypt.py to scrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/oracle.py to oracle.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/scram.py to scram.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/roundup.py to roundup.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/des_crypt.py to des_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/argon2.py to argon2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/bcrypt.py to bcrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/md5_crypt.py to md5_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/mssql.py to mssql.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/digests.py to digests.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/windows.py to windows.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/postgres.py to postgres.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/django.py to django.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/pbkdf2.py to pbkdf2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/phpass.py to phpass.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/mysql.py to mysql.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/cisco.py to cisco.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/misc.py to misc.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_utils_md4.py to test_utils_md4.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.py to test_pwd.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_apache.py to test_apache.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_utils.py to test_utils.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_apps.py to test_apps.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_totp.py to test_totp.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/_test_bad_register.py to _test_bad_register.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/backports.py to backports.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_django.py to test_handlers_django.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_hosts.py to test_hosts.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/tox_support.py to tox_support.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_win32.py to test_win32.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.py to test_ext_django.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_registry.py to test_registry.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/__main__.py to __main__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_des.py to test_crypto_des.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_context.py to test_context.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers.py to test_handlers.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ifc.py to ifc.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/context.py to context.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/hosts.py to hosts.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/exc.py to exc.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/pwd.py to pwd.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/hash.py to hash.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/registry.py to registry.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/apps.py to apps.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/totp.py to totp.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/apache.py to apache.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/win32.py to win32.pyc writing byte-compilation script '/tmp/tmpyC1OL4.py' /usr/bin/python2 -O /tmp/tmpyC1OL4.py removing /tmp/tmpyC1OL4.py running install_egg_info running egg_info creating passlib.egg-info writing requirements to passlib.egg-info/requires.txt writing passlib.egg-info/PKG-INFO writing top-level names to passlib.egg-info/top_level.txt writing dependency_links to passlib.egg-info/dependency_links.txt writing manifest file 'passlib.egg-info/SOURCES.txt' reading manifest file 'passlib.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'CHANGES' writing manifest file 'passlib.egg-info/SOURCES.txt' Copying passlib.egg-info to /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib-1.7.1-py2.7.egg-info running install_scripts + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 running install running install_lib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7 creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_short.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_prefixed.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/bip39.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_long.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/_ordered_dict.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/decor.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/binary.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/models.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/base.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/unrolled.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_salsa.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_builtin.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup copying build/lib/passlib/_setup/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup copying build/lib/passlib/_setup/stamp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/fshp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/ldap_digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/oracle.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/scram.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/roundup.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/des_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha1_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha2_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/mssql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/windows.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/postgres.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/phpass.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/mysql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sun_md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/misc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1b.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample_config_1s.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1c.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django_source.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/_test_bad_register.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/backports.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_builtin_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/tox_support.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/__main__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_context_deprecated.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/ifc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/exc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/hash.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/md4.py to md4.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/handlers.py to handlers.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/decor.py to decor.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/binary.py to binary.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/pbkdf2.py to pbkdf2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/des.py to des.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django/utils.py to utils.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django/models.py to models.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish/base.py to base.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt/_salsa.py to _salsa.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt/_builtin.py to _builtin.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_md4.py to _md4.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/digest.py to digest.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/des.py to des.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup/stamp.py to stamp.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/fshp.py to fshp.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/ldap_digests.py to ldap_digests.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/scrypt.py to scrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/oracle.py to oracle.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/scram.py to scram.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/roundup.py to roundup.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/des_crypt.py to des_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/argon2.py to argon2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/bcrypt.py to bcrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/md5_crypt.py to md5_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/mssql.py to mssql.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/digests.py to digests.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/windows.py to windows.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/postgres.py to postgres.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/django.py to django.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/pbkdf2.py to pbkdf2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/phpass.py to phpass.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/mysql.py to mysql.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/cisco.py to cisco.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/misc.py to misc.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_utils_md4.py to test_utils_md4.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_pwd.py to test_pwd.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_apache.py to test_apache.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_utils.py to test_utils.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_apps.py to test_apps.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_totp.py to test_totp.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/_test_bad_register.py to _test_bad_register.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/backports.py to backports.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_django.py to test_handlers_django.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/utils.py to utils.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_hosts.py to test_hosts.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/tox_support.py to tox_support.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_win32.py to test_win32.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_ext_django.py to test_ext_django.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_registry.py to test_registry.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/__main__.py to __main__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_crypto_des.py to test_crypto_des.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_context.py to test_context.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers.py to test_handlers.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ifc.py to ifc.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/context.py to context.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/hosts.py to hosts.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/exc.py to exc.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/pwd.py to pwd.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/hash.py to hash.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/registry.py to registry.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/apps.py to apps.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/totp.py to totp.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/apache.py to apache.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/win32.py to win32.cpython-37.pyc writing byte-compilation script '/tmp/tmpjwvfeet_.py' /usr/bin/python3 /tmp/tmpjwvfeet_.py removing /tmp/tmpjwvfeet_.py running install_egg_info running egg_info writing passlib.egg-info/PKG-INFO writing dependency_links to passlib.egg-info/dependency_links.txt writing requirements to passlib.egg-info/requires.txt writing top-level names to passlib.egg-info/top_level.txt reading manifest file 'passlib.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'CHANGES' writing manifest file 'passlib.egg-info/SOURCES.txt' Copying passlib.egg-info to /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib-1.7.1-py3.7.egg-info running install_scripts + /usr/lib/rpm/find-debuginfo.sh -j2 --strict-build-id -m -i --build-id-seed 1.7.1-3.fc31 --unique-debug-suffix -1.7.1-3.fc31.x86_64 --unique-debug-src-base python-passlib-1.7.1-3.fc31.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/passlib-1.7.1 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7 using /usr/bin/python3.7 Bytecompiling .py files below /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7 using /usr/bin/python2.7 + /usr/lib/rpm/brp-python-hardlink + /usr/lib/rpm/redhat/brp-mangle-shebangs Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.ZprGDw + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + nosetests-2.7 -v /builddir/build/BUILD/passlib-1.7.1/passlib/crypto/scrypt/__init__.py:127: PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower than is required for adequate security. Installing scrypt support (via 'pip install scrypt') is strongly recommended "is strongly recommended" % slowdown, exc.PasslibSecurityWarning) HtdigestFile: test constructor autoload ... ok HtdigestFile: test delete() ... ok HtdigestFile: test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) ... ok HtdigestFile: test update() ... ok HtdigestFile: test users() ... ok HtdigestFile: test check_password() ... ok HtdigestFile: test load() ... ok HtdigestFile: test save() ... ok HtdigestFile: test realms() & delete_realm() ... ok HtdigestFile: test get_hash() ... ok HtdigestFile: test encoding parameter ... ok HtdigestFile: test to_string() ... ok HtdigestFile: test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) ... ok HtpasswdFile: test constructor autoload ... ok HtpasswdFile: test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test delete() ... ok HtpasswdFile: test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test set_password() ... ok HtpasswdFile: test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test set_password() -- default_scheme ... /builddir/build/BUILD/passlib-1.7.1/passlib/apache.py:717: PasslibSecurityWarning: HtpasswdFile: no bcrypt backends available, using fallback for default scheme 'portable' exc.PasslibSecurityWarning) ok HtpasswdFile: test users() ... ok HtpasswdFile: test check_password() ... ok HtpasswdFile: test load() ... ok HtpasswdFile: test save() ... ok HtpasswdFile: test 'encoding' kwd ... ok HtpasswdFile: test get_hash() ... ok HtpasswdFile: test to_string ... ok HtpasswdFile: test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: whitespace & comment handling ... ok test_custom_app_context (passlib.tests.test_apps.AppsTest) ... ok test_django16_context (passlib.tests.test_apps.AppsTest) ... ok test_django_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_mysql_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_nocrypt_context (passlib.tests.test_apps.AppsTest) ... ok test_master_context (passlib.tests.test_apps.AppsTest) ... ok test_phpbb3_context (passlib.tests.test_apps.AppsTest) ... ok test_phppass_context (passlib.tests.test_apps.AppsTest) ... ok test_postgres_context (passlib.tests.test_apps.AppsTest) ... ok test_roundup_context (passlib.tests.test_apps.AppsTest) ... ok CryptContext: test class constructor ... ok CryptContext: test from_string() constructor ... ok CryptContext: test from_path() constructor ... ok CryptContext: test copy() method ... ok CryptContext: test repr() ... ok CryptContext: test load() / load_path() method ... ok CryptContext: test load() errors restore old state ... ok CryptContext: test update() method ... ok CryptContext: test basic option parsing ... ok CryptContext: test 'schemes' context option parsing ... ok CryptContext: test 'deprecated' context option parsing ... ok CryptContext: test 'default' context option parsing ... ok CryptContext: test 'vary_rounds' hash option parsing ... ok CryptContext: test schemes() method ... ok CryptContext: test default_scheme() method ... ok CryptContext: test handler() method ... ok CryptContext: test internal _get_record_options() method ... ok CryptContext: test to_dict() method ... ok CryptContext: test to_string() method ... ok CryptContext: test basic hash/identify/verify functionality ... ok CryptContext: test genconfig() method ... ok CryptContext: test genhash() method ... ok CryptContext: test hash() method ... ok CryptContext: test hash() method -- legacy 'scheme' and settings keywords ... ok CryptContext: test identify() border cases ... ok CryptContext: test verify() scheme kwd ... ok CryptContext: test needs_update() method ... ok CryptContext: test verify_and_update() ... ok CryptContext: hash(), verify(), and verify_and_update() -- discard unused context keywords ... ok CryptContext: test rounds limits ... ok CryptContext: test linear vary rounds ... ok CryptContext: test log2 vary rounds ... ok CryptContext: test deprecated='auto' is handled correctly ... ok CryptContext: disabled hash support ... ok CryptContext: dummy_verify() method ... ok CryptContext: harden_verify -- parsing ... ok LazyCryptContext: test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) ... ok LazyCryptContext: test plain kwds ... ok CryptContext: test constructor ... ok CryptContext: test replace() ... ok CryptContext: test no handlers ... ok CryptContext: test hash_needs_update() method ... ok CryptContext: test non-string hash values cause error ... ok CryptPolicy: test CryptPolicy() constructor ... ok CryptPolicy: test CryptPolicy.from_path() constructor with encodings ... ok CryptPolicy: test CryptPolicy.from_path() constructor ... ok CryptPolicy: test CryptPolicy.from_string() constructor ... ok CryptPolicy: test CryptPolicy.from_source() constructor ... ok CryptPolicy: test CryptPolicy.from_sources() constructor ... ok CryptPolicy: test CryptPolicy.replace() constructor ... ok CryptPolicy: test CryptPolicy() forbidden kwds ... ok CryptPolicy: test has_schemes() method ... ok CryptPolicy: test iter_handlers() method ... ok CryptPolicy: test get_handler() method ... ok CryptPolicy: test get_options() method ... ok CryptPolicy: test handler_is_deprecated() method ... ok CryptPolicy: test get_min_verify_time() method ... ok CryptPolicy: test iter_config() method ... ok CryptPolicy: test to_dict() method ... ok CryptPolicy: test to_string() method ... ok LazyCryptContext: test create_policy() hook, returning CryptPolicy ... ok LazyCryptContext: test plain kwds ... ok passlib.crypto._md4.md4(): informational attributes ... ok passlib.crypto._md4.md4(): copy() method ... ok passlib.crypto._md4.md4(): digest() method ... ok passlib.crypto._md4.md4(): hexdigest() method ... ok passlib.crypto._md4.md4(): update() method ... ok hashlib.new('md4'): informational attributes ... ok hashlib.new('md4'): copy() method ... ok hashlib.new('md4'): digest() method ... ok hashlib.new('md4'): hexdigest() method ... ok hashlib.new('md4'): update() method ... ok passlib.crypto.des: expand_des_key() ... ok passlib.crypto.des: shrink_des_key() ... ok passlib.crypto.des: des_encrypt_block() ... ok passlib.crypto.des: des_encrypt_int_block() ... ok passlib.crypto.digest: lookup_hash() -- alternate types ... ok passlib.crypto.digest: lookup_hash() -- constructor ... ok passlib.crypto.digest: lookup_hash() -- metadata ... ok passlib.crypto.digest: norm_hash_name() ... ok passlib.crypto.digest.pbkdf1: test border cases ... ok passlib.crypto.digest.pbkdf1: test reference vectors ... ok passlib.crypto.digest.pbkdf2_hmac() : verify expected backends are present ... ok passlib.crypto.digest.pbkdf2_hmac() : test border cases ... ok passlib.crypto.digest.pbkdf2_hmac() : test keylen==None ... ok passlib.crypto.digest.pbkdf2_hmac() : test reference vectors ... ok passlib.utils.scrypt.scrypt() : backend management ... ok passlib.utils.scrypt.scrypt() : 'keylen' parameter ... ok passlib.utils.scrypt.scrypt() : backend management -- missing backend ... ok passlib.utils.scrypt.scrypt() : 'n' (rounds) parameter ... ok passlib.utils.scrypt.scrypt() : compare output to other backends ... SKIP: no other backends found passlib.utils.scrypt.scrypt() : 'p' (parallelism) parameter ... ok passlib.utils.scrypt.scrypt() : 'r' (block size) parameter ... ok passlib.utils.scrypt.scrypt() : reference vectors ... ok passlib.utils.scrypt.scrypt() : 'salt' parameter ... ok passlib.utils.scrypt.scrypt() : 'secret' parameter ... ok passlib.crypto.scrypt._builtin: bmix() ... ok passlib.crypto.scrypt._builtin: salsa20() ... ok passlib.crypto.scrypt._builtin: smix() ... ok verify django behavior: test hashing interface ... SKIP: Django not installed passlib.ext.django plugin: test set_django_password_context patch/unpatch ... SKIP: Django not installed passlib.ext.django plugin: test detection of foreign monkeypatching ... SKIP: Django not installed passlib.ext.django plugin: test Hasher-compatible handler wrappers ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_CONFIG='disabled' ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_CONFIG='' ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_CONFIG default behavior ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_CONFIG type checks ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_GET_CATEGORY parameter ... SKIP: Django not installed verify extension behavior: test hashing interface ... SKIP: Django not installed external django hasher tests ... SKIP: django not installed test_pairs (passlib.tests.test_handlers.RoundupTest) ... ok apr_md5_crypt: validate required attributes ... ok apr_md5_crypt: test basic config-string workflow ... ok apr_md5_crypt: test basic using() workflow ... ok apr_md5_crypt: test basic hash-string workflow. ... ok apr_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok apr_md5_crypt: test hashes can be unicode or bytes ... ok apr_md5_crypt: test multi-backend support ... SKIP: handler only has one backend apr_md5_crypt: validate optional salt attributes ... ok apr_md5_crypt: test hash() / genconfig() creates new salt each time ... ok apr_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok apr_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok apr_md5_crypt: test hash() honors salt_chars ... ok apr_md5_crypt: test non-string salt values ... ok apr_md5_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes apr_md5_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents apr_md5_crypt: test password case sensitivity ... ok apr_md5_crypt: test non-string passwords are rejected ... ok apr_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok apr_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed apr_md5_crypt: test known hashes ... ok apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided apr_md5_crypt: test known config strings ... SKIP: no config strings provided apr_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided apr_md5_crypt: test known identifiable-but-malformed strings ... ok apr_md5_crypt: test known foreign hashes ... ok apr_md5_crypt: test non-string hashes are rejected ... ok apr_md5_crypt: fuzz testing -- random passwords and options ... ok apr_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode apr_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable apr_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents apr_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes apr_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set apr_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok apr_md5_crypt: validate 'truncate_error' setting & related attributes ... ok apr_md5_crypt: Handler.using() -- default_salt_size ... ok bigcrypt: validate required attributes ... ok bigcrypt: test basic config-string workflow ... ok bigcrypt: test basic using() workflow ... ok bigcrypt: test basic hash-string workflow. ... ok bigcrypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok bigcrypt: test hashes can be unicode or bytes ... ok bigcrypt: test multi-backend support ... SKIP: handler only has one backend bigcrypt: validate optional salt attributes ... ok bigcrypt: test hash() / genconfig() creates new salt each time ... ok bigcrypt: test hash() / genconfig() honors min_salt_size ... ok bigcrypt: test hash() / genconfig() honors max_salt_size ... ok bigcrypt: test hash() honors salt_chars ... ok bigcrypt: test non-string salt values ... ok bigcrypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes bigcrypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes bigcrypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes bigcrypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents bigcrypt: test password case sensitivity ... ok bigcrypt: test non-string passwords are rejected ... ok bigcrypt: test MAX_PASSWORD_SIZE is enforced ... ok bigcrypt: test forbidden characters not allowed in password ... SKIP: none listed bigcrypt: test known hashes ... ok bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided bigcrypt: test known config strings ... SKIP: no config strings provided bigcrypt: test known unidentifiably-mangled strings ... ok bigcrypt: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided bigcrypt: test known foreign hashes ... ok bigcrypt: test non-string hashes are rejected ... ok bigcrypt: fuzz testing -- random passwords and options ... ok bigcrypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode bigcrypt: test_90_internal (passlib.tests.test_handlers.bigcrypt_test) ... ok bigcrypt: .disable() / .enable() methods ... SKIP: not applicable bigcrypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents bigcrypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes bigcrypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set bigcrypt: test no password size limits enforced (if truncate_size=None) ... ok bigcrypt: validate 'truncate_error' setting & related attributes ... ok bigcrypt: Handler.using() -- default_salt_size ... ok bsd_nthash: validate required attributes ... ok bsd_nthash: test basic config-string workflow ... ok bsd_nthash: test basic using() workflow ... ok bsd_nthash: test basic hash-string workflow. ... ok bsd_nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok bsd_nthash: test hashes can be unicode or bytes ... ok bsd_nthash: test multi-backend support ... SKIP: handler only has one backend bsd_nthash: validate optional salt attributes ... SKIP: handler doesn't have salt bsd_nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt bsd_nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt bsd_nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt bsd_nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt bsd_nthash: test non-string salt values ... SKIP: handler doesn't have salt bsd_nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes bsd_nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents bsd_nthash: test password case sensitivity ... ok bsd_nthash: test non-string passwords are rejected ... ok bsd_nthash: test MAX_PASSWORD_SIZE is enforced ... ok bsd_nthash: test forbidden characters not allowed in password ... SKIP: none listed bsd_nthash: test known hashes ... ok bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided bsd_nthash: test known config strings ... SKIP: hash has no settings bsd_nthash: test known unidentifiably-mangled strings ... ok bsd_nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided bsd_nthash: test known foreign hashes ... ok bsd_nthash: test non-string hashes are rejected ... ok bsd_nthash: fuzz testing -- random passwords and options ... ok bsd_nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode bsd_nthash: .disable() / .enable() methods ... SKIP: not applicable bsd_nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents bsd_nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes bsd_nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set bsd_nthash: test no password size limits enforced (if truncate_size=None) ... ok bsd_nthash: validate 'truncate_error' setting & related attributes ... ok bsd_nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt bsdi_crypt (os_crypt backend): validate required attributes ... ok bsdi_crypt (os_crypt backend): test basic config-string workflow ... ok bsdi_crypt (os_crypt backend): test basic using() workflow ... ok bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... ok bsdi_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok bsdi_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok bsdi_crypt (os_crypt backend): test multi-backend support ... ok bsdi_crypt (os_crypt backend): validate optional salt attributes ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... ok bsdi_crypt (os_crypt backend): test non-string salt values ... ok bsdi_crypt (os_crypt backend): validate optional rounds attributes ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents bsdi_crypt (os_crypt backend): test password case sensitivity ... ok bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... ok bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok bsdi_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok bsdi_crypt (os_crypt backend): test known hashes ... ok bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided bsdi_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided bsdi_crypt (os_crypt backend): test known foreign hashes ... ok bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... ok bsdi_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) ... ok bsdi_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode bsdi_crypt (os_crypt backend): test with faulty crypt() ... ok bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... ok bsdi_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux2' platform bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable bsdi_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents bsdi_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok bsdi_crypt (os_crypt backend): needs_update() should flag even rounds ... ok bsdi_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set bsdi_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok crypt16: validate required attributes ... ok crypt16: test basic config-string workflow ... ok crypt16: test basic using() workflow ... ok crypt16: test basic hash-string workflow. ... ok crypt16: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok crypt16: test hashes can be unicode or bytes ... ok crypt16: test multi-backend support ... SKIP: handler only has one backend crypt16: validate optional salt attributes ... ok crypt16: test hash() / genconfig() creates new salt each time ... ok crypt16: test hash() / genconfig() honors min_salt_size ... ok crypt16: test hash() / genconfig() honors max_salt_size ... ok crypt16: test hash() honors salt_chars ... ok crypt16: test non-string salt values ... ok crypt16: validate optional rounds attributes ... SKIP: handler lacks rounds attributes crypt16: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes crypt16: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes crypt16: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents crypt16: test password case sensitivity ... ok crypt16: test non-string passwords are rejected ... ok crypt16: test MAX_PASSWORD_SIZE is enforced ... ok crypt16: test forbidden characters not allowed in password ... SKIP: none listed crypt16: test known hashes ... ok crypt16: test known alternate hashes ... SKIP: no alternate hashes provided crypt16: test known config strings ... SKIP: no config strings provided crypt16: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided crypt16: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided crypt16: test known foreign hashes ... ok crypt16: test non-string hashes are rejected ... ok crypt16: fuzz testing -- random passwords and options ... ok crypt16: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode crypt16: .disable() / .enable() methods ... SKIP: not applicable crypt16: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents crypt16: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes crypt16: test password size limits raise truncate_error (if appropriate) ... ok crypt16: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set crypt16: validate 'truncate_error' setting & related attributes ... ok crypt16: Handler.using() -- default_salt_size ... ok des_crypt (os_crypt backend): validate required attributes ... ok des_crypt (os_crypt backend): test basic config-string workflow ... ok des_crypt (os_crypt backend): test basic using() workflow ... ok des_crypt (os_crypt backend): test basic hash-string workflow. ... ok des_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok des_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok des_crypt (os_crypt backend): test multi-backend support ... ok des_crypt (os_crypt backend): validate optional salt attributes ... ok des_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok des_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok des_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok des_crypt (os_crypt backend): test hash() honors salt_chars ... ok des_crypt (os_crypt backend): test non-string salt values ... ok des_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents des_crypt (os_crypt backend): test password case sensitivity ... ok des_crypt (os_crypt backend): test non-string passwords are rejected ... ok des_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok des_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok des_crypt (os_crypt backend): test known hashes ... ok des_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided des_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided des_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok des_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided des_crypt (os_crypt backend): test known foreign hashes ... ok des_crypt (os_crypt backend): test non-string hashes are rejected ... ok des_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok des_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode des_crypt (os_crypt backend): test with faulty crypt() ... ok des_crypt (os_crypt backend): test per-call crypt() fallback ... ok des_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok des_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable des_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents des_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok des_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set des_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok des_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok fshp: validate required attributes ... ok fshp: test basic config-string workflow ... ok fshp: test basic using() workflow ... ok fshp: test basic hash-string workflow. ... ok fshp: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok fshp: test hashes can be unicode or bytes ... ok fshp: test multi-backend support ... SKIP: handler only has one backend fshp: validate optional salt attributes ... ok fshp: test hash() / genconfig() creates new salt each time ... ok fshp: test hash() / genconfig() honors min_salt_size ... ok fshp: test hash() / genconfig() honors max_salt_size ... ok fshp: test hash() honors salt_chars ... ok fshp: test non-string salt values ... ok fshp: validate optional rounds attributes ... ok fshp: test hash() / genconfig() honors min_rounds ... ok fshp: test hash() / genconfig() honors max_rounds ... ok fshp: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents fshp: test password case sensitivity ... ok fshp: test non-string passwords are rejected ... ok fshp: test MAX_PASSWORD_SIZE is enforced ... ok fshp: test forbidden characters not allowed in password ... SKIP: none listed fshp: test known hashes ... ok fshp: test known alternate hashes ... SKIP: no alternate hashes provided fshp: test known config strings ... SKIP: no config strings provided fshp: test known unidentifiably-mangled strings ... ok fshp: test known identifiable-but-malformed strings ... ok fshp: test known foreign hashes ... ok fshp: test non-string hashes are rejected ... ok fshp: fuzz testing -- random passwords and options ... ok fshp: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode fshp: test variant keyword ... ok fshp: .disable() / .enable() methods ... SKIP: not applicable fshp: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents fshp: HasRounds.using() -- max_rounds / max_desired_rounds ... ok fshp: HasRounds.using() -- desired_rounds + needs_update() ... ok fshp: HasRounds.using() -- sanity check test harness ... ok fshp: HasRounds.using() -- default_rounds ... ok fshp: HasRounds.using() -- min_rounds / min_desired_rounds ... ok fshp: HasRounds.using() -- rounds ... ok fshp: HasRounds.using() -- vary_rounds generation ... ok fshp: HasRounds.using() -- vary_rounds parsing ... ok fshp: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set fshp: test no password size limits enforced (if truncate_size=None) ... ok fshp: validate 'truncate_error' setting & related attributes ... ok fshp: Handler.using() -- default_salt_size ... ok hex_md4: validate required attributes ... ok hex_md4: test basic config-string workflow ... ok hex_md4: test basic using() workflow ... ok hex_md4: test basic hash-string workflow. ... ok hex_md4: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_md4: test hashes can be unicode or bytes ... ok hex_md4: test multi-backend support ... SKIP: handler only has one backend hex_md4: validate optional salt attributes ... SKIP: handler doesn't have salt hex_md4: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_md4: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_md4: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_md4: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_md4: test non-string salt values ... SKIP: handler doesn't have salt hex_md4: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_md4: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_md4: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_md4: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_md4: test password case sensitivity ... ok hex_md4: test non-string passwords are rejected ... ok hex_md4: test MAX_PASSWORD_SIZE is enforced ... ok hex_md4: test forbidden characters not allowed in password ... SKIP: none listed hex_md4: test known hashes ... ok hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided hex_md4: test known config strings ... SKIP: hash has no settings hex_md4: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_md4: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_md4: test known foreign hashes ... ok hex_md4: test non-string hashes are rejected ... ok hex_md4: fuzz testing -- random passwords and options ... ok hex_md4: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_md4: .disable() / .enable() methods ... SKIP: not applicable hex_md4: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_md4: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_md4: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_md4: test no password size limits enforced (if truncate_size=None) ... ok hex_md4: validate 'truncate_error' setting & related attributes ... ok hex_md4: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt hex_md5: validate required attributes ... ok hex_md5: test basic config-string workflow ... ok hex_md5: test basic using() workflow ... ok hex_md5: test basic hash-string workflow. ... ok hex_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_md5: test hashes can be unicode or bytes ... ok hex_md5: test multi-backend support ... SKIP: handler only has one backend hex_md5: validate optional salt attributes ... SKIP: handler doesn't have salt hex_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_md5: test non-string salt values ... SKIP: handler doesn't have salt hex_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_md5: test password case sensitivity ... ok hex_md5: test non-string passwords are rejected ... ok hex_md5: test MAX_PASSWORD_SIZE is enforced ... ok hex_md5: test forbidden characters not allowed in password ... SKIP: none listed hex_md5: test known hashes ... ok hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided hex_md5: test known config strings ... SKIP: hash has no settings hex_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_md5: test known foreign hashes ... ok hex_md5: test non-string hashes are rejected ... ok hex_md5: fuzz testing -- random passwords and options ... ok hex_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_md5: .disable() / .enable() methods ... SKIP: not applicable hex_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_md5: test no password size limits enforced (if truncate_size=None) ... ok hex_md5: validate 'truncate_error' setting & related attributes ... ok hex_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt hex_sha1: validate required attributes ... ok hex_sha1: test basic config-string workflow ... ok hex_sha1: test basic using() workflow ... ok hex_sha1: test basic hash-string workflow. ... ok hex_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_sha1: test hashes can be unicode or bytes ... ok hex_sha1: test multi-backend support ... SKIP: handler only has one backend hex_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt hex_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_sha1: test non-string salt values ... SKIP: handler doesn't have salt hex_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_sha1: test password case sensitivity ... ok hex_sha1: test non-string passwords are rejected ... ok hex_sha1: test MAX_PASSWORD_SIZE is enforced ... ok hex_sha1: test forbidden characters not allowed in password ... SKIP: none listed hex_sha1: test known hashes ... ok hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided hex_sha1: test known config strings ... SKIP: hash has no settings hex_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_sha1: test known foreign hashes ... ok hex_sha1: test non-string hashes are rejected ... ok hex_sha1: fuzz testing -- random passwords and options ... ok hex_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_sha1: .disable() / .enable() methods ... SKIP: not applicable hex_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_sha1: test no password size limits enforced (if truncate_size=None) ... ok hex_sha1: validate 'truncate_error' setting & related attributes ... ok hex_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt hex_sha256: validate required attributes ... ok hex_sha256: test basic config-string workflow ... ok hex_sha256: test basic using() workflow ... ok hex_sha256: test basic hash-string workflow. ... ok hex_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_sha256: test hashes can be unicode or bytes ... ok hex_sha256: test multi-backend support ... SKIP: handler only has one backend hex_sha256: validate optional salt attributes ... SKIP: handler doesn't have salt hex_sha256: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_sha256: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_sha256: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_sha256: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_sha256: test non-string salt values ... SKIP: handler doesn't have salt hex_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_sha256: test password case sensitivity ... ok hex_sha256: test non-string passwords are rejected ... ok hex_sha256: test MAX_PASSWORD_SIZE is enforced ... ok hex_sha256: test forbidden characters not allowed in password ... SKIP: none listed hex_sha256: test known hashes ... ok hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided hex_sha256: test known config strings ... SKIP: hash has no settings hex_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_sha256: test known foreign hashes ... ok hex_sha256: test non-string hashes are rejected ... ok hex_sha256: fuzz testing -- random passwords and options ... ok hex_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_sha256: .disable() / .enable() methods ... SKIP: not applicable hex_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_sha256: test no password size limits enforced (if truncate_size=None) ... ok hex_sha256: validate 'truncate_error' setting & related attributes ... ok hex_sha256: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt hex_sha512: validate required attributes ... ok hex_sha512: test basic config-string workflow ... ok hex_sha512: test basic using() workflow ... ok hex_sha512: test basic hash-string workflow. ... ok hex_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_sha512: test hashes can be unicode or bytes ... ok hex_sha512: test multi-backend support ... SKIP: handler only has one backend hex_sha512: validate optional salt attributes ... SKIP: handler doesn't have salt hex_sha512: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_sha512: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_sha512: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_sha512: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_sha512: test non-string salt values ... SKIP: handler doesn't have salt hex_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_sha512: test password case sensitivity ... ok hex_sha512: test non-string passwords are rejected ... ok hex_sha512: test MAX_PASSWORD_SIZE is enforced ... ok hex_sha512: test forbidden characters not allowed in password ... SKIP: none listed hex_sha512: test known hashes ... ok hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided hex_sha512: test known config strings ... SKIP: hash has no settings hex_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_sha512: test known foreign hashes ... ok hex_sha512: test non-string hashes are rejected ... ok hex_sha512: fuzz testing -- random passwords and options ... ok hex_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_sha512: .disable() / .enable() methods ... SKIP: not applicable hex_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_sha512: test no password size limits enforced (if truncate_size=None) ... ok hex_sha512: validate 'truncate_error' setting & related attributes ... ok hex_sha512: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt htdigest: validate required attributes ... ok htdigest: test basic config-string workflow ... ok htdigest: test basic using() workflow ... ok htdigest: test basic hash-string workflow. ... ok htdigest: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok htdigest: test hashes can be unicode or bytes ... ok htdigest: test multi-backend support ... SKIP: handler only has one backend htdigest: validate optional salt attributes ... SKIP: handler doesn't have salt htdigest: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt htdigest: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt htdigest: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt htdigest: test hash() honors salt_chars ... SKIP: handler doesn't have salt htdigest: test non-string salt values ... SKIP: handler doesn't have salt htdigest: validate optional rounds attributes ... SKIP: handler lacks rounds attributes htdigest: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes htdigest: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes htdigest: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents htdigest: test password case sensitivity ... ok htdigest: test non-string passwords are rejected ... ok htdigest: test MAX_PASSWORD_SIZE is enforced ... ok htdigest: test forbidden characters not allowed in password ... SKIP: none listed htdigest: test known hashes ... ok htdigest: test known alternate hashes ... SKIP: no alternate hashes provided htdigest: test known config strings ... SKIP: hash has no settings htdigest: test known unidentifiably-mangled strings ... ok htdigest: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided htdigest: test known foreign hashes ... ok htdigest: test non-string hashes are rejected ... ok htdigest: fuzz testing -- random passwords and options ... ok htdigest: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode htdigest: test_80_user (passlib.tests.test_handlers.htdigest_test) ... SKIP: test case doesn't support 'realm' keyword htdigest: test user case sensitivity ... ok htdigest: test user used as salt ... ok htdigest: .disable() / .enable() methods ... SKIP: not applicable htdigest: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents htdigest: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes htdigest: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set htdigest: test no password size limits enforced (if truncate_size=None) ... ok htdigest: validate 'truncate_error' setting & related attributes ... ok htdigest: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt ldap_md5_crypt (os_crypt backend): validate required attributes ... ok ldap_md5_crypt (os_crypt backend): test basic config-string workflow ... ok ldap_md5_crypt (os_crypt backend): test basic using() workflow ... ok ldap_md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok ldap_md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok ldap_md5_crypt (os_crypt backend): test multi-backend support ... ok ldap_md5_crypt (os_crypt backend): validate optional salt attributes ... ok ldap_md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok ldap_md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok ldap_md5_crypt (os_crypt backend): test non-string salt values ... ok ldap_md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_md5_crypt (os_crypt backend): test password case sensitivity ... ok ldap_md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok ldap_md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok ldap_md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok ldap_md5_crypt (os_crypt backend): test known hashes ... ok ldap_md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided ldap_md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided ldap_md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok ldap_md5_crypt (os_crypt backend): test known foreign hashes ... ok ldap_md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok ldap_md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok ldap_md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_md5_crypt (os_crypt backend): test with faulty crypt() ... ok ldap_md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok ldap_md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers ldap_md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable ldap_md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok ldap_md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok ldap_md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok ldap_md5: validate required attributes ... ok ldap_md5: test basic config-string workflow ... ok ldap_md5: test basic using() workflow ... ok ldap_md5: test basic hash-string workflow. ... ok ldap_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_md5: test hashes can be unicode or bytes ... ok ldap_md5: test multi-backend support ... SKIP: handler only has one backend ldap_md5: validate optional salt attributes ... SKIP: handler doesn't have salt ldap_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt ldap_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt ldap_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt ldap_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt ldap_md5: test non-string salt values ... SKIP: handler doesn't have salt ldap_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_md5: test password case sensitivity ... ok ldap_md5: test non-string passwords are rejected ... ok ldap_md5: test MAX_PASSWORD_SIZE is enforced ... ok ldap_md5: test forbidden characters not allowed in password ... SKIP: none listed ldap_md5: test known hashes ... ok ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided ldap_md5: test known config strings ... SKIP: hash has no settings ldap_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided ldap_md5: test known foreign hashes ... ok ldap_md5: test non-string hashes are rejected ... ok ldap_md5: fuzz testing -- random passwords and options ... ok ldap_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_md5: .disable() / .enable() methods ... SKIP: not applicable ldap_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_md5: test no password size limits enforced (if truncate_size=None) ... ok ldap_md5: validate 'truncate_error' setting & related attributes ... ok ldap_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt ldap_plaintext: validate required attributes ... ok ldap_plaintext: test basic config-string workflow ... ok ldap_plaintext: test basic using() workflow ... ok ldap_plaintext: test basic hash-string workflow. ... ok ldap_plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_plaintext: test hashes can be unicode or bytes ... ok ldap_plaintext: test multi-backend support ... SKIP: handler only has one backend ldap_plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt ldap_plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt ldap_plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt ldap_plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt ldap_plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt ldap_plaintext: test non-string salt values ... SKIP: handler doesn't have salt ldap_plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_plaintext: test password case sensitivity ... ok ldap_plaintext: test non-string passwords are rejected ... ok ldap_plaintext: test MAX_PASSWORD_SIZE is enforced ... ok ldap_plaintext: test forbidden characters not allowed in password ... SKIP: none listed ldap_plaintext: test known hashes ... ok ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided ldap_plaintext: test known config strings ... SKIP: hash has no settings ldap_plaintext: test known unidentifiably-mangled strings ... ok ldap_plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided ldap_plaintext: test known foreign hashes ... ok ldap_plaintext: test non-string hashes are rejected ... ok ldap_plaintext: fuzz testing -- random passwords and options ... ok ldap_plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_plaintext: .disable() / .enable() methods ... SKIP: not applicable ldap_plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_plaintext: test no password size limits enforced (if truncate_size=None) ... ok ldap_plaintext: validate 'truncate_error' setting & related attributes ... ok ldap_plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt ldap_salted_md5: validate required attributes ... ok ldap_salted_md5: test basic config-string workflow ... ok ldap_salted_md5: test basic using() workflow ... ok ldap_salted_md5: test basic hash-string workflow. ... ok ldap_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_salted_md5: test hashes can be unicode or bytes ... ok ldap_salted_md5: test multi-backend support ... SKIP: handler only has one backend ldap_salted_md5: validate optional salt attributes ... ok ldap_salted_md5: test hash() / genconfig() creates new salt each time ... ok ldap_salted_md5: test hash() / genconfig() honors min_salt_size ... ok ldap_salted_md5: test hash() / genconfig() honors max_salt_size ... ok ldap_salted_md5: test hash() honors salt_chars ... ok ldap_salted_md5: test non-string salt values ... ok ldap_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_salted_md5: test password case sensitivity ... ok ldap_salted_md5: test non-string passwords are rejected ... ok ldap_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok ldap_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed ldap_salted_md5: test known hashes ... ok ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided ldap_salted_md5: test known config strings ... SKIP: no config strings provided ldap_salted_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_salted_md5: test known identifiable-but-malformed strings ... ok ldap_salted_md5: test known foreign hashes ... ok ldap_salted_md5: test non-string hashes are rejected ... ok ldap_salted_md5: fuzz testing -- random passwords and options ... ok ldap_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_salted_md5: .disable() / .enable() methods ... SKIP: not applicable ldap_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok ldap_salted_md5: validate 'truncate_error' setting & related attributes ... ok ldap_salted_md5: Handler.using() -- default_salt_size ... ok ldap_salted_sha1: validate required attributes ... ok ldap_salted_sha1: test basic config-string workflow ... ok ldap_salted_sha1: test basic using() workflow ... ok ldap_salted_sha1: test basic hash-string workflow. ... ok ldap_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_salted_sha1: test hashes can be unicode or bytes ... ok ldap_salted_sha1: test multi-backend support ... SKIP: handler only has one backend ldap_salted_sha1: validate optional salt attributes ... ok ldap_salted_sha1: test hash() / genconfig() creates new salt each time ... ok ldap_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok ldap_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok ldap_salted_sha1: test hash() honors salt_chars ... ok ldap_salted_sha1: test non-string salt values ... ok ldap_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_salted_sha1: test password case sensitivity ... ok ldap_salted_sha1: test non-string passwords are rejected ... ok ldap_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok ldap_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed ldap_salted_sha1: test known hashes ... ok ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided ldap_salted_sha1: test known config strings ... SKIP: no config strings provided ldap_salted_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_salted_sha1: test known identifiable-but-malformed strings ... ok ldap_salted_sha1: test known foreign hashes ... ok ldap_salted_sha1: test non-string hashes are rejected ... ok ldap_salted_sha1: fuzz testing -- random passwords and options ... ok ldap_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable ldap_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok ldap_salted_sha1: validate 'truncate_error' setting & related attributes ... ok ldap_salted_sha1: Handler.using() -- default_salt_size ... ok ldap_sha1_crypt (os_crypt backend): validate required attributes ... ok ldap_sha1_crypt (os_crypt backend): test basic config-string workflow ... ok ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... ok ldap_sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok ldap_sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok ldap_sha1_crypt (os_crypt backend): test multi-backend support ... ok ldap_sha1_crypt (os_crypt backend): validate optional salt attributes ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok ldap_sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok ldap_sha1_crypt (os_crypt backend): test non-string salt values ... ok ldap_sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_sha1_crypt (os_crypt backend): test password case sensitivity ... ok ldap_sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok ldap_sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok ldap_sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok ldap_sha1_crypt (os_crypt backend): test known hashes ... ok ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided ldap_sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... ok ldap_sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok ldap_sha1_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ... SKIP: unneeded ldap_sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... ok ldap_sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok ldap_sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers ldap_sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable ldap_sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok ldap_sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok ldap_sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok ldap_sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok ldap_sha1: validate required attributes ... ok ldap_sha1: test basic config-string workflow ... ok ldap_sha1: test basic using() workflow ... ok ldap_sha1: test basic hash-string workflow. ... ok ldap_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_sha1: test hashes can be unicode or bytes ... ok ldap_sha1: test multi-backend support ... SKIP: handler only has one backend ldap_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt ldap_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt ldap_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt ldap_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt ldap_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt ldap_sha1: test non-string salt values ... SKIP: handler doesn't have salt ldap_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_sha1: test password case sensitivity ... ok ldap_sha1: test non-string passwords are rejected ... ok ldap_sha1: test MAX_PASSWORD_SIZE is enforced ... ok ldap_sha1: test forbidden characters not allowed in password ... SKIP: none listed ldap_sha1: test known hashes ... ok ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided ldap_sha1: test known config strings ... SKIP: hash has no settings ldap_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided ldap_sha1: test known foreign hashes ... ok ldap_sha1: test non-string hashes are rejected ... ok ldap_sha1: fuzz testing -- random passwords and options ... ok ldap_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_sha1: .disable() / .enable() methods ... SKIP: not applicable ldap_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_sha1: test no password size limits enforced (if truncate_size=None) ... ok ldap_sha1: validate 'truncate_error' setting & related attributes ... ok ldap_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt lmhash: validate required attributes ... ok lmhash: test basic config-string workflow ... ok lmhash: test basic using() workflow ... ok lmhash: test basic hash-string workflow. ... ok lmhash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok lmhash: test hashes can be unicode or bytes ... ok lmhash: test multi-backend support ... SKIP: handler only has one backend lmhash: validate optional salt attributes ... SKIP: handler doesn't have salt lmhash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt lmhash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt lmhash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt lmhash: test hash() honors salt_chars ... SKIP: handler doesn't have salt lmhash: test non-string salt values ... SKIP: handler doesn't have salt lmhash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes lmhash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes lmhash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes lmhash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents lmhash: test password case sensitivity ... ok lmhash: test non-string passwords are rejected ... ok lmhash: test MAX_PASSWORD_SIZE is enforced ... ok lmhash: test forbidden characters not allowed in password ... SKIP: none listed lmhash: test known hashes ... ok lmhash: test known alternate hashes ... SKIP: no alternate hashes provided lmhash: test known config strings ... SKIP: no config strings provided lmhash: test known unidentifiably-mangled strings ... ok lmhash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided lmhash: test known foreign hashes ... ok lmhash: test non-string hashes are rejected ... ok lmhash: fuzz testing -- random passwords and options ... ok lmhash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode lmhash: test lmhash.raw() method ... ok lmhash: .disable() / .enable() methods ... SKIP: not applicable lmhash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents lmhash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes lmhash: test password size limits raise truncate_error (if appropriate) ... ok lmhash: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set lmhash: validate 'truncate_error' setting & related attributes ... ok lmhash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt md5_crypt (os_crypt backend): validate required attributes ... ok md5_crypt (os_crypt backend): test basic config-string workflow ... ok md5_crypt (os_crypt backend): test basic using() workflow ... ok md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok md5_crypt (os_crypt backend): test multi-backend support ... ok md5_crypt (os_crypt backend): validate optional salt attributes ... ok md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok md5_crypt (os_crypt backend): test non-string salt values ... ok md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents md5_crypt (os_crypt backend): test password case sensitivity ... ok md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok md5_crypt (os_crypt backend): test known hashes ... ok md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok md5_crypt (os_crypt backend): test known foreign hashes ... ok md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode md5_crypt (os_crypt backend): test with faulty crypt() ... ok md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok msdcc2: validate required attributes ... ok msdcc2: test basic config-string workflow ... ok msdcc2: test basic using() workflow ... ok msdcc2: test basic hash-string workflow. ... ok msdcc2: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok msdcc2: test hashes can be unicode or bytes ... ok msdcc2: test multi-backend support ... SKIP: handler only has one backend msdcc2: validate optional salt attributes ... SKIP: handler doesn't have salt msdcc2: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt msdcc2: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt msdcc2: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt msdcc2: test hash() honors salt_chars ... SKIP: handler doesn't have salt msdcc2: test non-string salt values ... SKIP: handler doesn't have salt msdcc2: validate optional rounds attributes ... SKIP: handler lacks rounds attributes msdcc2: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes msdcc2: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes msdcc2: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents msdcc2: test password case sensitivity ... ok msdcc2: test non-string passwords are rejected ... ok msdcc2: test MAX_PASSWORD_SIZE is enforced ... ok msdcc2: test forbidden characters not allowed in password ... SKIP: none listed msdcc2: test known hashes ... ok msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided msdcc2: test known config strings ... SKIP: hash has no settings msdcc2: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided msdcc2: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided msdcc2: test known foreign hashes ... ok msdcc2: test non-string hashes are rejected ... ok msdcc2: fuzz testing -- random passwords and options ... ok msdcc2: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode msdcc2: test user context keyword ... ok msdcc2: test user case sensitivity ... ok msdcc2: test user used as salt ... ok msdcc2: .disable() / .enable() methods ... SKIP: not applicable msdcc2: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents msdcc2: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes msdcc2: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set msdcc2: test no password size limits enforced (if truncate_size=None) ... ok msdcc2: validate 'truncate_error' setting & related attributes ... ok msdcc2: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt msdcc: validate required attributes ... ok msdcc: test basic config-string workflow ... ok msdcc: test basic using() workflow ... ok msdcc: test basic hash-string workflow. ... ok msdcc: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok msdcc: test hashes can be unicode or bytes ... ok msdcc: test multi-backend support ... SKIP: handler only has one backend msdcc: validate optional salt attributes ... SKIP: handler doesn't have salt msdcc: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt msdcc: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt msdcc: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt msdcc: test hash() honors salt_chars ... SKIP: handler doesn't have salt msdcc: test non-string salt values ... SKIP: handler doesn't have salt msdcc: validate optional rounds attributes ... SKIP: handler lacks rounds attributes msdcc: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes msdcc: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes msdcc: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents msdcc: test password case sensitivity ... ok msdcc: test non-string passwords are rejected ... ok msdcc: test MAX_PASSWORD_SIZE is enforced ... ok msdcc: test forbidden characters not allowed in password ... SKIP: none listed msdcc: test known hashes ... ok msdcc: test known alternate hashes ... ok msdcc: test known config strings ... SKIP: hash has no settings msdcc: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided msdcc: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided msdcc: test known foreign hashes ... ok msdcc: test non-string hashes are rejected ... ok msdcc: fuzz testing -- random passwords and options ... ok msdcc: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode msdcc: test user context keyword ... ok msdcc: test user case sensitivity ... ok msdcc: test user used as salt ... ok msdcc: .disable() / .enable() methods ... SKIP: not applicable msdcc: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents msdcc: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes msdcc: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set msdcc: test no password size limits enforced (if truncate_size=None) ... ok msdcc: validate 'truncate_error' setting & related attributes ... ok msdcc: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt mssql2000: validate required attributes ... ok mssql2000: test basic config-string workflow ... ok mssql2000: test basic using() workflow ... ok mssql2000: test basic hash-string workflow. ... ok mssql2000: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok mssql2000: test hashes can be unicode or bytes ... ok mssql2000: test multi-backend support ... SKIP: handler only has one backend mssql2000: validate optional salt attributes ... ok mssql2000: test hash() / genconfig() creates new salt each time ... ok mssql2000: test hash() / genconfig() honors min_salt_size ... ok mssql2000: test hash() / genconfig() honors max_salt_size ... ok mssql2000: test hash() honors salt_chars ... ok mssql2000: test non-string salt values ... ok mssql2000: validate optional rounds attributes ... SKIP: handler lacks rounds attributes mssql2000: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes mssql2000: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes mssql2000: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents mssql2000: test password case sensitivity ... ok mssql2000: test non-string passwords are rejected ... ok mssql2000: test MAX_PASSWORD_SIZE is enforced ... ok mssql2000: test forbidden characters not allowed in password ... SKIP: none listed mssql2000: test known hashes ... ok mssql2000: test known alternate hashes ... ok mssql2000: test known config strings ... SKIP: no config strings provided mssql2000: test known unidentifiably-mangled strings ... ok mssql2000: test known identifiable-but-malformed strings ... ok mssql2000: test known foreign hashes ... ok mssql2000: test non-string hashes are rejected ... ok mssql2000: fuzz testing -- random passwords and options ... ok mssql2000: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode mssql2000: .disable() / .enable() methods ... SKIP: not applicable mssql2000: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents mssql2000: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes mssql2000: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set mssql2000: test no password size limits enforced (if truncate_size=None) ... ok mssql2000: validate 'truncate_error' setting & related attributes ... ok mssql2000: Handler.using() -- default_salt_size ... ok mssql2005: validate required attributes ... ok mssql2005: test basic config-string workflow ... ok mssql2005: test basic using() workflow ... ok mssql2005: test basic hash-string workflow. ... ok mssql2005: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok mssql2005: test hashes can be unicode or bytes ... ok mssql2005: test multi-backend support ... SKIP: handler only has one backend mssql2005: validate optional salt attributes ... ok mssql2005: test hash() / genconfig() creates new salt each time ... ok mssql2005: test hash() / genconfig() honors min_salt_size ... ok mssql2005: test hash() / genconfig() honors max_salt_size ... ok mssql2005: test hash() honors salt_chars ... ok mssql2005: test non-string salt values ... ok mssql2005: validate optional rounds attributes ... SKIP: handler lacks rounds attributes mssql2005: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes mssql2005: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes mssql2005: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents mssql2005: test password case sensitivity ... ok mssql2005: test non-string passwords are rejected ... ok mssql2005: test MAX_PASSWORD_SIZE is enforced ... ok mssql2005: test forbidden characters not allowed in password ... SKIP: none listed mssql2005: test known hashes ... ok mssql2005: test known alternate hashes ... ok mssql2005: test known config strings ... SKIP: no config strings provided mssql2005: test known unidentifiably-mangled strings ... ok mssql2005: test known identifiable-but-malformed strings ... ok mssql2005: test known foreign hashes ... ok mssql2005: test non-string hashes are rejected ... ok mssql2005: fuzz testing -- random passwords and options ... ok mssql2005: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode mssql2005: .disable() / .enable() methods ... SKIP: not applicable mssql2005: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents mssql2005: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes mssql2005: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set mssql2005: test no password size limits enforced (if truncate_size=None) ... ok mssql2005: validate 'truncate_error' setting & related attributes ... ok mssql2005: Handler.using() -- default_salt_size ... ok mysql323: validate required attributes ... ok mysql323: test basic config-string workflow ... ok mysql323: test basic using() workflow ... ok mysql323: test basic hash-string workflow. ... ok mysql323: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok mysql323: test hashes can be unicode or bytes ... ok mysql323: test multi-backend support ... SKIP: handler only has one backend mysql323: validate optional salt attributes ... SKIP: handler doesn't have salt mysql323: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt mysql323: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt mysql323: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt mysql323: test hash() honors salt_chars ... SKIP: handler doesn't have salt mysql323: test non-string salt values ... SKIP: handler doesn't have salt mysql323: validate optional rounds attributes ... SKIP: handler lacks rounds attributes mysql323: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes mysql323: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes mysql323: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents mysql323: test password case sensitivity ... ok mysql323: test non-string passwords are rejected ... ok mysql323: test MAX_PASSWORD_SIZE is enforced ... ok mysql323: test forbidden characters not allowed in password ... SKIP: none listed mysql323: test known hashes ... ok mysql323: test known alternate hashes ... SKIP: no alternate hashes provided mysql323: test known config strings ... SKIP: hash has no settings mysql323: test known unidentifiably-mangled strings ... ok mysql323: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided mysql323: test known foreign hashes ... ok mysql323: test non-string hashes are rejected ... ok mysql323: fuzz testing -- random passwords and options ... ok mysql323: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode mysql323: check whitespace is ignored per spec ... ok mysql323: .disable() / .enable() methods ... SKIP: not applicable mysql323: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents mysql323: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes mysql323: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set mysql323: test no password size limits enforced (if truncate_size=None) ... ok mysql323: validate 'truncate_error' setting & related attributes ... ok mysql323: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt mysql41: validate required attributes ... ok mysql41: test basic config-string workflow ... ok mysql41: test basic using() workflow ... ok mysql41: test basic hash-string workflow. ... ok mysql41: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok mysql41: test hashes can be unicode or bytes ... ok mysql41: test multi-backend support ... SKIP: handler only has one backend mysql41: validate optional salt attributes ... SKIP: handler doesn't have salt mysql41: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt mysql41: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt mysql41: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt mysql41: test hash() honors salt_chars ... SKIP: handler doesn't have salt mysql41: test non-string salt values ... SKIP: handler doesn't have salt mysql41: validate optional rounds attributes ... SKIP: handler lacks rounds attributes mysql41: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes mysql41: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes mysql41: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents mysql41: test password case sensitivity ... ok mysql41: test non-string passwords are rejected ... ok mysql41: test MAX_PASSWORD_SIZE is enforced ... ok mysql41: test forbidden characters not allowed in password ... SKIP: none listed mysql41: test known hashes ... ok mysql41: test known alternate hashes ... SKIP: no alternate hashes provided mysql41: test known config strings ... SKIP: hash has no settings mysql41: test known unidentifiably-mangled strings ... ok mysql41: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided mysql41: test known foreign hashes ... ok mysql41: test non-string hashes are rejected ... ok mysql41: fuzz testing -- random passwords and options ... ok mysql41: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode mysql41: .disable() / .enable() methods ... SKIP: not applicable mysql41: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents mysql41: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes mysql41: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set mysql41: test no password size limits enforced (if truncate_size=None) ... ok mysql41: validate 'truncate_error' setting & related attributes ... ok mysql41: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt nthash: validate required attributes ... ok nthash: test basic config-string workflow ... ok nthash: test basic using() workflow ... ok nthash: test basic hash-string workflow. ... ok nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok nthash: test hashes can be unicode or bytes ... ok nthash: test multi-backend support ... SKIP: handler only has one backend nthash: validate optional salt attributes ... SKIP: handler doesn't have salt nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt nthash: test non-string salt values ... SKIP: handler doesn't have salt nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents nthash: test password case sensitivity ... ok nthash: test non-string passwords are rejected ... ok nthash: test MAX_PASSWORD_SIZE is enforced ... ok nthash: test forbidden characters not allowed in password ... SKIP: none listed nthash: test known hashes ... ok nthash: test known alternate hashes ... SKIP: no alternate hashes provided nthash: test known config strings ... SKIP: hash has no settings nthash: test known unidentifiably-mangled strings ... ok nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided nthash: test known foreign hashes ... ok nthash: test non-string hashes are rejected ... ok nthash: fuzz testing -- random passwords and options ... ok nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode nthash: .disable() / .enable() methods ... SKIP: not applicable nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set nthash: test no password size limits enforced (if truncate_size=None) ... ok nthash: validate 'truncate_error' setting & related attributes ... ok nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt oracle10: validate required attributes ... ok oracle10: test basic config-string workflow ... ok oracle10: test basic using() workflow ... ok oracle10: test basic hash-string workflow. ... ok oracle10: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok oracle10: test hashes can be unicode or bytes ... ok oracle10: test multi-backend support ... SKIP: handler only has one backend oracle10: validate optional salt attributes ... SKIP: handler doesn't have salt oracle10: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt oracle10: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt oracle10: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt oracle10: test hash() honors salt_chars ... SKIP: handler doesn't have salt oracle10: test non-string salt values ... SKIP: handler doesn't have salt oracle10: validate optional rounds attributes ... SKIP: handler lacks rounds attributes oracle10: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes oracle10: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes oracle10: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents oracle10: test password case sensitivity ... ok oracle10: test non-string passwords are rejected ... ok oracle10: test MAX_PASSWORD_SIZE is enforced ... ok oracle10: test forbidden characters not allowed in password ... SKIP: none listed oracle10: test known hashes ... ok oracle10: test known alternate hashes ... SKIP: no alternate hashes provided oracle10: test known config strings ... SKIP: hash has no settings oracle10: test known unidentifiably-mangled strings ... ok oracle10: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided oracle10: test known foreign hashes ... ok oracle10: test non-string hashes are rejected ... ok oracle10: fuzz testing -- random passwords and options ... ok oracle10: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode oracle10: test user context keyword ... ok oracle10: test user case sensitivity ... ok oracle10: test user used as salt ... ok oracle10: .disable() / .enable() methods ... SKIP: not applicable oracle10: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents oracle10: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes oracle10: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set oracle10: test no password size limits enforced (if truncate_size=None) ... ok oracle10: validate 'truncate_error' setting & related attributes ... ok oracle10: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt oracle11: validate required attributes ... ok oracle11: test basic config-string workflow ... ok oracle11: test basic using() workflow ... ok oracle11: test basic hash-string workflow. ... ok oracle11: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok oracle11: test hashes can be unicode or bytes ... ok oracle11: test multi-backend support ... SKIP: handler only has one backend oracle11: validate optional salt attributes ... ok oracle11: test hash() / genconfig() creates new salt each time ... ok oracle11: test hash() / genconfig() honors min_salt_size ... ok oracle11: test hash() / genconfig() honors max_salt_size ... ok oracle11: test hash() honors salt_chars ... ok oracle11: test non-string salt values ... ok oracle11: validate optional rounds attributes ... SKIP: handler lacks rounds attributes oracle11: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes oracle11: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes oracle11: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents oracle11: test password case sensitivity ... ok oracle11: test non-string passwords are rejected ... ok oracle11: test MAX_PASSWORD_SIZE is enforced ... ok oracle11: test forbidden characters not allowed in password ... SKIP: none listed oracle11: test known hashes ... ok oracle11: test known alternate hashes ... SKIP: no alternate hashes provided oracle11: test known config strings ... SKIP: no config strings provided oracle11: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided oracle11: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided oracle11: test known foreign hashes ... ok oracle11: test non-string hashes are rejected ... ok oracle11: fuzz testing -- random passwords and options ... ok oracle11: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode oracle11: .disable() / .enable() methods ... SKIP: not applicable oracle11: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents oracle11: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes oracle11: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set oracle11: test no password size limits enforced (if truncate_size=None) ... ok oracle11: validate 'truncate_error' setting & related attributes ... ok oracle11: Handler.using() -- default_salt_size ... ok phpass: validate required attributes ... ok phpass: test basic config-string workflow ... ok phpass: test basic using() workflow ... ok phpass: test basic hash-string workflow. ... ok phpass: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok phpass: test hashes can be unicode or bytes ... ok phpass: test multi-backend support ... SKIP: handler only has one backend phpass: validate optional salt attributes ... ok phpass: test hash() / genconfig() creates new salt each time ... ok phpass: test hash() / genconfig() honors min_salt_size ... ok phpass: test hash() / genconfig() honors max_salt_size ... ok phpass: test hash() honors salt_chars ... ok phpass: test non-string salt values ... ok phpass: validate optional rounds attributes ... ok phpass: test hash() / genconfig() honors min_rounds ... ok phpass: test hash() / genconfig() honors max_rounds ... ok phpass: validate HasManyIdents configuration ... ok phpass: test password case sensitivity ... ok phpass: test non-string passwords are rejected ... ok phpass: test MAX_PASSWORD_SIZE is enforced ... ok phpass: test forbidden characters not allowed in password ... SKIP: none listed phpass: test known hashes ... ok phpass: test known alternate hashes ... SKIP: no alternate hashes provided phpass: test known config strings ... SKIP: no config strings provided phpass: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided phpass: test known identifiable-but-malformed strings ... ok phpass: test known foreign hashes ... ok phpass: test non-string hashes are rejected ... ok phpass: fuzz testing -- random passwords and options ... ok phpass: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode phpass: .disable() / .enable() methods ... SKIP: not applicable phpass: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok phpass: HasRounds.using() -- max_rounds / max_desired_rounds ... ok phpass: HasRounds.using() -- desired_rounds + needs_update() ... ok phpass: HasRounds.using() -- sanity check test harness ... ok phpass: HasRounds.using() -- default_rounds ... ok phpass: HasRounds.using() -- min_rounds / min_desired_rounds ... ok phpass: HasRounds.using() -- rounds ... ok phpass: HasRounds.using() -- vary_rounds generation ... ok phpass: HasRounds.using() -- vary_rounds parsing ... ok phpass: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set phpass: test no password size limits enforced (if truncate_size=None) ... ok phpass: validate 'truncate_error' setting & related attributes ... ok phpass: Handler.using() -- default_salt_size ... ok plaintext: validate required attributes ... ok plaintext: test basic config-string workflow ... ok plaintext: test basic using() workflow ... ok plaintext: test basic hash-string workflow. ... ok plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok plaintext: test hashes can be unicode or bytes ... ok plaintext: test multi-backend support ... SKIP: handler only has one backend plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt plaintext: test non-string salt values ... SKIP: handler doesn't have salt plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents plaintext: test password case sensitivity ... ok plaintext: test non-string passwords are rejected ... ok plaintext: test MAX_PASSWORD_SIZE is enforced ... ok plaintext: test forbidden characters not allowed in password ... SKIP: none listed plaintext: test known hashes ... ok plaintext: test known alternate hashes ... SKIP: no alternate hashes provided plaintext: test known config strings ... SKIP: hash has no settings plaintext: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided plaintext: test known foreign hashes ... SKIP: not applicable plaintext: test non-string hashes are rejected ... ok plaintext: fuzz testing -- random passwords and options ... ok plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode plaintext: .disable() / .enable() methods ... SKIP: not applicable plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set plaintext: test no password size limits enforced (if truncate_size=None) ... ok plaintext: validate 'truncate_error' setting & related attributes ... ok plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt postgres_md5: validate required attributes ... ok postgres_md5: test basic config-string workflow ... ok postgres_md5: test basic using() workflow ... ok postgres_md5: test basic hash-string workflow. ... ok postgres_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok postgres_md5: test hashes can be unicode or bytes ... ok postgres_md5: test multi-backend support ... SKIP: handler only has one backend postgres_md5: validate optional salt attributes ... SKIP: handler doesn't have salt postgres_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt postgres_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt postgres_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt postgres_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt postgres_md5: test non-string salt values ... SKIP: handler doesn't have salt postgres_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes postgres_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes postgres_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes postgres_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents postgres_md5: test password case sensitivity ... ok postgres_md5: test non-string passwords are rejected ... ok postgres_md5: test MAX_PASSWORD_SIZE is enforced ... ok postgres_md5: test forbidden characters not allowed in password ... SKIP: none listed postgres_md5: test known hashes ... ok postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided postgres_md5: test known config strings ... SKIP: hash has no settings postgres_md5: test known unidentifiably-mangled strings ... ok postgres_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided postgres_md5: test known foreign hashes ... ok postgres_md5: test non-string hashes are rejected ... ok postgres_md5: fuzz testing -- random passwords and options ... ok postgres_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode postgres_md5: test user context keyword ... ok postgres_md5: test user case sensitivity ... ok postgres_md5: test user used as salt ... ok postgres_md5: .disable() / .enable() methods ... SKIP: not applicable postgres_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents postgres_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes postgres_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set postgres_md5: test no password size limits enforced (if truncate_size=None) ... ok postgres_md5: validate 'truncate_error' setting & related attributes ... ok postgres_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt sha1_crypt (os_crypt backend): validate required attributes ... ok sha1_crypt (os_crypt backend): test basic config-string workflow ... ok sha1_crypt (os_crypt backend): test basic using() workflow ... ok sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok sha1_crypt (os_crypt backend): test multi-backend support ... ok sha1_crypt (os_crypt backend): validate optional salt attributes ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok sha1_crypt (os_crypt backend): test non-string salt values ... ok sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents sha1_crypt (os_crypt backend): test password case sensitivity ... ok sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok sha1_crypt (os_crypt backend): test known hashes ... ok sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok sha1_crypt (os_crypt backend): test known foreign hashes ... ok sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode sha1_crypt (os_crypt backend): test with faulty crypt() ... ok sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux2' platform sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok sha256_crypt (os_crypt backend): validate required attributes ... ok sha256_crypt (os_crypt backend): test basic config-string workflow ... ok sha256_crypt (os_crypt backend): test basic using() workflow ... ok sha256_crypt (os_crypt backend): test basic hash-string workflow. ... ok sha256_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok sha256_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok sha256_crypt (os_crypt backend): test multi-backend support ... ok sha256_crypt (os_crypt backend): validate optional salt attributes ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok sha256_crypt (os_crypt backend): test hash() honors salt_chars ... ok sha256_crypt (os_crypt backend): test non-string salt values ... ok sha256_crypt (os_crypt backend): validate optional rounds attributes ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok sha256_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents sha256_crypt (os_crypt backend): test password case sensitivity ... ok sha256_crypt (os_crypt backend): test non-string passwords are rejected ... ok sha256_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok sha256_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok sha256_crypt (os_crypt backend): test known hashes ... ok sha256_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided sha256_crypt (os_crypt backend): test known config strings ... ok sha256_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided sha256_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok sha256_crypt (os_crypt backend): test known foreign hashes ... ok sha256_crypt (os_crypt backend): test non-string hashes are rejected ... ok sha256_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok sha256_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode sha256_crypt (os_crypt backend): test with faulty crypt() ... ok sha256_crypt (os_crypt backend): test per-call crypt() fallback ... ok sha256_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok sha256_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable sha256_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents sha256_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok sha256_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set sha256_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok sha256_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok sha256_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok sha512_crypt (os_crypt backend): validate required attributes ... ok sha512_crypt (os_crypt backend): test basic config-string workflow ... ok sha512_crypt (os_crypt backend): test basic using() workflow ... ok sha512_crypt (os_crypt backend): test basic hash-string workflow. ... ok sha512_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok sha512_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok sha512_crypt (os_crypt backend): test multi-backend support ... ok sha512_crypt (os_crypt backend): validate optional salt attributes ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok sha512_crypt (os_crypt backend): test hash() honors salt_chars ... ok sha512_crypt (os_crypt backend): test non-string salt values ... ok sha512_crypt (os_crypt backend): validate optional rounds attributes ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok sha512_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents sha512_crypt (os_crypt backend): test password case sensitivity ... ok sha512_crypt (os_crypt backend): test non-string passwords are rejected ... ok sha512_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok sha512_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok sha512_crypt (os_crypt backend): test known hashes ... ok sha512_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided sha512_crypt (os_crypt backend): test known config strings ... ok sha512_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided sha512_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok sha512_crypt (os_crypt backend): test known foreign hashes ... ok sha512_crypt (os_crypt backend): test non-string hashes are rejected ... ok sha512_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok sha512_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode sha512_crypt (os_crypt backend): test with faulty crypt() ... ok sha512_crypt (os_crypt backend): test per-call crypt() fallback ... ok sha512_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok sha512_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable sha512_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents sha512_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok sha512_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set sha512_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok sha512_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok sha512_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok sun_md5_crypt: validate required attributes ... ok sun_md5_crypt: test basic config-string workflow ... ok sun_md5_crypt: test basic using() workflow ... ok sun_md5_crypt: test basic hash-string workflow. ... ok sun_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok sun_md5_crypt: test hashes can be unicode or bytes ... ok sun_md5_crypt: test multi-backend support ... SKIP: handler only has one backend sun_md5_crypt: validate optional salt attributes ... ok sun_md5_crypt: test hash() / genconfig() creates new salt each time ... ok sun_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok sun_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok sun_md5_crypt: test hash() honors salt_chars ... ok sun_md5_crypt: test non-string salt values ... ok sun_md5_crypt: validate optional rounds attributes ... ok sun_md5_crypt: test hash() / genconfig() honors min_rounds ... ok sun_md5_crypt: test hash() / genconfig() honors max_rounds ... ok sun_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents sun_md5_crypt: test password case sensitivity ... ok sun_md5_crypt: test non-string passwords are rejected ... ok sun_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok sun_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed sun_md5_crypt: test known hashes ... ok sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided sun_md5_crypt: test known config strings ... ok sun_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided sun_md5_crypt: test known identifiable-but-malformed strings ... ok sun_md5_crypt: test known foreign hashes ... ok sun_md5_crypt: test non-string hashes are rejected ... ok sun_md5_crypt: fuzz testing -- random passwords and options ... ok sun_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode sun_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable sun_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents sun_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... ok sun_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... ok sun_md5_crypt: HasRounds.using() -- sanity check test harness ... ok sun_md5_crypt: HasRounds.using() -- default_rounds ... ok sun_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... ok sun_md5_crypt: HasRounds.using() -- rounds ... ok sun_md5_crypt: HasRounds.using() -- vary_rounds generation ... ok sun_md5_crypt: HasRounds.using() -- vary_rounds parsing ... ok sun_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set sun_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok sun_md5_crypt: validate 'truncate_error' setting & related attributes ... ok sun_md5_crypt: Handler.using() -- default_salt_size ... ok unix_disabled: validate required attributes ... ok unix_disabled: test basic config-string workflow ... ok unix_disabled: test basic using() workflow ... ok unix_disabled: test basic hash-string workflow. ... ok unix_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok unix_disabled: test hashes can be unicode or bytes ... ok unix_disabled: test multi-backend support ... SKIP: handler only has one backend unix_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt unix_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt unix_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt unix_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt unix_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt unix_disabled: test non-string salt values ... SKIP: handler doesn't have salt unix_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes unix_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes unix_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes unix_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents unix_disabled: test password case sensitivity ... ok unix_disabled: test non-string passwords are rejected ... ok unix_disabled: test MAX_PASSWORD_SIZE is enforced ... ok unix_disabled: test forbidden characters not allowed in password ... SKIP: none listed unix_disabled: test known hashes ... ok unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided unix_disabled: test known config strings ... SKIP: no config strings provided unix_disabled: test known unidentifiably-mangled strings ... ok unix_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided unix_disabled: test known foreign hashes ... ok unix_disabled: test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) ... ok unix_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable unix_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode unix_disabled: test marker option & special behavior ... ok unix_disabled: .disable() / .enable() methods ... ok unix_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents unix_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes unix_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set unix_disabled: test no password size limits enforced (if truncate_size=None) ... ok unix_disabled: validate 'truncate_error' setting & related attributes ... ok unix_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt unix_fallback: validate required attributes ... ok unix_fallback: test basic config-string workflow ... ok unix_fallback: test basic using() workflow ... ok unix_fallback: test basic hash-string workflow. ... ok unix_fallback: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok unix_fallback: test hashes can be unicode or bytes ... ok unix_fallback: test multi-backend support ... SKIP: handler only has one backend unix_fallback: validate optional salt attributes ... SKIP: handler doesn't have salt unix_fallback: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt unix_fallback: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt unix_fallback: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt unix_fallback: test hash() honors salt_chars ... SKIP: handler doesn't have salt unix_fallback: test non-string salt values ... SKIP: handler doesn't have salt unix_fallback: validate optional rounds attributes ... SKIP: handler lacks rounds attributes unix_fallback: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes unix_fallback: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes unix_fallback: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents unix_fallback: test password case sensitivity ... ok unix_fallback: test non-string passwords are rejected ... ok unix_fallback: test MAX_PASSWORD_SIZE is enforced ... ok unix_fallback: test forbidden characters not allowed in password ... SKIP: none listed unix_fallback: test known hashes ... ok unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided unix_fallback: test known config strings ... SKIP: hash has no settings unix_fallback: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided unix_fallback: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided unix_fallback: test known foreign hashes ... SKIP: not applicable unix_fallback: test non-string hashes are rejected ... ok unix_fallback: fuzz testing -- random passwords and options ... SKIP: not applicable unix_fallback: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode unix_fallback: test enable_wildcard flag ... ok unix_fallback: test preserves existing disabled hash ... ok unix_fallback: .disable() / .enable() methods ... ok unix_fallback: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents unix_fallback: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes unix_fallback: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set unix_fallback: test no password size limits enforced (if truncate_size=None) ... ok unix_fallback: validate 'truncate_error' setting & related attributes ... ok unix_fallback: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt cisco_asa: validate required attributes ... ok cisco_asa: test basic config-string workflow ... ok cisco_asa: test basic using() workflow ... ok cisco_asa: test basic hash-string workflow. ... ok cisco_asa: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok cisco_asa: test hashes can be unicode or bytes ... ok cisco_asa: test multi-backend support ... SKIP: handler only has one backend cisco_asa: validate optional salt attributes ... SKIP: handler doesn't have salt cisco_asa: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt cisco_asa: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt cisco_asa: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt cisco_asa: test hash() honors salt_chars ... SKIP: handler doesn't have salt cisco_asa: test non-string salt values ... SKIP: handler doesn't have salt cisco_asa: validate optional rounds attributes ... SKIP: handler lacks rounds attributes cisco_asa: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes cisco_asa: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes cisco_asa: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents cisco_asa: test password case sensitivity ... ok cisco_asa: test non-string passwords are rejected ... ok cisco_asa: test MAX_PASSWORD_SIZE is enforced ... ok cisco_asa: test forbidden characters not allowed in password ... SKIP: none listed cisco_asa: test known hashes ... ok cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided cisco_asa: test known config strings ... SKIP: hash has no settings cisco_asa: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided cisco_asa: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided cisco_asa: test known foreign hashes ... ok cisco_asa: test non-string hashes are rejected ... ok cisco_asa: fuzz testing -- random passwords and options ... ok cisco_asa: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode cisco_asa: test user context keyword ... ok cisco_asa: test user case sensitivity ... ok cisco_asa: test user used as salt ... ok cisco_asa: _calc_checksum() -- spoil oversize passwords during verify ... ok cisco_asa: .disable() / .enable() methods ... SKIP: not applicable cisco_asa: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents cisco_asa: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes cisco_asa: test password size limits raise truncate_error (if appropriate) ... ok cisco_asa: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set cisco_asa: validate 'truncate_error' setting & related attributes ... ok cisco_asa: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt cisco_pix: validate required attributes ... ok cisco_pix: test basic config-string workflow ... ok cisco_pix: test basic using() workflow ... ok cisco_pix: test basic hash-string workflow. ... ok cisco_pix: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok cisco_pix: test hashes can be unicode or bytes ... ok cisco_pix: test multi-backend support ... SKIP: handler only has one backend cisco_pix: validate optional salt attributes ... SKIP: handler doesn't have salt cisco_pix: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt cisco_pix: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt cisco_pix: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt cisco_pix: test hash() honors salt_chars ... SKIP: handler doesn't have salt cisco_pix: test non-string salt values ... SKIP: handler doesn't have salt cisco_pix: validate optional rounds attributes ... SKIP: handler lacks rounds attributes cisco_pix: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes cisco_pix: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes cisco_pix: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents cisco_pix: test password case sensitivity ... ok cisco_pix: test non-string passwords are rejected ... ok cisco_pix: test MAX_PASSWORD_SIZE is enforced ... ok cisco_pix: test forbidden characters not allowed in password ... SKIP: none listed cisco_pix: test known hashes ... ok cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided cisco_pix: test known config strings ... SKIP: hash has no settings cisco_pix: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided cisco_pix: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided cisco_pix: test known foreign hashes ... ok cisco_pix: test non-string hashes are rejected ... ok cisco_pix: fuzz testing -- random passwords and options ... ok cisco_pix: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode cisco_pix: test user context keyword ... ok cisco_pix: test user case sensitivity ... ok cisco_pix: test user used as salt ... ok cisco_pix: _calc_checksum() -- spoil oversize passwords during verify ... ok cisco_pix: .disable() / .enable() methods ... SKIP: not applicable cisco_pix: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents cisco_pix: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes cisco_pix: test password size limits raise truncate_error (if appropriate) ... ok cisco_pix: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set cisco_pix: validate 'truncate_error' setting & related attributes ... ok cisco_pix: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt cisco_type7: validate required attributes ... ok cisco_type7: test basic config-string workflow ... ok cisco_type7: test basic using() workflow ... ok cisco_type7: test basic hash-string workflow. ... ok cisco_type7: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok cisco_type7: test hashes can be unicode or bytes ... ok cisco_type7: test multi-backend support ... SKIP: handler only has one backend cisco_type7: validate optional salt attributes ... SKIP: handler doesn't provide salt info cisco_type7: test hash() / genconfig() creates new salt each time ... ok cisco_type7: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't provide salt info cisco_type7: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't provide salt info cisco_type7: test hash() honors salt_chars ... SKIP: handler doesn't provide salt info cisco_type7: test non-string salt values ... ok cisco_type7: validate optional rounds attributes ... SKIP: handler lacks rounds attributes cisco_type7: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes cisco_type7: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes cisco_type7: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents cisco_type7: test password case sensitivity ... ok cisco_type7: test non-string passwords are rejected ... ok cisco_type7: test MAX_PASSWORD_SIZE is enforced ... ok cisco_type7: test forbidden characters not allowed in password ... SKIP: none listed cisco_type7: test known hashes ... ok cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided cisco_type7: test known config strings ... SKIP: no config strings provided cisco_type7: test known unidentifiably-mangled strings ... ok cisco_type7: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided cisco_type7: test known foreign hashes ... ok cisco_type7: test non-string hashes are rejected ... ok cisco_type7: fuzz testing -- random passwords and options ... ok cisco_type7: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode cisco_type7: test cisco_type7.decode() ... ok cisco_type7: test salt value border cases ... ok cisco_type7: .disable() / .enable() methods ... SKIP: not applicable cisco_type7: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents cisco_type7: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes cisco_type7: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set cisco_type7: test no password size limits enforced (if truncate_size=None) ... ok cisco_type7: validate 'truncate_error' setting & related attributes ... ok cisco_type7: Handler.using() -- default_salt_size ... SKIP: handler doesn't provide salt info django_des_crypt: validate required attributes ... ok django_des_crypt: test basic config-string workflow ... ok django_des_crypt: test basic using() workflow ... ok django_des_crypt: test basic hash-string workflow. ... ok django_des_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_des_crypt: test hashes can be unicode or bytes ... ok django_des_crypt: test multi-backend support ... SKIP: handler only has one backend django_des_crypt: validate optional salt attributes ... ok django_des_crypt: test hash() / genconfig() creates new salt each time ... ok django_des_crypt: test hash() / genconfig() honors min_salt_size ... ok django_des_crypt: test hash() / genconfig() honors max_salt_size ... ok django_des_crypt: test hash() honors salt_chars ... ok django_des_crypt: test non-string salt values ... ok django_des_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes django_des_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_des_crypt: test password case sensitivity ... ok django_des_crypt: test non-string passwords are rejected ... ok django_des_crypt: test MAX_PASSWORD_SIZE is enforced ... ok django_des_crypt: test forbidden characters not allowed in password ... SKIP: none listed django_des_crypt: test known hashes ... ok django_des_crypt: test known alternate hashes ... ok django_des_crypt: test known config strings ... SKIP: no config strings provided django_des_crypt: test known unidentifiably-mangled strings ... ok django_des_crypt: test known identifiable-but-malformed strings ... ok django_des_crypt: test known foreign hashes ... ok django_des_crypt: test non-string hashes are rejected ... ok django_des_crypt: fuzz testing -- random passwords and options ... ok django_des_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_des_crypt: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_des_crypt: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_des_crypt: .disable() / .enable() methods ... SKIP: not applicable django_des_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_des_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes django_des_crypt: test password size limits raise truncate_error (if appropriate) ... ok django_des_crypt: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set django_des_crypt: validate 'truncate_error' setting & related attributes ... ok django_des_crypt: Handler.using() -- default_salt_size ... ok django_disabled: validate required attributes ... ok django_disabled: test basic config-string workflow ... ok django_disabled: test basic using() workflow ... ok django_disabled: test basic hash-string workflow. ... ok django_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_disabled: test hashes can be unicode or bytes ... ok django_disabled: test multi-backend support ... SKIP: handler only has one backend django_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt django_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt django_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt django_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt django_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt django_disabled: test non-string salt values ... SKIP: handler doesn't have salt django_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes django_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes django_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes django_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_disabled: test password case sensitivity ... ok django_disabled: test non-string passwords are rejected ... ok django_disabled: test MAX_PASSWORD_SIZE is enforced ... ok django_disabled: test forbidden characters not allowed in password ... SKIP: none listed django_disabled: test known hashes ... ok django_disabled: test known alternate hashes ... ok django_disabled: test known config strings ... SKIP: hash has no settings django_disabled: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided django_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided django_disabled: test known foreign hashes ... ok django_disabled: test non-string hashes are rejected ... ok django_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable django_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_disabled: .disable() / .enable() methods ... ok django_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes django_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_disabled: test no password size limits enforced (if truncate_size=None) ... ok django_disabled: validate 'truncate_error' setting & related attributes ... ok django_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt django_pbkdf2_sha1: validate required attributes ... ok django_pbkdf2_sha1: test basic config-string workflow ... ok django_pbkdf2_sha1: test basic using() workflow ... ok django_pbkdf2_sha1: test basic hash-string workflow. ... ok django_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_pbkdf2_sha1: test hashes can be unicode or bytes ... ok django_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend django_pbkdf2_sha1: validate optional salt attributes ... ok django_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok django_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok django_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok django_pbkdf2_sha1: test hash() honors salt_chars ... ok django_pbkdf2_sha1: test non-string salt values ... ok django_pbkdf2_sha1: validate optional rounds attributes ... ok django_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok django_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok django_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_pbkdf2_sha1: test password case sensitivity ... ok django_pbkdf2_sha1: test non-string passwords are rejected ... ok django_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok django_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed django_pbkdf2_sha1: test known hashes ... ok django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided django_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided django_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided django_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided django_pbkdf2_sha1: test known foreign hashes ... ok django_pbkdf2_sha1: test non-string hashes are rejected ... ok django_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok django_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_pbkdf2_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_pbkdf2_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable django_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok django_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok django_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok django_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok django_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok django_pbkdf2_sha1: HasRounds.using() -- rounds ... ok django_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok django_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok django_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok django_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok django_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok django_pbkdf2_sha256: validate required attributes ... ok django_pbkdf2_sha256: test basic config-string workflow ... ok django_pbkdf2_sha256: test basic using() workflow ... ok django_pbkdf2_sha256: test basic hash-string workflow. ... ok django_pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_pbkdf2_sha256: test hashes can be unicode or bytes ... ok django_pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend django_pbkdf2_sha256: validate optional salt attributes ... ok django_pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok django_pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok django_pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok django_pbkdf2_sha256: test hash() honors salt_chars ... ok django_pbkdf2_sha256: test non-string salt values ... ok django_pbkdf2_sha256: validate optional rounds attributes ... ok django_pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok django_pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok django_pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_pbkdf2_sha256: test password case sensitivity ... ok django_pbkdf2_sha256: test non-string passwords are rejected ... ok django_pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok django_pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed django_pbkdf2_sha256: test known hashes ... ok django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided django_pbkdf2_sha256: test known config strings ... SKIP: no config strings provided django_pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided django_pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided django_pbkdf2_sha256: test known foreign hashes ... ok django_pbkdf2_sha256: test non-string hashes are rejected ... ok django_pbkdf2_sha256: fuzz testing -- random passwords and options ... ok django_pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_pbkdf2_sha256: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_pbkdf2_sha256: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable django_pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok django_pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok django_pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok django_pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok django_pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok django_pbkdf2_sha256: HasRounds.using() -- rounds ... ok django_pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok django_pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok django_pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok django_pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok django_pbkdf2_sha256: Handler.using() -- default_salt_size ... ok django_salted_md5: validate required attributes ... ok django_salted_md5: test basic config-string workflow ... ok django_salted_md5: test basic using() workflow ... ok django_salted_md5: test basic hash-string workflow. ... ok django_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_salted_md5: test hashes can be unicode or bytes ... ok django_salted_md5: test multi-backend support ... SKIP: handler only has one backend django_salted_md5: validate optional salt attributes ... ok django_salted_md5: test hash() / genconfig() creates new salt each time ... ok django_salted_md5: test hash() / genconfig() honors min_salt_size ... ok django_salted_md5: test hash() / genconfig() honors max_salt_size ... ok django_salted_md5: test hash() honors salt_chars ... ok django_salted_md5: test non-string salt values ... ok django_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes django_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_salted_md5: test password case sensitivity ... ok django_salted_md5: test non-string passwords are rejected ... ok django_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok django_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed django_salted_md5: test known hashes ... ok django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided django_salted_md5: test known config strings ... SKIP: no config strings provided django_salted_md5: test known unidentifiably-mangled strings ... ok django_salted_md5: test known identifiable-but-malformed strings ... ok django_salted_md5: test known foreign hashes ... ok django_salted_md5: test non-string hashes are rejected ... ok django_salted_md5: fuzz testing -- random passwords and options ... ok django_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_salted_md5: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_salted_md5: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_salted_md5: .disable() / .enable() methods ... SKIP: not applicable django_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes django_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok django_salted_md5: validate 'truncate_error' setting & related attributes ... ok django_salted_md5: Handler.using() -- default_salt_size ... ok django_salted_sha1: validate required attributes ... ok django_salted_sha1: test basic config-string workflow ... ok django_salted_sha1: test basic using() workflow ... ok django_salted_sha1: test basic hash-string workflow. ... ok django_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_salted_sha1: test hashes can be unicode or bytes ... ok django_salted_sha1: test multi-backend support ... SKIP: handler only has one backend django_salted_sha1: validate optional salt attributes ... ok django_salted_sha1: test hash() / genconfig() creates new salt each time ... ok django_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok django_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok django_salted_sha1: test hash() honors salt_chars ... ok django_salted_sha1: test non-string salt values ... ok django_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes django_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_salted_sha1: test password case sensitivity ... ok django_salted_sha1: test non-string passwords are rejected ... ok django_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok django_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed django_salted_sha1: test known hashes ... ok django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided django_salted_sha1: test known config strings ... SKIP: no config strings provided django_salted_sha1: test known unidentifiably-mangled strings ... ok django_salted_sha1: test known identifiable-but-malformed strings ... ok django_salted_sha1: test known foreign hashes ... ok django_salted_sha1: test non-string hashes are rejected ... ok django_salted_sha1: fuzz testing -- random passwords and options ... ok django_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_salted_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_salted_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable django_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes django_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok django_salted_sha1: validate 'truncate_error' setting & related attributes ... ok django_salted_sha1: Handler.using() -- default_salt_size ... ok atlassian_pbkdf2_sha1: validate required attributes ... ok atlassian_pbkdf2_sha1: test basic config-string workflow ... ok atlassian_pbkdf2_sha1: test basic using() workflow ... ok atlassian_pbkdf2_sha1: test basic hash-string workflow. ... ok atlassian_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok atlassian_pbkdf2_sha1: test hashes can be unicode or bytes ... ok atlassian_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend atlassian_pbkdf2_sha1: validate optional salt attributes ... ok atlassian_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok atlassian_pbkdf2_sha1: test hash() honors salt_chars ... ok atlassian_pbkdf2_sha1: test non-string salt values ... ok atlassian_pbkdf2_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents atlassian_pbkdf2_sha1: test password case sensitivity ... ok atlassian_pbkdf2_sha1: test non-string passwords are rejected ... ok atlassian_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok atlassian_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed atlassian_pbkdf2_sha1: test known hashes ... ok atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided atlassian_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided atlassian_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided atlassian_pbkdf2_sha1: test known identifiable-but-malformed strings ... ok atlassian_pbkdf2_sha1: test known foreign hashes ... ok atlassian_pbkdf2_sha1: test non-string hashes are rejected ... ok atlassian_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok atlassian_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode atlassian_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable atlassian_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents atlassian_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set atlassian_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok atlassian_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok atlassian_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok cta_pbkdf2_sha1: validate required attributes ... ok cta_pbkdf2_sha1: test basic config-string workflow ... ok cta_pbkdf2_sha1: test basic using() workflow ... ok cta_pbkdf2_sha1: test basic hash-string workflow. ... ok cta_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok cta_pbkdf2_sha1: test hashes can be unicode or bytes ... ok cta_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend cta_pbkdf2_sha1: validate optional salt attributes ... ok cta_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok cta_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok cta_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok cta_pbkdf2_sha1: test hash() honors salt_chars ... ok cta_pbkdf2_sha1: test non-string salt values ... ok cta_pbkdf2_sha1: validate optional rounds attributes ... ok cta_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok cta_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok cta_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents cta_pbkdf2_sha1: test password case sensitivity ... ok cta_pbkdf2_sha1: test non-string passwords are rejected ... ok cta_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok cta_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed cta_pbkdf2_sha1: test known hashes ... ok cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided cta_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided cta_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided cta_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided cta_pbkdf2_sha1: test known foreign hashes ... ok cta_pbkdf2_sha1: test non-string hashes are rejected ... ok cta_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok cta_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode cta_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable cta_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents cta_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok cta_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok cta_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok cta_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok cta_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok cta_pbkdf2_sha1: HasRounds.using() -- rounds ... ok cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok cta_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set cta_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok cta_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok cta_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok dlitz_pbkdf2_sha1: validate required attributes ... ok dlitz_pbkdf2_sha1: test basic config-string workflow ... ok dlitz_pbkdf2_sha1: test basic using() workflow ... ok dlitz_pbkdf2_sha1: test basic hash-string workflow. ... ok dlitz_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok dlitz_pbkdf2_sha1: test hashes can be unicode or bytes ... ok dlitz_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend dlitz_pbkdf2_sha1: validate optional salt attributes ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok dlitz_pbkdf2_sha1: test hash() honors salt_chars ... ok dlitz_pbkdf2_sha1: test non-string salt values ... ok dlitz_pbkdf2_sha1: validate optional rounds attributes ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok dlitz_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents dlitz_pbkdf2_sha1: test password case sensitivity ... ok dlitz_pbkdf2_sha1: test non-string passwords are rejected ... ok dlitz_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok dlitz_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed dlitz_pbkdf2_sha1: test known hashes ... ok dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided dlitz_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided dlitz_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided dlitz_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided dlitz_pbkdf2_sha1: test known foreign hashes ... ok dlitz_pbkdf2_sha1: test non-string hashes are rejected ... ok dlitz_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok dlitz_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode dlitz_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable dlitz_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents dlitz_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- rounds ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok dlitz_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set dlitz_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok dlitz_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok dlitz_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok grub_pbkdf2_sha512: validate required attributes ... ok grub_pbkdf2_sha512: test basic config-string workflow ... ok grub_pbkdf2_sha512: test basic using() workflow ... ok grub_pbkdf2_sha512: test basic hash-string workflow. ... ok grub_pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok grub_pbkdf2_sha512: test hashes can be unicode or bytes ... ok grub_pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend grub_pbkdf2_sha512: validate optional salt attributes ... ok grub_pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok grub_pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok grub_pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok grub_pbkdf2_sha512: test hash() honors salt_chars ... ok grub_pbkdf2_sha512: test non-string salt values ... ok grub_pbkdf2_sha512: validate optional rounds attributes ... ok grub_pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok grub_pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok grub_pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents grub_pbkdf2_sha512: test password case sensitivity ... ok grub_pbkdf2_sha512: test non-string passwords are rejected ... ok grub_pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok grub_pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed grub_pbkdf2_sha512: test known hashes ... ok grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided grub_pbkdf2_sha512: test known config strings ... SKIP: no config strings provided grub_pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided grub_pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided grub_pbkdf2_sha512: test known foreign hashes ... ok grub_pbkdf2_sha512: test non-string hashes are rejected ... ok grub_pbkdf2_sha512: fuzz testing -- random passwords and options ... ok grub_pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode grub_pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable grub_pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents grub_pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok grub_pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok grub_pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok grub_pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok grub_pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok grub_pbkdf2_sha512: HasRounds.using() -- rounds ... ok grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok grub_pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set grub_pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok grub_pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok grub_pbkdf2_sha512: Handler.using() -- default_salt_size ... ok test ldap pbkdf2 wrappers ... ok pbkdf2_sha1: validate required attributes ... ok pbkdf2_sha1: test basic config-string workflow ... ok pbkdf2_sha1: test basic using() workflow ... ok pbkdf2_sha1: test basic hash-string workflow. ... ok pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok pbkdf2_sha1: test hashes can be unicode or bytes ... ok pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend pbkdf2_sha1: validate optional salt attributes ... ok pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok pbkdf2_sha1: test hash() honors salt_chars ... ok pbkdf2_sha1: test non-string salt values ... ok pbkdf2_sha1: validate optional rounds attributes ... ok pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha1: test password case sensitivity ... ok pbkdf2_sha1: test non-string passwords are rejected ... ok pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed pbkdf2_sha1: test known hashes ... ok pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided pbkdf2_sha1: test known config strings ... SKIP: no config strings provided pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided pbkdf2_sha1: test known identifiable-but-malformed strings ... ok pbkdf2_sha1: test known foreign hashes ... ok pbkdf2_sha1: test non-string hashes are rejected ... ok pbkdf2_sha1: fuzz testing -- random passwords and options ... ok pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok pbkdf2_sha1: HasRounds.using() -- rounds ... ok pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok pbkdf2_sha1: Handler.using() -- default_salt_size ... ok pbkdf2_sha256: validate required attributes ... ok pbkdf2_sha256: test basic config-string workflow ... ok pbkdf2_sha256: test basic using() workflow ... ok pbkdf2_sha256: test basic hash-string workflow. ... ok pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok pbkdf2_sha256: test hashes can be unicode or bytes ... ok pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend pbkdf2_sha256: validate optional salt attributes ... ok pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok pbkdf2_sha256: test hash() honors salt_chars ... ok pbkdf2_sha256: test non-string salt values ... ok pbkdf2_sha256: validate optional rounds attributes ... ok pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha256: test password case sensitivity ... ok pbkdf2_sha256: test non-string passwords are rejected ... ok pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed pbkdf2_sha256: test known hashes ... ok pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided pbkdf2_sha256: test known config strings ... SKIP: no config strings provided pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided pbkdf2_sha256: test known foreign hashes ... ok pbkdf2_sha256: test non-string hashes are rejected ... ok pbkdf2_sha256: fuzz testing -- random passwords and options ... ok pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok pbkdf2_sha256: HasRounds.using() -- rounds ... ok pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok pbkdf2_sha256: Handler.using() -- default_salt_size ... ok pbkdf2_sha512: validate required attributes ... ok pbkdf2_sha512: test basic config-string workflow ... ok pbkdf2_sha512: test basic using() workflow ... ok pbkdf2_sha512: test basic hash-string workflow. ... ok pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok pbkdf2_sha512: test hashes can be unicode or bytes ... ok pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend pbkdf2_sha512: validate optional salt attributes ... ok pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok pbkdf2_sha512: test hash() honors salt_chars ... ok pbkdf2_sha512: test non-string salt values ... ok pbkdf2_sha512: validate optional rounds attributes ... ok pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha512: test password case sensitivity ... ok pbkdf2_sha512: test non-string passwords are rejected ... ok pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed pbkdf2_sha512: test known hashes ... ok pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided pbkdf2_sha512: test known config strings ... SKIP: no config strings provided pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided pbkdf2_sha512: test known foreign hashes ... ok pbkdf2_sha512: test non-string hashes are rejected ... ok pbkdf2_sha512: fuzz testing -- random passwords and options ... ok pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok pbkdf2_sha512: HasRounds.using() -- rounds ... ok pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok pbkdf2_sha512: Handler.using() -- default_salt_size ... ok scram: validate required attributes ... ok scram: test basic config-string workflow ... ok scram: test basic using() workflow ... ok scram: test basic hash-string workflow. ... ok scram: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok scram: test hashes can be unicode or bytes ... ok scram: test multi-backend support ... SKIP: handler only has one backend scram: validate optional salt attributes ... ok scram: test hash() / genconfig() creates new salt each time ... ok scram: test hash() / genconfig() honors min_salt_size ... ok scram: test hash() / genconfig() honors max_salt_size ... ok scram: test hash() honors salt_chars ... ok scram: test non-string salt values ... ok scram: validate optional rounds attributes ... ok scram: test hash() / genconfig() honors min_rounds ... ok scram: test hash() / genconfig() honors max_rounds ... ok scram: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents scram: test password case sensitivity ... ok scram: test non-string passwords are rejected ... ok scram: test MAX_PASSWORD_SIZE is enforced ... ok scram: test forbidden characters not allowed in password ... SKIP: none listed scram: test known hashes ... ok scram: test known alternate hashes ... SKIP: no alternate hashes provided scram: test known config strings ... SKIP: no config strings provided scram: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided scram: test known identifiable-but-malformed strings ... ok scram: test known foreign hashes ... ok scram: test non-string hashes are rejected ... ok scram: fuzz testing -- random passwords and options ... ok scram: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode scram: test parsing of 'algs' setting ... ok scram: test internal parsing of 'checksum' keyword ... ok scram: test scram.extract_digest_info() ... ok scram: test scram.extract_digest_algs() ... ok scram: test scram.derive_digest() ... ok scram: needs_update() -- algs setting ... ok scram: test hash/verify use saslprep ... ok scram: using() -- 'algs' parameter ... ok scram: using() -- 'default_algs' parameter ... ok scram: test handling of 'algs' in context object ... ok scram: test verify(full=True) flag ... ok scram: .disable() / .enable() methods ... SKIP: not applicable scram: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents scram: HasRounds.using() -- max_rounds / max_desired_rounds ... ok scram: HasRounds.using() -- desired_rounds + needs_update() ... ok scram: HasRounds.using() -- sanity check test harness ... ok scram: HasRounds.using() -- default_rounds ... ok scram: HasRounds.using() -- min_rounds / min_desired_rounds ... ok scram: HasRounds.using() -- rounds ... ok scram: HasRounds.using() -- vary_rounds generation ... ok scram: HasRounds.using() -- vary_rounds parsing ... ok scram: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set scram: test no password size limits enforced (if truncate_size=None) ... ok scram: validate 'truncate_error' setting & related attributes ... ok scram: Handler.using() -- default_salt_size ... ok scrypt (builtin backend): validate required attributes ... ok scrypt (builtin backend): test basic config-string workflow ... ok scrypt (builtin backend): test basic using() workflow ... ok scrypt (builtin backend): test basic hash-string workflow. ... ok scrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok scrypt (builtin backend): test hashes can be unicode or bytes ... ok scrypt (builtin backend): test multi-backend support ... ok scrypt (builtin backend): validate optional salt attributes ... ok scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok scrypt (builtin backend): test hash() honors salt_chars ... ok scrypt (builtin backend): test non-string salt values ... ok scrypt (builtin backend): validate optional rounds attributes ... ok scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok scrypt (builtin backend): validate HasManyIdents configuration ... ok scrypt (builtin backend): test password case sensitivity ... ok scrypt (builtin backend): test non-string passwords are rejected ... ok scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: none listed scrypt (builtin backend): test known hashes ... ok scrypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided scrypt (builtin backend): test known config strings ... SKIP: no config strings provided scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided scrypt (builtin backend): test known identifiable-but-malformed strings ... ok scrypt (builtin backend): test known foreign hashes ... ok scrypt (builtin backend): test non-string hashes are rejected ... ok scrypt (builtin backend): fuzz testing -- random passwords and options ... ok scrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode scrypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok scrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok scrypt (builtin backend): HasRounds.using() -- default_rounds ... ok scrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok scrypt (builtin backend): HasRounds.using() -- rounds ... ok scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok scrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set scrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok scrypt (builtin backend): Handler.using() -- default_salt_size ... ok test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok test_host_context (passlib.tests.test_hosts.HostsTest) ... ok test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok passlib.pwd.genphrase(): 'length' & 'entropy' keywords ... ok passlib.pwd.genphrase(): general behavior ... ok passlib.pwd.genphrase(): 'returns' keyword ... ok passlib.pwd.genphrase(): 'wordset' & 'words' options ... ok passlib.pwd: _self_info_rate() ... ok passlib.pwd.genword(): 'charset' & 'chars' options ... ok passlib.pwd.genword(): general behavior ... ok passlib.pwd.genword(): 'returns' keyword ... ok passlib.registry: test get_crypt_handler() ... ok passlib.registry: verify we have tests for all builtin handlers ... ok passlib.registry: test passlib.hash proxy object ... ok passlib.registry: test list_crypt_handlers() ... ok passlib.registry: test register_crypt_handler() ... ok passlib.registry: test register_crypt_handler_path() ... ok passlib.totp.AppWallet: .decrypt_key() ... SKIP: 'cryptography' package not installed passlib.totp.AppWallet: .decrypt_key() -- needs_recrypt flag ... SKIP: 'cryptography' package not installed passlib.totp.AppWallet: constructor -- 'default_tag' param ... ok passlib.totp.AppWallet: verify cost parameter via timing ... SKIP: 'cryptography' package not installed passlib.totp.AppWallet: .encrypt_key() ... SKIP: 'cryptography' package not installed passlib.totp.AppWallet: constructor -- 'secrets' param -- tag/value normalization ... ok passlib.totp.AppWallet: constructor -- 'secrets' param -- input types ... ok passlib.totp.TOTP: helper to iterate over test vectors. ... ok passlib.totp.TOTP: constructor -- 'alg' parameter ... ok passlib.totp.TOTP: constructor -- 'digits' parameter ... ok passlib.totp.TOTP: constructor -- 'issuer' parameter ... ok passlib.totp.TOTP: constructor -- 'key' and 'format' parameters ... ok passlib.totp.TOTP: constructor -- 'label' parameter ... ok passlib.totp.TOTP: constructor -- 'new' parameter ... ok passlib.totp.TOTP: constructor -- 'period' parameter ... ok passlib.totp.TOTP: constructor -- 'size' parameter ... ok passlib.totp.TOTP: from_dict() ... ok passlib.totp.TOTP: from_source() ... ok passlib.totp.TOTP: from_uri() ... ok passlib.totp.TOTP: generate() ... ok passlib.totp.TOTP: generate() -- reference vectors ... ok passlib.totp.TOTP: pretty_key() and .key attributes ... ok passlib.totp.TOTP: match() -- reference vectors ... ok passlib.totp.TOTP: match() -- 'reuse' and 'last_counter' parameters ... ok passlib.totp.TOTP: match() -- 'skew' parameters ... ok passlib.totp.TOTP: match() -- token normalization ... ok passlib.totp.TOTP: match() -- 'time' and 'window' parameters ... ok passlib.totp.TOTP: normalize_time() ... ok passlib.totp.TOTP: normalize_token() -- class method ... ok passlib.totp.TOTP: normalize_token() -- instance method ... ok passlib.totp.TOTP: internal test -- randotp() ... ok passlib.totp.TOTP: to_dict() ... ok passlib.totp.TOTP: to_uri() ... ok passlib.totp.TOTP: match() -- invalid TotpMatch object ... ok passlib.totp.TOTP: match() -- valid TotpMatch object with past token ... ok passlib.totp.TOTP: match() -- valid TotpMatch object with future token ... ok passlib.totp.TOTP: match() -- valid TotpMatch object ... ok passlib.totp.TOTP: generate() -- TotpToken() class ... ok passlib.totp.TOTP: using -- 'now' parameter ... ok passlib.totp.TOTP: using() -- 'period' parameter ... ok passlib.totp.TOTP: verify() ... ok ab64_decode() ... ok ab64_encode() ... ok b64s_decode() ... ok b64s_encode() ... ok test_constructor (passlib.tests.test_utils.Base64EngineTest) ... ok test b() helper, bytes and native str type ... ok test is_ascii_safe() ... ok test is_same_codec() ... ok test to_bytes() ... ok test to_native_str() ... ok test to_unicode() ... ok h64big codec: test encode_bytes/decode_bytes against random data ... ok h64big codec: test decode_bytes() against reference inputs ... ok h64big codec: test decode_bytes() with bad input ... ok h64big codec: test decode_bytes() ignores padding bits ... ok h64big codec: test decode_transposed_bytes() ... ok h64big codec: test decode_transposed_bytes() fails if map is a one-way ... ok h64big codec: test encode_bytes() against reference inputs ... ok h64big codec: test encode_bytes() with bad input ... ok h64big codec: test encode_transposed_bytes() ... ok h64big codec: test against reference integer encodings ... ok h64big codec: test_int12 (passlib.tests.test_utils.H64Big_Test) ... ok h64big codec: test_int24 (passlib.tests.test_utils.H64Big_Test) ... ok h64big codec: test_int6 (passlib.tests.test_utils.H64Big_Test) ... ok h64big codec: test_int64 (passlib.tests.test_utils.H64Big_Test) ... ok h64big codec: test repair_unused() ... ok h64 codec: test encode_bytes/decode_bytes against random data ... ok h64 codec: test decode_bytes() against reference inputs ... ok h64 codec: test decode_bytes() with bad input ... ok h64 codec: test decode_bytes() ignores padding bits ... ok h64 codec: test decode_transposed_bytes() ... ok h64 codec: test decode_transposed_bytes() fails if map is a one-way ... ok h64 codec: test encode_bytes() against reference inputs ... ok h64 codec: test encode_bytes() with bad input ... ok h64 codec: test encode_transposed_bytes() ... ok h64 codec: test against reference integer encodings ... ok h64 codec: test_int12 (passlib.tests.test_utils.H64_Test) ... ok h64 codec: test_int24 (passlib.tests.test_utils.H64_Test) ... ok h64 codec: test_int6 (passlib.tests.test_utils.H64_Test) ... ok h64 codec: test_int64 (passlib.tests.test_utils.H64_Test) ... ok h64 codec: test repair_unused() ... ok test_classproperty (passlib.tests.test_utils.MiscTest) ... ok test compat's lazymodule ... ok test consteq() ... ok test crypt.crypt() wrappers ... ok test_deprecated_function (passlib.tests.test_utils.MiscTest) ... ok generate_password() ... ok test genseed() ... ok getrandbytes() ... ok getrandstr() ... ok test is_crypt_context() ... ok test_memoized_property (passlib.tests.test_utils.MiscTest) ... ok test saslprep() unicode normalizer ... ok test_splitcomma (passlib.tests.test_utils.MiscTest) ... ok test PrefixWrapper lazy loading of handler ... ok test PrefixWrapper active loading of handler ... ok test PrefixWrapper with explicitly specified handler ... ok test_10_wrapped_attributes (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test_11_wrapped_methods (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test_12_ident (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test repr() ... ok test orig_prefix sanity check ... ok salted_test_hash: validate required attributes ... ok salted_test_hash: test basic config-string workflow ... ok salted_test_hash: test basic using() workflow ... ok salted_test_hash: test basic hash-string workflow. ... ok salted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok salted_test_hash: test hashes can be unicode or bytes ... ok salted_test_hash: test multi-backend support ... SKIP: handler only has one backend salted_test_hash: validate optional salt attributes ... ok salted_test_hash: test hash() / genconfig() creates new salt each time ... ok salted_test_hash: test hash() / genconfig() honors min_salt_size ... ok salted_test_hash: test hash() / genconfig() honors max_salt_size ... ok salted_test_hash: test hash() honors salt_chars ... ok salted_test_hash: test non-string salt values ... ok salted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes salted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents salted_test_hash: test password case sensitivity ... ok salted_test_hash: test non-string passwords are rejected ... ok salted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok salted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed salted_test_hash: test known hashes ... ok salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided salted_test_hash: test known config strings ... SKIP: no config strings provided salted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided salted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided salted_test_hash: test known foreign hashes ... ok salted_test_hash: test non-string hashes are rejected ... ok salted_test_hash: fuzz testing -- random passwords and options ... ok salted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode salted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) ... ok salted_test_hash: .disable() / .enable() methods ... SKIP: not applicable salted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents salted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes salted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set salted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok salted_test_hash: validate 'truncate_error' setting & related attributes ... ok salted_test_hash: Handler.using() -- default_salt_size ... ok test StaticHandler class ... ok test StaticHandler legacy attr ... ok test GenericHandler.identify() ... ok test GenericHandler checksum handling ... ok test GenericHandler + HasRawChecksum mixin ... ok test GenericHandler + HasSalt mixin ... ok test GenericHandler + HasRounds mixin ... ok test GenericHandler + HasManyBackends mixin ... ok test GenericHandler + HasManyBackends mixin (deprecated api) ... ok test GenericHandler + HasManyIdents ... ok test parsehash() ... ok test bitsize() ... ok unsalted_test_hash: validate required attributes ... ok unsalted_test_hash: test basic config-string workflow ... ok unsalted_test_hash: test basic using() workflow ... ok unsalted_test_hash: test basic hash-string workflow. ... ok unsalted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok unsalted_test_hash: test hashes can be unicode or bytes ... ok unsalted_test_hash: test multi-backend support ... SKIP: handler only has one backend unsalted_test_hash: validate optional salt attributes ... SKIP: handler doesn't have salt unsalted_test_hash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt unsalted_test_hash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt unsalted_test_hash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt unsalted_test_hash: test hash() honors salt_chars ... SKIP: handler doesn't have salt unsalted_test_hash: test non-string salt values ... SKIP: handler doesn't have salt unsalted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes unsalted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents unsalted_test_hash: test password case sensitivity ... ok unsalted_test_hash: test non-string passwords are rejected ... ok unsalted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok unsalted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed unsalted_test_hash: test known hashes ... ok unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided unsalted_test_hash: test known config strings ... SKIP: hash has no settings unsalted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided unsalted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided unsalted_test_hash: test known foreign hashes ... ok unsalted_test_hash: test non-string hashes are rejected ... ok unsalted_test_hash: fuzz testing -- random passwords and options ... ok unsalted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode unsalted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) ... ok unsalted_test_hash: .disable() / .enable() methods ... SKIP: not applicable unsalted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents unsalted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes unsalted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set unsalted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok unsalted_test_hash: validate 'truncate_error' setting & related attributes ... ok unsalted_test_hash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt passlib.utils.md4.md4(): informational attributes ... ok passlib.utils.md4.md4(): copy() method ... ok passlib.utils.md4.md4(): digest() method ... ok passlib.utils.md4.md4(): hexdigest() method ... ok passlib.utils.md4.md4(): update() method ... ok passlib.utils.pbkdf2.pbkdf1(): test border cases ... ok passlib.utils.pbkdf2.pbkdf1(): test reference vectors ... ok passlib.utils.pbkdf2.pbkdf2(): test border cases ... ok passlib.utils.pbkdf2.pbkdf2(): test custom prf function ... ok passlib.utils.pbkdf2.pbkdf2(): test keylen==None ... ok passlib.utils.pbkdf2.pbkdf2(): test reference vectors ... ok passlib.utils.pbkdf2: norm_hash_name() ... ok test_lmhash (passlib.tests.test_win32.UtilTest) ... ok test_nthash (passlib.tests.test_win32.UtilTest) ... ok ---------------------------------------------------------------------- Ran 3020 tests in 149.192s OK (SKIP=1267) + nosetests-3.7 -v /builddir/build/BUILD/passlib-1.7.1/passlib/crypto/scrypt/__init__.py:127: PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower than is required for adequate security. Installing scrypt support (via 'pip install scrypt') is strongly recommended "is strongly recommended" % slowdown, exc.PasslibSecurityWarning) HtdigestFile: test constructor autoload ... ok HtdigestFile: test delete() ... ok HtdigestFile: test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) ... ok HtdigestFile: test update() ... ok HtdigestFile: test users() ... ok HtdigestFile: test check_password() ... ok HtdigestFile: test load() ... ok HtdigestFile: test save() ... ok HtdigestFile: test realms() & delete_realm() ... ok HtdigestFile: test get_hash() ... ok HtdigestFile: test encoding parameter ... ok HtdigestFile: test to_string() ... ok HtdigestFile: test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) ... ok HtpasswdFile: test constructor autoload ... ok HtpasswdFile: test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test delete() ... ok HtpasswdFile: test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test set_password() ... ok HtpasswdFile: test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test set_password() -- default_scheme ... /builddir/build/BUILD/passlib-1.7.1/passlib/apache.py:717: PasslibSecurityWarning: HtpasswdFile: no bcrypt backends available, using fallback for default scheme 'portable' exc.PasslibSecurityWarning) ok HtpasswdFile: test users() ... ok HtpasswdFile: test check_password() ... ok HtpasswdFile: test load() ... ok HtpasswdFile: test save() ... ok HtpasswdFile: test 'encoding' kwd ... ok HtpasswdFile: test get_hash() ... ok HtpasswdFile: test to_string ... ok HtpasswdFile: test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) ... ok HtpasswdFile: whitespace & comment handling ... ok test_custom_app_context (passlib.tests.test_apps.AppsTest) ... ok test_django16_context (passlib.tests.test_apps.AppsTest) ... ok test_django_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_mysql_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_nocrypt_context (passlib.tests.test_apps.AppsTest) ... ok test_master_context (passlib.tests.test_apps.AppsTest) ... ok test_phpbb3_context (passlib.tests.test_apps.AppsTest) ... ok test_phppass_context (passlib.tests.test_apps.AppsTest) ... ok test_postgres_context (passlib.tests.test_apps.AppsTest) ... ok test_roundup_context (passlib.tests.test_apps.AppsTest) ... ok CryptContext: test class constructor ... ok CryptContext: test from_string() constructor ... ok CryptContext: test from_path() constructor ... ok CryptContext: test copy() method ... ok CryptContext: test repr() ... ok CryptContext: test load() / load_path() method ... ok CryptContext: test load() errors restore old state ... ok CryptContext: test update() method ... ok CryptContext: test basic option parsing ... ok CryptContext: test 'schemes' context option parsing ... ok CryptContext: test 'deprecated' context option parsing ... ok CryptContext: test 'default' context option parsing ... ok CryptContext: test 'vary_rounds' hash option parsing ... ok CryptContext: test schemes() method ... ok CryptContext: test default_scheme() method ... ok CryptContext: test handler() method ... ok CryptContext: test internal _get_record_options() method ... ok CryptContext: test to_dict() method ... ok CryptContext: test to_string() method ... ok CryptContext: test basic hash/identify/verify functionality ... ok CryptContext: test genconfig() method ... ok CryptContext: test genhash() method ... ok CryptContext: test hash() method ... ok CryptContext: test hash() method -- legacy 'scheme' and settings keywords ... ok CryptContext: test identify() border cases ... ok CryptContext: test verify() scheme kwd ... ok CryptContext: test needs_update() method ... ok CryptContext: test verify_and_update() ... ok CryptContext: hash(), verify(), and verify_and_update() -- discard unused context keywords ... ok CryptContext: test rounds limits ... ok CryptContext: test linear vary rounds ... ok CryptContext: test log2 vary rounds ... ok CryptContext: test deprecated='auto' is handled correctly ... ok CryptContext: disabled hash support ... ok CryptContext: dummy_verify() method ... ok CryptContext: harden_verify -- parsing ... ok LazyCryptContext: test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) ... ok LazyCryptContext: test plain kwds ... ok CryptContext: test constructor ... ok CryptContext: test replace() ... ok CryptContext: test no handlers ... ok CryptContext: test hash_needs_update() method ... ok CryptContext: test non-string hash values cause error ... ok CryptPolicy: test CryptPolicy() constructor ... ok CryptPolicy: test CryptPolicy.from_path() constructor with encodings ... ok CryptPolicy: test CryptPolicy.from_path() constructor ... ok CryptPolicy: test CryptPolicy.from_string() constructor ... ok CryptPolicy: test CryptPolicy.from_source() constructor ... ok CryptPolicy: test CryptPolicy.from_sources() constructor ... ok CryptPolicy: test CryptPolicy.replace() constructor ... ok CryptPolicy: test CryptPolicy() forbidden kwds ... ok CryptPolicy: test has_schemes() method ... ok CryptPolicy: test iter_handlers() method ... ok CryptPolicy: test get_handler() method ... ok CryptPolicy: test get_options() method ... ok CryptPolicy: test handler_is_deprecated() method ... ok CryptPolicy: test get_min_verify_time() method ... ok CryptPolicy: test iter_config() method ... ok CryptPolicy: test to_dict() method ... ok CryptPolicy: test to_string() method ... ok LazyCryptContext: test create_policy() hook, returning CryptPolicy ... ok LazyCryptContext: test plain kwds ... ok passlib.crypto._md4.md4(): informational attributes ... ok passlib.crypto._md4.md4(): copy() method ... ok passlib.crypto._md4.md4(): digest() method ... ok passlib.crypto._md4.md4(): hexdigest() method ... ok passlib.crypto._md4.md4(): update() method ... ok hashlib.new('md4'): informational attributes ... ok hashlib.new('md4'): copy() method ... ok hashlib.new('md4'): digest() method ... ok hashlib.new('md4'): hexdigest() method ... ok hashlib.new('md4'): update() method ... ok passlib.crypto.des: expand_des_key() ... ok passlib.crypto.des: shrink_des_key() ... ok passlib.crypto.des: des_encrypt_block() ... ok passlib.crypto.des: des_encrypt_int_block() ... ok passlib.crypto.digest: lookup_hash() -- alternate types ... ok passlib.crypto.digest: lookup_hash() -- constructor ... ok passlib.crypto.digest: lookup_hash() -- metadata ... ok passlib.crypto.digest: norm_hash_name() ... ok passlib.crypto.digest.pbkdf1: test border cases ... ok passlib.crypto.digest.pbkdf1: test reference vectors ... ok passlib.crypto.digest.pbkdf2_hmac() : verify expected backends are present ... ok passlib.crypto.digest.pbkdf2_hmac() : test border cases ... ok passlib.crypto.digest.pbkdf2_hmac() : test keylen==None ... ok passlib.crypto.digest.pbkdf2_hmac() : test reference vectors ... ok passlib.utils.scrypt.scrypt() : backend management ... ok passlib.utils.scrypt.scrypt() : 'keylen' parameter ... ok passlib.utils.scrypt.scrypt() : backend management -- missing backend ... ok passlib.utils.scrypt.scrypt() : 'n' (rounds) parameter ... ok passlib.utils.scrypt.scrypt() : compare output to other backends ... SKIP: no other backends found passlib.utils.scrypt.scrypt() : 'p' (parallelism) parameter ... ok passlib.utils.scrypt.scrypt() : 'r' (block size) parameter ... ok passlib.utils.scrypt.scrypt() : reference vectors ... ok passlib.utils.scrypt.scrypt() : 'salt' parameter ... ok passlib.utils.scrypt.scrypt() : 'secret' parameter ... ok passlib.crypto.scrypt._builtin: bmix() ... ok passlib.crypto.scrypt._builtin: salsa20() ... ok passlib.crypto.scrypt._builtin: smix() ... ok verify django behavior: test hashing interface ... SKIP: Django not installed passlib.ext.django plugin: test set_django_password_context patch/unpatch ... SKIP: Django not installed passlib.ext.django plugin: test detection of foreign monkeypatching ... SKIP: Django not installed passlib.ext.django plugin: test Hasher-compatible handler wrappers ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_CONFIG='disabled' ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_CONFIG='' ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_CONFIG default behavior ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_CONFIG type checks ... SKIP: Django not installed passlib.ext.django plugin: test PASSLIB_GET_CATEGORY parameter ... SKIP: Django not installed verify extension behavior: test hashing interface ... SKIP: Django not installed external django hasher tests ... SKIP: django not installed test_pairs (passlib.tests.test_handlers.RoundupTest) ... ok apr_md5_crypt: validate required attributes ... ok apr_md5_crypt: test basic config-string workflow ... ok apr_md5_crypt: test basic using() workflow ... ok apr_md5_crypt: test basic hash-string workflow. ... ok apr_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok apr_md5_crypt: test hashes can be unicode or bytes ... ok apr_md5_crypt: test multi-backend support ... SKIP: handler only has one backend apr_md5_crypt: validate optional salt attributes ... ok apr_md5_crypt: test hash() / genconfig() creates new salt each time ... ok apr_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok apr_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok apr_md5_crypt: test hash() honors salt_chars ... /builddir/build/BUILD/passlib-1.7.1/passlib/utils/__init__.py:278: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working if isinstance(source, collections.Sequence): ok apr_md5_crypt: test non-string salt values ... ok apr_md5_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes apr_md5_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents apr_md5_crypt: test password case sensitivity ... ok apr_md5_crypt: test non-string passwords are rejected ... ok apr_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok apr_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed apr_md5_crypt: test known hashes ... ok apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided apr_md5_crypt: test known config strings ... SKIP: no config strings provided apr_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided apr_md5_crypt: test known identifiable-but-malformed strings ... ok apr_md5_crypt: test known foreign hashes ... ok apr_md5_crypt: test non-string hashes are rejected ... ok apr_md5_crypt: fuzz testing -- random passwords and options ... ok apr_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode apr_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable apr_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents apr_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes apr_md5_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes apr_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set apr_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok apr_md5_crypt: validate 'truncate_error' setting & related attributes ... ok apr_md5_crypt: Handler.using() -- default_salt_size ... ok bigcrypt: validate required attributes ... ok bigcrypt: test basic config-string workflow ... ok bigcrypt: test basic using() workflow ... ok bigcrypt: test basic hash-string workflow. ... ok bigcrypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok bigcrypt: test hashes can be unicode or bytes ... ok bigcrypt: test multi-backend support ... SKIP: handler only has one backend bigcrypt: validate optional salt attributes ... ok bigcrypt: test hash() / genconfig() creates new salt each time ... ok bigcrypt: test hash() / genconfig() honors min_salt_size ... ok bigcrypt: test hash() / genconfig() honors max_salt_size ... ok bigcrypt: test hash() honors salt_chars ... ok bigcrypt: test non-string salt values ... ok bigcrypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes bigcrypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes bigcrypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes bigcrypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents bigcrypt: test password case sensitivity ... ok bigcrypt: test non-string passwords are rejected ... ok bigcrypt: test MAX_PASSWORD_SIZE is enforced ... ok bigcrypt: test forbidden characters not allowed in password ... SKIP: none listed bigcrypt: test known hashes ... ok bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided bigcrypt: test known config strings ... SKIP: no config strings provided bigcrypt: test known unidentifiably-mangled strings ... ok bigcrypt: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided bigcrypt: test known foreign hashes ... ok bigcrypt: test non-string hashes are rejected ... ok bigcrypt: fuzz testing -- random passwords and options ... ok bigcrypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode bigcrypt: test_90_internal (passlib.tests.test_handlers.bigcrypt_test) ... ok bigcrypt: .disable() / .enable() methods ... SKIP: not applicable bigcrypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents bigcrypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes bigcrypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes bigcrypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set bigcrypt: test no password size limits enforced (if truncate_size=None) ... ok bigcrypt: validate 'truncate_error' setting & related attributes ... ok bigcrypt: Handler.using() -- default_salt_size ... ok bsd_nthash: validate required attributes ... ok bsd_nthash: test basic config-string workflow ... ok bsd_nthash: test basic using() workflow ... ok bsd_nthash: test basic hash-string workflow. ... ok bsd_nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok bsd_nthash: test hashes can be unicode or bytes ... ok bsd_nthash: test multi-backend support ... SKIP: handler only has one backend bsd_nthash: validate optional salt attributes ... SKIP: handler doesn't have salt bsd_nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt bsd_nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt bsd_nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt bsd_nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt bsd_nthash: test non-string salt values ... SKIP: handler doesn't have salt bsd_nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes bsd_nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents bsd_nthash: test password case sensitivity ... ok bsd_nthash: test non-string passwords are rejected ... ok bsd_nthash: test MAX_PASSWORD_SIZE is enforced ... ok bsd_nthash: test forbidden characters not allowed in password ... SKIP: none listed bsd_nthash: test known hashes ... ok bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided bsd_nthash: test known config strings ... SKIP: hash has no settings bsd_nthash: test known unidentifiably-mangled strings ... ok bsd_nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided bsd_nthash: test known foreign hashes ... ok bsd_nthash: test non-string hashes are rejected ... ok bsd_nthash: fuzz testing -- random passwords and options ... ok bsd_nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode bsd_nthash: .disable() / .enable() methods ... SKIP: not applicable bsd_nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents bsd_nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes bsd_nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes bsd_nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set bsd_nthash: test no password size limits enforced (if truncate_size=None) ... ok bsd_nthash: validate 'truncate_error' setting & related attributes ... ok bsd_nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt bsdi_crypt (os_crypt backend): validate required attributes ... ok bsdi_crypt (os_crypt backend): test basic config-string workflow ... ok bsdi_crypt (os_crypt backend): test basic using() workflow ... ok bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... ok bsdi_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok bsdi_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok bsdi_crypt (os_crypt backend): test multi-backend support ... ok bsdi_crypt (os_crypt backend): validate optional salt attributes ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... ok bsdi_crypt (os_crypt backend): test non-string salt values ... ok bsdi_crypt (os_crypt backend): validate optional rounds attributes ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents bsdi_crypt (os_crypt backend): test password case sensitivity ... ok bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... ok bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok bsdi_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok bsdi_crypt (os_crypt backend): test known hashes ... ok bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided bsdi_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided bsdi_crypt (os_crypt backend): test known foreign hashes ... ok bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... ok bsdi_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) ... ok bsdi_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode bsdi_crypt (os_crypt backend): test with faulty crypt() ... ok bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... ok bsdi_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux' platform bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable bsdi_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents bsdi_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok bsdi_crypt (os_crypt backend): needs_update() should flag even rounds ... ok bsdi_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set bsdi_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok crypt16: validate required attributes ... ok crypt16: test basic config-string workflow ... ok crypt16: test basic using() workflow ... ok crypt16: test basic hash-string workflow. ... ok crypt16: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok crypt16: test hashes can be unicode or bytes ... ok crypt16: test multi-backend support ... SKIP: handler only has one backend crypt16: validate optional salt attributes ... ok crypt16: test hash() / genconfig() creates new salt each time ... ok crypt16: test hash() / genconfig() honors min_salt_size ... ok crypt16: test hash() / genconfig() honors max_salt_size ... ok crypt16: test hash() honors salt_chars ... ok crypt16: test non-string salt values ... ok crypt16: validate optional rounds attributes ... SKIP: handler lacks rounds attributes crypt16: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes crypt16: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes crypt16: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents crypt16: test password case sensitivity ... ok crypt16: test non-string passwords are rejected ... ok crypt16: test MAX_PASSWORD_SIZE is enforced ... ok crypt16: test forbidden characters not allowed in password ... SKIP: none listed crypt16: test known hashes ... ok crypt16: test known alternate hashes ... SKIP: no alternate hashes provided crypt16: test known config strings ... SKIP: no config strings provided crypt16: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided crypt16: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided crypt16: test known foreign hashes ... ok crypt16: test non-string hashes are rejected ... ok crypt16: fuzz testing -- random passwords and options ... ok crypt16: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode crypt16: .disable() / .enable() methods ... SKIP: not applicable crypt16: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents crypt16: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes crypt16: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes crypt16: test password size limits raise truncate_error (if appropriate) ... ok crypt16: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set crypt16: validate 'truncate_error' setting & related attributes ... ok crypt16: Handler.using() -- default_salt_size ... ok des_crypt (os_crypt backend): validate required attributes ... ok des_crypt (os_crypt backend): test basic config-string workflow ... ok des_crypt (os_crypt backend): test basic using() workflow ... ok des_crypt (os_crypt backend): test basic hash-string workflow. ... ok des_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok des_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok des_crypt (os_crypt backend): test multi-backend support ... ok des_crypt (os_crypt backend): validate optional salt attributes ... ok des_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok des_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok des_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok des_crypt (os_crypt backend): test hash() honors salt_chars ... ok des_crypt (os_crypt backend): test non-string salt values ... ok des_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents des_crypt (os_crypt backend): test password case sensitivity ... ok des_crypt (os_crypt backend): test non-string passwords are rejected ... ok des_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok des_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok des_crypt (os_crypt backend): test known hashes ... ok des_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided des_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided des_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok des_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided des_crypt (os_crypt backend): test known foreign hashes ... ok des_crypt (os_crypt backend): test non-string hashes are rejected ... ok des_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok des_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode des_crypt (os_crypt backend): test with faulty crypt() ... ok des_crypt (os_crypt backend): test per-call crypt() fallback ... ok des_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok des_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable des_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents des_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes des_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok des_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set des_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok des_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok fshp: validate required attributes ... ok fshp: test basic config-string workflow ... ok fshp: test basic using() workflow ... ok fshp: test basic hash-string workflow. ... ok fshp: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok fshp: test hashes can be unicode or bytes ... ok fshp: test multi-backend support ... SKIP: handler only has one backend fshp: validate optional salt attributes ... ok fshp: test hash() / genconfig() creates new salt each time ... ok fshp: test hash() / genconfig() honors min_salt_size ... ok fshp: test hash() / genconfig() honors max_salt_size ... ok fshp: test hash() honors salt_chars ... ok fshp: test non-string salt values ... ok fshp: validate optional rounds attributes ... ok fshp: test hash() / genconfig() honors min_rounds ... ok fshp: test hash() / genconfig() honors max_rounds ... ok fshp: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents fshp: test password case sensitivity ... ok fshp: test non-string passwords are rejected ... ok fshp: test MAX_PASSWORD_SIZE is enforced ... ok fshp: test forbidden characters not allowed in password ... SKIP: none listed fshp: test known hashes ... ok fshp: test known alternate hashes ... SKIP: no alternate hashes provided fshp: test known config strings ... SKIP: no config strings provided fshp: test known unidentifiably-mangled strings ... ok fshp: test known identifiable-but-malformed strings ... ok fshp: test known foreign hashes ... ok fshp: test non-string hashes are rejected ... ok fshp: fuzz testing -- random passwords and options ... ok fshp: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode fshp: test variant keyword ... ok fshp: .disable() / .enable() methods ... SKIP: not applicable fshp: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents fshp: HasRounds.using() -- max_rounds / max_desired_rounds ... ok fshp: HasRounds.using() -- desired_rounds + needs_update() ... ok fshp: HasRounds.using() -- sanity check test harness ... ok fshp: HasRounds.using() -- default_rounds ... ok fshp: HasRounds.using() -- min_rounds / min_desired_rounds ... ok fshp: HasRounds.using() -- rounds ... ok fshp: HasRounds.using() -- vary_rounds generation ... ok fshp: HasRounds.using() -- vary_rounds parsing ... ok fshp: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set fshp: test no password size limits enforced (if truncate_size=None) ... ok fshp: validate 'truncate_error' setting & related attributes ... ok fshp: Handler.using() -- default_salt_size ... ok hex_md4: validate required attributes ... ok hex_md4: test basic config-string workflow ... ok hex_md4: test basic using() workflow ... ok hex_md4: test basic hash-string workflow. ... ok hex_md4: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_md4: test hashes can be unicode or bytes ... ok hex_md4: test multi-backend support ... SKIP: handler only has one backend hex_md4: validate optional salt attributes ... SKIP: handler doesn't have salt hex_md4: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_md4: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_md4: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_md4: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_md4: test non-string salt values ... SKIP: handler doesn't have salt hex_md4: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_md4: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_md4: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_md4: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_md4: test password case sensitivity ... ok hex_md4: test non-string passwords are rejected ... ok hex_md4: test MAX_PASSWORD_SIZE is enforced ... ok hex_md4: test forbidden characters not allowed in password ... SKIP: none listed hex_md4: test known hashes ... ok hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided hex_md4: test known config strings ... SKIP: hash has no settings hex_md4: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_md4: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_md4: test known foreign hashes ... ok hex_md4: test non-string hashes are rejected ... ok hex_md4: fuzz testing -- random passwords and options ... ok hex_md4: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_md4: .disable() / .enable() methods ... SKIP: not applicable hex_md4: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_md4: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_md4: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_md4: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_md4: test no password size limits enforced (if truncate_size=None) ... ok hex_md4: validate 'truncate_error' setting & related attributes ... ok hex_md4: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt hex_md5: validate required attributes ... ok hex_md5: test basic config-string workflow ... ok hex_md5: test basic using() workflow ... ok hex_md5: test basic hash-string workflow. ... ok hex_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_md5: test hashes can be unicode or bytes ... ok hex_md5: test multi-backend support ... SKIP: handler only has one backend hex_md5: validate optional salt attributes ... SKIP: handler doesn't have salt hex_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_md5: test non-string salt values ... SKIP: handler doesn't have salt hex_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_md5: test password case sensitivity ... ok hex_md5: test non-string passwords are rejected ... ok hex_md5: test MAX_PASSWORD_SIZE is enforced ... ok hex_md5: test forbidden characters not allowed in password ... SKIP: none listed hex_md5: test known hashes ... ok hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided hex_md5: test known config strings ... SKIP: hash has no settings hex_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_md5: test known foreign hashes ... ok hex_md5: test non-string hashes are rejected ... ok hex_md5: fuzz testing -- random passwords and options ... ok hex_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_md5: .disable() / .enable() methods ... SKIP: not applicable hex_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_md5: test no password size limits enforced (if truncate_size=None) ... ok hex_md5: validate 'truncate_error' setting & related attributes ... ok hex_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt hex_sha1: validate required attributes ... ok hex_sha1: test basic config-string workflow ... ok hex_sha1: test basic using() workflow ... ok hex_sha1: test basic hash-string workflow. ... ok hex_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_sha1: test hashes can be unicode or bytes ... ok hex_sha1: test multi-backend support ... SKIP: handler only has one backend hex_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt hex_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_sha1: test non-string salt values ... SKIP: handler doesn't have salt hex_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_sha1: test password case sensitivity ... ok hex_sha1: test non-string passwords are rejected ... ok hex_sha1: test MAX_PASSWORD_SIZE is enforced ... ok hex_sha1: test forbidden characters not allowed in password ... SKIP: none listed hex_sha1: test known hashes ... ok hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided hex_sha1: test known config strings ... SKIP: hash has no settings hex_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_sha1: test known foreign hashes ... ok hex_sha1: test non-string hashes are rejected ... ok hex_sha1: fuzz testing -- random passwords and options ... ok hex_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_sha1: .disable() / .enable() methods ... SKIP: not applicable hex_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_sha1: test no password size limits enforced (if truncate_size=None) ... ok hex_sha1: validate 'truncate_error' setting & related attributes ... ok hex_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt hex_sha256: validate required attributes ... ok hex_sha256: test basic config-string workflow ... ok hex_sha256: test basic using() workflow ... ok hex_sha256: test basic hash-string workflow. ... ok hex_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_sha256: test hashes can be unicode or bytes ... ok hex_sha256: test multi-backend support ... SKIP: handler only has one backend hex_sha256: validate optional salt attributes ... SKIP: handler doesn't have salt hex_sha256: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_sha256: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_sha256: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_sha256: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_sha256: test non-string salt values ... SKIP: handler doesn't have salt hex_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_sha256: test password case sensitivity ... ok hex_sha256: test non-string passwords are rejected ... ok hex_sha256: test MAX_PASSWORD_SIZE is enforced ... ok hex_sha256: test forbidden characters not allowed in password ... SKIP: none listed hex_sha256: test known hashes ... ok hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided hex_sha256: test known config strings ... SKIP: hash has no settings hex_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_sha256: test known foreign hashes ... ok hex_sha256: test non-string hashes are rejected ... ok hex_sha256: fuzz testing -- random passwords and options ... ok hex_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_sha256: .disable() / .enable() methods ... SKIP: not applicable hex_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_sha256: test no password size limits enforced (if truncate_size=None) ... ok hex_sha256: validate 'truncate_error' setting & related attributes ... ok hex_sha256: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt hex_sha512: validate required attributes ... ok hex_sha512: test basic config-string workflow ... ok hex_sha512: test basic using() workflow ... ok hex_sha512: test basic hash-string workflow. ... ok hex_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok hex_sha512: test hashes can be unicode or bytes ... ok hex_sha512: test multi-backend support ... SKIP: handler only has one backend hex_sha512: validate optional salt attributes ... SKIP: handler doesn't have salt hex_sha512: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt hex_sha512: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt hex_sha512: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt hex_sha512: test hash() honors salt_chars ... SKIP: handler doesn't have salt hex_sha512: test non-string salt values ... SKIP: handler doesn't have salt hex_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes hex_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes hex_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes hex_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents hex_sha512: test password case sensitivity ... ok hex_sha512: test non-string passwords are rejected ... ok hex_sha512: test MAX_PASSWORD_SIZE is enforced ... ok hex_sha512: test forbidden characters not allowed in password ... SKIP: none listed hex_sha512: test known hashes ... ok hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided hex_sha512: test known config strings ... SKIP: hash has no settings hex_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided hex_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided hex_sha512: test known foreign hashes ... ok hex_sha512: test non-string hashes are rejected ... ok hex_sha512: fuzz testing -- random passwords and options ... ok hex_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode hex_sha512: .disable() / .enable() methods ... SKIP: not applicable hex_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents hex_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes hex_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes hex_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set hex_sha512: test no password size limits enforced (if truncate_size=None) ... ok hex_sha512: validate 'truncate_error' setting & related attributes ... ok hex_sha512: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt htdigest: validate required attributes ... ok htdigest: test basic config-string workflow ... ok htdigest: test basic using() workflow ... ok htdigest: test basic hash-string workflow. ... ok htdigest: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok htdigest: test hashes can be unicode or bytes ... ok htdigest: test multi-backend support ... SKIP: handler only has one backend htdigest: validate optional salt attributes ... SKIP: handler doesn't have salt htdigest: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt htdigest: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt htdigest: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt htdigest: test hash() honors salt_chars ... SKIP: handler doesn't have salt htdigest: test non-string salt values ... SKIP: handler doesn't have salt htdigest: validate optional rounds attributes ... SKIP: handler lacks rounds attributes htdigest: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes htdigest: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes htdigest: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents htdigest: test password case sensitivity ... ok htdigest: test non-string passwords are rejected ... ok htdigest: test MAX_PASSWORD_SIZE is enforced ... ok htdigest: test forbidden characters not allowed in password ... SKIP: none listed htdigest: test known hashes ... ok htdigest: test known alternate hashes ... SKIP: no alternate hashes provided htdigest: test known config strings ... SKIP: hash has no settings htdigest: test known unidentifiably-mangled strings ... ok htdigest: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided htdigest: test known foreign hashes ... ok htdigest: test non-string hashes are rejected ... ok htdigest: fuzz testing -- random passwords and options ... ok htdigest: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode htdigest: test_80_user (passlib.tests.test_handlers.htdigest_test) ... SKIP: test case doesn't support 'realm' keyword htdigest: test user case sensitivity ... ok htdigest: test user used as salt ... ok htdigest: .disable() / .enable() methods ... SKIP: not applicable htdigest: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents htdigest: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes htdigest: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes htdigest: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set htdigest: test no password size limits enforced (if truncate_size=None) ... ok htdigest: validate 'truncate_error' setting & related attributes ... ok htdigest: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt ldap_md5_crypt (os_crypt backend): validate required attributes ... ok ldap_md5_crypt (os_crypt backend): test basic config-string workflow ... ok ldap_md5_crypt (os_crypt backend): test basic using() workflow ... ok ldap_md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok ldap_md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok ldap_md5_crypt (os_crypt backend): test multi-backend support ... ok ldap_md5_crypt (os_crypt backend): validate optional salt attributes ... ok ldap_md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok ldap_md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok ldap_md5_crypt (os_crypt backend): test non-string salt values ... ok ldap_md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_md5_crypt (os_crypt backend): test password case sensitivity ... ok ldap_md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok ldap_md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok ldap_md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok ldap_md5_crypt (os_crypt backend): test known hashes ... ok ldap_md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided ldap_md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided ldap_md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok ldap_md5_crypt (os_crypt backend): test known foreign hashes ... ok ldap_md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok ldap_md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok ldap_md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_md5_crypt (os_crypt backend): test with faulty crypt() ... ok ldap_md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok ldap_md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers ldap_md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable ldap_md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok ldap_md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok ldap_md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok ldap_md5: validate required attributes ... ok ldap_md5: test basic config-string workflow ... ok ldap_md5: test basic using() workflow ... ok ldap_md5: test basic hash-string workflow. ... ok ldap_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_md5: test hashes can be unicode or bytes ... ok ldap_md5: test multi-backend support ... SKIP: handler only has one backend ldap_md5: validate optional salt attributes ... SKIP: handler doesn't have salt ldap_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt ldap_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt ldap_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt ldap_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt ldap_md5: test non-string salt values ... SKIP: handler doesn't have salt ldap_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_md5: test password case sensitivity ... ok ldap_md5: test non-string passwords are rejected ... ok ldap_md5: test MAX_PASSWORD_SIZE is enforced ... ok ldap_md5: test forbidden characters not allowed in password ... SKIP: none listed ldap_md5: test known hashes ... ok ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided ldap_md5: test known config strings ... SKIP: hash has no settings ldap_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided ldap_md5: test known foreign hashes ... ok ldap_md5: test non-string hashes are rejected ... ok ldap_md5: fuzz testing -- random passwords and options ... ok ldap_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_md5: .disable() / .enable() methods ... SKIP: not applicable ldap_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_md5: test no password size limits enforced (if truncate_size=None) ... ok ldap_md5: validate 'truncate_error' setting & related attributes ... ok ldap_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt ldap_plaintext: validate required attributes ... ok ldap_plaintext: test basic config-string workflow ... ok ldap_plaintext: test basic using() workflow ... ok ldap_plaintext: test basic hash-string workflow. ... ok ldap_plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_plaintext: test hashes can be unicode or bytes ... ok ldap_plaintext: test multi-backend support ... SKIP: handler only has one backend ldap_plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt ldap_plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt ldap_plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt ldap_plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt ldap_plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt ldap_plaintext: test non-string salt values ... SKIP: handler doesn't have salt ldap_plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_plaintext: test password case sensitivity ... ok ldap_plaintext: test non-string passwords are rejected ... ok ldap_plaintext: test MAX_PASSWORD_SIZE is enforced ... ok ldap_plaintext: test forbidden characters not allowed in password ... SKIP: none listed ldap_plaintext: test known hashes ... ok ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided ldap_plaintext: test known config strings ... SKIP: hash has no settings ldap_plaintext: test known unidentifiably-mangled strings ... ok ldap_plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided ldap_plaintext: test known foreign hashes ... ok ldap_plaintext: test non-string hashes are rejected ... ok ldap_plaintext: fuzz testing -- random passwords and options ... ok ldap_plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_plaintext: .disable() / .enable() methods ... SKIP: not applicable ldap_plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_plaintext: test no password size limits enforced (if truncate_size=None) ... ok ldap_plaintext: validate 'truncate_error' setting & related attributes ... ok ldap_plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt ldap_salted_md5: validate required attributes ... ok ldap_salted_md5: test basic config-string workflow ... ok ldap_salted_md5: test basic using() workflow ... ok ldap_salted_md5: test basic hash-string workflow. ... ok ldap_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_salted_md5: test hashes can be unicode or bytes ... ok ldap_salted_md5: test multi-backend support ... SKIP: handler only has one backend ldap_salted_md5: validate optional salt attributes ... ok ldap_salted_md5: test hash() / genconfig() creates new salt each time ... ok ldap_salted_md5: test hash() / genconfig() honors min_salt_size ... ok ldap_salted_md5: test hash() / genconfig() honors max_salt_size ... ok ldap_salted_md5: test hash() honors salt_chars ... ok ldap_salted_md5: test non-string salt values ... ok ldap_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_salted_md5: test password case sensitivity ... ok ldap_salted_md5: test non-string passwords are rejected ... ok ldap_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok ldap_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed ldap_salted_md5: test known hashes ... ok ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided ldap_salted_md5: test known config strings ... SKIP: no config strings provided ldap_salted_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_salted_md5: test known identifiable-but-malformed strings ... ok ldap_salted_md5: test known foreign hashes ... ok ldap_salted_md5: test non-string hashes are rejected ... ok ldap_salted_md5: fuzz testing -- random passwords and options ... ok ldap_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_salted_md5: .disable() / .enable() methods ... SKIP: not applicable ldap_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok ldap_salted_md5: validate 'truncate_error' setting & related attributes ... ok ldap_salted_md5: Handler.using() -- default_salt_size ... ok ldap_salted_sha1: validate required attributes ... ok ldap_salted_sha1: test basic config-string workflow ... ok ldap_salted_sha1: test basic using() workflow ... ok ldap_salted_sha1: test basic hash-string workflow. ... ok ldap_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_salted_sha1: test hashes can be unicode or bytes ... ok ldap_salted_sha1: test multi-backend support ... SKIP: handler only has one backend ldap_salted_sha1: validate optional salt attributes ... ok ldap_salted_sha1: test hash() / genconfig() creates new salt each time ... ok ldap_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok ldap_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok ldap_salted_sha1: test hash() honors salt_chars ... ok ldap_salted_sha1: test non-string salt values ... ok ldap_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_salted_sha1: test password case sensitivity ... ok ldap_salted_sha1: test non-string passwords are rejected ... ok ldap_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok ldap_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed ldap_salted_sha1: test known hashes ... ok ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided ldap_salted_sha1: test known config strings ... SKIP: no config strings provided ldap_salted_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_salted_sha1: test known identifiable-but-malformed strings ... ok ldap_salted_sha1: test known foreign hashes ... ok ldap_salted_sha1: test non-string hashes are rejected ... ok ldap_salted_sha1: fuzz testing -- random passwords and options ... ok ldap_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable ldap_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok ldap_salted_sha1: validate 'truncate_error' setting & related attributes ... ok ldap_salted_sha1: Handler.using() -- default_salt_size ... ok ldap_sha1_crypt (os_crypt backend): validate required attributes ... ok ldap_sha1_crypt (os_crypt backend): test basic config-string workflow ... ok ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... ok ldap_sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok ldap_sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok ldap_sha1_crypt (os_crypt backend): test multi-backend support ... ok ldap_sha1_crypt (os_crypt backend): validate optional salt attributes ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok ldap_sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok ldap_sha1_crypt (os_crypt backend): test non-string salt values ... ok ldap_sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_sha1_crypt (os_crypt backend): test password case sensitivity ... ok ldap_sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok ldap_sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok ldap_sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok ldap_sha1_crypt (os_crypt backend): test known hashes ... ok ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided ldap_sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... ok ldap_sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok ldap_sha1_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ... SKIP: unneeded ldap_sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... ok ldap_sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok ldap_sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers ldap_sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable ldap_sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok ldap_sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok ldap_sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok ldap_sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok ldap_sha1: validate required attributes ... ok ldap_sha1: test basic config-string workflow ... ok ldap_sha1: test basic using() workflow ... ok ldap_sha1: test basic hash-string workflow. ... ok ldap_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok ldap_sha1: test hashes can be unicode or bytes ... ok ldap_sha1: test multi-backend support ... SKIP: handler only has one backend ldap_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt ldap_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt ldap_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt ldap_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt ldap_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt ldap_sha1: test non-string salt values ... SKIP: handler doesn't have salt ldap_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes ldap_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents ldap_sha1: test password case sensitivity ... ok ldap_sha1: test non-string passwords are rejected ... ok ldap_sha1: test MAX_PASSWORD_SIZE is enforced ... ok ldap_sha1: test forbidden characters not allowed in password ... SKIP: none listed ldap_sha1: test known hashes ... ok ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided ldap_sha1: test known config strings ... SKIP: hash has no settings ldap_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided ldap_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided ldap_sha1: test known foreign hashes ... ok ldap_sha1: test non-string hashes are rejected ... ok ldap_sha1: fuzz testing -- random passwords and options ... ok ldap_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode ldap_sha1: .disable() / .enable() methods ... SKIP: not applicable ldap_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents ldap_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes ldap_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes ldap_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set ldap_sha1: test no password size limits enforced (if truncate_size=None) ... ok ldap_sha1: validate 'truncate_error' setting & related attributes ... ok ldap_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt lmhash: validate required attributes ... ok lmhash: test basic config-string workflow ... ok lmhash: test basic using() workflow ... ok lmhash: test basic hash-string workflow. ... ok lmhash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok lmhash: test hashes can be unicode or bytes ... ok lmhash: test multi-backend support ... SKIP: handler only has one backend lmhash: validate optional salt attributes ... SKIP: handler doesn't have salt lmhash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt lmhash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt lmhash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt lmhash: test hash() honors salt_chars ... SKIP: handler doesn't have salt lmhash: test non-string salt values ... SKIP: handler doesn't have salt lmhash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes lmhash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes lmhash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes lmhash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents lmhash: test password case sensitivity ... ok lmhash: test non-string passwords are rejected ... ok lmhash: test MAX_PASSWORD_SIZE is enforced ... ok lmhash: test forbidden characters not allowed in password ... SKIP: none listed lmhash: test known hashes ... ok lmhash: test known alternate hashes ... SKIP: no alternate hashes provided lmhash: test known config strings ... SKIP: no config strings provided lmhash: test known unidentifiably-mangled strings ... ok lmhash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided lmhash: test known foreign hashes ... ok lmhash: test non-string hashes are rejected ... ok lmhash: fuzz testing -- random passwords and options ... ok lmhash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode lmhash: test lmhash.raw() method ... ok lmhash: .disable() / .enable() methods ... SKIP: not applicable lmhash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents lmhash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes lmhash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes lmhash: test password size limits raise truncate_error (if appropriate) ... ok lmhash: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set lmhash: validate 'truncate_error' setting & related attributes ... ok lmhash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt md5_crypt (os_crypt backend): validate required attributes ... ok md5_crypt (os_crypt backend): test basic config-string workflow ... ok md5_crypt (os_crypt backend): test basic using() workflow ... ok md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok md5_crypt (os_crypt backend): test multi-backend support ... ok md5_crypt (os_crypt backend): validate optional salt attributes ... ok md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok md5_crypt (os_crypt backend): test non-string salt values ... ok md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents md5_crypt (os_crypt backend): test password case sensitivity ... ok md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok md5_crypt (os_crypt backend): test known hashes ... ok md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok md5_crypt (os_crypt backend): test known foreign hashes ... ok md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode md5_crypt (os_crypt backend): test with faulty crypt() ... ok md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok msdcc2: validate required attributes ... ok msdcc2: test basic config-string workflow ... ok msdcc2: test basic using() workflow ... ok msdcc2: test basic hash-string workflow. ... ok msdcc2: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok msdcc2: test hashes can be unicode or bytes ... ok msdcc2: test multi-backend support ... SKIP: handler only has one backend msdcc2: validate optional salt attributes ... SKIP: handler doesn't have salt msdcc2: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt msdcc2: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt msdcc2: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt msdcc2: test hash() honors salt_chars ... SKIP: handler doesn't have salt msdcc2: test non-string salt values ... SKIP: handler doesn't have salt msdcc2: validate optional rounds attributes ... SKIP: handler lacks rounds attributes msdcc2: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes msdcc2: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes msdcc2: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents msdcc2: test password case sensitivity ... ok msdcc2: test non-string passwords are rejected ... ok msdcc2: test MAX_PASSWORD_SIZE is enforced ... ok msdcc2: test forbidden characters not allowed in password ... SKIP: none listed msdcc2: test known hashes ... ok msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided msdcc2: test known config strings ... SKIP: hash has no settings msdcc2: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided msdcc2: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided msdcc2: test known foreign hashes ... ok msdcc2: test non-string hashes are rejected ... ok msdcc2: fuzz testing -- random passwords and options ... ok msdcc2: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode msdcc2: test user context keyword ... ok msdcc2: test user case sensitivity ... ok msdcc2: test user used as salt ... ok msdcc2: .disable() / .enable() methods ... SKIP: not applicable msdcc2: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents msdcc2: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes msdcc2: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes msdcc2: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set msdcc2: test no password size limits enforced (if truncate_size=None) ... ok msdcc2: validate 'truncate_error' setting & related attributes ... ok msdcc2: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt msdcc: validate required attributes ... ok msdcc: test basic config-string workflow ... ok msdcc: test basic using() workflow ... ok msdcc: test basic hash-string workflow. ... ok msdcc: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok msdcc: test hashes can be unicode or bytes ... ok msdcc: test multi-backend support ... SKIP: handler only has one backend msdcc: validate optional salt attributes ... SKIP: handler doesn't have salt msdcc: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt msdcc: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt msdcc: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt msdcc: test hash() honors salt_chars ... SKIP: handler doesn't have salt msdcc: test non-string salt values ... SKIP: handler doesn't have salt msdcc: validate optional rounds attributes ... SKIP: handler lacks rounds attributes msdcc: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes msdcc: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes msdcc: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents msdcc: test password case sensitivity ... ok msdcc: test non-string passwords are rejected ... ok msdcc: test MAX_PASSWORD_SIZE is enforced ... ok msdcc: test forbidden characters not allowed in password ... SKIP: none listed msdcc: test known hashes ... ok msdcc: test known alternate hashes ... ok msdcc: test known config strings ... SKIP: hash has no settings msdcc: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided msdcc: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided msdcc: test known foreign hashes ... ok msdcc: test non-string hashes are rejected ... ok msdcc: fuzz testing -- random passwords and options ... ok msdcc: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode msdcc: test user context keyword ... ok msdcc: test user case sensitivity ... ok msdcc: test user used as salt ... ok msdcc: .disable() / .enable() methods ... SKIP: not applicable msdcc: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents msdcc: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes msdcc: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes msdcc: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set msdcc: test no password size limits enforced (if truncate_size=None) ... ok msdcc: validate 'truncate_error' setting & related attributes ... ok msdcc: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt mssql2000: validate required attributes ... ok mssql2000: test basic config-string workflow ... ok mssql2000: test basic using() workflow ... ok mssql2000: test basic hash-string workflow. ... ok mssql2000: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok mssql2000: test hashes can be unicode or bytes ... ok mssql2000: test multi-backend support ... SKIP: handler only has one backend mssql2000: validate optional salt attributes ... ok mssql2000: test hash() / genconfig() creates new salt each time ... ok mssql2000: test hash() / genconfig() honors min_salt_size ... ok mssql2000: test hash() / genconfig() honors max_salt_size ... ok mssql2000: test hash() honors salt_chars ... ok mssql2000: test non-string salt values ... ok mssql2000: validate optional rounds attributes ... SKIP: handler lacks rounds attributes mssql2000: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes mssql2000: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes mssql2000: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents mssql2000: test password case sensitivity ... ok mssql2000: test non-string passwords are rejected ... ok mssql2000: test MAX_PASSWORD_SIZE is enforced ... ok mssql2000: test forbidden characters not allowed in password ... SKIP: none listed mssql2000: test known hashes ... ok mssql2000: test known alternate hashes ... ok mssql2000: test known config strings ... SKIP: no config strings provided mssql2000: test known unidentifiably-mangled strings ... ok mssql2000: test known identifiable-but-malformed strings ... ok mssql2000: test known foreign hashes ... ok mssql2000: test non-string hashes are rejected ... ok mssql2000: fuzz testing -- random passwords and options ... ok mssql2000: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode mssql2000: .disable() / .enable() methods ... SKIP: not applicable mssql2000: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents mssql2000: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes mssql2000: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes mssql2000: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set mssql2000: test no password size limits enforced (if truncate_size=None) ... ok mssql2000: validate 'truncate_error' setting & related attributes ... ok mssql2000: Handler.using() -- default_salt_size ... ok mssql2005: validate required attributes ... ok mssql2005: test basic config-string workflow ... ok mssql2005: test basic using() workflow ... ok mssql2005: test basic hash-string workflow. ... ok mssql2005: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok mssql2005: test hashes can be unicode or bytes ... ok mssql2005: test multi-backend support ... SKIP: handler only has one backend mssql2005: validate optional salt attributes ... ok mssql2005: test hash() / genconfig() creates new salt each time ... ok mssql2005: test hash() / genconfig() honors min_salt_size ... ok mssql2005: test hash() / genconfig() honors max_salt_size ... ok mssql2005: test hash() honors salt_chars ... ok mssql2005: test non-string salt values ... ok mssql2005: validate optional rounds attributes ... SKIP: handler lacks rounds attributes mssql2005: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes mssql2005: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes mssql2005: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents mssql2005: test password case sensitivity ... ok mssql2005: test non-string passwords are rejected ... ok mssql2005: test MAX_PASSWORD_SIZE is enforced ... ok mssql2005: test forbidden characters not allowed in password ... SKIP: none listed mssql2005: test known hashes ... ok mssql2005: test known alternate hashes ... ok mssql2005: test known config strings ... SKIP: no config strings provided mssql2005: test known unidentifiably-mangled strings ... ok mssql2005: test known identifiable-but-malformed strings ... ok mssql2005: test known foreign hashes ... ok mssql2005: test non-string hashes are rejected ... ok mssql2005: fuzz testing -- random passwords and options ... ok mssql2005: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode mssql2005: .disable() / .enable() methods ... SKIP: not applicable mssql2005: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents mssql2005: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes mssql2005: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes mssql2005: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set mssql2005: test no password size limits enforced (if truncate_size=None) ... ok mssql2005: validate 'truncate_error' setting & related attributes ... ok mssql2005: Handler.using() -- default_salt_size ... ok mysql323: validate required attributes ... ok mysql323: test basic config-string workflow ... ok mysql323: test basic using() workflow ... ok mysql323: test basic hash-string workflow. ... ok mysql323: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok mysql323: test hashes can be unicode or bytes ... ok mysql323: test multi-backend support ... SKIP: handler only has one backend mysql323: validate optional salt attributes ... SKIP: handler doesn't have salt mysql323: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt mysql323: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt mysql323: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt mysql323: test hash() honors salt_chars ... SKIP: handler doesn't have salt mysql323: test non-string salt values ... SKIP: handler doesn't have salt mysql323: validate optional rounds attributes ... SKIP: handler lacks rounds attributes mysql323: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes mysql323: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes mysql323: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents mysql323: test password case sensitivity ... ok mysql323: test non-string passwords are rejected ... ok mysql323: test MAX_PASSWORD_SIZE is enforced ... ok mysql323: test forbidden characters not allowed in password ... SKIP: none listed mysql323: test known hashes ... ok mysql323: test known alternate hashes ... SKIP: no alternate hashes provided mysql323: test known config strings ... SKIP: hash has no settings mysql323: test known unidentifiably-mangled strings ... ok mysql323: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided mysql323: test known foreign hashes ... ok mysql323: test non-string hashes are rejected ... ok mysql323: fuzz testing -- random passwords and options ... ok mysql323: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode mysql323: check whitespace is ignored per spec ... ok mysql323: .disable() / .enable() methods ... SKIP: not applicable mysql323: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents mysql323: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes mysql323: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes mysql323: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set mysql323: test no password size limits enforced (if truncate_size=None) ... ok mysql323: validate 'truncate_error' setting & related attributes ... ok mysql323: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt mysql41: validate required attributes ... ok mysql41: test basic config-string workflow ... ok mysql41: test basic using() workflow ... ok mysql41: test basic hash-string workflow. ... ok mysql41: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok mysql41: test hashes can be unicode or bytes ... ok mysql41: test multi-backend support ... SKIP: handler only has one backend mysql41: validate optional salt attributes ... SKIP: handler doesn't have salt mysql41: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt mysql41: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt mysql41: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt mysql41: test hash() honors salt_chars ... SKIP: handler doesn't have salt mysql41: test non-string salt values ... SKIP: handler doesn't have salt mysql41: validate optional rounds attributes ... SKIP: handler lacks rounds attributes mysql41: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes mysql41: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes mysql41: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents mysql41: test password case sensitivity ... ok mysql41: test non-string passwords are rejected ... ok mysql41: test MAX_PASSWORD_SIZE is enforced ... ok mysql41: test forbidden characters not allowed in password ... SKIP: none listed mysql41: test known hashes ... ok mysql41: test known alternate hashes ... SKIP: no alternate hashes provided mysql41: test known config strings ... SKIP: hash has no settings mysql41: test known unidentifiably-mangled strings ... ok mysql41: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided mysql41: test known foreign hashes ... ok mysql41: test non-string hashes are rejected ... ok mysql41: fuzz testing -- random passwords and options ... ok mysql41: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode mysql41: .disable() / .enable() methods ... SKIP: not applicable mysql41: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents mysql41: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes mysql41: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes mysql41: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set mysql41: test no password size limits enforced (if truncate_size=None) ... ok mysql41: validate 'truncate_error' setting & related attributes ... ok mysql41: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt nthash: validate required attributes ... ok nthash: test basic config-string workflow ... ok nthash: test basic using() workflow ... ok nthash: test basic hash-string workflow. ... ok nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok nthash: test hashes can be unicode or bytes ... ok nthash: test multi-backend support ... SKIP: handler only has one backend nthash: validate optional salt attributes ... SKIP: handler doesn't have salt nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt nthash: test non-string salt values ... SKIP: handler doesn't have salt nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents nthash: test password case sensitivity ... ok nthash: test non-string passwords are rejected ... ok nthash: test MAX_PASSWORD_SIZE is enforced ... ok nthash: test forbidden characters not allowed in password ... SKIP: none listed nthash: test known hashes ... ok nthash: test known alternate hashes ... SKIP: no alternate hashes provided nthash: test known config strings ... SKIP: hash has no settings nthash: test known unidentifiably-mangled strings ... ok nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided nthash: test known foreign hashes ... ok nthash: test non-string hashes are rejected ... ok nthash: fuzz testing -- random passwords and options ... ok nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode nthash: .disable() / .enable() methods ... SKIP: not applicable nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set nthash: test no password size limits enforced (if truncate_size=None) ... ok nthash: validate 'truncate_error' setting & related attributes ... ok nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt oracle10: validate required attributes ... ok oracle10: test basic config-string workflow ... ok oracle10: test basic using() workflow ... ok oracle10: test basic hash-string workflow. ... ok oracle10: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok oracle10: test hashes can be unicode or bytes ... ok oracle10: test multi-backend support ... SKIP: handler only has one backend oracle10: validate optional salt attributes ... SKIP: handler doesn't have salt oracle10: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt oracle10: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt oracle10: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt oracle10: test hash() honors salt_chars ... SKIP: handler doesn't have salt oracle10: test non-string salt values ... SKIP: handler doesn't have salt oracle10: validate optional rounds attributes ... SKIP: handler lacks rounds attributes oracle10: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes oracle10: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes oracle10: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents oracle10: test password case sensitivity ... ok oracle10: test non-string passwords are rejected ... ok oracle10: test MAX_PASSWORD_SIZE is enforced ... ok oracle10: test forbidden characters not allowed in password ... SKIP: none listed oracle10: test known hashes ... ok oracle10: test known alternate hashes ... SKIP: no alternate hashes provided oracle10: test known config strings ... SKIP: hash has no settings oracle10: test known unidentifiably-mangled strings ... ok oracle10: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided oracle10: test known foreign hashes ... ok oracle10: test non-string hashes are rejected ... ok oracle10: fuzz testing -- random passwords and options ... ok oracle10: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode oracle10: test user context keyword ... ok oracle10: test user case sensitivity ... ok oracle10: test user used as salt ... ok oracle10: .disable() / .enable() methods ... SKIP: not applicable oracle10: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents oracle10: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes oracle10: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes oracle10: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set oracle10: test no password size limits enforced (if truncate_size=None) ... ok oracle10: validate 'truncate_error' setting & related attributes ... ok oracle10: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt oracle11: validate required attributes ... ok oracle11: test basic config-string workflow ... ok oracle11: test basic using() workflow ... ok oracle11: test basic hash-string workflow. ... ok oracle11: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok oracle11: test hashes can be unicode or bytes ... ok oracle11: test multi-backend support ... SKIP: handler only has one backend oracle11: validate optional salt attributes ... ok oracle11: test hash() / genconfig() creates new salt each time ... ok oracle11: test hash() / genconfig() honors min_salt_size ... ok oracle11: test hash() / genconfig() honors max_salt_size ... ok oracle11: test hash() honors salt_chars ... ok oracle11: test non-string salt values ... ok oracle11: validate optional rounds attributes ... SKIP: handler lacks rounds attributes oracle11: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes oracle11: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes oracle11: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents oracle11: test password case sensitivity ... ok oracle11: test non-string passwords are rejected ... ok oracle11: test MAX_PASSWORD_SIZE is enforced ... ok oracle11: test forbidden characters not allowed in password ... SKIP: none listed oracle11: test known hashes ... ok oracle11: test known alternate hashes ... SKIP: no alternate hashes provided oracle11: test known config strings ... SKIP: no config strings provided oracle11: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided oracle11: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided oracle11: test known foreign hashes ... ok oracle11: test non-string hashes are rejected ... ok oracle11: fuzz testing -- random passwords and options ... ok oracle11: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode oracle11: .disable() / .enable() methods ... SKIP: not applicable oracle11: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents oracle11: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes oracle11: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes oracle11: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set oracle11: test no password size limits enforced (if truncate_size=None) ... ok oracle11: validate 'truncate_error' setting & related attributes ... ok oracle11: Handler.using() -- default_salt_size ... ok phpass: validate required attributes ... ok phpass: test basic config-string workflow ... ok phpass: test basic using() workflow ... ok phpass: test basic hash-string workflow. ... ok phpass: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok phpass: test hashes can be unicode or bytes ... ok phpass: test multi-backend support ... SKIP: handler only has one backend phpass: validate optional salt attributes ... ok phpass: test hash() / genconfig() creates new salt each time ... ok phpass: test hash() / genconfig() honors min_salt_size ... ok phpass: test hash() / genconfig() honors max_salt_size ... ok phpass: test hash() honors salt_chars ... ok phpass: test non-string salt values ... ok phpass: validate optional rounds attributes ... ok phpass: test hash() / genconfig() honors min_rounds ... ok phpass: test hash() / genconfig() honors max_rounds ... ok phpass: validate HasManyIdents configuration ... ok phpass: test password case sensitivity ... ok phpass: test non-string passwords are rejected ... ok phpass: test MAX_PASSWORD_SIZE is enforced ... ok phpass: test forbidden characters not allowed in password ... SKIP: none listed phpass: test known hashes ... ok phpass: test known alternate hashes ... SKIP: no alternate hashes provided phpass: test known config strings ... SKIP: no config strings provided phpass: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided phpass: test known identifiable-but-malformed strings ... ok phpass: test known foreign hashes ... ok phpass: test non-string hashes are rejected ... ok phpass: fuzz testing -- random passwords and options ... ok phpass: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode phpass: .disable() / .enable() methods ... SKIP: not applicable phpass: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok phpass: HasRounds.using() -- max_rounds / max_desired_rounds ... ok phpass: HasRounds.using() -- desired_rounds + needs_update() ... ok phpass: HasRounds.using() -- sanity check test harness ... ok phpass: HasRounds.using() -- default_rounds ... ok phpass: HasRounds.using() -- min_rounds / min_desired_rounds ... ok phpass: HasRounds.using() -- rounds ... ok phpass: HasRounds.using() -- vary_rounds generation ... ok phpass: HasRounds.using() -- vary_rounds parsing ... ok phpass: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set phpass: test no password size limits enforced (if truncate_size=None) ... ok phpass: validate 'truncate_error' setting & related attributes ... ok phpass: Handler.using() -- default_salt_size ... ok plaintext: validate required attributes ... ok plaintext: test basic config-string workflow ... ok plaintext: test basic using() workflow ... ok plaintext: test basic hash-string workflow. ... ok plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok plaintext: test hashes can be unicode or bytes ... ok plaintext: test multi-backend support ... SKIP: handler only has one backend plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt plaintext: test non-string salt values ... SKIP: handler doesn't have salt plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents plaintext: test password case sensitivity ... ok plaintext: test non-string passwords are rejected ... ok plaintext: test MAX_PASSWORD_SIZE is enforced ... ok plaintext: test forbidden characters not allowed in password ... SKIP: none listed plaintext: test known hashes ... ok plaintext: test known alternate hashes ... SKIP: no alternate hashes provided plaintext: test known config strings ... SKIP: hash has no settings plaintext: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided plaintext: test known foreign hashes ... SKIP: not applicable plaintext: test non-string hashes are rejected ... ok plaintext: fuzz testing -- random passwords and options ... ok plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode plaintext: .disable() / .enable() methods ... SKIP: not applicable plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set plaintext: test no password size limits enforced (if truncate_size=None) ... ok plaintext: validate 'truncate_error' setting & related attributes ... ok plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt postgres_md5: validate required attributes ... ok postgres_md5: test basic config-string workflow ... ok postgres_md5: test basic using() workflow ... ok postgres_md5: test basic hash-string workflow. ... ok postgres_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok postgres_md5: test hashes can be unicode or bytes ... ok postgres_md5: test multi-backend support ... SKIP: handler only has one backend postgres_md5: validate optional salt attributes ... SKIP: handler doesn't have salt postgres_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt postgres_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt postgres_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt postgres_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt postgres_md5: test non-string salt values ... SKIP: handler doesn't have salt postgres_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes postgres_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes postgres_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes postgres_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents postgres_md5: test password case sensitivity ... ok postgres_md5: test non-string passwords are rejected ... ok postgres_md5: test MAX_PASSWORD_SIZE is enforced ... ok postgres_md5: test forbidden characters not allowed in password ... SKIP: none listed postgres_md5: test known hashes ... ok postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided postgres_md5: test known config strings ... SKIP: hash has no settings postgres_md5: test known unidentifiably-mangled strings ... ok postgres_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided postgres_md5: test known foreign hashes ... ok postgres_md5: test non-string hashes are rejected ... ok postgres_md5: fuzz testing -- random passwords and options ... ok postgres_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode postgres_md5: test user context keyword ... ok postgres_md5: test user case sensitivity ... ok postgres_md5: test user used as salt ... ok postgres_md5: .disable() / .enable() methods ... SKIP: not applicable postgres_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents postgres_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes postgres_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes postgres_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set postgres_md5: test no password size limits enforced (if truncate_size=None) ... ok postgres_md5: validate 'truncate_error' setting & related attributes ... ok postgres_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt sha1_crypt (os_crypt backend): validate required attributes ... ok sha1_crypt (os_crypt backend): test basic config-string workflow ... ok sha1_crypt (os_crypt backend): test basic using() workflow ... ok sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok sha1_crypt (os_crypt backend): test multi-backend support ... ok sha1_crypt (os_crypt backend): validate optional salt attributes ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok sha1_crypt (os_crypt backend): test non-string salt values ... ok sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents sha1_crypt (os_crypt backend): test password case sensitivity ... ok sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok sha1_crypt (os_crypt backend): test known hashes ... ok sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok sha1_crypt (os_crypt backend): test known foreign hashes ... ok sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode sha1_crypt (os_crypt backend): test with faulty crypt() ... ok sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux' platform sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok sha256_crypt (os_crypt backend): validate required attributes ... ok sha256_crypt (os_crypt backend): test basic config-string workflow ... ok sha256_crypt (os_crypt backend): test basic using() workflow ... ok sha256_crypt (os_crypt backend): test basic hash-string workflow. ... ok sha256_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok sha256_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok sha256_crypt (os_crypt backend): test multi-backend support ... ok sha256_crypt (os_crypt backend): validate optional salt attributes ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok sha256_crypt (os_crypt backend): test hash() honors salt_chars ... ok sha256_crypt (os_crypt backend): test non-string salt values ... ok sha256_crypt (os_crypt backend): validate optional rounds attributes ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok sha256_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents sha256_crypt (os_crypt backend): test password case sensitivity ... ok sha256_crypt (os_crypt backend): test non-string passwords are rejected ... ok sha256_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok sha256_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok sha256_crypt (os_crypt backend): test known hashes ... ok sha256_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided sha256_crypt (os_crypt backend): test known config strings ... ok sha256_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided sha256_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok sha256_crypt (os_crypt backend): test known foreign hashes ... ok sha256_crypt (os_crypt backend): test non-string hashes are rejected ... ok sha256_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok sha256_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode sha256_crypt (os_crypt backend): test with faulty crypt() ... ok sha256_crypt (os_crypt backend): test per-call crypt() fallback ... ok sha256_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok sha256_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable sha256_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents sha256_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok sha256_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set sha256_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok sha256_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok sha256_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok sha512_crypt (os_crypt backend): validate required attributes ... ok sha512_crypt (os_crypt backend): test basic config-string workflow ... ok sha512_crypt (os_crypt backend): test basic using() workflow ... ok sha512_crypt (os_crypt backend): test basic hash-string workflow. ... ok sha512_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok sha512_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok sha512_crypt (os_crypt backend): test multi-backend support ... ok sha512_crypt (os_crypt backend): validate optional salt attributes ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok sha512_crypt (os_crypt backend): test hash() honors salt_chars ... ok sha512_crypt (os_crypt backend): test non-string salt values ... ok sha512_crypt (os_crypt backend): validate optional rounds attributes ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok sha512_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents sha512_crypt (os_crypt backend): test password case sensitivity ... ok sha512_crypt (os_crypt backend): test non-string passwords are rejected ... ok sha512_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok sha512_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok sha512_crypt (os_crypt backend): test known hashes ... ok sha512_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided sha512_crypt (os_crypt backend): test known config strings ... ok sha512_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided sha512_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok sha512_crypt (os_crypt backend): test known foreign hashes ... ok sha512_crypt (os_crypt backend): test non-string hashes are rejected ... ok sha512_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok sha512_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode sha512_crypt (os_crypt backend): test with faulty crypt() ... ok sha512_crypt (os_crypt backend): test per-call crypt() fallback ... ok sha512_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok sha512_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable sha512_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents sha512_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok sha512_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set sha512_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok sha512_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok sha512_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok sun_md5_crypt: validate required attributes ... ok sun_md5_crypt: test basic config-string workflow ... ok sun_md5_crypt: test basic using() workflow ... ok sun_md5_crypt: test basic hash-string workflow. ... ok sun_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok sun_md5_crypt: test hashes can be unicode or bytes ... ok sun_md5_crypt: test multi-backend support ... SKIP: handler only has one backend sun_md5_crypt: validate optional salt attributes ... ok sun_md5_crypt: test hash() / genconfig() creates new salt each time ... ok sun_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok sun_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok sun_md5_crypt: test hash() honors salt_chars ... ok sun_md5_crypt: test non-string salt values ... ok sun_md5_crypt: validate optional rounds attributes ... ok sun_md5_crypt: test hash() / genconfig() honors min_rounds ... ok sun_md5_crypt: test hash() / genconfig() honors max_rounds ... ok sun_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents sun_md5_crypt: test password case sensitivity ... ok sun_md5_crypt: test non-string passwords are rejected ... ok sun_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok sun_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed sun_md5_crypt: test known hashes ... ok sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided sun_md5_crypt: test known config strings ... ok sun_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided sun_md5_crypt: test known identifiable-but-malformed strings ... ok sun_md5_crypt: test known foreign hashes ... ok sun_md5_crypt: test non-string hashes are rejected ... ok sun_md5_crypt: fuzz testing -- random passwords and options ... ok sun_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode sun_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable sun_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents sun_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... ok sun_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... ok sun_md5_crypt: HasRounds.using() -- sanity check test harness ... ok sun_md5_crypt: HasRounds.using() -- default_rounds ... ok sun_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... ok sun_md5_crypt: HasRounds.using() -- rounds ... ok sun_md5_crypt: HasRounds.using() -- vary_rounds generation ... ok sun_md5_crypt: HasRounds.using() -- vary_rounds parsing ... ok sun_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set sun_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok sun_md5_crypt: validate 'truncate_error' setting & related attributes ... ok sun_md5_crypt: Handler.using() -- default_salt_size ... ok unix_disabled: validate required attributes ... ok unix_disabled: test basic config-string workflow ... ok unix_disabled: test basic using() workflow ... ok unix_disabled: test basic hash-string workflow. ... ok unix_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok unix_disabled: test hashes can be unicode or bytes ... ok unix_disabled: test multi-backend support ... SKIP: handler only has one backend unix_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt unix_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt unix_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt unix_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt unix_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt unix_disabled: test non-string salt values ... SKIP: handler doesn't have salt unix_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes unix_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes unix_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes unix_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents unix_disabled: test password case sensitivity ... ok unix_disabled: test non-string passwords are rejected ... ok unix_disabled: test MAX_PASSWORD_SIZE is enforced ... ok unix_disabled: test forbidden characters not allowed in password ... SKIP: none listed unix_disabled: test known hashes ... ok unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided unix_disabled: test known config strings ... SKIP: no config strings provided unix_disabled: test known unidentifiably-mangled strings ... ok unix_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided unix_disabled: test known foreign hashes ... ok unix_disabled: test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) ... ok unix_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable unix_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode unix_disabled: test marker option & special behavior ... ok unix_disabled: .disable() / .enable() methods ... ok unix_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents unix_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes unix_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes unix_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set unix_disabled: test no password size limits enforced (if truncate_size=None) ... ok unix_disabled: validate 'truncate_error' setting & related attributes ... ok unix_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt unix_fallback: validate required attributes ... ok unix_fallback: test basic config-string workflow ... ok unix_fallback: test basic using() workflow ... ok unix_fallback: test basic hash-string workflow. ... ok unix_fallback: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok unix_fallback: test hashes can be unicode or bytes ... ok unix_fallback: test multi-backend support ... SKIP: handler only has one backend unix_fallback: validate optional salt attributes ... SKIP: handler doesn't have salt unix_fallback: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt unix_fallback: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt unix_fallback: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt unix_fallback: test hash() honors salt_chars ... SKIP: handler doesn't have salt unix_fallback: test non-string salt values ... SKIP: handler doesn't have salt unix_fallback: validate optional rounds attributes ... SKIP: handler lacks rounds attributes unix_fallback: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes unix_fallback: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes unix_fallback: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents unix_fallback: test password case sensitivity ... ok unix_fallback: test non-string passwords are rejected ... ok unix_fallback: test MAX_PASSWORD_SIZE is enforced ... ok unix_fallback: test forbidden characters not allowed in password ... SKIP: none listed unix_fallback: test known hashes ... ok unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided unix_fallback: test known config strings ... SKIP: hash has no settings unix_fallback: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided unix_fallback: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided unix_fallback: test known foreign hashes ... SKIP: not applicable unix_fallback: test non-string hashes are rejected ... ok unix_fallback: fuzz testing -- random passwords and options ... SKIP: not applicable unix_fallback: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode unix_fallback: test enable_wildcard flag ... ok unix_fallback: test preserves existing disabled hash ... ok unix_fallback: .disable() / .enable() methods ... ok unix_fallback: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents unix_fallback: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes unix_fallback: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes unix_fallback: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set unix_fallback: test no password size limits enforced (if truncate_size=None) ... ok unix_fallback: validate 'truncate_error' setting & related attributes ... ok unix_fallback: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt cisco_asa: validate required attributes ... ok cisco_asa: test basic config-string workflow ... ok cisco_asa: test basic using() workflow ... ok cisco_asa: test basic hash-string workflow. ... ok cisco_asa: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok cisco_asa: test hashes can be unicode or bytes ... ok cisco_asa: test multi-backend support ... SKIP: handler only has one backend cisco_asa: validate optional salt attributes ... SKIP: handler doesn't have salt cisco_asa: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt cisco_asa: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt cisco_asa: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt cisco_asa: test hash() honors salt_chars ... SKIP: handler doesn't have salt cisco_asa: test non-string salt values ... SKIP: handler doesn't have salt cisco_asa: validate optional rounds attributes ... SKIP: handler lacks rounds attributes cisco_asa: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes cisco_asa: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes cisco_asa: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents cisco_asa: test password case sensitivity ... ok cisco_asa: test non-string passwords are rejected ... ok cisco_asa: test MAX_PASSWORD_SIZE is enforced ... ok cisco_asa: test forbidden characters not allowed in password ... SKIP: none listed cisco_asa: test known hashes ... ok cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided cisco_asa: test known config strings ... SKIP: hash has no settings cisco_asa: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided cisco_asa: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided cisco_asa: test known foreign hashes ... ok cisco_asa: test non-string hashes are rejected ... ok cisco_asa: fuzz testing -- random passwords and options ... ok cisco_asa: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode cisco_asa: test user context keyword ... ok cisco_asa: test user case sensitivity ... ok cisco_asa: test user used as salt ... ok cisco_asa: _calc_checksum() -- spoil oversize passwords during verify ... ok cisco_asa: .disable() / .enable() methods ... SKIP: not applicable cisco_asa: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents cisco_asa: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes cisco_asa: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes cisco_asa: test password size limits raise truncate_error (if appropriate) ... ok cisco_asa: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set cisco_asa: validate 'truncate_error' setting & related attributes ... ok cisco_asa: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt cisco_pix: validate required attributes ... ok cisco_pix: test basic config-string workflow ... ok cisco_pix: test basic using() workflow ... ok cisco_pix: test basic hash-string workflow. ... ok cisco_pix: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok cisco_pix: test hashes can be unicode or bytes ... ok cisco_pix: test multi-backend support ... SKIP: handler only has one backend cisco_pix: validate optional salt attributes ... SKIP: handler doesn't have salt cisco_pix: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt cisco_pix: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt cisco_pix: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt cisco_pix: test hash() honors salt_chars ... SKIP: handler doesn't have salt cisco_pix: test non-string salt values ... SKIP: handler doesn't have salt cisco_pix: validate optional rounds attributes ... SKIP: handler lacks rounds attributes cisco_pix: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes cisco_pix: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes cisco_pix: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents cisco_pix: test password case sensitivity ... ok cisco_pix: test non-string passwords are rejected ... ok cisco_pix: test MAX_PASSWORD_SIZE is enforced ... ok cisco_pix: test forbidden characters not allowed in password ... SKIP: none listed cisco_pix: test known hashes ... ok cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided cisco_pix: test known config strings ... SKIP: hash has no settings cisco_pix: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided cisco_pix: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided cisco_pix: test known foreign hashes ... ok cisco_pix: test non-string hashes are rejected ... ok cisco_pix: fuzz testing -- random passwords and options ... ok cisco_pix: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode cisco_pix: test user context keyword ... ok cisco_pix: test user case sensitivity ... ok cisco_pix: test user used as salt ... ok cisco_pix: _calc_checksum() -- spoil oversize passwords during verify ... ok cisco_pix: .disable() / .enable() methods ... SKIP: not applicable cisco_pix: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents cisco_pix: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes cisco_pix: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes cisco_pix: test password size limits raise truncate_error (if appropriate) ... ok cisco_pix: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set cisco_pix: validate 'truncate_error' setting & related attributes ... ok cisco_pix: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt cisco_type7: validate required attributes ... ok cisco_type7: test basic config-string workflow ... ok cisco_type7: test basic using() workflow ... ok cisco_type7: test basic hash-string workflow. ... ok cisco_type7: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok cisco_type7: test hashes can be unicode or bytes ... ok cisco_type7: test multi-backend support ... SKIP: handler only has one backend cisco_type7: validate optional salt attributes ... SKIP: handler doesn't provide salt info cisco_type7: test hash() / genconfig() creates new salt each time ... ok cisco_type7: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't provide salt info cisco_type7: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't provide salt info cisco_type7: test hash() honors salt_chars ... SKIP: handler doesn't provide salt info cisco_type7: test non-string salt values ... ok cisco_type7: validate optional rounds attributes ... SKIP: handler lacks rounds attributes cisco_type7: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes cisco_type7: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes cisco_type7: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents cisco_type7: test password case sensitivity ... ok cisco_type7: test non-string passwords are rejected ... ok cisco_type7: test MAX_PASSWORD_SIZE is enforced ... ok cisco_type7: test forbidden characters not allowed in password ... SKIP: none listed cisco_type7: test known hashes ... ok cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided cisco_type7: test known config strings ... SKIP: no config strings provided cisco_type7: test known unidentifiably-mangled strings ... ok cisco_type7: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided cisco_type7: test known foreign hashes ... ok cisco_type7: test non-string hashes are rejected ... ok cisco_type7: fuzz testing -- random passwords and options ... ok cisco_type7: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode cisco_type7: test cisco_type7.decode() ... ok cisco_type7: test salt value border cases ... ok cisco_type7: .disable() / .enable() methods ... SKIP: not applicable cisco_type7: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents cisco_type7: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes cisco_type7: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes cisco_type7: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set cisco_type7: test no password size limits enforced (if truncate_size=None) ... ok cisco_type7: validate 'truncate_error' setting & related attributes ... ok cisco_type7: Handler.using() -- default_salt_size ... SKIP: handler doesn't provide salt info django_des_crypt: validate required attributes ... ok django_des_crypt: test basic config-string workflow ... ok django_des_crypt: test basic using() workflow ... ok django_des_crypt: test basic hash-string workflow. ... ok django_des_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_des_crypt: test hashes can be unicode or bytes ... ok django_des_crypt: test multi-backend support ... SKIP: handler only has one backend django_des_crypt: validate optional salt attributes ... ok django_des_crypt: test hash() / genconfig() creates new salt each time ... ok django_des_crypt: test hash() / genconfig() honors min_salt_size ... ok django_des_crypt: test hash() / genconfig() honors max_salt_size ... ok django_des_crypt: test hash() honors salt_chars ... ok django_des_crypt: test non-string salt values ... ok django_des_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes django_des_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_des_crypt: test password case sensitivity ... ok django_des_crypt: test non-string passwords are rejected ... ok django_des_crypt: test MAX_PASSWORD_SIZE is enforced ... ok django_des_crypt: test forbidden characters not allowed in password ... SKIP: none listed django_des_crypt: test known hashes ... ok django_des_crypt: test known alternate hashes ... ok django_des_crypt: test known config strings ... SKIP: no config strings provided django_des_crypt: test known unidentifiably-mangled strings ... ok django_des_crypt: test known identifiable-but-malformed strings ... ok django_des_crypt: test known foreign hashes ... ok django_des_crypt: test non-string hashes are rejected ... ok django_des_crypt: fuzz testing -- random passwords and options ... ok django_des_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_des_crypt: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_des_crypt: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_des_crypt: .disable() / .enable() methods ... SKIP: not applicable django_des_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_des_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes django_des_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes django_des_crypt: test password size limits raise truncate_error (if appropriate) ... ok django_des_crypt: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set django_des_crypt: validate 'truncate_error' setting & related attributes ... ok django_des_crypt: Handler.using() -- default_salt_size ... ok django_disabled: validate required attributes ... ok django_disabled: test basic config-string workflow ... ok django_disabled: test basic using() workflow ... ok django_disabled: test basic hash-string workflow. ... ok django_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_disabled: test hashes can be unicode or bytes ... ok django_disabled: test multi-backend support ... SKIP: handler only has one backend django_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt django_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt django_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt django_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt django_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt django_disabled: test non-string salt values ... SKIP: handler doesn't have salt django_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes django_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes django_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes django_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_disabled: test password case sensitivity ... ok django_disabled: test non-string passwords are rejected ... ok django_disabled: test MAX_PASSWORD_SIZE is enforced ... ok django_disabled: test forbidden characters not allowed in password ... SKIP: none listed django_disabled: test known hashes ... ok django_disabled: test known alternate hashes ... ok django_disabled: test known config strings ... SKIP: hash has no settings django_disabled: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided django_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided django_disabled: test known foreign hashes ... ok django_disabled: test non-string hashes are rejected ... ok django_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable django_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_disabled: .disable() / .enable() methods ... ok django_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes django_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes django_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_disabled: test no password size limits enforced (if truncate_size=None) ... ok django_disabled: validate 'truncate_error' setting & related attributes ... ok django_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt django_pbkdf2_sha1: validate required attributes ... ok django_pbkdf2_sha1: test basic config-string workflow ... ok django_pbkdf2_sha1: test basic using() workflow ... ok django_pbkdf2_sha1: test basic hash-string workflow. ... ok django_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_pbkdf2_sha1: test hashes can be unicode or bytes ... ok django_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend django_pbkdf2_sha1: validate optional salt attributes ... ok django_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok django_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok django_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok django_pbkdf2_sha1: test hash() honors salt_chars ... ok django_pbkdf2_sha1: test non-string salt values ... ok django_pbkdf2_sha1: validate optional rounds attributes ... ok django_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok django_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok django_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_pbkdf2_sha1: test password case sensitivity ... ok django_pbkdf2_sha1: test non-string passwords are rejected ... ok django_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok django_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed django_pbkdf2_sha1: test known hashes ... ok django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided django_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided django_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided django_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided django_pbkdf2_sha1: test known foreign hashes ... ok django_pbkdf2_sha1: test non-string hashes are rejected ... ok django_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok django_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_pbkdf2_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_pbkdf2_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable django_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok django_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok django_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok django_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok django_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok django_pbkdf2_sha1: HasRounds.using() -- rounds ... ok django_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok django_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok django_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok django_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok django_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok django_pbkdf2_sha256: validate required attributes ... ok django_pbkdf2_sha256: test basic config-string workflow ... ok django_pbkdf2_sha256: test basic using() workflow ... ok django_pbkdf2_sha256: test basic hash-string workflow. ... ok django_pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_pbkdf2_sha256: test hashes can be unicode or bytes ... ok django_pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend django_pbkdf2_sha256: validate optional salt attributes ... ok django_pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok django_pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok django_pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok django_pbkdf2_sha256: test hash() honors salt_chars ... ok django_pbkdf2_sha256: test non-string salt values ... ok django_pbkdf2_sha256: validate optional rounds attributes ... ok django_pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok django_pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok django_pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_pbkdf2_sha256: test password case sensitivity ... ok django_pbkdf2_sha256: test non-string passwords are rejected ... ok django_pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok django_pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed django_pbkdf2_sha256: test known hashes ... ok django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided django_pbkdf2_sha256: test known config strings ... SKIP: no config strings provided django_pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided django_pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided django_pbkdf2_sha256: test known foreign hashes ... ok django_pbkdf2_sha256: test non-string hashes are rejected ... ok django_pbkdf2_sha256: fuzz testing -- random passwords and options ... ok django_pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_pbkdf2_sha256: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_pbkdf2_sha256: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable django_pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok django_pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok django_pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok django_pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok django_pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok django_pbkdf2_sha256: HasRounds.using() -- rounds ... ok django_pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok django_pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok django_pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok django_pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok django_pbkdf2_sha256: Handler.using() -- default_salt_size ... ok django_salted_md5: validate required attributes ... ok django_salted_md5: test basic config-string workflow ... ok django_salted_md5: test basic using() workflow ... ok django_salted_md5: test basic hash-string workflow. ... ok django_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_salted_md5: test hashes can be unicode or bytes ... ok django_salted_md5: test multi-backend support ... SKIP: handler only has one backend django_salted_md5: validate optional salt attributes ... ok django_salted_md5: test hash() / genconfig() creates new salt each time ... ok django_salted_md5: test hash() / genconfig() honors min_salt_size ... ok django_salted_md5: test hash() / genconfig() honors max_salt_size ... ok django_salted_md5: test hash() honors salt_chars ... ok django_salted_md5: test non-string salt values ... ok django_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes django_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_salted_md5: test password case sensitivity ... ok django_salted_md5: test non-string passwords are rejected ... ok django_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok django_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed django_salted_md5: test known hashes ... ok django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided django_salted_md5: test known config strings ... SKIP: no config strings provided django_salted_md5: test known unidentifiably-mangled strings ... ok django_salted_md5: test known identifiable-but-malformed strings ... ok django_salted_md5: test known foreign hashes ... ok django_salted_md5: test non-string hashes are rejected ... ok django_salted_md5: fuzz testing -- random passwords and options ... ok django_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_salted_md5: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_salted_md5: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_salted_md5: .disable() / .enable() methods ... SKIP: not applicable django_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes django_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes django_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok django_salted_md5: validate 'truncate_error' setting & related attributes ... ok django_salted_md5: Handler.using() -- default_salt_size ... ok django_salted_sha1: validate required attributes ... ok django_salted_sha1: test basic config-string workflow ... ok django_salted_sha1: test basic using() workflow ... ok django_salted_sha1: test basic hash-string workflow. ... ok django_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok django_salted_sha1: test hashes can be unicode or bytes ... ok django_salted_sha1: test multi-backend support ... SKIP: handler only has one backend django_salted_sha1: validate optional salt attributes ... ok django_salted_sha1: test hash() / genconfig() creates new salt each time ... ok django_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok django_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok django_salted_sha1: test hash() honors salt_chars ... ok django_salted_sha1: test non-string salt values ... ok django_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes django_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents django_salted_sha1: test password case sensitivity ... ok django_salted_sha1: test non-string passwords are rejected ... ok django_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok django_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed django_salted_sha1: test known hashes ... ok django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided django_salted_sha1: test known config strings ... SKIP: no config strings provided django_salted_sha1: test known unidentifiably-mangled strings ... ok django_salted_sha1: test known identifiable-but-malformed strings ... ok django_salted_sha1: test known foreign hashes ... ok django_salted_sha1: test non-string hashes are rejected ... ok django_salted_sha1: fuzz testing -- random passwords and options ... ok django_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode django_salted_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed django_salted_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed django_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable django_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents django_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes django_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes django_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set django_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok django_salted_sha1: validate 'truncate_error' setting & related attributes ... ok django_salted_sha1: Handler.using() -- default_salt_size ... ok atlassian_pbkdf2_sha1: validate required attributes ... ok atlassian_pbkdf2_sha1: test basic config-string workflow ... ok atlassian_pbkdf2_sha1: test basic using() workflow ... ok atlassian_pbkdf2_sha1: test basic hash-string workflow. ... ok atlassian_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok atlassian_pbkdf2_sha1: test hashes can be unicode or bytes ... ok atlassian_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend atlassian_pbkdf2_sha1: validate optional salt attributes ... ok atlassian_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok atlassian_pbkdf2_sha1: test hash() honors salt_chars ... ok atlassian_pbkdf2_sha1: test non-string salt values ... ok atlassian_pbkdf2_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents atlassian_pbkdf2_sha1: test password case sensitivity ... ok atlassian_pbkdf2_sha1: test non-string passwords are rejected ... ok atlassian_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok atlassian_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed atlassian_pbkdf2_sha1: test known hashes ... ok atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided atlassian_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided atlassian_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided atlassian_pbkdf2_sha1: test known identifiable-but-malformed strings ... ok atlassian_pbkdf2_sha1: test known foreign hashes ... ok atlassian_pbkdf2_sha1: test non-string hashes are rejected ... ok atlassian_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok atlassian_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode atlassian_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable atlassian_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents atlassian_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes atlassian_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set atlassian_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok atlassian_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok atlassian_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok cta_pbkdf2_sha1: validate required attributes ... ok cta_pbkdf2_sha1: test basic config-string workflow ... ok cta_pbkdf2_sha1: test basic using() workflow ... ok cta_pbkdf2_sha1: test basic hash-string workflow. ... ok cta_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok cta_pbkdf2_sha1: test hashes can be unicode or bytes ... ok cta_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend cta_pbkdf2_sha1: validate optional salt attributes ... ok cta_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok cta_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok cta_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok cta_pbkdf2_sha1: test hash() honors salt_chars ... ok cta_pbkdf2_sha1: test non-string salt values ... ok cta_pbkdf2_sha1: validate optional rounds attributes ... ok cta_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok cta_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok cta_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents cta_pbkdf2_sha1: test password case sensitivity ... ok cta_pbkdf2_sha1: test non-string passwords are rejected ... ok cta_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok cta_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed cta_pbkdf2_sha1: test known hashes ... ok cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided cta_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided cta_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided cta_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided cta_pbkdf2_sha1: test known foreign hashes ... ok cta_pbkdf2_sha1: test non-string hashes are rejected ... ok cta_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok cta_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode cta_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable cta_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents cta_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok cta_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok cta_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok cta_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok cta_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok cta_pbkdf2_sha1: HasRounds.using() -- rounds ... ok cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok cta_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set cta_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok cta_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok cta_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok dlitz_pbkdf2_sha1: validate required attributes ... ok dlitz_pbkdf2_sha1: test basic config-string workflow ... ok dlitz_pbkdf2_sha1: test basic using() workflow ... ok dlitz_pbkdf2_sha1: test basic hash-string workflow. ... ok dlitz_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok dlitz_pbkdf2_sha1: test hashes can be unicode or bytes ... ok dlitz_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend dlitz_pbkdf2_sha1: validate optional salt attributes ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok dlitz_pbkdf2_sha1: test hash() honors salt_chars ... ok dlitz_pbkdf2_sha1: test non-string salt values ... ok dlitz_pbkdf2_sha1: validate optional rounds attributes ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok dlitz_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents dlitz_pbkdf2_sha1: test password case sensitivity ... ok dlitz_pbkdf2_sha1: test non-string passwords are rejected ... ok dlitz_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok dlitz_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed dlitz_pbkdf2_sha1: test known hashes ... ok dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided dlitz_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided dlitz_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided dlitz_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided dlitz_pbkdf2_sha1: test known foreign hashes ... ok dlitz_pbkdf2_sha1: test non-string hashes are rejected ... ok dlitz_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok dlitz_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode dlitz_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable dlitz_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents dlitz_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- rounds ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok dlitz_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set dlitz_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok dlitz_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok dlitz_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok grub_pbkdf2_sha512: validate required attributes ... ok grub_pbkdf2_sha512: test basic config-string workflow ... ok grub_pbkdf2_sha512: test basic using() workflow ... ok grub_pbkdf2_sha512: test basic hash-string workflow. ... ok grub_pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok grub_pbkdf2_sha512: test hashes can be unicode or bytes ... ok grub_pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend grub_pbkdf2_sha512: validate optional salt attributes ... ok grub_pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok grub_pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok grub_pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok grub_pbkdf2_sha512: test hash() honors salt_chars ... ok grub_pbkdf2_sha512: test non-string salt values ... ok grub_pbkdf2_sha512: validate optional rounds attributes ... ok grub_pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok grub_pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok grub_pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents grub_pbkdf2_sha512: test password case sensitivity ... ok grub_pbkdf2_sha512: test non-string passwords are rejected ... ok grub_pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok grub_pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed grub_pbkdf2_sha512: test known hashes ... ok grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided grub_pbkdf2_sha512: test known config strings ... SKIP: no config strings provided grub_pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided grub_pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided grub_pbkdf2_sha512: test known foreign hashes ... ok grub_pbkdf2_sha512: test non-string hashes are rejected ... ok grub_pbkdf2_sha512: fuzz testing -- random passwords and options ... ok grub_pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode grub_pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable grub_pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents grub_pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok grub_pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok grub_pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok grub_pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok grub_pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok grub_pbkdf2_sha512: HasRounds.using() -- rounds ... ok grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok grub_pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set grub_pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok grub_pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok grub_pbkdf2_sha512: Handler.using() -- default_salt_size ... ok test ldap pbkdf2 wrappers ... ok pbkdf2_sha1: validate required attributes ... ok pbkdf2_sha1: test basic config-string workflow ... ok pbkdf2_sha1: test basic using() workflow ... ok pbkdf2_sha1: test basic hash-string workflow. ... ok pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok pbkdf2_sha1: test hashes can be unicode or bytes ... ok pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend pbkdf2_sha1: validate optional salt attributes ... ok pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok pbkdf2_sha1: test hash() honors salt_chars ... ok pbkdf2_sha1: test non-string salt values ... ok pbkdf2_sha1: validate optional rounds attributes ... ok pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha1: test password case sensitivity ... ok pbkdf2_sha1: test non-string passwords are rejected ... ok pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed pbkdf2_sha1: test known hashes ... ok pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided pbkdf2_sha1: test known config strings ... SKIP: no config strings provided pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided pbkdf2_sha1: test known identifiable-but-malformed strings ... ok pbkdf2_sha1: test known foreign hashes ... ok pbkdf2_sha1: test non-string hashes are rejected ... ok pbkdf2_sha1: fuzz testing -- random passwords and options ... ok pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok pbkdf2_sha1: HasRounds.using() -- rounds ... ok pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok pbkdf2_sha1: Handler.using() -- default_salt_size ... ok pbkdf2_sha256: validate required attributes ... ok pbkdf2_sha256: test basic config-string workflow ... ok pbkdf2_sha256: test basic using() workflow ... ok pbkdf2_sha256: test basic hash-string workflow. ... ok pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok pbkdf2_sha256: test hashes can be unicode or bytes ... ok pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend pbkdf2_sha256: validate optional salt attributes ... ok pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok pbkdf2_sha256: test hash() honors salt_chars ... ok pbkdf2_sha256: test non-string salt values ... ok pbkdf2_sha256: validate optional rounds attributes ... ok pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha256: test password case sensitivity ... ok pbkdf2_sha256: test non-string passwords are rejected ... ok pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed pbkdf2_sha256: test known hashes ... ok pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided pbkdf2_sha256: test known config strings ... SKIP: no config strings provided pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided pbkdf2_sha256: test known foreign hashes ... ok pbkdf2_sha256: test non-string hashes are rejected ... ok pbkdf2_sha256: fuzz testing -- random passwords and options ... ok pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok pbkdf2_sha256: HasRounds.using() -- rounds ... ok pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok pbkdf2_sha256: Handler.using() -- default_salt_size ... ok pbkdf2_sha512: validate required attributes ... ok pbkdf2_sha512: test basic config-string workflow ... ok pbkdf2_sha512: test basic using() workflow ... ok pbkdf2_sha512: test basic hash-string workflow. ... ok pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok pbkdf2_sha512: test hashes can be unicode or bytes ... ok pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend pbkdf2_sha512: validate optional salt attributes ... ok pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok pbkdf2_sha512: test hash() honors salt_chars ... ok pbkdf2_sha512: test non-string salt values ... ok pbkdf2_sha512: validate optional rounds attributes ... ok pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha512: test password case sensitivity ... ok pbkdf2_sha512: test non-string passwords are rejected ... ok pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed pbkdf2_sha512: test known hashes ... ok pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided pbkdf2_sha512: test known config strings ... SKIP: no config strings provided pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided pbkdf2_sha512: test known foreign hashes ... ok pbkdf2_sha512: test non-string hashes are rejected ... ok pbkdf2_sha512: fuzz testing -- random passwords and options ... ok pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok pbkdf2_sha512: HasRounds.using() -- rounds ... ok pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok pbkdf2_sha512: Handler.using() -- default_salt_size ... ok scram: validate required attributes ... ok scram: test basic config-string workflow ... ok scram: test basic using() workflow ... ok scram: test basic hash-string workflow. ... ok scram: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok scram: test hashes can be unicode or bytes ... ok scram: test multi-backend support ... SKIP: handler only has one backend scram: validate optional salt attributes ... ok scram: test hash() / genconfig() creates new salt each time ... ok scram: test hash() / genconfig() honors min_salt_size ... ok scram: test hash() / genconfig() honors max_salt_size ... ok scram: test hash() honors salt_chars ... ok scram: test non-string salt values ... ok scram: validate optional rounds attributes ... ok scram: test hash() / genconfig() honors min_rounds ... ok scram: test hash() / genconfig() honors max_rounds ... ok scram: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents scram: test password case sensitivity ... ok scram: test non-string passwords are rejected ... ok scram: test MAX_PASSWORD_SIZE is enforced ... ok scram: test forbidden characters not allowed in password ... SKIP: none listed scram: test known hashes ... ok scram: test known alternate hashes ... SKIP: no alternate hashes provided scram: test known config strings ... SKIP: no config strings provided scram: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided scram: test known identifiable-but-malformed strings ... ok scram: test known foreign hashes ... ok scram: test non-string hashes are rejected ... ok scram: fuzz testing -- random passwords and options ... ok scram: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode scram: test parsing of 'algs' setting ... ok scram: test internal parsing of 'checksum' keyword ... ok scram: test scram.extract_digest_info() ... ok scram: test scram.extract_digest_algs() ... ok scram: test scram.derive_digest() ... ok scram: needs_update() -- algs setting ... ok scram: test hash/verify use saslprep ... ok scram: using() -- 'algs' parameter ... ok scram: using() -- 'default_algs' parameter ... ok scram: test handling of 'algs' in context object ... ok scram: test verify(full=True) flag ... ok scram: .disable() / .enable() methods ... SKIP: not applicable scram: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents scram: HasRounds.using() -- max_rounds / max_desired_rounds ... ok scram: HasRounds.using() -- desired_rounds + needs_update() ... ok scram: HasRounds.using() -- sanity check test harness ... ok scram: HasRounds.using() -- default_rounds ... ok scram: HasRounds.using() -- min_rounds / min_desired_rounds ... ok scram: HasRounds.using() -- rounds ... ok scram: HasRounds.using() -- vary_rounds generation ... ok scram: HasRounds.using() -- vary_rounds parsing ... ok scram: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set scram: test no password size limits enforced (if truncate_size=None) ... ok scram: validate 'truncate_error' setting & related attributes ... ok scram: Handler.using() -- default_salt_size ... ok scrypt (builtin backend): validate required attributes ... ok scrypt (builtin backend): test basic config-string workflow ... ok scrypt (builtin backend): test basic using() workflow ... ok scrypt (builtin backend): test basic hash-string workflow. ... ok scrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok scrypt (builtin backend): test hashes can be unicode or bytes ... ok scrypt (builtin backend): test multi-backend support ... ok scrypt (builtin backend): validate optional salt attributes ... ok scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok scrypt (builtin backend): test hash() honors salt_chars ... ok scrypt (builtin backend): test non-string salt values ... ok scrypt (builtin backend): validate optional rounds attributes ... ok scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok scrypt (builtin backend): validate HasManyIdents configuration ... ok scrypt (builtin backend): test password case sensitivity ... ok scrypt (builtin backend): test non-string passwords are rejected ... ok scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: none listed scrypt (builtin backend): test known hashes ... ok scrypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided scrypt (builtin backend): test known config strings ... SKIP: no config strings provided scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided scrypt (builtin backend): test known identifiable-but-malformed strings ... ok scrypt (builtin backend): test known foreign hashes ... ok scrypt (builtin backend): test non-string hashes are rejected ... ok scrypt (builtin backend): fuzz testing -- random passwords and options ... ok scrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode scrypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok scrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok scrypt (builtin backend): HasRounds.using() -- default_rounds ... ok scrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok scrypt (builtin backend): HasRounds.using() -- rounds ... ok scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok scrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set scrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok scrypt (builtin backend): Handler.using() -- default_salt_size ... ok test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok test_host_context (passlib.tests.test_hosts.HostsTest) ... ok test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok passlib.pwd.genphrase(): 'length' & 'entropy' keywords ... ok passlib.pwd.genphrase(): general behavior ... ok passlib.pwd.genphrase(): 'returns' keyword ... ok passlib.pwd.genphrase(): 'wordset' & 'words' options ... ok passlib.pwd: _self_info_rate() ... ok passlib.pwd.genword(): 'charset' & 'chars' options ... ok passlib.pwd.genword(): general behavior ... ok passlib.pwd.genword(): 'returns' keyword ... ok passlib.registry: test get_crypt_handler() ... ok passlib.registry: verify we have tests for all builtin handlers ... ok passlib.registry: test passlib.hash proxy object ... ok passlib.registry: test list_crypt_handlers() ... ok passlib.registry: test register_crypt_handler() ... ok passlib.registry: test register_crypt_handler_path() ... ok passlib.totp.AppWallet: .decrypt_key() ... SKIP: 'cryptography' package not installed passlib.totp.AppWallet: .decrypt_key() -- needs_recrypt flag ... SKIP: 'cryptography' package not installed passlib.totp.AppWallet: constructor -- 'default_tag' param ... ok passlib.totp.AppWallet: verify cost parameter via timing ... SKIP: 'cryptography' package not installed passlib.totp.AppWallet: .encrypt_key() ... SKIP: 'cryptography' package not installed passlib.totp.AppWallet: constructor -- 'secrets' param -- tag/value normalization ... ok passlib.totp.AppWallet: constructor -- 'secrets' param -- input types ... ok passlib.totp.TOTP: helper to iterate over test vectors. ... ok passlib.totp.TOTP: constructor -- 'alg' parameter ... ok passlib.totp.TOTP: constructor -- 'digits' parameter ... ok passlib.totp.TOTP: constructor -- 'issuer' parameter ... ok passlib.totp.TOTP: constructor -- 'key' and 'format' parameters ... ok passlib.totp.TOTP: constructor -- 'label' parameter ... ok passlib.totp.TOTP: constructor -- 'new' parameter ... ok passlib.totp.TOTP: constructor -- 'period' parameter ... ok passlib.totp.TOTP: constructor -- 'size' parameter ... ok passlib.totp.TOTP: from_dict() ... ok passlib.totp.TOTP: from_source() ... ok passlib.totp.TOTP: from_uri() ... ok passlib.totp.TOTP: generate() ... ok passlib.totp.TOTP: generate() -- reference vectors ... ok passlib.totp.TOTP: pretty_key() and .key attributes ... ok passlib.totp.TOTP: match() -- reference vectors ... ok passlib.totp.TOTP: match() -- 'reuse' and 'last_counter' parameters ... ok passlib.totp.TOTP: match() -- 'skew' parameters ... ok passlib.totp.TOTP: match() -- token normalization ... ok passlib.totp.TOTP: match() -- 'time' and 'window' parameters ... ok passlib.totp.TOTP: normalize_time() ... ok passlib.totp.TOTP: normalize_token() -- class method ... ok passlib.totp.TOTP: normalize_token() -- instance method ... ok passlib.totp.TOTP: internal test -- randotp() ... ok passlib.totp.TOTP: to_dict() ... ok passlib.totp.TOTP: to_uri() ... ok passlib.totp.TOTP: match() -- invalid TotpMatch object ... ok passlib.totp.TOTP: match() -- valid TotpMatch object with past token ... ok passlib.totp.TOTP: match() -- valid TotpMatch object with future token ... ok passlib.totp.TOTP: match() -- valid TotpMatch object ... ok passlib.totp.TOTP: generate() -- TotpToken() class ... ok passlib.totp.TOTP: using -- 'now' parameter ... ok passlib.totp.TOTP: using() -- 'period' parameter ... ok passlib.totp.TOTP: verify() ... ok ab64_decode() ... ok ab64_encode() ... ok b64s_decode() ... ok b64s_encode() ... ok test_constructor (passlib.tests.test_utils.Base64EngineTest) ... ok test b() helper, bytes and native str type ... ok test is_ascii_safe() ... ok test is_same_codec() ... ok test to_bytes() ... ok test to_native_str() ... ok test to_unicode() ... ok h64big codec: test encode_bytes/decode_bytes against random data ... ok h64big codec: test decode_bytes() against reference inputs ... ok h64big codec: test decode_bytes() with bad input ... ok h64big codec: test decode_bytes() ignores padding bits ... ok h64big codec: test decode_transposed_bytes() ... ok h64big codec: test decode_transposed_bytes() fails if map is a one-way ... ok h64big codec: test encode_bytes() against reference inputs ... ok h64big codec: test encode_bytes() with bad input ... ok h64big codec: test encode_transposed_bytes() ... ok h64big codec: test against reference integer encodings ... ok h64big codec: test_int12 (passlib.tests.test_utils.H64Big_Test) ... ok h64big codec: test_int24 (passlib.tests.test_utils.H64Big_Test) ... ok h64big codec: test_int6 (passlib.tests.test_utils.H64Big_Test) ... ok h64big codec: test_int64 (passlib.tests.test_utils.H64Big_Test) ... ok h64big codec: test repair_unused() ... ok h64 codec: test encode_bytes/decode_bytes against random data ... ok h64 codec: test decode_bytes() against reference inputs ... ok h64 codec: test decode_bytes() with bad input ... ok h64 codec: test decode_bytes() ignores padding bits ... ok h64 codec: test decode_transposed_bytes() ... ok h64 codec: test decode_transposed_bytes() fails if map is a one-way ... ok h64 codec: test encode_bytes() against reference inputs ... ok h64 codec: test encode_bytes() with bad input ... ok h64 codec: test encode_transposed_bytes() ... ok h64 codec: test against reference integer encodings ... ok h64 codec: test_int12 (passlib.tests.test_utils.H64_Test) ... ok h64 codec: test_int24 (passlib.tests.test_utils.H64_Test) ... ok h64 codec: test_int6 (passlib.tests.test_utils.H64_Test) ... ok h64 codec: test_int64 (passlib.tests.test_utils.H64_Test) ... ok h64 codec: test repair_unused() ... ok test_classproperty (passlib.tests.test_utils.MiscTest) ... ok test compat's lazymodule ... ok test consteq() ... ok test crypt.crypt() wrappers ... ok test_deprecated_function (passlib.tests.test_utils.MiscTest) ... ok generate_password() ... ok test genseed() ... /builddir/build/BUILD/passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead time.clock(), /builddir/build/BUILD/passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead time.clock(), /builddir/build/BUILD/passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead time.clock(), ok getrandbytes() ... ok getrandstr() ... ok test is_crypt_context() ... ok test_memoized_property (passlib.tests.test_utils.MiscTest) ... ok test saslprep() unicode normalizer ... ok test_splitcomma (passlib.tests.test_utils.MiscTest) ... ok test PrefixWrapper lazy loading of handler ... ok test PrefixWrapper active loading of handler ... ok test PrefixWrapper with explicitly specified handler ... ok test_10_wrapped_attributes (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test_11_wrapped_methods (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test_12_ident (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test repr() ... ok test orig_prefix sanity check ... ok salted_test_hash: validate required attributes ... ok salted_test_hash: test basic config-string workflow ... ok salted_test_hash: test basic using() workflow ... ok salted_test_hash: test basic hash-string workflow. ... ok salted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok salted_test_hash: test hashes can be unicode or bytes ... ok salted_test_hash: test multi-backend support ... SKIP: handler only has one backend salted_test_hash: validate optional salt attributes ... ok salted_test_hash: test hash() / genconfig() creates new salt each time ... ok salted_test_hash: test hash() / genconfig() honors min_salt_size ... ok salted_test_hash: test hash() / genconfig() honors max_salt_size ... ok salted_test_hash: test hash() honors salt_chars ... ok salted_test_hash: test non-string salt values ... ok salted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes salted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents salted_test_hash: test password case sensitivity ... ok salted_test_hash: test non-string passwords are rejected ... ok salted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok salted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed salted_test_hash: test known hashes ... ok salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided salted_test_hash: test known config strings ... SKIP: no config strings provided salted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided salted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided salted_test_hash: test known foreign hashes ... ok salted_test_hash: test non-string hashes are rejected ... ok salted_test_hash: fuzz testing -- random passwords and options ... ok salted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode salted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) ... ok salted_test_hash: .disable() / .enable() methods ... SKIP: not applicable salted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents salted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes salted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes salted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set salted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok salted_test_hash: validate 'truncate_error' setting & related attributes ... ok salted_test_hash: Handler.using() -- default_salt_size ... ok test StaticHandler class ... ok test StaticHandler legacy attr ... ok test GenericHandler.identify() ... ok test GenericHandler checksum handling ... ok test GenericHandler + HasRawChecksum mixin ... ok test GenericHandler + HasSalt mixin ... ok test GenericHandler + HasRounds mixin ... ok test GenericHandler + HasManyBackends mixin ... ok test GenericHandler + HasManyBackends mixin (deprecated api) ... ok test GenericHandler + HasManyIdents ... ok test parsehash() ... ok test bitsize() ... ok unsalted_test_hash: validate required attributes ... ok unsalted_test_hash: test basic config-string workflow ... ok unsalted_test_hash: test basic using() workflow ... ok unsalted_test_hash: test basic hash-string workflow. ... ok unsalted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok unsalted_test_hash: test hashes can be unicode or bytes ... ok unsalted_test_hash: test multi-backend support ... SKIP: handler only has one backend unsalted_test_hash: validate optional salt attributes ... SKIP: handler doesn't have salt unsalted_test_hash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt unsalted_test_hash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt unsalted_test_hash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt unsalted_test_hash: test hash() honors salt_chars ... SKIP: handler doesn't have salt unsalted_test_hash: test non-string salt values ... SKIP: handler doesn't have salt unsalted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes unsalted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents unsalted_test_hash: test password case sensitivity ... ok unsalted_test_hash: test non-string passwords are rejected ... ok unsalted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok unsalted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed unsalted_test_hash: test known hashes ... ok unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided unsalted_test_hash: test known config strings ... SKIP: hash has no settings unsalted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided unsalted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided unsalted_test_hash: test known foreign hashes ... ok unsalted_test_hash: test non-string hashes are rejected ... ok unsalted_test_hash: fuzz testing -- random passwords and options ... ok unsalted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode unsalted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) ... ok unsalted_test_hash: .disable() / .enable() methods ... SKIP: not applicable unsalted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents unsalted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes unsalted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes unsalted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set unsalted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok unsalted_test_hash: validate 'truncate_error' setting & related attributes ... ok unsalted_test_hash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt passlib.utils.md4.md4(): informational attributes ... ok passlib.utils.md4.md4(): copy() method ... ok passlib.utils.md4.md4(): digest() method ... ok passlib.utils.md4.md4(): hexdigest() method ... ok passlib.utils.md4.md4(): update() method ... ok passlib.utils.pbkdf2.pbkdf1(): test border cases ... ok passlib.utils.pbkdf2.pbkdf1(): test reference vectors ... ok passlib.utils.pbkdf2.pbkdf2(): test border cases ... ok passlib.utils.pbkdf2.pbkdf2(): test custom prf function ... ok passlib.utils.pbkdf2.pbkdf2(): test keylen==None ... ok passlib.utils.pbkdf2.pbkdf2(): test reference vectors ... ok passlib.utils.pbkdf2: norm_hash_name() ... ok test_lmhash (passlib.tests.test_win32.UtilTest) ... ok test_nthash (passlib.tests.test_win32.UtilTest) ... ok ---------------------------------------------------------------------- Ran 3020 tests in 180.182s OK (SKIP=1267) + exit 0 Processing files: python2-passlib-1.7.1-3.fc31.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.oZ3xdw + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + DOCDIR=/builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python2-passlib + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python2-passlib + cp -pr README /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python2-passlib + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.JtDHyt + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + LICENSEDIR=/builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python2-passlib + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python2-passlib + cp -pr LICENSE /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python2-passlib + exit 0 Provides: python-passlib = 1.7.1-3.fc31 python2-passlib = 1.7.1-3.fc31 python2.7dist(passlib) = 1.7.1 python2dist(passlib) = 1.7.1 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 2.7 Obsoletes: python-passlib < 1.6.5-1 python-passlib < 1.7.1-3.fc31 Processing files: python3-passlib-1.7.1-3.fc31.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.pOfazu + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + DOCDIR=/builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python3-passlib + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python3-passlib + cp -pr README /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python3-passlib + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.7kB5Gv + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + LICENSEDIR=/builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python3-passlib + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python3-passlib + cp -pr LICENSE /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python3-passlib + exit 0 Provides: python3-passlib = 1.7.1-3.fc31 python3.7dist(passlib) = 1.7.1 python3dist(passlib) = 1.7.1 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.7 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 Wrote: /builddir/build/RPMS/python2-passlib-1.7.1-3.fc31.noarch.rpm Wrote: /builddir/build/RPMS/python3-passlib-1.7.1-3.fc31.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.l9jyLv + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + /usr/bin/rm -rf /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 + exit 0 Finish: rpmbuild python-passlib-1.7.1-3.fc31.src.rpm INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/883567-fedora-rawhide-x86_64-1555337421.721624/root/var/log/dnf.log /var/lib/mock/883567-fedora-rawhide-x86_64-1555337421.721624/root/var/log/dnf.librepo.log /var/lib/mock/883567-fedora-rawhide-x86_64-1555337421.721624/root/var/log/dnf.rpm.log Finish: build phase for python-passlib-1.7.1-3.fc31.src.rpm INFO: Done(/var/lib/copr-rpmbuild/results/python-passlib-1.7.1-3.fc31.src.rpm) Config(child) 6 minutes 27 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run