Sat Oct 16 17:09:17 UTC 2021 I: starting to build python-passlib/bullseye/amd64 on jenkins on '2021-10-16 17:09' Sat Oct 16 17:09:17 UTC 2021 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_4/32492/console.log Sat Oct 16 17:09:17 UTC 2021 I: Downloading source for bullseye/python-passlib=1.7.4-1 --2021-10-16 17:09:18-- http://cdn-fastly.deb.debian.org/debian/pool/main/p/python-passlib/python-passlib_1.7.4-1.dsc Connecting to 78.137.99.97:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2031 (2.0K) Saving to: ‘python-passlib_1.7.4-1.dsc’ 0K . 100% 103M=0s 2021-10-16 17:09:18 (103 MB/s) - ‘python-passlib_1.7.4-1.dsc’ saved [2031/2031] Sat Oct 16 17:09:18 UTC 2021 I: python-passlib_1.7.4-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: python-passlib Binary: python3-passlib Architecture: all Version: 1.7.4-1 Maintainer: Debian Python Team Uploaders: Brian May Homepage: https://passlib.readthedocs.io Standards-Version: 3.9.8 Vcs-Browser: https://salsa.debian.org/python-team/packages/python-passlib Vcs-Git: https://salsa.debian.org/python-team/packages/python-passlib.git Build-Depends: debhelper-compat (= 9), dh-python, python3-all, python3-setuptools, python3-nose Package-List: python3-passlib deb python optional arch=all Checksums-Sha1: c10ea1bbefb0cab805738f0373c57244ddce0c4f 532384 python-passlib_1.7.4.orig.tar.xz d9979767f94ab4e6badbb90530579f65eace5e15 13888 python-passlib_1.7.4-1.debian.tar.xz Checksums-Sha256: 83e253fa2925b4247c92d0c7632a069777d16136c7664d0e022f77ce9bda7ef5 532384 python-passlib_1.7.4.orig.tar.xz e9fc93954f178e317dfa15deb0ee9c38e1a1bdc8c4927f183eb4b2e084066640 13888 python-passlib_1.7.4-1.debian.tar.xz Files: 3ef7cc35cfd92bc41c54a6666b31fda5 532384 python-passlib_1.7.4.orig.tar.xz 88c8ed15b5429d81cb6114c730a85b4b 13888 python-passlib_1.7.4-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEufrTGSrz5KUwnZ05h588mTgBqU8FAmA8dJUACgkQh588mTgB qU9dvQ/9EV31LnznBx+v7drsaNKn1KGQs3/zjXJOf7a0zxfOxhMMt0Y8sXH8EobK qW6viUOQe8RiIPTnyusqMqMOomNKqA/eMTuaqqWU5RUbYgGS2cbHzBwxaoOZ84K8 2Qqtha4weEBwsCOAZMCRcU9DwixiqNjQePyE7TqdTG1xkTz6mIVJqkglVUtwJ0Lz cns583vLg+ew2/WPV5KeBN89zr5lWzaBC9dX61OySjUJ0sTNNOzE9YWs0ZXTcZzi ot7CpsuXGMwfBv97gRhS4vUSNifn8v8nCg5elVtI8lvnBqtyn3EUGA+xJxiJ3aIW 4A0qknlzx+YTCX0wQQjIDXN369pMPDtrNCAaJOSJtVNA01NFGqskjN3OaDJYUpMQ Kxm6QKWdOqlbJn0Ps/GOxkc0IZe31fn1G6KCkRvTP6ZU5PFIq6OU5yL7RlFw8/NF Egsvy1og3KWNcx2W8bDbzh+nTfUuc34kojVeG9X307dAbBny+5RwfDPaCWjcnIm/ geM8g+6a3okgdI2uf68e2lssgeExlcM+WuMYE6ZeH3P87tLf1DFQORccL5/PHi8R njG4rERb1tUsXiei+/9TeVGe8G7Yg+DCnamU+OvbpdxHti+KYJ2yQ4IFWZcEZTeg byQsU6iIjEYFOWCfSfFLljtsIpaiNMN+PtxYi96jtCk/l79pxXI= =eKjF -----END PGP SIGNATURE----- Sat Oct 16 17:09:18 UTC 2021 I: Checking whether the package is not for us Sat Oct 16 17:09:18 UTC 2021 I: Starting 1st build on remote node ionos15-amd64.debian.net. Sat Oct 16 17:09:18 UTC 2021 I: Preparing to do remote build '1' on ionos15-amd64.debian.net. Sat Oct 16 17:12:50 UTC 2021 I: Deleting $TMPDIR on ionos15-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Fri Nov 18 11:32:21 -12 2022 I: pbuilder-time-stamp: 1668814341 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [python-passlib_1.7.4-1.dsc] I: copying [./python-passlib_1.7.4.orig.tar.xz] I: copying [./python-passlib_1.7.4-1.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/tmp/dpkg-verify-sig.3nk_iTX3/trustedkeys.kbx': General error gpgv: Signature made Sun Feb 28 16:59:01 2021 -12 gpgv: using RSA key B9FAD3192AF3E4A5309D9D39879F3C993801A94F gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./python-passlib_1.7.4-1.dsc dpkg-source: info: extracting python-passlib in python-passlib-1.7.4 dpkg-source: info: unpacking python-passlib_1.7.4.orig.tar.xz dpkg-source: info: unpacking python-passlib_1.7.4-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/2408900/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=16' DISTRIBUTION='' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='e9e9326dc7df403f95b14a214d5bcd93' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='2408900' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/tmp.E26h2u5JR0/pbuilderrc_Lwmr --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.E26h2u5JR0/b1 --logfile b1/build.log python-passlib_1.7.4-1.dsc' SUDO_GID='111' SUDO_UID='106' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://85.184.249.68:3128' I: uname -a Linux ionos15-amd64 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux I: ls -l /bin total 5476 -rwxr-xr-x 1 root root 1234376 Aug 4 2021 bash -rwxr-xr-x 3 root root 38984 Jul 20 2020 bunzip2 -rwxr-xr-x 3 root root 38984 Jul 20 2020 bzcat lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep -rwxr-xr-x 3 root root 38984 Jul 20 2020 bzip2 -rwxr-xr-x 1 root root 18424 Jul 20 2020 bzip2recover lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore -rwxr-xr-x 1 root root 43936 Sep 23 2020 cat -rwxr-xr-x 1 root root 72672 Sep 23 2020 chgrp -rwxr-xr-x 1 root root 64448 Sep 23 2020 chmod -rwxr-xr-x 1 root root 72672 Sep 23 2020 chown -rwxr-xr-x 1 root root 151168 Sep 23 2020 cp -rwxr-xr-x 1 root root 125560 Dec 10 2020 dash -rwxr-xr-x 1 root root 113664 Sep 23 2020 date -rwxr-xr-x 1 root root 80968 Sep 23 2020 dd -rwxr-xr-x 1 root root 93936 Sep 23 2020 df -rwxr-xr-x 1 root root 147176 Sep 23 2020 dir -rwxr-xr-x 1 root root 84440 Jul 28 2021 dmesg lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname -rwxr-xr-x 1 root root 39712 Sep 23 2020 echo -rwxr-xr-x 1 root root 28 Nov 9 2020 egrep -rwxr-xr-x 1 root root 39680 Sep 23 2020 false -rwxr-xr-x 1 root root 28 Nov 9 2020 fgrep -rwxr-xr-x 1 root root 69032 Jul 28 2021 findmnt -rwsr-xr-x 1 root root 34896 Feb 26 2021 fusermount -rwxr-xr-x 1 root root 203072 Nov 9 2020 grep -rwxr-xr-x 2 root root 2346 Mar 2 2021 gunzip -rwxr-xr-x 1 root root 6376 Mar 2 2021 gzexe -rwxr-xr-x 1 root root 98048 Mar 2 2021 gzip -rwxr-xr-x 1 root root 22600 Nov 6 2019 hostname -rwxr-xr-x 1 root root 72840 Sep 23 2020 ln -rwxr-xr-x 1 root root 56952 Feb 7 2020 login -rwxr-xr-x 1 root root 147176 Sep 23 2020 ls -rwxr-xr-x 1 root root 149736 Jul 28 2021 lsblk -rwxr-xr-x 1 root root 85184 Sep 23 2020 mkdir -rwxr-xr-x 1 root root 76896 Sep 23 2020 mknod -rwxr-xr-x 1 root root 48064 Sep 23 2020 mktemp -rwxr-xr-x 1 root root 59632 Jul 28 2021 more -rwsr-xr-x 1 root root 55528 Jul 28 2021 mount -rwxr-xr-x 1 root root 18664 Jul 28 2021 mountpoint -rwxr-xr-x 1 root root 147080 Sep 23 2020 mv lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname lrwxrwxrwx 1 root root 14 Apr 18 2021 pidof -> /sbin/killall5 -rwxr-xr-x 1 root root 43872 Sep 23 2020 pwd lrwxrwxrwx 1 root root 4 Aug 4 2021 rbash -> bash -rwxr-xr-x 1 root root 52032 Sep 23 2020 readlink -rwxr-xr-x 1 root root 72704 Sep 23 2020 rm -rwxr-xr-x 1 root root 52032 Sep 23 2020 rmdir -rwxr-xr-x 1 root root 27472 Sep 27 2020 run-parts -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed lrwxrwxrwx 1 root root 4 Nov 9 03:47 sh -> dash -rwxr-xr-x 1 root root 43808 Sep 23 2020 sleep -rwxr-xr-x 1 root root 84928 Sep 23 2020 stty -rwsr-xr-x 1 root root 71912 Jul 28 2021 su -rwxr-xr-x 1 root root 39744 Sep 23 2020 sync -rwxr-xr-x 1 root root 531928 Feb 16 2021 tar -rwxr-xr-x 1 root root 14456 Sep 27 2020 tempfile -rwxr-xr-x 1 root root 101408 Sep 23 2020 touch -rwxr-xr-x 1 root root 39680 Sep 23 2020 true -rwxr-xr-x 1 root root 14328 Feb 26 2021 ulockmgr_server -rwsr-xr-x 1 root root 35040 Jul 28 2021 umount -rwxr-xr-x 1 root root 39744 Sep 23 2020 uname -rwxr-xr-x 2 root root 2346 Mar 2 2021 uncompress -rwxr-xr-x 1 root root 147176 Sep 23 2020 vdir -rwxr-xr-x 1 root root 63744 Jul 28 2021 wdctl lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname -rwxr-xr-x 1 root root 1984 Mar 2 2021 zcat -rwxr-xr-x 1 root root 1678 Mar 2 2021 zcmp -rwxr-xr-x 1 root root 5880 Mar 2 2021 zdiff -rwxr-xr-x 1 root root 29 Mar 2 2021 zegrep -rwxr-xr-x 1 root root 29 Mar 2 2021 zfgrep -rwxr-xr-x 1 root root 2081 Mar 2 2021 zforce -rwxr-xr-x 1 root root 7585 Mar 2 2021 zgrep -rwxr-xr-x 1 root root 2206 Mar 2 2021 zless -rwxr-xr-x 1 root root 1842 Mar 2 2021 zmore -rwxr-xr-x 1 root root 4553 Mar 2 2021 znew I: user script /srv/workspace/pbuilder/2408900/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 9), dh-python, python3-all, python3-setuptools, python3-nose dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19655 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 9); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-nose; however: Package python3-nose is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libicu67{a} libmagic-mgc{a} libmagic1{a} libmpdec3{a} libpipeline1{a} libpython3-stdlib{a} libpython3.9-minimal{a} libpython3.9-stdlib{a} libreadline8{a} libsigsegv2{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} media-types{a} po-debconf{a} python3{a} python3-all{a} python3-distutils{a} python3-lib2to3{a} python3-minimal{a} python3-nose{a} python3-pkg-resources{a} python3-setuptools{a} python3.9{a} python3.9-minimal{a} readline-common{a} sensible-utils{a} The following packages are RECOMMENDED but will NOT be installed: ca-certificates curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx wget 0 packages upgraded, 50 newly installed, 0 to remove and 0 not upgraded. Need to get 24.8 MB of archives. After unpacking 93.0 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian bullseye/main amd64 bsdextrautils amd64 2.36.1-8 [145 kB] Get: 2 http://deb.debian.org/debian bullseye/main amd64 libuchardet0 amd64 0.0.7-1 [67.8 kB] Get: 3 http://deb.debian.org/debian bullseye/main amd64 groff-base amd64 1.22.4-6 [936 kB] Get: 4 http://deb.debian.org/debian bullseye/main amd64 libpipeline1 amd64 1.5.3-1 [34.3 kB] Get: 5 http://deb.debian.org/debian bullseye/main amd64 man-db amd64 2.9.4-2 [1354 kB] Get: 6 http://deb.debian.org/debian bullseye/main amd64 libpython3.9-minimal amd64 3.9.2-1 [801 kB] Get: 7 http://deb.debian.org/debian bullseye/main amd64 libexpat1 amd64 2.2.10-2 [96.9 kB] Get: 8 http://deb.debian.org/debian bullseye/main amd64 python3.9-minimal amd64 3.9.2-1 [1955 kB] Get: 9 http://deb.debian.org/debian bullseye/main amd64 python3-minimal amd64 3.9.2-3 [38.2 kB] Get: 10 http://deb.debian.org/debian bullseye/main amd64 media-types all 4.0.0 [30.3 kB] Get: 11 http://deb.debian.org/debian bullseye/main amd64 libmpdec3 amd64 2.5.1-1 [87.7 kB] Get: 12 http://deb.debian.org/debian bullseye/main amd64 readline-common all 8.1-1 [73.7 kB] Get: 13 http://deb.debian.org/debian bullseye/main amd64 libreadline8 amd64 8.1-1 [169 kB] Get: 14 http://deb.debian.org/debian bullseye/main amd64 libpython3.9-stdlib amd64 3.9.2-1 [1684 kB] Get: 15 http://deb.debian.org/debian bullseye/main amd64 python3.9 amd64 3.9.2-1 [466 kB] Get: 16 http://deb.debian.org/debian bullseye/main amd64 libpython3-stdlib amd64 3.9.2-3 [21.4 kB] Get: 17 http://deb.debian.org/debian bullseye/main amd64 python3 amd64 3.9.2-3 [37.9 kB] Get: 18 http://deb.debian.org/debian bullseye/main amd64 sensible-utils all 0.0.14 [14.8 kB] Get: 19 http://deb.debian.org/debian bullseye/main amd64 libmagic-mgc amd64 1:5.39-3 [273 kB] Get: 20 http://deb.debian.org/debian bullseye/main amd64 libmagic1 amd64 1:5.39-3 [126 kB] Get: 21 http://deb.debian.org/debian bullseye/main amd64 file amd64 1:5.39-3 [69.1 kB] Get: 22 http://deb.debian.org/debian bullseye/main amd64 gettext-base amd64 0.21-4 [175 kB] Get: 23 http://deb.debian.org/debian bullseye/main amd64 libsigsegv2 amd64 2.13-1 [34.8 kB] Get: 24 http://deb.debian.org/debian bullseye/main amd64 m4 amd64 1.4.18-5 [204 kB] Get: 25 http://deb.debian.org/debian bullseye/main amd64 autoconf all 2.69-14 [313 kB] Get: 26 http://deb.debian.org/debian bullseye/main amd64 autotools-dev all 20180224.1+nmu1 [77.1 kB] Get: 27 http://deb.debian.org/debian bullseye/main amd64 automake all 1:1.16.3-2 [814 kB] Get: 28 http://deb.debian.org/debian bullseye/main amd64 autopoint all 0.21-4 [510 kB] Get: 29 http://deb.debian.org/debian bullseye/main amd64 libdebhelper-perl all 13.3.4 [189 kB] Get: 30 http://deb.debian.org/debian bullseye/main amd64 libtool all 2.4.6-15 [513 kB] Get: 31 http://deb.debian.org/debian bullseye/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 32 http://deb.debian.org/debian bullseye/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 33 http://deb.debian.org/debian bullseye/main amd64 libsub-override-perl all 0.09-2 [10.2 kB] Get: 34 http://deb.debian.org/debian bullseye/main amd64 libfile-stripnondeterminism-perl all 1.12.0-1 [26.3 kB] Get: 35 http://deb.debian.org/debian bullseye/main amd64 dh-strip-nondeterminism all 1.12.0-1 [15.4 kB] Get: 36 http://deb.debian.org/debian bullseye/main amd64 libelf1 amd64 0.183-1 [165 kB] Get: 37 http://deb.debian.org/debian bullseye/main amd64 dwz amd64 0.13+20210201-1 [175 kB] Get: 38 http://deb.debian.org/debian bullseye/main amd64 libicu67 amd64 67.1-7 [8622 kB] Get: 39 http://deb.debian.org/debian bullseye/main amd64 libxml2 amd64 2.9.10+dfsg-6.7 [693 kB] Get: 40 http://deb.debian.org/debian bullseye/main amd64 gettext amd64 0.21-4 [1311 kB] Get: 41 http://deb.debian.org/debian bullseye/main amd64 intltool-debian all 0.35.0+20060710.5 [26.8 kB] Get: 42 http://deb.debian.org/debian bullseye/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 43 http://deb.debian.org/debian bullseye/main amd64 debhelper all 13.3.4 [1049 kB] Get: 44 http://deb.debian.org/debian bullseye/main amd64 python3-lib2to3 all 3.9.2-1 [77.8 kB] Get: 45 http://deb.debian.org/debian bullseye/main amd64 python3-distutils all 3.9.2-1 [143 kB] Get: 46 http://deb.debian.org/debian bullseye/main amd64 dh-python all 4.20201102+nmu1 [99.4 kB] Get: 47 http://deb.debian.org/debian bullseye/main amd64 python3-all amd64 3.9.2-3 [1056 B] Get: 48 http://deb.debian.org/debian bullseye/main amd64 python3-pkg-resources all 52.0.0-4 [190 kB] Get: 49 http://deb.debian.org/debian bullseye/main amd64 python3-nose all 1.3.7-7 [133 kB] Get: 50 http://deb.debian.org/debian bullseye/main amd64 python3-setuptools all 52.0.0-4 [366 kB] Fetched 24.8 MB in 0s (53.3 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19655 files and directories currently installed.) Preparing to unpack .../0-bsdextrautils_2.36.1-8_amd64.deb ... Unpacking bsdextrautils (2.36.1-8) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../1-libuchardet0_0.0.7-1_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.7-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../2-groff-base_1.22.4-6_amd64.deb ... Unpacking groff-base (1.22.4-6) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../3-libpipeline1_1.5.3-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.3-1) ... Selecting previously unselected package man-db. Preparing to unpack .../4-man-db_2.9.4-2_amd64.deb ... Unpacking man-db (2.9.4-2) ... Selecting previously unselected package libpython3.9-minimal:amd64. Preparing to unpack .../5-libpython3.9-minimal_3.9.2-1_amd64.deb ... Unpacking libpython3.9-minimal:amd64 (3.9.2-1) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../6-libexpat1_2.2.10-2_amd64.deb ... Unpacking libexpat1:amd64 (2.2.10-2) ... Selecting previously unselected package python3.9-minimal. Preparing to unpack .../7-python3.9-minimal_3.9.2-1_amd64.deb ... Unpacking python3.9-minimal (3.9.2-1) ... Setting up libpython3.9-minimal:amd64 (3.9.2-1) ... Setting up libexpat1:amd64 (2.2.10-2) ... Setting up python3.9-minimal (3.9.2-1) ... Selecting previously unselected package python3-minimal. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20522 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.9.2-3_amd64.deb ... Unpacking python3-minimal (3.9.2-3) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_4.0.0_all.deb ... Unpacking media-types (4.0.0) ... Selecting previously unselected package libmpdec3:amd64. Preparing to unpack .../2-libmpdec3_2.5.1-1_amd64.deb ... Unpacking libmpdec3:amd64 (2.5.1-1) ... Selecting previously unselected package readline-common. Preparing to unpack .../3-readline-common_8.1-1_all.deb ... Unpacking readline-common (8.1-1) ... Selecting previously unselected package libreadline8:amd64. Preparing to unpack .../4-libreadline8_8.1-1_amd64.deb ... Unpacking libreadline8:amd64 (8.1-1) ... Selecting previously unselected package libpython3.9-stdlib:amd64. Preparing to unpack .../5-libpython3.9-stdlib_3.9.2-1_amd64.deb ... Unpacking libpython3.9-stdlib:amd64 (3.9.2-1) ... Selecting previously unselected package python3.9. Preparing to unpack .../6-python3.9_3.9.2-1_amd64.deb ... Unpacking python3.9 (3.9.2-1) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../7-libpython3-stdlib_3.9.2-3_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.9.2-3) ... Setting up python3-minimal (3.9.2-3) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20943 files and directories currently installed.) Preparing to unpack .../00-python3_3.9.2-3_amd64.deb ... Unpacking python3 (3.9.2-3) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../01-sensible-utils_0.0.14_all.deb ... Unpacking sensible-utils (0.0.14) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../02-libmagic-mgc_1%3a5.39-3_amd64.deb ... Unpacking libmagic-mgc (1:5.39-3) ... Selecting previously unselected package libmagic1:amd64. Preparing to unpack .../03-libmagic1_1%3a5.39-3_amd64.deb ... Unpacking libmagic1:amd64 (1:5.39-3) ... Selecting previously unselected package file. Preparing to unpack .../04-file_1%3a5.39-3_amd64.deb ... Unpacking file (1:5.39-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../05-gettext-base_0.21-4_amd64.deb ... Unpacking gettext-base (0.21-4) ... Selecting previously unselected package libsigsegv2:amd64. Preparing to unpack .../06-libsigsegv2_2.13-1_amd64.deb ... Unpacking libsigsegv2:amd64 (2.13-1) ... Selecting previously unselected package m4. Preparing to unpack .../07-m4_1.4.18-5_amd64.deb ... Unpacking m4 (1.4.18-5) ... Selecting previously unselected package autoconf. Preparing to unpack .../08-autoconf_2.69-14_all.deb ... Unpacking autoconf (2.69-14) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../09-autotools-dev_20180224.1+nmu1_all.deb ... Unpacking autotools-dev (20180224.1+nmu1) ... Selecting previously unselected package automake. Preparing to unpack .../10-automake_1%3a1.16.3-2_all.deb ... Unpacking automake (1:1.16.3-2) ... Selecting previously unselected package autopoint. Preparing to unpack .../11-autopoint_0.21-4_all.deb ... Unpacking autopoint (0.21-4) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../12-libdebhelper-perl_13.3.4_all.deb ... Unpacking libdebhelper-perl (13.3.4) ... Selecting previously unselected package libtool. Preparing to unpack .../13-libtool_2.4.6-15_all.deb ... Unpacking libtool (2.4.6-15) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../14-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../15-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../16-libsub-override-perl_0.09-2_all.deb ... Unpacking libsub-override-perl (0.09-2) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../17-libfile-stripnondeterminism-perl_1.12.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.12.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../18-dh-strip-nondeterminism_1.12.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.12.0-1) ... Selecting previously unselected package libelf1:amd64. Preparing to unpack .../19-libelf1_0.183-1_amd64.deb ... Unpacking libelf1:amd64 (0.183-1) ... Selecting previously unselected package dwz. Preparing to unpack .../20-dwz_0.13+20210201-1_amd64.deb ... Unpacking dwz (0.13+20210201-1) ... Selecting previously unselected package libicu67:amd64. Preparing to unpack .../21-libicu67_67.1-7_amd64.deb ... Unpacking libicu67:amd64 (67.1-7) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../22-libxml2_2.9.10+dfsg-6.7_amd64.deb ... Unpacking libxml2:amd64 (2.9.10+dfsg-6.7) ... Selecting previously unselected package gettext. Preparing to unpack .../23-gettext_0.21-4_amd64.deb ... Unpacking gettext (0.21-4) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../24-intltool-debian_0.35.0+20060710.5_all.deb ... Unpacking intltool-debian (0.35.0+20060710.5) ... Selecting previously unselected package po-debconf. Preparing to unpack .../25-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../26-debhelper_13.3.4_all.deb ... Unpacking debhelper (13.3.4) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../27-python3-lib2to3_3.9.2-1_all.deb ... Unpacking python3-lib2to3 (3.9.2-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../28-python3-distutils_3.9.2-1_all.deb ... Unpacking python3-distutils (3.9.2-1) ... Selecting previously unselected package dh-python. Preparing to unpack .../29-dh-python_4.20201102+nmu1_all.deb ... Unpacking dh-python (4.20201102+nmu1) ... Selecting previously unselected package python3-all. Preparing to unpack .../30-python3-all_3.9.2-3_amd64.deb ... Unpacking python3-all (3.9.2-3) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../31-python3-pkg-resources_52.0.0-4_all.deb ... Unpacking python3-pkg-resources (52.0.0-4) ... Selecting previously unselected package python3-nose. Preparing to unpack .../32-python3-nose_1.3.7-7_all.deb ... Unpacking python3-nose (1.3.7-7) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../33-python3-setuptools_52.0.0-4_all.deb ... Unpacking python3-setuptools (52.0.0-4) ... Setting up media-types (4.0.0) ... Setting up libpipeline1:amd64 (1.5.3-1) ... Setting up bsdextrautils (2.36.1-8) ... update-alternatives: using /usr/bin/write.ul to provide /usr/bin/write (write) in auto mode Setting up libicu67:amd64 (67.1-7) ... Setting up libmagic-mgc (1:5.39-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.3.4) ... Setting up libmagic1:amd64 (1:5.39-3) ... Setting up gettext-base (0.21-4) ... Setting up file (1:5.39-3) ... Setting up autotools-dev (20180224.1+nmu1) ... Setting up libsigsegv2:amd64 (2.13-1) ... Setting up autopoint (0.21-4) ... Setting up sensible-utils (0.0.14) ... Setting up libuchardet0:amd64 (0.0.7-1) ... Setting up libmpdec3:amd64 (2.5.1-1) ... Setting up libsub-override-perl (0.09-2) ... Setting up libelf1:amd64 (0.183-1) ... Setting up readline-common (8.1-1) ... Setting up libxml2:amd64 (2.9.10+dfsg-6.7) ... Setting up libfile-stripnondeterminism-perl (1.12.0-1) ... Setting up gettext (0.21-4) ... Setting up libtool (2.4.6-15) ... Setting up libreadline8:amd64 (8.1-1) ... Setting up m4 (1.4.18-5) ... Setting up intltool-debian (0.35.0+20060710.5) ... Setting up autoconf (2.69-14) ... Setting up dh-strip-nondeterminism (1.12.0-1) ... Setting up dwz (0.13+20210201-1) ... Setting up groff-base (1.22.4-6) ... Setting up libpython3.9-stdlib:amd64 (3.9.2-1) ... Setting up libpython3-stdlib:amd64 (3.9.2-3) ... Setting up automake (1:1.16.3-2) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.9.4-2) ... Not building database; man-db/auto-update is not 'true'. Setting up dh-autoreconf (20) ... Setting up python3.9 (3.9.2-1) ... Setting up debhelper (13.3.4) ... Setting up python3 (3.9.2-3) ... Setting up python3-lib2to3 (3.9.2-1) ... Setting up python3-pkg-resources (52.0.0-4) ... Setting up python3-distutils (3.9.2-1) ... Setting up dh-python (4.20201102+nmu1) ... Setting up python3-setuptools (52.0.0-4) ... Setting up python3-all (3.9.2-3) ... Setting up python3-nose (1.3.7-7) ... Processing triggers for libc-bin (2.31-13+deb11u2) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... fakeroot is already the newest version (1.25.3-1.1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package I: Running cd /build/python-passlib-1.7.4/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../python-passlib_1.7.4-1_source.changes dpkg-buildpackage: info: source package python-passlib dpkg-buildpackage: info: source version 1.7.4-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Sandro Tosi dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 fakeroot debian/rules clean dh clean --with python3 --buildsystem=pybuild dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_auto_clean -O--buildsystem=pybuild dh_auto_clean: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: python3.9 setup.py clean running clean removing '/build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build' (and everything under it) 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.9' does not exist -- can't clean it dh_clean -O--buildsystem=pybuild dh_clean: warning: Compatibility levels before 10 are deprecated (level 9 in use) debian/rules build dh build --with python3 --buildsystem=pybuild dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_update_autotools_config -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_configure: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: python3.9 setup.py config running config dh_auto_build -O--buildsystem=pybuild dh_auto_build: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: /usr/bin/python3 setup.py build running build running build_py creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/win32.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/totp.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/registry.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/pwd.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/ifc.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/hosts.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/hash.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/exc.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/context.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/apps.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/apache.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/pbkdf2.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/md4.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/handlers.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/des.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/decor.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/binary.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/utils.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/tox_support.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_win32.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_utils_pbkdf2.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_utils_md4.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_utils_handlers.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_utils.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_totp.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_registry.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_pwd.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_hosts.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_scrypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_pbkdf2.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_django.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_cisco.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_bcrypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_argon2.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_ext_django_source.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_ext_django.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_crypto_scrypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_crypto_digest.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_crypto_des.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_crypto_builtin_md4.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_context_deprecated.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_context.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_apps.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_apache.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/backports.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/_test_bad_register.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/__main__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/windows.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/sun_md5_crypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/sha2_crypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/sha1_crypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/scrypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/scram.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/roundup.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/postgres.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/phpass.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/pbkdf2.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/oracle.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/mysql.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/mssql.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/misc.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/md5_crypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/ldap_digests.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/fshp.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/django.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/digests.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/des_crypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/cisco.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/bcrypt.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/argon2.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext copying passlib/ext/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto copying passlib/crypto/digest.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto copying passlib/crypto/des.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto copying passlib/crypto/_md4.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto copying passlib/crypto/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup copying passlib/_setup/stamp.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup copying passlib/_setup/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat copying passlib/utils/compat/_ordered_dict.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat copying passlib/utils/compat/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django copying passlib/ext/django/utils.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django copying passlib/ext/django/models.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django copying passlib/ext/django/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_salsa.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_gen_files.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_builtin.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/unrolled.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/base.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/_gen_files.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/__init__.py -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data creating /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_short.txt -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_prefixed.txt -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_long.txt -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/bip39.txt -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/tests/sample_config_1s.cfg -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/sample1c.cfg -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/sample1b.cfg -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/sample1.cfg -> /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests debian/rules override_dh_auto_test make[1]: Entering directory '/build/python-passlib-1.7.4' dh_auto_test -- --system=custom --test-args="{interpreter} setup.py test" dh_auto_test: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: python3.9 setup.py test running test WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox. 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' running build_ext /build/python-passlib-1.7.4/passlib/tests/test_apache.py:210: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("update\(\) is deprecated"): /build/python-passlib-1.7.4/passlib/tests/test_apache.py:280: DeprecationWarning: invalid escape sequence \( with self.assertWarningList(["verify\(\) is deprecated"]*2): /build/python-passlib-1.7.4/passlib/tests/test_apache.py:370: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("find\(\) is deprecated"): /build/python-passlib-1.7.4/passlib/tests/test_apache.py:606: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("update\(\) is deprecated"): /build/python-passlib-1.7.4/passlib/tests/test_apache.py:640: DeprecationWarning: invalid escape sequence \( with self.assertWarningList(["verify\(\) is deprecated"]*2): /build/python-passlib-1.7.4/passlib/tests/test_apache.py:728: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("find\(\) is deprecated"): /build/python-passlib-1.7.4/passlib/tests/test_context_deprecated.py:554: DeprecationWarning: invalid escape sequence \. warnings.filterwarnings("ignore", ".*(CryptPolicy|context\.policy).*(has|have) been deprecated.*") /build/python-passlib-1.7.4/passlib/tests/test_context_deprecated.py:707: DeprecationWarning: invalid escape sequence \. warnings.filterwarnings("ignore", ".*(CryptPolicy|context\.policy).*(has|have) been deprecated.*") /build/python-passlib-1.7.4/passlib/tests/test_ext_django.py:916: DeprecationWarning: invalid escape sequence \. with self.assertWarningList("another library has patched.*User\.set_password"): /build/python-passlib-1.7.4/passlib/tests/test_handlers.py:1523: DeprecationWarning: invalid escape sequence \d ("freebsd(9|1\d)|linux", True), /build/python-passlib-1.7.4/passlib/tests/test_handlers.py:1761: DeprecationWarning: invalid escape sequence \( warnings.filterwarnings("ignore", "passing settings to .*.hash\(\) is deprecated") /build/python-passlib-1.7.4/passlib/tests/test_utils.py:144: DeprecationWarning: invalid escape sequence \( warnings.filterwarnings("ignore", "The function.*generate_password\(\) is deprecated") test_00_constructor_autoload (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test constructor autoload ... ok test_01_delete (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test delete() ... ok test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) ... ok test_02_set_password (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test update() ... ok test_03_users (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test users() ... ok test_04_check_password (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test check_password() ... ok test_05_load (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test load() ... ok test_06_save (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test save() ... ok test_07_realms (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test realms() & delete_realm() ... ok test_08_get_hash (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test get_hash() ... ok test_09_encodings (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test encoding parameter ... ok test_10_to_string (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test to_string() ... ok test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) ... ok test_00_constructor_autoload (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test constructor autoload ... ok test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_01_delete (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test delete() ... ok test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_02_set_password (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test set_password() ... ok test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_02_set_password_default_scheme (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test set_password() -- default_scheme ... ok test_03_users (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test users() ... ok test_04_check_password (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test check_password() ... ok test_05_load (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test load() ... ok test_06_save (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test save() ... ok test_07_encodings (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test 'encoding' kwd ... ok test_08_get_hash (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test get_hash() ... ok test_09_to_string (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test to_string ... ok test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_13_whitespace (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: whitespace & comment handling ... ok test_htpasswd_cmd_verify (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: verify "htpasswd" command can read output ... SKIP: requires `htpasswd` cmdline tool test_htpasswd_cmd_verify_bcrypt (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: verify "htpasswd" command can read bcrypt format ... SKIP: requires `htpasswd` cmdline tool 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 test_01_constructor (passlib.tests.test_context.CryptContextTest) CryptContext: test class constructor ... ok test_02_from_string (passlib.tests.test_context.CryptContextTest) CryptContext: test from_string() constructor ... ok test_03_from_path (passlib.tests.test_context.CryptContextTest) CryptContext: test from_path() constructor ... ok test_04_copy (passlib.tests.test_context.CryptContextTest) CryptContext: test copy() method ... ok test_09_repr (passlib.tests.test_context.CryptContextTest) CryptContext: test repr() ... ok test_10_load (passlib.tests.test_context.CryptContextTest) CryptContext: test load() / load_path() method ... ok test_11_load_rollback (passlib.tests.test_context.CryptContextTest) CryptContext: test load() errors restore old state ... ok test_12_update (passlib.tests.test_context.CryptContextTest) CryptContext: test update() method ... ok test_20_options (passlib.tests.test_context.CryptContextTest) CryptContext: test basic option parsing ... ok test_21_schemes (passlib.tests.test_context.CryptContextTest) CryptContext: test 'schemes' context option parsing ... ok test_22_deprecated (passlib.tests.test_context.CryptContextTest) CryptContext: test 'deprecated' context option parsing ... ok test_23_default (passlib.tests.test_context.CryptContextTest) CryptContext: test 'default' context option parsing ... ok test_24_vary_rounds (passlib.tests.test_context.CryptContextTest) CryptContext: test 'vary_rounds' hash option parsing ... ok test_30_schemes (passlib.tests.test_context.CryptContextTest) CryptContext: test schemes() method ... ok test_31_default_scheme (passlib.tests.test_context.CryptContextTest) CryptContext: test default_scheme() method ... ok test_32_handler (passlib.tests.test_context.CryptContextTest) CryptContext: test handler() method ... ok test_33_options (passlib.tests.test_context.CryptContextTest) CryptContext: test internal _get_record_options() method ... ok test_34_to_dict (passlib.tests.test_context.CryptContextTest) CryptContext: test to_dict() method ... ok test_35_to_string (passlib.tests.test_context.CryptContextTest) CryptContext: test to_string() method ... ok test_40_basic (passlib.tests.test_context.CryptContextTest) CryptContext: test basic hash/identify/verify functionality ... ok test_41_genconfig (passlib.tests.test_context.CryptContextTest) CryptContext: test genconfig() method ... ok test_42_genhash (passlib.tests.test_context.CryptContextTest) CryptContext: test genhash() method ... ok test_43_hash (passlib.tests.test_context.CryptContextTest) CryptContext: test hash() method ... ok test_43_hash_legacy (passlib.tests.test_context.CryptContextTest) CryptContext: test hash() method -- legacy 'scheme' and settings keywords ... ok test_44_identify (passlib.tests.test_context.CryptContextTest) CryptContext: test identify() border cases ... ok test_45_verify (passlib.tests.test_context.CryptContextTest) CryptContext: test verify() scheme kwd ... ok test_46_needs_update (passlib.tests.test_context.CryptContextTest) CryptContext: test needs_update() method ... ok test_47_verify_and_update (passlib.tests.test_context.CryptContextTest) CryptContext: test verify_and_update() ... ok test_48_context_kwds (passlib.tests.test_context.CryptContextTest) CryptContext: hash(), verify(), and verify_and_update() -- discard unused context keywords ... ok test_50_rounds_limits (passlib.tests.test_context.CryptContextTest) CryptContext: test rounds limits ... ok test_51_linear_vary_rounds (passlib.tests.test_context.CryptContextTest) CryptContext: test linear vary rounds ... ok test_52_log2_vary_rounds (passlib.tests.test_context.CryptContextTest) CryptContext: test log2 vary rounds ... ok test_61_autodeprecate (passlib.tests.test_context.CryptContextTest) CryptContext: test deprecated='auto' is handled correctly ... ok test_disabled_hashes (passlib.tests.test_context.CryptContextTest) CryptContext: disabled hash support ... ok test_dummy_verify (passlib.tests.test_context.CryptContextTest) CryptContext: dummy_verify() method ... ok test_harden_verify_parsing (passlib.tests.test_context.CryptContextTest) CryptContext: harden_verify -- parsing ... ok test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) LazyCryptContext: test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) ... ok test_kwd_constructor (passlib.tests.test_context.LazyCryptContextTest) LazyCryptContext: test plain kwds ... ok test_00_constructor (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test constructor ... ok test_01_replace (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test replace() ... ok test_02_no_handlers (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test no handlers ... ok test_12_hash_needs_update (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test hash_needs_update() method ... ok test_30_nonstring_hash (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test non-string hash values cause error ... ok test_00_constructor (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy() constructor ... ok test_01_from_path (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_path() constructor with encodings ... ok test_01_from_path_simple (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_path() constructor ... ok test_02_from_string (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_string() constructor ... ok test_03_from_source (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_source() constructor ... ok test_04_from_sources (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_sources() constructor ... ok test_05_replace (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.replace() constructor ... ok test_06_forbidden (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy() forbidden kwds ... ok test_10_has_schemes (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test has_schemes() method ... ok test_11_iter_handlers (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test iter_handlers() method ... ok test_12_get_handler (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test get_handler() method ... ok test_13_get_options (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test get_options() method ... ok test_14_handler_is_deprecated (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test handler_is_deprecated() method ... ok test_15_min_verify_time (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test get_min_verify_time() method ... ok test_20_iter_config (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test iter_config() method ... ok test_21_to_dict (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test to_dict() method ... ok test_22_to_string (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test to_string() method ... ok test_callable_constructor (passlib.tests.test_context_deprecated.LazyCryptContextTest) LazyCryptContext: test create_policy() hook, returning CryptPolicy ... ok test_kwd_constructor (passlib.tests.test_context_deprecated.LazyCryptContextTest) LazyCryptContext: test plain kwds ... ok test_attrs (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): informational attributes ... ok test_md4_copy (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): copy() method ... ok test_md4_digest (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): digest() method ... ok test_md4_hexdigest (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): hexdigest() method ... ok test_md4_update (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): update() method ... ok test_attrs (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): informational attributes ... ok test_md4_copy (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): copy() method ... ok test_md4_digest (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): digest() method ... ok test_md4_hexdigest (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): hexdigest() method ... ok test_md4_update (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): update() method ... ok test_01_expand (passlib.tests.test_crypto_des.DesTest) passlib.crypto.des: expand_des_key() ... ok test_02_shrink (passlib.tests.test_crypto_des.DesTest) passlib.crypto.des: shrink_des_key() ... ok test_03_encrypt_bytes (passlib.tests.test_crypto_des.DesTest) passlib.crypto.des: des_encrypt_block() ... ok test_04_encrypt_ints (passlib.tests.test_crypto_des.DesTest) passlib.crypto.des: des_encrypt_int_block() ... ok test_lookup_hash_alt_types (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- alternate types ... ok test_lookup_hash_ctor (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- constructor ... ok test_lookup_hash_metadata (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- metadata ... ok test_lookup_hash_w_unknown_name (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- unknown hash name ... ok test_mock_fips_mode (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- test set_mock_fips_mode() ... ok test_norm_hash_name (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: norm_hash_name() ... ok test_border (passlib.tests.test_crypto_digest.Pbkdf1_Test) passlib.crypto.digest.pbkdf1: test border cases ... ok test_known (passlib.tests.test_crypto_digest.Pbkdf1_Test) passlib.crypto.digest.pbkdf1: test reference vectors ... ok test_backends (passlib.tests.test_crypto_digest.Pbkdf2Test) passlib.crypto.digest.pbkdf2_hmac() : verify expected backends are present ... ok test_border (passlib.tests.test_crypto_digest.Pbkdf2Test) passlib.crypto.digest.pbkdf2_hmac() : test border cases ... ok test_default_keylen (passlib.tests.test_crypto_digest.Pbkdf2Test) passlib.crypto.digest.pbkdf2_hmac() : test keylen==None ... ok test_known (passlib.tests.test_crypto_digest.Pbkdf2Test) passlib.crypto.digest.pbkdf2_hmac() : test reference vectors ... ok test_backend (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : backend management ... ok test_keylen_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'keylen' parameter ... ok test_missing_backend (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : backend management -- missing backend ... SKIP: non-builtin backend is present test_n_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'n' (rounds) parameter ... ok test_other_backends (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : compare output to other backends ... ok test_p_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'p' (parallelism) parameter ... ok test_r_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'r' (block size) parameter ... ok test_reference_vectors (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : reference vectors ... ok test_salt_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'salt' parameter ... ok test_secret_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'secret' parameter ... ok test_bmix (passlib.tests.test_crypto_scrypt.ScryptEngineTest) passlib.crypto.scrypt._builtin: bmix() ... ok test_salsa (passlib.tests.test_crypto_scrypt.ScryptEngineTest) passlib.crypto.scrypt._builtin: salsa20() ... ok test_smix (passlib.tests.test_crypto_scrypt.ScryptEngineTest) passlib.crypto.scrypt._builtin: smix() ... ok test_backend (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : backend management ... ok test_default_backend (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : backend management -- default backend ... ok test_keylen_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'keylen' parameter ... ok test_n_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'n' (rounds) parameter ... ok test_other_backends (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : compare output to other backends ... /build/python-passlib-1.7.4/passlib/crypto/scrypt/__init__.py:163: 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 warn("Using builtin scrypt backend, which is %dx slower than is required " ok test_p_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'p' (parallelism) parameter ... ok test_r_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'r' (block size) parameter ... ok test_reference_vectors (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : reference vectors ... ok test_salt_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'salt' parameter ... ok test_secret_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'secret' parameter ... ok test_available_schemes (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: run a bunch of subtests for each hasher available in the default django setup ... SKIP: Django not installed test_default_algorithm (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test django's default algorithm ... SKIP: Django not installed test_empty_hash_value (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle empty string as hash value ... SKIP: Django not installed test_empty_password (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle empty string as password ... SKIP: Django not installed test_extension_config (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test extension config is loaded correctly ... SKIP: Django not installed test_invalid_hash_values (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle invalid hash values. ... SKIP: Django not installed test_none_hash_value (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle None as hash value ... SKIP: Django not installed test_unusable_flag (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle 'unusable flag' in hash ... SKIP: Django not installed test_00_patch_control (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test set_django_password_context patch/unpatch ... SKIP: Django not installed test_01_overwrite_detection (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test detection of foreign monkeypatching ... SKIP: Django not installed test_02_handler_wrapper (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test Hasher-compatible handler wrappers ... SKIP: Django not installed test_11_config_disabled (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_CONFIG='disabled' ... SKIP: Django not installed test_12_config_presets (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_CONFIG='' ... SKIP: Django not installed test_13_config_defaults (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_CONFIG default behavior ... SKIP: Django not installed test_14_config_invalid (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_CONFIG type checks ... SKIP: Django not installed test_21_category_setting (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_GET_CATEGORY parameter ... SKIP: Django not installed test_available_schemes (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: run a bunch of subtests for each hasher available in the default django setup ... SKIP: Django not installed test_default_algorithm (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test django's default algorithm ... SKIP: Django not installed test_empty_hash_value (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle empty string as hash value ... SKIP: Django not installed test_empty_password (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle empty string as password ... SKIP: Django not installed test_extension_config (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test extension config is loaded correctly ... SKIP: Django not installed test_invalid_hash_values (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle invalid hash values. ... SKIP: Django not installed test_none_hash_value (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle None as hash value ... SKIP: Django not installed test_unusable_flag (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle 'unusable flag' in hash ... SKIP: Django not installed test_external_django_hasher_tests (passlib.tests.test_ext_django_source.HashersTest) external django hasher tests ... SKIP: django not installed test_pairs (passlib.tests.test_handlers.RoundupTest) ... ok test_01_required_attributes (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_internal (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test_90_internal (passlib.tests.test_handlers.bigcrypt_test) ... ok test_disable_and_enable (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_builtin_test) ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_even_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): needs_update() should flag even rounds ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) ... ok test_78_fuzz_threading (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = True) test_disable_and_enable (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_needs_update_w_even_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): needs_update() should flag even rounds ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.crypt16_test) crypt16: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.crypt16_test) crypt16: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.crypt16_test) crypt16: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.crypt16_test) crypt16: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.crypt16_test) crypt16: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.crypt16_test) crypt16: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.crypt16_test) crypt16: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.crypt16_test) crypt16: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.crypt16_test) crypt16: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.crypt16_test) crypt16: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.crypt16_test) crypt16: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.crypt16_test) crypt16: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.crypt16_test) crypt16: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.crypt16_test) crypt16: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.crypt16_test) crypt16: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.crypt16_test) crypt16: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.crypt16_test) crypt16: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.crypt16_test) crypt16: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.crypt16_test) crypt16: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.crypt16_test) crypt16: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.crypt16_test) crypt16: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.crypt16_test) crypt16: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.crypt16_test) crypt16: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.crypt16_test) crypt16: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.crypt16_test) crypt16: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.crypt16_test) crypt16: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.crypt16_test) crypt16: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.crypt16_test) crypt16: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.crypt16_test) crypt16: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers.crypt16_test) crypt16: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers.crypt16_test) crypt16: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.crypt16_test) crypt16: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok test_disable_and_enable (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.fshp_test) fshp: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.fshp_test) fshp: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.fshp_test) fshp: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.fshp_test) fshp: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.fshp_test) fshp: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.fshp_test) fshp: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.fshp_test) fshp: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.fshp_test) fshp: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.fshp_test) fshp: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.fshp_test) fshp: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.fshp_test) fshp: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.fshp_test) fshp: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.fshp_test) fshp: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.fshp_test) fshp: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.fshp_test) fshp: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.fshp_test) fshp: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.fshp_test) fshp: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.fshp_test) fshp: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.fshp_test) fshp: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.fshp_test) fshp: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.fshp_test) fshp: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.fshp_test) fshp: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.fshp_test) fshp: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.fshp_test) fshp: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.fshp_test) fshp: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.fshp_test) fshp: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.fshp_test) fshp: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_variant (passlib.tests.test_handlers.fshp_test) fshp: test variant keyword ... ok test_disable_and_enable (passlib.tests.test_handlers.fshp_test) fshp: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.fshp_test) fshp: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.fshp_test) fshp: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.fshp_test) fshp: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.fshp_test) fshp: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.fshp_test) fshp: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_md4_test) hex_md4: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_md4_test) hex_md4: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_md4_test) hex_md4: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_md4_test) hex_md4: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_md4_test) hex_md4: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_md4_test) hex_md4: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_md4_test) hex_md4: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_md4_test) hex_md4: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_md4_test) hex_md4: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_md4_test) hex_md4: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_md4_test) hex_md4: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_md4_test) hex_md4: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_md4_test) hex_md4: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_md4_test) hex_md4: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_md4_test) hex_md4: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_md5_test) hex_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_md5_test) hex_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_md5_test) hex_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_md5_test) hex_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_md5_test) hex_md5: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_md5_test) hex_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_md5_test) hex_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_md5_test) hex_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_md5_test) hex_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_md5_test) hex_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_md5_test) hex_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_md5_test) hex_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_md5_test) hex_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_md5_test) hex_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_md5_test) hex_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_mock_fips_mode (passlib.tests.test_handlers.hex_md5_test) hex_md5: if md5 isn't available, a dummy instance should be created. ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.htdigest_test) htdigest: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.htdigest_test) htdigest: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.htdigest_test) htdigest: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.htdigest_test) htdigest: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.htdigest_test) htdigest: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.htdigest_test) htdigest: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.htdigest_test) htdigest: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.htdigest_test) htdigest: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.htdigest_test) htdigest: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.htdigest_test) htdigest: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.htdigest_test) htdigest: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.htdigest_test) htdigest: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.htdigest_test) htdigest: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.htdigest_test) htdigest: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.htdigest_test) htdigest: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.htdigest_test) htdigest: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.htdigest_test) htdigest: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.htdigest_test) htdigest: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.htdigest_test) htdigest: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.htdigest_test) htdigest: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.htdigest_test) htdigest: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.htdigest_test) htdigest: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.htdigest_test) htdigest: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.htdigest_test) htdigest: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.htdigest_test) htdigest: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.htdigest_test) htdigest: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.htdigest_test) htdigest: test_80_user (passlib.tests.test_handlers.htdigest_test) ... SKIP: test case doesn't support 'realm' keyword test_81_user_case (passlib.tests.test_handlers.htdigest_test) htdigest: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.htdigest_test) htdigest: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.htdigest_test) htdigest: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.htdigest_test) htdigest: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.htdigest_test) htdigest: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.htdigest_test) htdigest: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.htdigest_test) htdigest: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.htdigest_test) htdigest: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers test_disable_and_enable (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ... SKIP: unneeded test_78_fuzz_threading (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers test_disable_and_enable (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.lmhash_test) lmhash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.lmhash_test) lmhash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.lmhash_test) lmhash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.lmhash_test) lmhash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.lmhash_test) lmhash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.lmhash_test) lmhash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.lmhash_test) lmhash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.lmhash_test) lmhash: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.lmhash_test) lmhash: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.lmhash_test) lmhash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.lmhash_test) lmhash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.lmhash_test) lmhash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.lmhash_test) lmhash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.lmhash_test) lmhash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.lmhash_test) lmhash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.lmhash_test) lmhash: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.lmhash_test) lmhash: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.lmhash_test) lmhash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.lmhash_test) lmhash: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.lmhash_test) lmhash: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.lmhash_test) lmhash: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.lmhash_test) lmhash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.lmhash_test) lmhash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.lmhash_test) lmhash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.lmhash_test) lmhash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.lmhash_test) lmhash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_raw (passlib.tests.test_handlers.lmhash_test) lmhash: test lmhash.raw() method ... ok test_disable_and_enable (passlib.tests.test_handlers.lmhash_test) lmhash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.lmhash_test) lmhash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.lmhash_test) lmhash: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers.lmhash_test) lmhash: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers.lmhash_test) lmhash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.lmhash_test) lmhash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok test_disable_and_enable (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.msdcc2_test) msdcc2: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.msdcc2_test) msdcc2: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.msdcc2_test) msdcc2: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.msdcc2_test) msdcc2: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.msdcc2_test) msdcc2: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.msdcc2_test) msdcc2: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.msdcc2_test) msdcc2: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.msdcc2_test) msdcc2: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.msdcc2_test) msdcc2: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.msdcc2_test) msdcc2: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.msdcc2_test) msdcc2: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.msdcc2_test) msdcc2: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.msdcc2_test) msdcc2: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.msdcc2_test) msdcc2: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.msdcc2_test) msdcc2: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers.msdcc2_test) msdcc2: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.msdcc2_test) msdcc2: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.msdcc2_test) msdcc2: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.msdcc_test) msdcc: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.msdcc_test) msdcc: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.msdcc_test) msdcc: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.msdcc_test) msdcc: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.msdcc_test) msdcc: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.msdcc_test) msdcc: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.msdcc_test) msdcc: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.msdcc_test) msdcc: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.msdcc_test) msdcc: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.msdcc_test) msdcc: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.msdcc_test) msdcc: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.msdcc_test) msdcc: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.msdcc_test) msdcc: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.msdcc_test) msdcc: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.msdcc_test) msdcc: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.msdcc_test) msdcc: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.msdcc_test) msdcc: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.msdcc_test) msdcc: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers.msdcc_test) msdcc: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.msdcc_test) msdcc: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.msdcc_test) msdcc: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.msdcc_test) msdcc: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.msdcc_test) msdcc: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.msdcc_test) msdcc: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.msdcc_test) msdcc: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.msdcc_test) msdcc: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.msdcc_test) msdcc: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers.msdcc_test) msdcc: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.msdcc_test) msdcc: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.msdcc_test) msdcc: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.msdcc_test) msdcc: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.msdcc_test) msdcc: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.msdcc_test) msdcc: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.msdcc_test) msdcc: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.msdcc_test) msdcc: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.mssql2000_test) mssql2000: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.mssql2000_test) mssql2000: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.mssql2000_test) mssql2000: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.mssql2000_test) mssql2000: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.mssql2000_test) mssql2000: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.mssql2000_test) mssql2000: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.mssql2000_test) mssql2000: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.mssql2000_test) mssql2000: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.mssql2000_test) mssql2000: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.mssql2000_test) mssql2000: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers.mssql2000_test) mssql2000: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.mssql2000_test) mssql2000: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.mssql2000_test) mssql2000: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.mssql2000_test) mssql2000: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.mssql2000_test) mssql2000: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.mssql2005_test) mssql2005: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.mssql2005_test) mssql2005: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.mssql2005_test) mssql2005: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.mssql2005_test) mssql2005: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.mssql2005_test) mssql2005: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.mssql2005_test) mssql2005: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.mssql2005_test) mssql2005: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.mssql2005_test) mssql2005: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.mssql2005_test) mssql2005: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.mssql2005_test) mssql2005: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers.mssql2005_test) mssql2005: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.mssql2005_test) mssql2005: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.mssql2005_test) mssql2005: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.mssql2005_test) mssql2005: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.mssql2005_test) mssql2005: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.mysql323_test) mysql323: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.mysql323_test) mysql323: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.mysql323_test) mysql323: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.mysql323_test) mysql323: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.mysql323_test) mysql323: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.mysql323_test) mysql323: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.mysql323_test) mysql323: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.mysql323_test) mysql323: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.mysql323_test) mysql323: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.mysql323_test) mysql323: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.mysql323_test) mysql323: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.mysql323_test) mysql323: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.mysql323_test) mysql323: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.mysql323_test) mysql323: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.mysql323_test) mysql323: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.mysql323_test) mysql323: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.mysql323_test) mysql323: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.mysql323_test) mysql323: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.mysql323_test) mysql323: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.mysql323_test) mysql323: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.mysql323_test) mysql323: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.mysql323_test) mysql323: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.mysql323_test) mysql323: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.mysql323_test) mysql323: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.mysql323_test) mysql323: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.mysql323_test) mysql323: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_whitespace (passlib.tests.test_handlers.mysql323_test) mysql323: check whitespace is ignored per spec ... ok test_disable_and_enable (passlib.tests.test_handlers.mysql323_test) mysql323: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.mysql323_test) mysql323: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.mysql323_test) mysql323: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.mysql323_test) mysql323: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.mysql323_test) mysql323: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.mysql323_test) mysql323: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.mysql41_test) mysql41: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.mysql41_test) mysql41: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.mysql41_test) mysql41: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.mysql41_test) mysql41: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.mysql41_test) mysql41: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.mysql41_test) mysql41: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.mysql41_test) mysql41: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.mysql41_test) mysql41: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.mysql41_test) mysql41: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.mysql41_test) mysql41: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.mysql41_test) mysql41: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.mysql41_test) mysql41: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.mysql41_test) mysql41: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.mysql41_test) mysql41: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.mysql41_test) mysql41: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.mysql41_test) mysql41: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.mysql41_test) mysql41: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.mysql41_test) mysql41: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.mysql41_test) mysql41: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.mysql41_test) mysql41: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.mysql41_test) mysql41: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.mysql41_test) mysql41: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.mysql41_test) mysql41: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.mysql41_test) mysql41: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.mysql41_test) mysql41: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.mysql41_test) mysql41: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.mysql41_test) mysql41: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.mysql41_test) mysql41: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.mysql41_test) mysql41: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.mysql41_test) mysql41: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.mysql41_test) mysql41: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.mysql41_test) mysql41: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.nthash_test) nthash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.nthash_test) nthash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.nthash_test) nthash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.nthash_test) nthash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.nthash_test) nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.nthash_test) nthash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.nthash_test) nthash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.nthash_test) nthash: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.nthash_test) nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.nthash_test) nthash: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.nthash_test) nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.nthash_test) nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.nthash_test) nthash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.nthash_test) nthash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.nthash_test) nthash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.nthash_test) nthash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.nthash_test) nthash: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.nthash_test) nthash: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.nthash_test) nthash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.nthash_test) nthash: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.nthash_test) nthash: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.nthash_test) nthash: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.nthash_test) nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.nthash_test) nthash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.nthash_test) nthash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.nthash_test) nthash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.nthash_test) nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.nthash_test) nthash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.nthash_test) nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.nthash_test) nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.nthash_test) nthash: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.nthash_test) nthash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.nthash_test) nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.oracle10_test) oracle10: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.oracle10_test) oracle10: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.oracle10_test) oracle10: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.oracle10_test) oracle10: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.oracle10_test) oracle10: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.oracle10_test) oracle10: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.oracle10_test) oracle10: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.oracle10_test) oracle10: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.oracle10_test) oracle10: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.oracle10_test) oracle10: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.oracle10_test) oracle10: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.oracle10_test) oracle10: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.oracle10_test) oracle10: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.oracle10_test) oracle10: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.oracle10_test) oracle10: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.oracle10_test) oracle10: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.oracle10_test) oracle10: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.oracle10_test) oracle10: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.oracle10_test) oracle10: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.oracle10_test) oracle10: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.oracle10_test) oracle10: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.oracle10_test) oracle10: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.oracle10_test) oracle10: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.oracle10_test) oracle10: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.oracle10_test) oracle10: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.oracle10_test) oracle10: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.oracle10_test) oracle10: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers.oracle10_test) oracle10: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.oracle10_test) oracle10: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.oracle10_test) oracle10: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.oracle10_test) oracle10: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.oracle10_test) oracle10: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.oracle10_test) oracle10: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.oracle10_test) oracle10: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.oracle10_test) oracle10: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.oracle11_test) oracle11: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.oracle11_test) oracle11: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.oracle11_test) oracle11: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.oracle11_test) oracle11: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.oracle11_test) oracle11: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.oracle11_test) oracle11: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.oracle11_test) oracle11: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.oracle11_test) oracle11: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.oracle11_test) oracle11: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.oracle11_test) oracle11: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.oracle11_test) oracle11: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.oracle11_test) oracle11: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.oracle11_test) oracle11: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.oracle11_test) oracle11: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.oracle11_test) oracle11: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.oracle11_test) oracle11: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.oracle11_test) oracle11: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.oracle11_test) oracle11: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.oracle11_test) oracle11: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.oracle11_test) oracle11: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.oracle11_test) oracle11: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.oracle11_test) oracle11: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.oracle11_test) oracle11: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.oracle11_test) oracle11: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.oracle11_test) oracle11: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.oracle11_test) oracle11: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.oracle11_test) oracle11: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.oracle11_test) oracle11: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.oracle11_test) oracle11: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.oracle11_test) oracle11: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.oracle11_test) oracle11: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.oracle11_test) oracle11: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.phpass_test) phpass: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.phpass_test) phpass: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.phpass_test) phpass: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.phpass_test) phpass: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.phpass_test) phpass: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.phpass_test) phpass: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.phpass_test) phpass: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.phpass_test) phpass: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.phpass_test) phpass: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.phpass_test) phpass: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.phpass_test) phpass: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.phpass_test) phpass: validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers.phpass_test) phpass: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.phpass_test) phpass: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.phpass_test) phpass: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.phpass_test) phpass: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.phpass_test) phpass: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.phpass_test) phpass: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.phpass_test) phpass: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.phpass_test) phpass: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.phpass_test) phpass: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.phpass_test) phpass: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.phpass_test) phpass: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.phpass_test) phpass: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.phpass_test) phpass: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.phpass_test) phpass: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.phpass_test) phpass: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.phpass_test) phpass: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.phpass_test) phpass: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.phpass_test) phpass: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.phpass_test) phpass: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.phpass_test) phpass: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.phpass_test) phpass: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.plaintext_test) plaintext: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.plaintext_test) plaintext: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.plaintext_test) plaintext: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.plaintext_test) plaintext: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.plaintext_test) plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.plaintext_test) plaintext: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.plaintext_test) plaintext: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.plaintext_test) plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.plaintext_test) plaintext: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.plaintext_test) plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.plaintext_test) plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.plaintext_test) plaintext: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.plaintext_test) plaintext: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.plaintext_test) plaintext: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.plaintext_test) plaintext: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.plaintext_test) plaintext: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.plaintext_test) plaintext: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.plaintext_test) plaintext: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.plaintext_test) plaintext: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.plaintext_test) plaintext: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.plaintext_test) plaintext: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.plaintext_test) plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.plaintext_test) plaintext: test known foreign hashes ... SKIP: not applicable test_76_hash_border (passlib.tests.test_handlers.plaintext_test) plaintext: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.plaintext_test) plaintext: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.plaintext_test) plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.plaintext_test) plaintext: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.plaintext_test) plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.plaintext_test) plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.plaintext_test) plaintext: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.plaintext_test) plaintext: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.plaintext_test) plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = True) test_disable_and_enable (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok test_disable_and_enable (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok test_disable_and_enable (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) ... ok test_77_fuzz_input (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable test_78_fuzz_threading (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_special (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test marker option & special behavior ... ok test_disable_and_enable (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: .disable() / .enable() methods ... ok test_has_many_idents_using (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known foreign hashes ... SKIP: not applicable test_76_hash_border (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: fuzz testing -- random passwords and options ... SKIP: not applicable test_78_fuzz_threading (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_wildcard (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test enable_wildcard flag ... ok test_91_preserves_existing (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test preserves existing disabled hash ... ok test_disable_and_enable (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: .disable() / .enable() methods ... ok test_has_many_idents_using (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_argon_byte_encoding (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): verify we're using right base64 encoding for argon2 ... SKIP: only default backend is being tested test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_argon_byte_encoding (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): verify we're using right base64 encoding for argon2 ... SKIP: only default backend is being tested test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = True) test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): needs_update corrects bcrypt padding ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate HasManyIdents configuration ... SKIP: multiple idents not supported test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux' platform (current host support = True) test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test digest calc v2 matches bcrypt() ... ok test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: multiple idents not supported test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): Handler.using() -- default_salt_size ... ok test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) ... ok test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test user used as salt ... ok test_calc_digest_spoiler (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: _calc_checksum() -- spoil oversize passwords during verify ... ok test_disable_and_enable (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test user used as salt ... ok test_calc_digest_spoiler (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: _calc_checksum() -- spoil oversize passwords during verify ... ok test_disable_and_enable (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate optional salt attributes ... SKIP: handler doesn't provide salt info test_11_unique_salt (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't provide salt info test_13_max_salt_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't provide salt info test_14_salt_chars (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() honors salt_chars ... SKIP: handler doesn't provide salt info test_15_salt_type (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_decode (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test cisco_type7.decode() ... ok test_91_salt (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test salt value border cases ... ok test_disable_and_enable (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: Handler.using() -- default_salt_size ... SKIP: handler doesn't provide salt info test_01_required_attributes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable test_78_fuzz_threading (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: .disable() / .enable() methods ... ok test_has_many_idents_using (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: Handler.using() -- default_salt_size ... ok test_wrappers (passlib.tests.test_handlers_pbkdf2.ldap_pbkdf2_test) test ldap pbkdf2 wrappers ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.scram_test) scram: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.scram_test) scram: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.scram_test) scram: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.scram_test) scram: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test parsing of 'algs' setting ... ok test_90_checksums (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test internal parsing of 'checksum' keyword ... ok test_91_extract_digest_info (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test scram.extract_digest_info() ... ok test_92_extract_digest_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test scram.extract_digest_algs() ... ok test_93_derive_digest (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test scram.derive_digest() ... ok test_94_needs_update_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: needs_update() -- algs setting ... ok test_94_saslprep (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash/verify use saslprep ... ok test_94_using_w_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: using() -- 'algs' parameter ... ok test_94_using_w_default_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: using() -- 'default_algs' parameter ... ok test_95_context_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test handling of 'algs' in context object ... ok test_96_full_verify (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test verify(full=True) flag ... ok test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.scram_test) scram: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib 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 test_entropy (passlib.tests.test_pwd.PhraseGeneratorTest) passlib.pwd.genphrase(): 'length' & 'entropy' keywords ... ok test_general (passlib.tests.test_pwd.PhraseGeneratorTest) passlib.pwd.genphrase(): general behavior ... ok test_returns (passlib.tests.test_pwd.PhraseGeneratorTest) passlib.pwd.genphrase(): 'returns' keyword ... ok test_wordset (passlib.tests.test_pwd.PhraseGeneratorTest) passlib.pwd.genphrase(): 'wordset' & 'words' options ... ok test_self_info_rate (passlib.tests.test_pwd.UtilsTest) passlib.pwd: _self_info_rate() ... ok test_charset (passlib.tests.test_pwd.WordGeneratorTest) passlib.pwd.genword(): 'charset' & 'chars' options ... ok test_general (passlib.tests.test_pwd.WordGeneratorTest) passlib.pwd.genword(): general behavior ... ok test_returns (passlib.tests.test_pwd.WordGeneratorTest) passlib.pwd.genword(): 'returns' keyword ... ok test_get_crypt_handler (passlib.tests.test_registry.RegistryTest) passlib.registry: test get_crypt_handler() ... ok test_handlers (passlib.tests.test_registry.RegistryTest) passlib.registry: verify we have tests for all builtin handlers ... ok test_hash_proxy (passlib.tests.test_registry.RegistryTest) passlib.registry: test passlib.hash proxy object ... ok test_list_crypt_handlers (passlib.tests.test_registry.RegistryTest) passlib.registry: test list_crypt_handlers() ... ok test_register_crypt_handler (passlib.tests.test_registry.RegistryTest) passlib.registry: test register_crypt_handler() ... ok test_register_crypt_handler_path (passlib.tests.test_registry.RegistryTest) passlib.registry: test register_crypt_handler_path() ... ok test_decrypt_key (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: .decrypt_key() ... SKIP: 'cryptography' package not installed test_decrypt_key_needs_recrypt (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: .decrypt_key() -- needs_recrypt flag ... SKIP: 'cryptography' package not installed test_default_tag (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: constructor -- 'default_tag' param ... ok test_encrypt_cost_timing (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: verify cost parameter via timing ... SKIP: 'cryptography' package not installed test_encrypt_key (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: .encrypt_key() ... SKIP: 'cryptography' package not installed test_secrets_tags (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: constructor -- 'secrets' param -- tag/value normalization ... ok test_secrets_types (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: constructor -- 'secrets' param -- input types ... ok iter_test_vectors (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: helper to iterate over test vectors. ... ok test_ctor_w_alg (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'alg' parameter ... ok test_ctor_w_digits (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'digits' parameter ... ok test_ctor_w_issuer (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'issuer' parameter ... ok test_ctor_w_key_and_format (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'key' and 'format' parameters ... ok test_ctor_w_label (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'label' parameter ... ok test_ctor_w_new (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'new' parameter ... ok test_ctor_w_period (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'period' parameter ... ok test_ctor_w_size (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'size' parameter ... ok test_from_dict (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: from_dict() ... ok test_from_source (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: from_source() ... ok test_from_uri (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: from_uri() ... ok test_generate (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: generate() ... ok test_generate_w_reference_vectors (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: generate() -- reference vectors ... ok test_key_attrs (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: pretty_key() and .key attributes ... ok test_match_w_reference_vectors (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- reference vectors ... ok test_match_w_reuse (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- 'reuse' and 'last_counter' parameters ... ok test_match_w_skew (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- 'skew' parameters ... ok test_match_w_token_normalization (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- token normalization ... ok test_match_w_window (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- 'time' and 'window' parameters ... ok test_normalize_time (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: normalize_time() ... ok test_normalize_token_class (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: normalize_token() -- class method ... ok test_normalize_token_instance (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: normalize_token() -- instance method ... ok test_randotp (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: internal test -- randotp() ... ok test_to_dict (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: to_dict() ... ok test_to_uri (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: to_uri() ... ok test_totp_match_w_invalid_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- invalid TotpMatch object ... ok test_totp_match_w_new_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- valid TotpMatch object with past token ... ok test_totp_match_w_older_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- valid TotpMatch object with future token ... ok test_totp_match_w_valid_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- valid TotpMatch object ... ok test_totp_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: generate() -- TotpToken() class ... ok test_using_w_now (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: using -- 'now' parameter ... ok test_using_w_period (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: using() -- 'period' parameter ... ok test_verify (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: verify() ... ok test_ab64_decode (passlib.tests.test_utils.Base64EngineTest) ab64_decode() ... ok test_ab64_encode (passlib.tests.test_utils.Base64EngineTest) ab64_encode() ... ok test_b64s_decode (passlib.tests.test_utils.Base64EngineTest) b64s_decode() ... ok test_b64s_encode (passlib.tests.test_utils.Base64EngineTest) b64s_encode() ... ok test_constructor (passlib.tests.test_utils.Base64EngineTest) ... ok test_bytes (passlib.tests.test_utils.CodecTest) test b() helper, bytes and native str type ... ok test_is_ascii_safe (passlib.tests.test_utils.CodecTest) test is_ascii_safe() ... ok test_is_same_codec (passlib.tests.test_utils.CodecTest) test is_same_codec() ... ok test_to_bytes (passlib.tests.test_utils.CodecTest) test to_bytes() ... ok test_to_native_str (passlib.tests.test_utils.CodecTest) test to_native_str() ... ok test_to_unicode (passlib.tests.test_utils.CodecTest) test to_unicode() ... ok test_codec (passlib.tests.test_utils.H64Big_Test) h64big codec: test encode_bytes/decode_bytes against random data ... ok test_decode_bytes (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_bytes() against reference inputs ... ok test_decode_bytes_bad (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_bytes() with bad input ... ok test_decode_bytes_padding (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_bytes() ignores padding bits ... ok test_decode_transposed_bytes (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_transposed_bytes() ... ok test_decode_transposed_bytes_bad (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_transposed_bytes() fails if map is a one-way ... ok test_encode_bytes (passlib.tests.test_utils.H64Big_Test) h64big codec: test encode_bytes() against reference inputs ... ok test_encode_bytes_bad (passlib.tests.test_utils.H64Big_Test) h64big codec: test encode_bytes() with bad input ... ok test_encode_transposed_bytes (passlib.tests.test_utils.H64Big_Test) h64big codec: test encode_transposed_bytes() ... ok test_encoded_ints (passlib.tests.test_utils.H64Big_Test) h64big codec: test against reference integer encodings ... ok test_int12 (passlib.tests.test_utils.H64Big_Test) h64big codec: test_int12 (passlib.tests.test_utils.H64Big_Test) ... ok test_int24 (passlib.tests.test_utils.H64Big_Test) h64big codec: test_int24 (passlib.tests.test_utils.H64Big_Test) ... ok test_int6 (passlib.tests.test_utils.H64Big_Test) h64big codec: test_int6 (passlib.tests.test_utils.H64Big_Test) ... ok test_int64 (passlib.tests.test_utils.H64Big_Test) h64big codec: test_int64 (passlib.tests.test_utils.H64Big_Test) ... ok test_repair_unused (passlib.tests.test_utils.H64Big_Test) h64big codec: test repair_unused() ... ok test_codec (passlib.tests.test_utils.H64_Test) h64 codec: test encode_bytes/decode_bytes against random data ... ok test_decode_bytes (passlib.tests.test_utils.H64_Test) h64 codec: test decode_bytes() against reference inputs ... ok test_decode_bytes_bad (passlib.tests.test_utils.H64_Test) h64 codec: test decode_bytes() with bad input ... ok test_decode_bytes_padding (passlib.tests.test_utils.H64_Test) h64 codec: test decode_bytes() ignores padding bits ... ok test_decode_transposed_bytes (passlib.tests.test_utils.H64_Test) h64 codec: test decode_transposed_bytes() ... ok test_decode_transposed_bytes_bad (passlib.tests.test_utils.H64_Test) h64 codec: test decode_transposed_bytes() fails if map is a one-way ... ok test_encode_bytes (passlib.tests.test_utils.H64_Test) h64 codec: test encode_bytes() against reference inputs ... ok test_encode_bytes_bad (passlib.tests.test_utils.H64_Test) h64 codec: test encode_bytes() with bad input ... ok test_encode_transposed_bytes (passlib.tests.test_utils.H64_Test) h64 codec: test encode_transposed_bytes() ... ok test_encoded_ints (passlib.tests.test_utils.H64_Test) h64 codec: test against reference integer encodings ... ok test_int12 (passlib.tests.test_utils.H64_Test) h64 codec: test_int12 (passlib.tests.test_utils.H64_Test) ... ok test_int24 (passlib.tests.test_utils.H64_Test) h64 codec: test_int24 (passlib.tests.test_utils.H64_Test) ... ok test_int6 (passlib.tests.test_utils.H64_Test) h64 codec: test_int6 (passlib.tests.test_utils.H64_Test) ... ok test_int64 (passlib.tests.test_utils.H64_Test) h64 codec: test_int64 (passlib.tests.test_utils.H64_Test) ... ok test_repair_unused (passlib.tests.test_utils.H64_Test) h64 codec: test repair_unused() ... ok test_classproperty (passlib.tests.test_utils.MiscTest) ... ok test_compat (passlib.tests.test_utils.MiscTest) test compat's lazymodule ... ok test_consteq (passlib.tests.test_utils.MiscTest) test consteq() ... ok test_crypt (passlib.tests.test_utils.MiscTest) test crypt.crypt() wrappers ... ok test_deprecated_function (passlib.tests.test_utils.MiscTest) ... ok test_generate_password (passlib.tests.test_utils.MiscTest) generate_password() ... ok test_genseed (passlib.tests.test_utils.MiscTest) test genseed() ... ok test_getrandbytes (passlib.tests.test_utils.MiscTest) getrandbytes() ... ok test_getrandstr (passlib.tests.test_utils.MiscTest) getrandstr() ... ok test_is_crypt_context (passlib.tests.test_utils.MiscTest) test is_crypt_context() ... ok test_memoized_property (passlib.tests.test_utils.MiscTest) ... ok test_saslprep (passlib.tests.test_utils.MiscTest) test saslprep() unicode normalizer ... ok test_splitcomma (passlib.tests.test_utils.MiscTest) ... ok test_utf8_truncate (passlib.tests.test_utils.MiscTest) utf8_truncate() ... ok test_00_lazy_loading (passlib.tests.test_utils_handlers.PrefixWrapperTest) test PrefixWrapper lazy loading of handler ... ok test_01_active_loading (passlib.tests.test_utils_handlers.PrefixWrapperTest) test PrefixWrapper active loading of handler ... ok test_02_explicit (passlib.tests.test_utils_handlers.PrefixWrapperTest) 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_13_repr (passlib.tests.test_utils_handlers.PrefixWrapperTest) test repr() ... ok test_14_bad_hash (passlib.tests.test_utils_handlers.PrefixWrapperTest) test orig_prefix sanity check ... ok test_01_required_attributes (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known hashes ... ok test_70_parsehash (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: parsehash() ... ok test_71_alternates (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) ... ok test_disable_and_enable (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: Handler.using() -- default_salt_size ... ok test_00_static_handler (passlib.tests.test_utils_handlers.SkeletonTest) test StaticHandler class ... ok test_01_calc_checksum_hack (passlib.tests.test_utils_handlers.SkeletonTest) test StaticHandler legacy attr ... ok test_10_identify (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler.identify() ... ok test_11_norm_checksum (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler checksum handling ... ok test_12_norm_checksum_raw (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasRawChecksum mixin ... ok test_20_norm_salt (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasSalt mixin ... ok test_30_init_rounds (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasRounds mixin ... ok test_40_backends (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasManyBackends mixin ... ok test_41_backends (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasManyBackends mixin (deprecated api) ... ok test_50_norm_ident (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasManyIdents ... ok test_91_parsehash (passlib.tests.test_utils_handlers.SkeletonTest) test parsehash() ... ok test_92_bitsize (passlib.tests.test_utils_handlers.SkeletonTest) test bitsize() ... ok test_01_required_attributes (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known hashes ... ok test_70_parsehash (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: parsehash() ... ok test_71_alternates (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) ... ok test_disable_and_enable (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_attrs (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): informational attributes ... ok test_md4_copy (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): copy() method ... ok test_md4_digest (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): digest() method ... ok test_md4_hexdigest (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): hexdigest() method ... ok test_md4_update (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): update() method ... ok test_border (passlib.tests.test_utils_pbkdf2.Pbkdf1_Test) passlib.utils.pbkdf2.pbkdf1(): test border cases ... ok test_known (passlib.tests.test_utils_pbkdf2.Pbkdf1_Test) passlib.utils.pbkdf2.pbkdf1(): test reference vectors ... ok test_border (passlib.tests.test_utils_pbkdf2.Pbkdf2_Test) passlib.utils.pbkdf2.pbkdf2(): test border cases ... ok test_custom_prf (passlib.tests.test_utils_pbkdf2.Pbkdf2_Test) passlib.utils.pbkdf2.pbkdf2(): test custom prf function ... ok test_default_keylen (passlib.tests.test_utils_pbkdf2.Pbkdf2_Test) passlib.utils.pbkdf2.pbkdf2(): test keylen==None ... ok test_known (passlib.tests.test_utils_pbkdf2.Pbkdf2_Test) passlib.utils.pbkdf2.pbkdf2(): test reference vectors ... ok test_norm_hash_name (passlib.tests.test_utils_pbkdf2.UtilsTest) passlib.utils.pbkdf2: norm_hash_name() ... ok test_lmhash (passlib.tests.test_win32.UtilTest) ... ok test_nthash (passlib.tests.test_win32.UtilTest) ... ok ---------------------------------------------------------------------- Ran 4372 tests in 158.396s OK (skipped=2346) make[1]: Leaving directory '/build/python-passlib-1.7.4' fakeroot debian/rules binary dh binary --with python3 --buildsystem=pybuild dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_testroot -O--buildsystem=pybuild dh_prep -O--buildsystem=pybuild dh_auto_install -O--buildsystem=pybuild dh_auto_install: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: /usr/bin/python3 setup.py install --root /build/python-passlib-1.7.4/debian/python3-passlib running install running build running build_py running install_lib creating /build/python-passlib-1.7.4/debian/python3-passlib/usr creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9 creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets/bip39.txt -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets/eff_long.txt -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets/eff_prefixed.txt -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets/eff_short.txt -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup/stamp.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish/_gen_files.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish/base.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish/unrolled.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt/_builtin.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt/_gen_files.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt/_salsa.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_md4.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/des.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/digest.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django/models.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django/utils.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/argon2.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/bcrypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/cisco.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/des_crypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/digests.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/django.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/fshp.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/ldap_digests.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/md5_crypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/misc.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/mssql.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/mysql.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/oracle.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/pbkdf2.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/phpass.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/postgres.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/roundup.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/scram.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/scrypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/sha1_crypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/sha2_crypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/sun_md5_crypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/windows.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/sample1.cfg -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/sample1b.cfg -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/sample1c.cfg -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/sample_config_1s.cfg -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/__main__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/_test_bad_register.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/backports.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_apache.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_apps.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_context.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_context_deprecated.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_crypto_builtin_md4.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_crypto_des.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_crypto_digest.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_crypto_scrypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_ext_django.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_ext_django_source.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_argon2.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_bcrypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_cisco.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_django.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_pbkdf2.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_scrypt.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_hosts.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_pwd.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_registry.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_totp.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_utils.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_utils_handlers.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_utils_md4.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_utils_pbkdf2.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_win32.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/tox_support.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/utils.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils creating /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat/_ordered_dict.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/binary.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/decor.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/des.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/handlers.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/md4.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/pbkdf2.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/__init__.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/apache.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/apps.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/context.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/exc.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/hash.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/hosts.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ifc.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/pwd.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/registry.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/totp.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/win32.py -> /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup/stamp.py to stamp.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish/base.py to base.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt/_builtin.py to _builtin.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt/_salsa.py to _salsa.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_md4.py to _md4.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/des.py to des.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/digest.py to digest.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django/models.py to models.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django/utils.py to utils.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/argon2.py to argon2.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/bcrypt.py to bcrypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/cisco.py to cisco.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/des_crypt.py to des_crypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/digests.py to digests.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/django.py to django.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/fshp.py to fshp.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/ldap_digests.py to ldap_digests.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/md5_crypt.py to md5_crypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/misc.py to misc.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/mssql.py to mssql.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/mysql.py to mysql.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/oracle.py to oracle.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/pbkdf2.py to pbkdf2.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/phpass.py to phpass.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/postgres.py to postgres.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/roundup.py to roundup.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/scram.py to scram.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/scrypt.py to scrypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/windows.py to windows.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/__main__.py to __main__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/_test_bad_register.py to _test_bad_register.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/backports.py to backports.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_apache.py to test_apache.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_apps.py to test_apps.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_context.py to test_context.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_crypto_des.py to test_crypto_des.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_ext_django.py to test_ext_django.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers.py to test_handlers.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_django.py to test_handlers_django.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_hosts.py to test_hosts.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_pwd.py to test_pwd.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_registry.py to test_registry.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_totp.py to test_totp.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_utils.py to test_utils.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_utils_md4.py to test_utils_md4.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_win32.py to test_win32.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/tox_support.py to tox_support.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/utils.py to utils.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/binary.py to binary.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/decor.py to decor.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/des.py to des.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/handlers.py to handlers.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/md4.py to md4.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/pbkdf2.py to pbkdf2.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/apache.py to apache.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/apps.py to apps.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/context.py to context.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/exc.py to exc.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/hash.py to hash.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/hosts.py to hosts.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ifc.py to ifc.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/pwd.py to pwd.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/registry.py to registry.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/totp.py to totp.cpython-39.pyc byte-compiling /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/win32.py to win32.cpython-39.pyc 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 /build/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib-1.7.4.egg-info Skipping SOURCES.txt running install_scripts dh_installdocs -O--buildsystem=pybuild dh_installdocs: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_installchangelogs -O--buildsystem=pybuild dh_installchangelogs: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_python3 -O--buildsystem=pybuild dh_installinit -O--buildsystem=pybuild dh_installinit: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_perl -O--buildsystem=pybuild dh_link -O--buildsystem=pybuild dh_strip_nondeterminism -O--buildsystem=pybuild dh_compress -O--buildsystem=pybuild dh_compress: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_fixperms -O--buildsystem=pybuild dh_missing -O--buildsystem=pybuild dh_missing: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_installdeb -O--buildsystem=pybuild dh_installdeb: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_gencontrol -O--buildsystem=pybuild dpkg-gencontrol: warning: Depends field of package python3-passlib: substitution variable ${shlibs:Depends} used, but is not defined dh_md5sums -O--buildsystem=pybuild dh_builddeb -O--buildsystem=pybuild dpkg-deb: building package 'python3-passlib' in '../python3-passlib_1.7.4-1_all.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary >../python-passlib_1.7.4-1_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/2408900 and its subdirectories I: Current time: Fri Nov 18 11:35:51 -12 2022 I: pbuilder-time-stamp: 1668814551 Sat Oct 16 17:12:50 UTC 2021 I: 1st build successful. Starting 2nd build on remote node ionos1-amd64.debian.net. Sat Oct 16 17:12:50 UTC 2021 I: Preparing to do remote build '2' on ionos1-amd64.debian.net. Sat Oct 16 17:16:58 UTC 2021 I: Deleting $TMPDIR on ionos1-amd64.debian.net. Sat Oct 16 17:16:58 UTC 2021 I: python-passlib_1.7.4-1_amd64.changes: Format: 1.8 Date: Sun, 28 Feb 2021 23:58:42 -0500 Source: python-passlib Binary: python3-passlib Architecture: all Version: 1.7.4-1 Distribution: unstable Urgency: medium Maintainer: Debian Python Team Changed-By: Sandro Tosi Description: python3-passlib - comprehensive password hashing framework Closes: 981821 983685 Changes: python-passlib (1.7.4-1) unstable; urgency=medium . [ Ondřej Nový ] * d/control: Update Maintainer field with new Debian Python Team contact address. * d/control: Update Vcs-* fields with new Debian Python Team Salsa layout. . [ Sandro Tosi ] * New upstream release; Closes: #981821 * debian/copyright - update upstream copyright years - update Source field to heptapod repo location * debian/control - update Homepage to https://passlib.readthedocs.io; Closes: #983685 Checksums-Sha1: b43e62c6b5a29826c9fe9f689f7b27c986c2c448 5412 python-passlib_1.7.4-1_amd64.buildinfo c5f2aba38623300f783852871cb61c5c431d06fa 367916 python3-passlib_1.7.4-1_all.deb Checksums-Sha256: afcf7a7119a2d5e7ca0dbd657cbeabb734ac5d174653461dee5a0c71510dfcd3 5412 python-passlib_1.7.4-1_amd64.buildinfo 4f15a34cf9e1ded7683f3028d1459fc3167ceaffb1c6ec8f55b1e230bb371cd6 367916 python3-passlib_1.7.4-1_all.deb Files: 0fcb1d2291c018f64029908c7761a501 5412 python optional python-passlib_1.7.4-1_amd64.buildinfo f6487228f5acbb2e02217d9b26cf0983 367916 python optional python3-passlib_1.7.4-1_all.deb Sat Oct 16 17:17:00 UTC 2021 I: will be used to compare the two builds: # Profiling output for: /usr/bin/diffoscope --html /srv/reproducible-results/rbuild-debian/tmp.E26h2u5JR0/python-passlib_1.7.4-1.diffoscope.html --text /srv/reproducible-results/rbuild-debian/tmp.E26h2u5JR0/python-passlib_1.7.4-1.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/tmp.E26h2u5JR0/python-passlib_1.7.4-1.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/tmp.E26h2u5JR0/b1/python-passlib_1.7.4-1_amd64.changes /srv/reproducible-results/rbuild-debian/tmp.E26h2u5JR0/b2/python-passlib_1.7.4-1_amd64.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call abc.DotChangesFile ## main (total time: 3.946s) 3.946s 2 calls outputs 0.000s 1 call cleanup ## recognizes (total time: 0.025s) 0.024s 10 calls diffoscope.comparators.binary.FilesystemFile 0.000s 8 calls abc.DotChangesFile Sat Oct 16 17:22:40 UTC 2021 I: found no differences in the changes files, and a .buildinfo file also exists. Sat Oct 16 17:22:40 UTC 2021 I: python-passlib from bullseye built successfully and reproducibly on amd64. Sat Oct 16 17:22:50 UTC 2021 I: Submitting .buildinfo files to external archives: Sat Oct 16 17:22:50 UTC 2021 I: Submitting 8.0K b1/python-passlib_1.7.4-1_amd64.buildinfo.asc Sat Oct 16 17:22:58 UTC 2021 I: Submitting 8.0K b2/python-passlib_1.7.4-1_amd64.buildinfo.asc Sat Oct 16 17:23:12 UTC 2021 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Sat Oct 16 17:23:12 UTC 2021 I: Done submitting .buildinfo files. Sat Oct 16 17:23:12 UTC 2021 I: Removing signed python-passlib_1.7.4-1_amd64.buildinfo.asc files: removed './b1/python-passlib_1.7.4-1_amd64.buildinfo.asc' removed './b2/python-passlib_1.7.4-1_amd64.buildinfo.asc'