I: pbuilder: network access will be disabled during build I: Current time: Thu Aug 13 22:22:05 -12 2020 I: pbuilder-time-stamp: 1597400525 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-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.1-1.dsc] I: copying [./python-passlib_1.7.1.orig.tar.gz] I: copying [./python-passlib_1.7.1-1.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/var/lib/jenkins/.gnupg/trustedkeys.kbx': General error gpgv: Signature made Tue Jan 31 05:23:32 2017 -12 gpgv: using RSA key 8417157EDBE73D9EAC1E539B126EB563A74B06BF gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./python-passlib_1.7.1-1.dsc dpkg-source: info: extracting python-passlib in python-passlib-1.7.1 dpkg-source: info: unpacking python-passlib_1.7.1.orig.tar.gz dpkg-source: info: unpacking python-passlib_1.7.1-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/32286/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='arm64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=8' DISTRIBUTION='' HOME='/var/lib/jenkins' HOST_ARCH='arm64' IFS=' ' 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='32286' 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.8MFTh9KUzX/pbuilderrc_OkEF --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.8MFTh9KUzX/b1 --logfile b1/build.log python-passlib_1.7.1-1.dsc' SUDO_GID='117' SUDO_UID='110' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' USERNAME='root' _='/usr/bin/systemd-run' http_proxy='http://192.168.101.16:3128' I: uname -a Linux codethink-sled16-arm64 4.4.0-186-generic #216-Ubuntu SMP Wed Jul 1 05:35:21 UTC 2020 aarch64 GNU/Linux I: ls -l /bin total 4928 -rwxr-xr-x 1 root root 1216928 Apr 17 2019 bash -rwxr-xr-x 3 root root 34808 Jul 10 2019 bunzip2 -rwxr-xr-x 3 root root 34808 Jul 10 2019 bzcat lrwxrwxrwx 1 root root 6 Jul 10 2019 bzcmp -> bzdiff -rwxr-xr-x 1 root root 2227 Jul 10 2019 bzdiff lrwxrwxrwx 1 root root 6 Jul 10 2019 bzegrep -> bzgrep -rwxr-xr-x 1 root root 4877 Jun 24 2019 bzexe lrwxrwxrwx 1 root root 6 Jul 10 2019 bzfgrep -> bzgrep -rwxr-xr-x 1 root root 3641 Jul 10 2019 bzgrep -rwxr-xr-x 3 root root 34808 Jul 10 2019 bzip2 -rwxr-xr-x 1 root root 14264 Jul 10 2019 bzip2recover lrwxrwxrwx 1 root root 6 Jul 10 2019 bzless -> bzmore -rwxr-xr-x 1 root root 1297 Jul 10 2019 bzmore -rwxr-xr-x 1 root root 35576 Feb 28 2019 cat -rwxr-xr-x 1 root root 60256 Feb 28 2019 chgrp -rwxr-xr-x 1 root root 56096 Feb 28 2019 chmod -rwxr-xr-x 1 root root 64368 Feb 28 2019 chown -rwxr-xr-x 1 root root 134632 Feb 28 2019 cp -rwxr-xr-x 1 root root 129536 Jan 17 2019 dash -rwxr-xr-x 1 root root 97136 Feb 28 2019 date -rwxr-xr-x 1 root root 76736 Feb 28 2019 dd -rwxr-xr-x 1 root root 93752 Feb 28 2019 df -rwxr-xr-x 1 root root 138848 Feb 28 2019 dir -rwxr-xr-x 1 root root 75984 Jan 9 2019 dmesg lrwxrwxrwx 1 root root 8 Sep 26 2018 dnsdomainname -> hostname lrwxrwxrwx 1 root root 8 Sep 26 2018 domainname -> hostname -rwxr-xr-x 1 root root 31368 Feb 28 2019 echo -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep -rwxr-xr-x 1 root root 27256 Feb 28 2019 false -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep -rwxr-xr-x 1 root root 68792 Jan 9 2019 findmnt -rwsr-xr-x 1 root root 34824 Apr 22 07:38 fusermount -rwxr-xr-x 1 root root 174304 Jan 7 2019 grep -rwxr-xr-x 2 root root 2345 Jan 5 2019 gunzip -rwxr-xr-x 1 root root 6375 Jan 5 2019 gzexe -rwxr-xr-x 1 root root 89656 Jan 5 2019 gzip -rwxr-xr-x 1 root root 18440 Sep 26 2018 hostname -rwxr-xr-x 1 root root 64472 Feb 28 2019 ln -rwxr-xr-x 1 root root 52544 Jul 26 2018 login -rwxr-xr-x 1 root root 138848 Feb 28 2019 ls -rwxr-xr-x 1 root root 108552 Jan 9 2019 lsblk -rwxr-xr-x 1 root root 76840 Feb 28 2019 mkdir -rwxr-xr-x 1 root root 64480 Feb 28 2019 mknod -rwxr-xr-x 1 root root 39736 Feb 28 2019 mktemp -rwxr-xr-x 1 root root 38840 Jan 9 2019 more -rwsr-xr-x 1 root root 47112 Jan 9 2019 mount -rwxr-xr-x 1 root root 14344 Jan 9 2019 mountpoint -rwxr-xr-x 1 root root 138736 Feb 28 2019 mv lrwxrwxrwx 1 root root 8 Sep 26 2018 nisdomainname -> hostname lrwxrwxrwx 1 root root 14 Feb 14 2019 pidof -> /sbin/killall5 -rwxr-xr-x 1 root root 35560 Feb 28 2019 pwd lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash -rwxr-xr-x 1 root root 43712 Feb 28 2019 readlink -rwxr-xr-x 1 root root 68440 Feb 28 2019 rm -rwxr-xr-x 1 root root 39624 Feb 28 2019 rmdir -rwxr-xr-x 1 root root 19144 Jan 21 2019 run-parts -rwxr-xr-x 1 root root 114016 Dec 22 2018 sed lrwxrwxrwx 1 root root 4 Aug 12 20:26 sh -> dash -rwxr-xr-x 1 root root 31384 Feb 28 2019 sleep -rwxr-xr-x 1 root root 72480 Feb 28 2019 stty -rwsr-xr-x 1 root root 59424 Jan 9 2019 su -rwxr-xr-x 1 root root 31416 Feb 28 2019 sync -rwxr-xr-x 1 root root 449416 Apr 23 2019 tar -rwxr-xr-x 1 root root 10560 Jan 21 2019 tempfile -rwxr-xr-x 1 root root 88968 Feb 28 2019 touch -rwxr-xr-x 1 root root 27256 Feb 28 2019 true -rwxr-xr-x 1 root root 14264 Apr 22 07:38 ulockmgr_server -rwsr-xr-x 1 root root 30728 Jan 9 2019 umount -rwxr-xr-x 1 root root 31384 Feb 28 2019 uname -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress -rwxr-xr-x 1 root root 138848 Feb 28 2019 vdir -rwxr-xr-x 1 root root 34824 Jan 9 2019 wdctl -rwxr-xr-x 1 root root 946 Jan 21 2019 which lrwxrwxrwx 1 root root 8 Sep 26 2018 ypdomainname -> hostname -rwxr-xr-x 1 root root 1983 Jan 5 2019 zcat -rwxr-xr-x 1 root root 1677 Jan 5 2019 zcmp -rwxr-xr-x 1 root root 5879 Jan 5 2019 zdiff -rwxr-xr-x 1 root root 29 Jan 5 2019 zegrep -rwxr-xr-x 1 root root 29 Jan 5 2019 zfgrep -rwxr-xr-x 1 root root 2080 Jan 5 2019 zforce -rwxr-xr-x 1 root root 7584 Jan 5 2019 zgrep -rwxr-xr-x 1 root root 2205 Jan 5 2019 zless -rwxr-xr-x 1 root root 1841 Jan 5 2019 zmore -rwxr-xr-x 1 root root 4552 Jan 5 2019 znew I: user script /srv/workspace/pbuilder/32286/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: arm64 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 (>= 9), dh-python, python-all (>= 2.6.6-3~), python-setuptools, python-nose, 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 ... 19168 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 (>= 9); however: Package debhelper is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on python-all (>= 2.6.6-3~); however: Package python-all is not installed. pbuilder-satisfydepends-dummy depends on python-setuptools; however: Package python-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python-nose; however: Package python-nose 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} bsdmainutils{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} libbsd0{a} libcroco3{a} libelf1{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libglib2.0-0{a} libicu63{a} libmagic-mgc{a} libmagic1{a} libmpdec2{a} libncurses6{a} libpipeline1{a} libpython-stdlib{a} libpython2-stdlib{a} libpython2.7-minimal{a} libpython2.7-stdlib{a} libpython3-stdlib{a} libpython3.7-minimal{a} libpython3.7-stdlib{a} libreadline7{a} libsigsegv2{a} libssl1.1{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} mime-support{a} po-debconf{a} python{a} python-all{a} python-minimal{a} python-nose{a} python-pkg-resources{a} python-setuptools{a} python2{a} python2-minimal{a} python2.7{a} python2.7-minimal{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.7{a} python3.7-minimal{a} readline-common{a} sensible-utils{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libglib2.0-data libgpm2 libltdl-dev libmail-sendmail-perl lynx shared-mime-info wget xdg-user-dirs 0 packages upgraded, 67 newly installed, 0 to remove and 0 not upgraded. Need to get 30.1 MB of archives. After unpacking 120 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian buster/main arm64 libbsd0 arm64 0.9.1-2 [97.4 kB] Get: 2 http://deb.debian.org/debian buster/main arm64 bsdmainutils arm64 11.1.2+b1 [185 kB] Get: 3 http://deb.debian.org/debian buster/main arm64 libuchardet0 arm64 0.0.6-3 [65.0 kB] Get: 4 http://deb.debian.org/debian buster/main arm64 groff-base arm64 1.22.4-3 [869 kB] Get: 5 http://deb.debian.org/debian buster/main arm64 libpipeline1 arm64 1.5.1-2 [29.8 kB] Get: 6 http://deb.debian.org/debian buster/main arm64 man-db arm64 2.8.5-2 [1258 kB] Get: 7 http://deb.debian.org/debian buster/main arm64 libpython2.7-minimal arm64 2.7.16-2+deb10u1 [395 kB] Get: 8 http://deb.debian.org/debian buster/main arm64 python2.7-minimal arm64 2.7.16-2+deb10u1 [1292 kB] Get: 9 http://deb.debian.org/debian buster/main arm64 python2-minimal arm64 2.7.16-1 [41.4 kB] Get: 10 http://deb.debian.org/debian buster/main arm64 python-minimal arm64 2.7.16-1 [21.0 kB] Get: 11 http://deb.debian.org/debian buster/main arm64 libssl1.1 arm64 1.1.1d-0+deb10u3 [1382 kB] Get: 12 http://deb.debian.org/debian buster/main arm64 mime-support all 3.62 [37.2 kB] Get: 13 http://deb.debian.org/debian buster/main arm64 libexpat1 arm64 2.2.6-2+deb10u1 [85.4 kB] Get: 14 http://deb.debian.org/debian buster/main arm64 readline-common all 7.0-5 [70.6 kB] Get: 15 http://deb.debian.org/debian buster/main arm64 libreadline7 arm64 7.0-5 [134 kB] Get: 16 http://deb.debian.org/debian buster/main arm64 libpython2.7-stdlib arm64 2.7.16-2+deb10u1 [1890 kB] Get: 17 http://deb.debian.org/debian buster/main arm64 python2.7 arm64 2.7.16-2+deb10u1 [305 kB] Get: 18 http://deb.debian.org/debian buster/main arm64 libpython2-stdlib arm64 2.7.16-1 [20.8 kB] Get: 19 http://deb.debian.org/debian buster/main arm64 libpython-stdlib arm64 2.7.16-1 [20.8 kB] Get: 20 http://deb.debian.org/debian buster/main arm64 python2 arm64 2.7.16-1 [41.6 kB] Get: 21 http://deb.debian.org/debian buster/main arm64 python arm64 2.7.16-1 [22.8 kB] Get: 22 http://deb.debian.org/debian buster/main arm64 libpython3.7-minimal arm64 3.7.3-2+deb10u2 [588 kB] Get: 23 http://deb.debian.org/debian buster/main arm64 python3.7-minimal arm64 3.7.3-2+deb10u2 [1404 kB] Get: 24 http://deb.debian.org/debian buster/main arm64 python3-minimal arm64 3.7.3-1 [36.6 kB] Get: 25 http://deb.debian.org/debian buster/main arm64 libmpdec2 arm64 2.4.2-2 [77.7 kB] Get: 26 http://deb.debian.org/debian buster/main arm64 libpython3.7-stdlib arm64 3.7.3-2+deb10u2 [1641 kB] Get: 27 http://deb.debian.org/debian buster/main arm64 python3.7 arm64 3.7.3-2+deb10u2 [330 kB] Get: 28 http://deb.debian.org/debian buster/main arm64 libpython3-stdlib arm64 3.7.3-1 [20.0 kB] Get: 29 http://deb.debian.org/debian buster/main arm64 python3 arm64 3.7.3-1 [61.5 kB] Get: 30 http://deb.debian.org/debian buster/main arm64 sensible-utils all 0.0.12 [15.8 kB] Get: 31 http://deb.debian.org/debian buster/main arm64 libmagic-mgc arm64 1:5.35-4+deb10u1 [242 kB] Get: 32 http://deb.debian.org/debian buster/main arm64 libmagic1 arm64 1:5.35-4+deb10u1 [115 kB] Get: 33 http://deb.debian.org/debian buster/main arm64 file arm64 1:5.35-4+deb10u1 [66.4 kB] Get: 34 http://deb.debian.org/debian buster/main arm64 gettext-base arm64 0.19.8.1-9 [120 kB] Get: 35 http://deb.debian.org/debian buster/main arm64 libsigsegv2 arm64 2.12-2 [32.3 kB] Get: 36 http://deb.debian.org/debian buster/main arm64 m4 arm64 1.4.18-2 [198 kB] Get: 37 http://deb.debian.org/debian buster/main arm64 autoconf all 2.69-11 [341 kB] Get: 38 http://deb.debian.org/debian buster/main arm64 autotools-dev all 20180224.1 [77.0 kB] Get: 39 http://deb.debian.org/debian buster/main arm64 automake all 1:1.16.1-4 [771 kB] Get: 40 http://deb.debian.org/debian buster/main arm64 autopoint all 0.19.8.1-9 [434 kB] Get: 41 http://deb.debian.org/debian buster/main arm64 libtool all 2.4.6-9 [547 kB] Get: 42 http://deb.debian.org/debian buster/main arm64 dh-autoreconf all 19 [16.9 kB] Get: 43 http://deb.debian.org/debian buster/main arm64 libarchive-zip-perl all 1.64-1 [96.8 kB] Get: 44 http://deb.debian.org/debian buster/main arm64 libfile-stripnondeterminism-perl all 1.1.2-1 [19.8 kB] Get: 45 http://deb.debian.org/debian buster/main arm64 dh-strip-nondeterminism all 1.1.2-1 [13.0 kB] Get: 46 http://deb.debian.org/debian buster/main arm64 libelf1 arm64 0.176-1.1 [160 kB] Get: 47 http://deb.debian.org/debian buster/main arm64 dwz arm64 0.12-3 [71.7 kB] Get: 48 http://deb.debian.org/debian buster/main arm64 libglib2.0-0 arm64 2.58.3-2+deb10u2 [1185 kB] Get: 49 http://deb.debian.org/debian buster/main arm64 libicu63 arm64 63.1-6+deb10u1 [8151 kB] Get: 50 http://deb.debian.org/debian buster/main arm64 libxml2 arm64 2.9.4+dfsg1-7+b3 [623 kB] Get: 51 http://deb.debian.org/debian buster/main arm64 libcroco3 arm64 0.6.12-3 [140 kB] Get: 52 http://deb.debian.org/debian buster/main arm64 libncurses6 arm64 6.1+20181013-2+deb10u2 [92.6 kB] Get: 53 http://deb.debian.org/debian buster/main arm64 gettext arm64 0.19.8.1-9 [1261 kB] Get: 54 http://deb.debian.org/debian buster/main arm64 intltool-debian all 0.35.0+20060710.5 [26.8 kB] Get: 55 http://deb.debian.org/debian buster/main arm64 po-debconf all 1.0.21 [248 kB] Get: 56 http://deb.debian.org/debian buster/main arm64 debhelper all 12.1.1 [1016 kB] Get: 57 http://deb.debian.org/debian buster/main arm64 python3-lib2to3 all 3.7.3-1 [76.7 kB] Get: 58 http://deb.debian.org/debian buster/main arm64 python3-distutils all 3.7.3-1 [142 kB] Get: 59 http://deb.debian.org/debian buster/main arm64 dh-python all 3.20190308 [99.3 kB] Get: 60 http://deb.debian.org/debian buster/main arm64 python-all arm64 2.7.16-1 [1044 B] Get: 61 http://deb.debian.org/debian buster/main arm64 python-pkg-resources all 40.8.0-1 [182 kB] Get: 62 http://deb.debian.org/debian buster/main arm64 python-nose all 1.3.7-4 [132 kB] Get: 63 http://deb.debian.org/debian buster/main arm64 python-setuptools all 40.8.0-1 [382 kB] Get: 64 http://deb.debian.org/debian buster/main arm64 python3-all arm64 3.7.3-1 [1068 B] Get: 65 http://deb.debian.org/debian buster/main arm64 python3-pkg-resources all 40.8.0-1 [153 kB] Get: 66 http://deb.debian.org/debian buster/main arm64 python3-nose all 1.3.7-4 [132 kB] Get: 67 http://deb.debian.org/debian buster/main arm64 python3-setuptools all 40.8.0-1 [306 kB] Fetched 30.1 MB in 2s (18.7 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:arm64. (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 ... 19168 files and directories currently installed.) Preparing to unpack .../00-libbsd0_0.9.1-2_arm64.deb ... Unpacking libbsd0:arm64 (0.9.1-2) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../01-bsdmainutils_11.1.2+b1_arm64.deb ... Unpacking bsdmainutils (11.1.2+b1) ... Selecting previously unselected package libuchardet0:arm64. Preparing to unpack .../02-libuchardet0_0.0.6-3_arm64.deb ... Unpacking libuchardet0:arm64 (0.0.6-3) ... Selecting previously unselected package groff-base. Preparing to unpack .../03-groff-base_1.22.4-3_arm64.deb ... Unpacking groff-base (1.22.4-3) ... Selecting previously unselected package libpipeline1:arm64. Preparing to unpack .../04-libpipeline1_1.5.1-2_arm64.deb ... Unpacking libpipeline1:arm64 (1.5.1-2) ... Selecting previously unselected package man-db. Preparing to unpack .../05-man-db_2.8.5-2_arm64.deb ... Unpacking man-db (2.8.5-2) ... Selecting previously unselected package libpython2.7-minimal:arm64. Preparing to unpack .../06-libpython2.7-minimal_2.7.16-2+deb10u1_arm64.deb ... Unpacking libpython2.7-minimal:arm64 (2.7.16-2+deb10u1) ... Selecting previously unselected package python2.7-minimal. Preparing to unpack .../07-python2.7-minimal_2.7.16-2+deb10u1_arm64.deb ... Unpacking python2.7-minimal (2.7.16-2+deb10u1) ... Selecting previously unselected package python2-minimal. Preparing to unpack .../08-python2-minimal_2.7.16-1_arm64.deb ... Unpacking python2-minimal (2.7.16-1) ... Selecting previously unselected package python-minimal. Preparing to unpack .../09-python-minimal_2.7.16-1_arm64.deb ... Unpacking python-minimal (2.7.16-1) ... Selecting previously unselected package libssl1.1:arm64. Preparing to unpack .../10-libssl1.1_1.1.1d-0+deb10u3_arm64.deb ... Unpacking libssl1.1:arm64 (1.1.1d-0+deb10u3) ... Selecting previously unselected package mime-support. Preparing to unpack .../11-mime-support_3.62_all.deb ... Unpacking mime-support (3.62) ... Selecting previously unselected package libexpat1:arm64. Preparing to unpack .../12-libexpat1_2.2.6-2+deb10u1_arm64.deb ... Unpacking libexpat1:arm64 (2.2.6-2+deb10u1) ... Selecting previously unselected package readline-common. Preparing to unpack .../13-readline-common_7.0-5_all.deb ... Unpacking readline-common (7.0-5) ... Selecting previously unselected package libreadline7:arm64. Preparing to unpack .../14-libreadline7_7.0-5_arm64.deb ... Unpacking libreadline7:arm64 (7.0-5) ... Selecting previously unselected package libpython2.7-stdlib:arm64. Preparing to unpack .../15-libpython2.7-stdlib_2.7.16-2+deb10u1_arm64.deb ... Unpacking libpython2.7-stdlib:arm64 (2.7.16-2+deb10u1) ... Selecting previously unselected package python2.7. Preparing to unpack .../16-python2.7_2.7.16-2+deb10u1_arm64.deb ... Unpacking python2.7 (2.7.16-2+deb10u1) ... Selecting previously unselected package libpython2-stdlib:arm64. Preparing to unpack .../17-libpython2-stdlib_2.7.16-1_arm64.deb ... Unpacking libpython2-stdlib:arm64 (2.7.16-1) ... Selecting previously unselected package libpython-stdlib:arm64. Preparing to unpack .../18-libpython-stdlib_2.7.16-1_arm64.deb ... Unpacking libpython-stdlib:arm64 (2.7.16-1) ... Setting up libpython2.7-minimal:arm64 (2.7.16-2+deb10u1) ... Setting up python2.7-minimal (2.7.16-2+deb10u1) ... Setting up python2-minimal (2.7.16-1) ... Selecting previously unselected package python2. (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 ... 20631 files and directories currently installed.) Preparing to unpack .../python2_2.7.16-1_arm64.deb ... Unpacking python2 (2.7.16-1) ... Setting up python-minimal (2.7.16-1) ... Selecting previously unselected package python. (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 ... 20664 files and directories currently installed.) Preparing to unpack .../python_2.7.16-1_arm64.deb ... Unpacking python (2.7.16-1) ... Selecting previously unselected package libpython3.7-minimal:arm64. Preparing to unpack .../libpython3.7-minimal_3.7.3-2+deb10u2_arm64.deb ... Unpacking libpython3.7-minimal:arm64 (3.7.3-2+deb10u2) ... Selecting previously unselected package python3.7-minimal. Preparing to unpack .../python3.7-minimal_3.7.3-2+deb10u2_arm64.deb ... Unpacking python3.7-minimal (3.7.3-2+deb10u2) ... Setting up libssl1.1:arm64 (1.1.1d-0+deb10u3) ... Setting up libpython3.7-minimal:arm64 (3.7.3-2+deb10u2) ... Setting up libexpat1:arm64 (2.2.6-2+deb10u1) ... Setting up python3.7-minimal (3.7.3-2+deb10u2) ... 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 ... 20918 files and directories currently installed.) Preparing to unpack .../python3-minimal_3.7.3-1_arm64.deb ... Unpacking python3-minimal (3.7.3-1) ... Selecting previously unselected package libmpdec2:arm64. Preparing to unpack .../libmpdec2_2.4.2-2_arm64.deb ... Unpacking libmpdec2:arm64 (2.4.2-2) ... Selecting previously unselected package libpython3.7-stdlib:arm64. Preparing to unpack .../libpython3.7-stdlib_3.7.3-2+deb10u2_arm64.deb ... Unpacking libpython3.7-stdlib:arm64 (3.7.3-2+deb10u2) ... Selecting previously unselected package python3.7. Preparing to unpack .../python3.7_3.7.3-2+deb10u2_arm64.deb ... Unpacking python3.7 (3.7.3-2+deb10u2) ... Selecting previously unselected package libpython3-stdlib:arm64. Preparing to unpack .../libpython3-stdlib_3.7.3-1_arm64.deb ... Unpacking libpython3-stdlib:arm64 (3.7.3-1) ... Setting up python3-minimal (3.7.3-1) ... 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 ... 21330 files and directories currently installed.) Preparing to unpack .../00-python3_3.7.3-1_arm64.deb ... Unpacking python3 (3.7.3-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../01-sensible-utils_0.0.12_all.deb ... Unpacking sensible-utils (0.0.12) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../02-libmagic-mgc_1%3a5.35-4+deb10u1_arm64.deb ... Unpacking libmagic-mgc (1:5.35-4+deb10u1) ... Selecting previously unselected package libmagic1:arm64. Preparing to unpack .../03-libmagic1_1%3a5.35-4+deb10u1_arm64.deb ... Unpacking libmagic1:arm64 (1:5.35-4+deb10u1) ... Selecting previously unselected package file. Preparing to unpack .../04-file_1%3a5.35-4+deb10u1_arm64.deb ... Unpacking file (1:5.35-4+deb10u1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../05-gettext-base_0.19.8.1-9_arm64.deb ... Unpacking gettext-base (0.19.8.1-9) ... Selecting previously unselected package libsigsegv2:arm64. Preparing to unpack .../06-libsigsegv2_2.12-2_arm64.deb ... Unpacking libsigsegv2:arm64 (2.12-2) ... Selecting previously unselected package m4. Preparing to unpack .../07-m4_1.4.18-2_arm64.deb ... Unpacking m4 (1.4.18-2) ... Selecting previously unselected package autoconf. Preparing to unpack .../08-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../09-autotools-dev_20180224.1_all.deb ... Unpacking autotools-dev (20180224.1) ... Selecting previously unselected package automake. Preparing to unpack .../10-automake_1%3a1.16.1-4_all.deb ... Unpacking automake (1:1.16.1-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../11-autopoint_0.19.8.1-9_all.deb ... Unpacking autopoint (0.19.8.1-9) ... Selecting previously unselected package libtool. Preparing to unpack .../12-libtool_2.4.6-9_all.deb ... Unpacking libtool (2.4.6-9) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../13-dh-autoreconf_19_all.deb ... Unpacking dh-autoreconf (19) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../14-libarchive-zip-perl_1.64-1_all.deb ... Unpacking libarchive-zip-perl (1.64-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../15-libfile-stripnondeterminism-perl_1.1.2-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.1.2-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../16-dh-strip-nondeterminism_1.1.2-1_all.deb ... Unpacking dh-strip-nondeterminism (1.1.2-1) ... Selecting previously unselected package libelf1:arm64. Preparing to unpack .../17-libelf1_0.176-1.1_arm64.deb ... Unpacking libelf1:arm64 (0.176-1.1) ... Selecting previously unselected package dwz. Preparing to unpack .../18-dwz_0.12-3_arm64.deb ... Unpacking dwz (0.12-3) ... Selecting previously unselected package libglib2.0-0:arm64. Preparing to unpack .../19-libglib2.0-0_2.58.3-2+deb10u2_arm64.deb ... Unpacking libglib2.0-0:arm64 (2.58.3-2+deb10u2) ... Selecting previously unselected package libicu63:arm64. Preparing to unpack .../20-libicu63_63.1-6+deb10u1_arm64.deb ... Unpacking libicu63:arm64 (63.1-6+deb10u1) ... Selecting previously unselected package libxml2:arm64. Preparing to unpack .../21-libxml2_2.9.4+dfsg1-7+b3_arm64.deb ... Unpacking libxml2:arm64 (2.9.4+dfsg1-7+b3) ... Selecting previously unselected package libcroco3:arm64. Preparing to unpack .../22-libcroco3_0.6.12-3_arm64.deb ... Unpacking libcroco3:arm64 (0.6.12-3) ... Selecting previously unselected package libncurses6:arm64. Preparing to unpack .../23-libncurses6_6.1+20181013-2+deb10u2_arm64.deb ... Unpacking libncurses6:arm64 (6.1+20181013-2+deb10u2) ... Selecting previously unselected package gettext. Preparing to unpack .../24-gettext_0.19.8.1-9_arm64.deb ... Unpacking gettext (0.19.8.1-9) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../25-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 .../26-po-debconf_1.0.21_all.deb ... Unpacking po-debconf (1.0.21) ... Selecting previously unselected package debhelper. Preparing to unpack .../27-debhelper_12.1.1_all.deb ... Unpacking debhelper (12.1.1) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../28-python3-lib2to3_3.7.3-1_all.deb ... Unpacking python3-lib2to3 (3.7.3-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../29-python3-distutils_3.7.3-1_all.deb ... Unpacking python3-distutils (3.7.3-1) ... Selecting previously unselected package dh-python. Preparing to unpack .../30-dh-python_3.20190308_all.deb ... Unpacking dh-python (3.20190308) ... Selecting previously unselected package python-all. Preparing to unpack .../31-python-all_2.7.16-1_arm64.deb ... Unpacking python-all (2.7.16-1) ... Selecting previously unselected package python-pkg-resources. Preparing to unpack .../32-python-pkg-resources_40.8.0-1_all.deb ... Unpacking python-pkg-resources (40.8.0-1) ... Selecting previously unselected package python-nose. Preparing to unpack .../33-python-nose_1.3.7-4_all.deb ... Unpacking python-nose (1.3.7-4) ... Selecting previously unselected package python-setuptools. Preparing to unpack .../34-python-setuptools_40.8.0-1_all.deb ... Unpacking python-setuptools (40.8.0-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../35-python3-all_3.7.3-1_arm64.deb ... Unpacking python3-all (3.7.3-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../36-python3-pkg-resources_40.8.0-1_all.deb ... Unpacking python3-pkg-resources (40.8.0-1) ... Selecting previously unselected package python3-nose. Preparing to unpack .../37-python3-nose_1.3.7-4_all.deb ... Unpacking python3-nose (1.3.7-4) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../38-python3-setuptools_40.8.0-1_all.deb ... Unpacking python3-setuptools (40.8.0-1) ... Setting up libpipeline1:arm64 (1.5.1-2) ... Setting up mime-support (3.62) ... Setting up libmagic-mgc (1:5.35-4+deb10u1) ... Setting up libarchive-zip-perl (1.64-1) ... Setting up libglib2.0-0:arm64 (2.58.3-2+deb10u2) ... No schema files found: doing nothing. Setting up libmagic1:arm64 (1:5.35-4+deb10u1) ... Setting up gettext-base (0.19.8.1-9) ... Setting up file (1:5.35-4+deb10u1) ... Setting up libicu63:arm64 (63.1-6+deb10u1) ... Setting up autotools-dev (20180224.1) ... Setting up libncurses6:arm64 (6.1+20181013-2+deb10u2) ... Setting up libsigsegv2:arm64 (2.12-2) ... Setting up autopoint (0.19.8.1-9) ... Setting up sensible-utils (0.0.12) ... Setting up libuchardet0:arm64 (0.0.6-3) ... Setting up libmpdec2:arm64 (2.4.2-2) ... Setting up libbsd0:arm64 (0.9.1-2) ... Setting up libelf1:arm64 (0.176-1.1) ... Setting up readline-common (7.0-5) ... Setting up libxml2:arm64 (2.9.4+dfsg1-7+b3) ... Setting up libreadline7:arm64 (7.0-5) ... Setting up libfile-stripnondeterminism-perl (1.1.2-1) ... Setting up libpython3.7-stdlib:arm64 (3.7.3-2+deb10u2) ... Setting up libtool (2.4.6-9) ... Setting up m4 (1.4.18-2) ... Setting up libpython2.7-stdlib:arm64 (2.7.16-2+deb10u1) ... Setting up bsdmainutils (11.1.2+b1) ... update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode Setting up libcroco3:arm64 (0.6.12-3) ... Setting up autoconf (2.69-11) ... Setting up dwz (0.12-3) ... Setting up groff-base (1.22.4-3) ... Setting up libpython3-stdlib:arm64 (3.7.3-1) ... Setting up automake (1:1.16.1-4) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up python3.7 (3.7.3-2+deb10u2) ... Setting up gettext (0.19.8.1-9) ... Setting up python2.7 (2.7.16-2+deb10u1) ... Setting up libpython2-stdlib:arm64 (2.7.16-1) ... Setting up python3 (3.7.3-1) ... Setting up man-db (2.8.5-2) ... Not building database; man-db/auto-update is not 'true'. Setting up python2 (2.7.16-1) ... Setting up intltool-debian (0.35.0+20060710.5) ... Setting up libpython-stdlib:arm64 (2.7.16-1) ... Setting up python3-lib2to3 (3.7.3-1) ... Setting up python (2.7.16-1) ... Setting up python3-pkg-resources (40.8.0-1) ... Setting up python3-distutils (3.7.3-1) ... Setting up dh-python (3.20190308) ... Setting up python3-setuptools (40.8.0-1) ... Setting up python-pkg-resources (40.8.0-1) ... Setting up po-debconf (1.0.21) ... Setting up python3-all (3.7.3-1) ... Setting up python-all (2.7.16-1) ... Setting up python3-nose (1.3.7-4) ... Setting up python-setuptools (40.8.0-1) ... Setting up python-nose (1.3.7-4) ... Setting up debhelper (12.1.1) ... Setting up dh-autoreconf (19) ... Setting up dh-strip-nondeterminism (1.1.2-1) ... Processing triggers for libc-bin (2.28-10) ... 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.23-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.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b dpkg-buildpackage: info: source package python-passlib dpkg-buildpackage: info: source version 1.7.1-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Barry Warsaw dpkg-source --before-build . dpkg-buildpackage: info: host architecture arm64 fakeroot debian/rules clean dh clean --with python2,python3 --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:217: python2.7 setup.py clean running clean removing '/build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build' (and everything under it) 'build/bdist.linux-arm64' does not exist -- can't clean it 'build/scripts-2.7' does not exist -- can't clean it I: pybuild base:217: python3.7 setup.py clean running clean removing '/build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build' (and everything under it) 'build/bdist.linux-arm64' does not exist -- can't clean it 'build/scripts-3.7' does not exist -- can't clean it dh_clean -O--buildsystem=pybuild debian/rules build dh build --with python2,python3 --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild I: pybuild base:217: python2.7 setup.py config running config I: pybuild base:217: python3.7 setup.py config running config dh_auto_build -O--buildsystem=pybuild I: pybuild base:217: /usr/bin/python setup.py build running build running build_py creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/win32.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/apache.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/totp.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/apps.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/registry.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/hash.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/pwd.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/exc.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/hosts.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/context.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/ifc.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib copying passlib/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_context.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_context_deprecated.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_crypto_des.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/__main__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_registry.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_crypto_scrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_ext_django.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_win32.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/tox_support.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_hosts.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_crypto_builtin_md4.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/utils.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_django.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/backports.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_cisco.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_handlers.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_bcrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_argon2.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/_test_bad_register.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_totp.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_ext_django_source.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_utils_pbkdf2.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_apps.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_pbkdf2.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_utils.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_apache.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_crypto_digest.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_pwd.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_utils_md4.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_utils_handlers.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_scrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/misc.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/sun_md5_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/cisco.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/mysql.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/phpass.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/pbkdf2.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/django.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/postgres.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/windows.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/digests.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/mssql.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/sha2_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/md5_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/bcrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/argon2.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/sha1_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/des_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/roundup.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/scram.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/oracle.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/scrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/ldap_digests.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers copying passlib/handlers/fshp.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_setup copying passlib/_setup/stamp.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_setup copying passlib/_setup/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_setup creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto copying passlib/crypto/des.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto copying passlib/crypto/digest.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto copying passlib/crypto/_md4.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto copying passlib/crypto/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext copying passlib/ext/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils copying passlib/utils/des.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils copying passlib/utils/pbkdf2.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils copying passlib/utils/binary.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils copying passlib/utils/decor.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils copying passlib/utils/handlers.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils copying passlib/utils/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils copying passlib/utils/md4.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_gen_files.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_builtin.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_salsa.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/_gen_files.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/unrolled.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/base.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext/django copying passlib/ext/django/models.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext/django copying passlib/ext/django/utils.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext/django copying passlib/ext/django/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext/django creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/compat copying passlib/utils/compat/_ordered_dict.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/compat copying passlib/utils/compat/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/compat creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data creating /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_long.txt -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/bip39.txt -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_prefixed.txt -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_short.txt -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets copying passlib/tests/sample1c.cfg -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/sample_config_1s.cfg -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/sample1.cfg -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests copying passlib/tests/sample1b.cfg -> /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests I: pybuild base:217: /usr/bin/python3 setup.py build running build running build_py creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/win32.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/apache.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/totp.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/apps.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/registry.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/hash.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/pwd.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/exc.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/hosts.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/context.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/ifc.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib copying passlib/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_context.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_context_deprecated.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_crypto_des.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/__main__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_registry.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_crypto_scrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_ext_django.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_win32.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/tox_support.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_hosts.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_crypto_builtin_md4.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/utils.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_django.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/backports.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_cisco.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_handlers.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_bcrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_argon2.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/_test_bad_register.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_totp.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_ext_django_source.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_utils_pbkdf2.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_apps.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_pbkdf2.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_utils.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_apache.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_crypto_digest.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_pwd.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_utils_md4.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_utils_handlers.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/test_handlers_scrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/misc.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/sun_md5_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/cisco.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/mysql.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/phpass.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/pbkdf2.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/django.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/postgres.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/windows.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/digests.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/mssql.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/sha2_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/md5_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/bcrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/argon2.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/sha1_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/des_crypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/roundup.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/scram.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/oracle.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/scrypt.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/ldap_digests.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers copying passlib/handlers/fshp.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_setup copying passlib/_setup/stamp.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_setup copying passlib/_setup/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_setup creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto copying passlib/crypto/des.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto copying passlib/crypto/digest.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto copying passlib/crypto/_md4.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto copying passlib/crypto/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext copying passlib/ext/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils copying passlib/utils/des.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils copying passlib/utils/pbkdf2.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils copying passlib/utils/binary.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils copying passlib/utils/decor.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils copying passlib/utils/handlers.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils copying passlib/utils/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils copying passlib/utils/md4.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_gen_files.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_builtin.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_salsa.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/_gen_files.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/unrolled.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/base.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext/django copying passlib/ext/django/models.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext/django copying passlib/ext/django/utils.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext/django copying passlib/ext/django/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext/django creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/compat copying passlib/utils/compat/_ordered_dict.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/compat copying passlib/utils/compat/__init__.py -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/compat creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data creating /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_long.txt -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/bip39.txt -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_prefixed.txt -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_short.txt -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets copying passlib/tests/sample1c.cfg -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/sample_config_1s.cfg -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/sample1.cfg -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests copying passlib/tests/sample1b.cfg -> /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests debian/rules override_dh_auto_test make[1]: Entering directory '/build/python-passlib-1.7.1' dh_auto_test -- --system=custom --test-args="{interpreter} setup.py test" I: pybuild base:217: python2.7 setup.py test running test running egg_info writing requirements to passlib.egg-info/requires.txt writing passlib.egg-info/PKG-INFO writing top-level names to passlib.egg-info/top_level.txt writing dependency_links to passlib.egg-info/dependency_links.txt 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.1/passlib/crypto/scrypt/__init__.py:127: PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower than is required for adequate security. Installing scrypt support (via 'pip install scrypt') is strongly recommended "is strongly recommended" % slowdown, exc.PasslibSecurityWarning) 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 ... /build/python-passlib-1.7.1/passlib/apache.py:717: PasslibSecurityWarning: HtpasswdFile: no bcrypt backends available, using fallback for default scheme 'portable' exc.PasslibSecurityWarning) 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_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_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 ... ok 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 ... SKIP: no other backends found 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_config (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test hashing interface ... 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_config (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test hashing interface ... 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_71_alternates (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided 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 ... ok test_02_config_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic hash-string workflow. ... ok 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 ... ok test_04_hash_types (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known hashes ... ok test_71_alternates (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided test_72_configs (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string hashes are rejected ... ok 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) ... ok 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: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable 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: handler doesn't derive from HasManyIdents 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 ... ok 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() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok 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 ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- rounds ... ok 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 ... ok 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 ... ok test_needs_update_w_even_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): needs_update() should flag even rounds ... ok 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: truncate_size not set 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) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin 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_71_alternates (passlib.tests.test_handlers.crypt16_test) crypt16: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_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_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_71_alternates (passlib.tests.test_handlers.fshp_test) fshp: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_71_alternates (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.htdigest_test) htdigest: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_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_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_71_alternates (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_71_alternates (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.lmhash_test) lmhash: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_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_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_71_alternates (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.msdcc_test) msdcc: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers.mysql323_test) mysql323: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.mysql41_test) mysql41: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.nthash_test) nthash: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.oracle10_test) oracle10: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.oracle11_test) oracle11: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.phpass_test) phpass: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.plaintext_test) plaintext: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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 ... ok test_02_config_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic hash-string workflow. ... ok 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 ... ok test_04_hash_types (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known hashes ... ok test_71_alternates (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided test_72_configs (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): fuzz testing -- random passwords and options ... ok 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: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable 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: handler doesn't derive from HasManyIdents 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 ... ok 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() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok 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 ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- rounds ... ok 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 ... ok 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 ... ok 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: truncate_size not set 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) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): Handler.using() -- default_salt_size ... ok 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_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_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_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_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_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_71_alternates (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_71_alternates (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_71_alternates (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known alternate hashes ... SKIP: no alternate hashes provided 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 ... ok test_02_config_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic hash-string workflow. ... ok 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 ... ok test_04_hash_types (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known hashes ... ok test_71_alternates (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided test_72_configs (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): fuzz testing -- random passwords and options ... ok 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: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok 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 ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- default_rounds ... ok 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 ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok 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: truncate_size not set 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) ... ok test_truncate_error_setting (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): Handler.using() -- default_salt_size ... ok test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok test_host_context (passlib.tests.test_hosts.HostsTest) ... ok test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok 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_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_71_alternates (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided 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 2967 tests in 301.984s OK (skipped=1254) I: pybuild base:217: python3.7 setup.py test running test 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.1/passlib/crypto/scrypt/__init__.py:127: PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower than is required for adequate security. Installing scrypt support (via 'pip install scrypt') is strongly recommended "is strongly recommended" % slowdown, exc.PasslibSecurityWarning) /build/python-passlib-1.7.1/passlib/tests/test_apache.py:151: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("update\(\) is deprecated"): /build/python-passlib-1.7.1/passlib/tests/test_apache.py:221: DeprecationWarning: invalid escape sequence \( with self.assertWarningList(["verify\(\) is deprecated"]*2): /build/python-passlib-1.7.1/passlib/tests/test_apache.py:311: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("find\(\) is deprecated"): /build/python-passlib-1.7.1/passlib/tests/test_apache.py:488: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("update\(\) is deprecated"): /build/python-passlib-1.7.1/passlib/tests/test_apache.py:522: DeprecationWarning: invalid escape sequence \( with self.assertWarningList(["verify\(\) is deprecated"]*2): /build/python-passlib-1.7.1/passlib/tests/test_apache.py:610: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("find\(\) is deprecated"): /build/python-passlib-1.7.1/passlib/apache.py:85: DeprecationWarning: invalid escape sequence \* """ /build/python-passlib-1.7.1/passlib/apache.py:102: DeprecationWarning: invalid escape sequence \* """ /build/python-passlib-1.7.1/passlib/context.py:231: DeprecationWarning: invalid escape sequence \; elif any(c in source for c in "\n\r\t") or not source.strip(" \t./\;:"): /build/python-passlib-1.7.1/passlib/context.py:2240: DeprecationWarning: invalid escape sequence \* """ /build/python-passlib-1.7.1/passlib/context.py:2323: DeprecationWarning: invalid escape sequence \* """ /build/python-passlib-1.7.1/passlib/context.py:2406: DeprecationWarning: invalid escape sequence \* """ /build/python-passlib-1.7.1/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.1/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.1/passlib/tests/test_ext_django.py:648: DeprecationWarning: invalid escape sequence \. with self.assertWarningList("another library has patched.*User\.set_password"): /build/python-passlib-1.7.1/passlib/tests/test_handlers.py:1391: DeprecationWarning: invalid escape sequence \d ("freebsd(9|1\d)|linux", True), /build/python-passlib-1.7.1/passlib/tests/test_handlers.py:1629: DeprecationWarning: invalid escape sequence \( warnings.filterwarnings("ignore", "passing settings to .*.hash\(\) is deprecated") /build/python-passlib-1.7.1/passlib/pwd.py:363: DeprecationWarning: invalid escape sequence \* """ /build/python-passlib-1.7.1/passlib/pwd.py:616: DeprecationWarning: invalid escape sequence \* """ /build/python-passlib-1.7.1/passlib/pwd.py:8: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working from collections import defaultdict, MutableMapping /build/python-passlib-1.7.1/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 ... /build/python-passlib-1.7.1/passlib/apache.py:717: PasslibSecurityWarning: HtpasswdFile: no bcrypt backends available, using fallback for default scheme 'portable' exc.PasslibSecurityWarning) 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_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_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 ... ok 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 ... SKIP: no other backends found 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_config (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test hashing interface ... 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_config (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test hashing interface ... 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 ... /build/python-passlib-1.7.1/passlib/utils/__init__.py:278: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working if isinstance(source, collections.Sequence): ok 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_71_alternates (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided 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 ... ok test_02_config_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic hash-string workflow. ... ok 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 ... ok test_04_hash_types (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known hashes ... ok test_71_alternates (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided test_72_configs (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string hashes are rejected ... ok 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) ... ok 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: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable 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: handler doesn't derive from HasManyIdents 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 ... ok 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() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok 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 ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- rounds ... ok 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 ... ok 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 ... ok test_needs_update_w_even_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): needs_update() should flag even rounds ... ok 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: truncate_size not set 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) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin 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_71_alternates (passlib.tests.test_handlers.crypt16_test) crypt16: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_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_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_71_alternates (passlib.tests.test_handlers.fshp_test) fshp: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_71_alternates (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.htdigest_test) htdigest: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_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_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_71_alternates (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_71_alternates (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.lmhash_test) lmhash: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_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_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_71_alternates (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.msdcc_test) msdcc: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers.mysql323_test) mysql323: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.mysql41_test) mysql41: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.nthash_test) nthash: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.oracle10_test) oracle10: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.oracle11_test) oracle11: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.phpass_test) phpass: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.plaintext_test) plaintext: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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 ... ok test_02_config_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic hash-string workflow. ... ok 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 ... ok test_04_hash_types (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known hashes ... ok test_71_alternates (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided test_72_configs (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): fuzz testing -- random passwords and options ... ok 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: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable 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: handler doesn't derive from HasManyIdents 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 ... ok 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() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok 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 ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- rounds ... ok 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 ... ok 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 ... ok 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: truncate_size not set 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) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): Handler.using() -- default_salt_size ... ok 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_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_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_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_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_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_71_alternates (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_71_alternates (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided 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_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_71_alternates (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known alternate hashes ... ok 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_71_alternates (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known alternate hashes ... SKIP: no alternate hashes provided 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 ... ok test_02_config_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic hash-string workflow. ... ok 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 ... ok test_04_hash_types (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known hashes ... ok test_71_alternates (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided test_72_configs (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): fuzz testing -- random passwords and options ... ok 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: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok 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 ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- default_rounds ... ok 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 ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok 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: truncate_size not set 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) ... ok test_truncate_error_setting (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): Handler.using() -- default_salt_size ... ok test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok test_host_context (passlib.tests.test_hosts.HostsTest) ... ok test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok 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() ... /build/python-passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead time.clock(), /build/python-passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead time.clock(), /build/python-passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead time.clock(), ok 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_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_71_alternates (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided 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_71_alternates (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided 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 2967 tests in 399.222s OK (skipped=1254) make[1]: Leaving directory '/build/python-passlib-1.7.1' fakeroot debian/rules binary dh binary --with python2,python3 --buildsystem=pybuild dh_testroot -O--buildsystem=pybuild dh_prep -O--buildsystem=pybuild dh_auto_install -O--buildsystem=pybuild I: pybuild base:217: /usr/bin/python setup.py install --root /build/python-passlib-1.7.1/debian/python-passlib running install running build running build_py running install_lib creating /build/python-passlib-1.7.1/debian/python-passlib/usr creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7 creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_data creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets/eff_short.txt -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets/eff_prefixed.txt -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets/bip39.txt -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_data/wordsets/eff_long.txt -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_data/wordsets creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/compat/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/compat/_ordered_dict.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/md4.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/handlers.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/decor.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/binary.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/pbkdf2.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/utils/des.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext/django/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext/django/utils.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext/django/models.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ext/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish/base.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish/unrolled.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_blowfish/_gen_files.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt/_salsa.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt/_builtin.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/scrypt/_gen_files.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/_md4.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/digest.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/crypto/des.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_setup copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_setup/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_setup copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/_setup/stamp.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_setup creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/fshp.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/ldap_digests.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/scrypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/oracle.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/scram.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/roundup.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/des_crypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/sha1_crypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/argon2.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/bcrypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/md5_crypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/sha2_crypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/mssql.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/digests.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/windows.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/postgres.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/django.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/pbkdf2.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/phpass.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/mysql.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/cisco.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/sun_md5_crypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/handlers/misc.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers creating /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/sample1b.cfg -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/sample1.cfg -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/sample_config_1s.cfg -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/sample1c.cfg -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_handlers_scrypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_utils_handlers.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_utils_md4.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_pwd.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_crypto_digest.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_apache.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_utils.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_handlers_pbkdf2.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_apps.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_utils_pbkdf2.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_ext_django_source.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_totp.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/_test_bad_register.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_handlers_argon2.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_handlers_bcrypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_handlers.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_handlers_cisco.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/backports.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_handlers_django.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/utils.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_crypto_builtin_md4.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_hosts.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/tox_support.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_win32.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_ext_django.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_crypto_scrypt.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_registry.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/__main__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_crypto_des.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_context_deprecated.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/tests/test_context.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/__init__.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/ifc.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/context.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/hosts.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/exc.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/pwd.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/hash.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/registry.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/apps.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/totp.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/apache.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython2_2.7_passlib/build/passlib/win32.py -> /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/compat/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/md4.py to md4.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/handlers.py to handlers.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/decor.py to decor.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/binary.py to binary.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/pbkdf2.py to pbkdf2.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/utils/des.py to des.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext/django/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext/django/utils.py to utils.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext/django/models.py to models.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ext/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish/base.py to base.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt/_salsa.py to _salsa.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt/_builtin.py to _builtin.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/_md4.py to _md4.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/digest.py to digest.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/crypto/des.py to des.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_setup/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/_setup/stamp.py to stamp.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/fshp.py to fshp.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/ldap_digests.py to ldap_digests.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/scrypt.py to scrypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/oracle.py to oracle.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/scram.py to scram.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/roundup.py to roundup.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/des_crypt.py to des_crypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/argon2.py to argon2.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/bcrypt.py to bcrypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/md5_crypt.py to md5_crypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/mssql.py to mssql.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/digests.py to digests.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/windows.py to windows.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/postgres.py to postgres.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/django.py to django.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/pbkdf2.py to pbkdf2.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/phpass.py to phpass.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/mysql.py to mysql.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/cisco.py to cisco.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/handlers/misc.py to misc.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_utils_md4.py to test_utils_md4.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_pwd.py to test_pwd.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_apache.py to test_apache.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_utils.py to test_utils.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_apps.py to test_apps.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_totp.py to test_totp.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/_test_bad_register.py to _test_bad_register.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_handlers.py to test_handlers.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/backports.py to backports.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_handlers_django.py to test_handlers_django.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/utils.py to utils.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_hosts.py to test_hosts.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/tox_support.py to tox_support.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_win32.py to test_win32.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_ext_django.py to test_ext_django.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_registry.py to test_registry.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/__main__.py to __main__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_crypto_des.py to test_crypto_des.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/tests/test_context.py to test_context.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/__init__.py to __init__.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/ifc.py to ifc.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/context.py to context.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/hosts.py to hosts.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/exc.py to exc.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/pwd.py to pwd.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/hash.py to hash.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/registry.py to registry.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/apps.py to apps.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/totp.py to totp.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/apache.py to apache.pyc byte-compiling /build/python-passlib-1.7.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib/win32.py to win32.pyc running install_egg_info running egg_info writing requirements to passlib.egg-info/requires.txt writing passlib.egg-info/PKG-INFO writing top-level names to passlib.egg-info/top_level.txt writing dependency_links to passlib.egg-info/dependency_links.txt 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.1/debian/python-passlib/usr/lib/python2.7/dist-packages/passlib-1.7.1.egg-info Skipping SOURCES.txt running install_scripts I: pybuild base:217: /usr/bin/python3 setup.py install --root /build/python-passlib-1.7.1/debian/python3-passlib running install running build running build_py running install_lib creating /build/python-passlib-1.7.1/debian/python3-passlib/usr creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7 creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_data creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets/eff_short.txt -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets/eff_prefixed.txt -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets/bip39.txt -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_data/wordsets copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_data/wordsets/eff_long.txt -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_data/wordsets creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/compat/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/compat/_ordered_dict.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/compat copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/md4.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/handlers.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/decor.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/binary.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/pbkdf2.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/utils/des.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext/django/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext/django/utils.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext/django/models.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext/django copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ext/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish/base.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish/unrolled.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_blowfish/_gen_files.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt/_salsa.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt/_builtin.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/scrypt/_gen_files.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/_md4.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/digest.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/crypto/des.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_setup copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_setup/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_setup copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/_setup/stamp.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_setup creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/fshp.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/ldap_digests.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/scrypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/oracle.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/scram.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/roundup.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/des_crypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/sha1_crypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/argon2.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/bcrypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/md5_crypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/sha2_crypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/mssql.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/digests.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/windows.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/postgres.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/django.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/pbkdf2.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/phpass.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/mysql.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/cisco.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/sun_md5_crypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/handlers/misc.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers creating /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/sample1b.cfg -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/sample1.cfg -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/sample_config_1s.cfg -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/sample1c.cfg -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_handlers_scrypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_utils_handlers.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_utils_md4.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_pwd.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_crypto_digest.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_apache.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_utils.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_handlers_pbkdf2.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_apps.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_utils_pbkdf2.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_ext_django_source.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_totp.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/_test_bad_register.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_handlers_argon2.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_handlers_bcrypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_handlers.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_handlers_cisco.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/backports.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_handlers_django.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/utils.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_crypto_builtin_md4.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_hosts.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/tox_support.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_win32.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_ext_django.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_crypto_scrypt.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_registry.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/__main__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_crypto_des.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_context_deprecated.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/tests/test_context.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/__init__.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/ifc.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/context.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/hosts.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/exc.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/pwd.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/hash.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/registry.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/apps.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/totp.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/apache.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib copying /build/python-passlib-1.7.1/.pybuild/cpython3_3.7_passlib/build/passlib/win32.py -> /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/compat/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/md4.py to md4.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/handlers.py to handlers.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/decor.py to decor.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/binary.py to binary.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/pbkdf2.py to pbkdf2.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/utils/des.py to des.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext/django/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext/django/utils.py to utils.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext/django/models.py to models.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ext/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish/base.py to base.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt/_salsa.py to _salsa.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt/_builtin.py to _builtin.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/_md4.py to _md4.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/digest.py to digest.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/crypto/des.py to des.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_setup/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/_setup/stamp.py to stamp.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/fshp.py to fshp.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/ldap_digests.py to ldap_digests.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/scrypt.py to scrypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/oracle.py to oracle.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/scram.py to scram.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/roundup.py to roundup.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/des_crypt.py to des_crypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/argon2.py to argon2.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/bcrypt.py to bcrypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/md5_crypt.py to md5_crypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/mssql.py to mssql.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/digests.py to digests.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/windows.py to windows.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/postgres.py to postgres.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/django.py to django.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/pbkdf2.py to pbkdf2.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/phpass.py to phpass.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/mysql.py to mysql.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/cisco.py to cisco.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/handlers/misc.py to misc.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_utils_md4.py to test_utils_md4.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_pwd.py to test_pwd.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_apache.py to test_apache.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_utils.py to test_utils.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_apps.py to test_apps.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_totp.py to test_totp.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/_test_bad_register.py to _test_bad_register.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_handlers.py to test_handlers.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/backports.py to backports.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_handlers_django.py to test_handlers_django.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/utils.py to utils.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_hosts.py to test_hosts.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/tox_support.py to tox_support.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_win32.py to test_win32.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_ext_django.py to test_ext_django.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_registry.py to test_registry.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/__main__.py to __main__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_crypto_des.py to test_crypto_des.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/tests/test_context.py to test_context.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/__init__.py to __init__.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/ifc.py to ifc.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/context.py to context.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/hosts.py to hosts.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/exc.py to exc.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/pwd.py to pwd.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/hash.py to hash.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/registry.py to registry.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/apps.py to apps.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/totp.py to totp.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/apache.py to apache.cpython-37.pyc byte-compiling /build/python-passlib-1.7.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib/win32.py to win32.cpython-37.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.1/debian/python3-passlib/usr/lib/python3.7/dist-packages/passlib-1.7.1.egg-info Skipping SOURCES.txt running install_scripts dh_installdocs -O--buildsystem=pybuild dh_installchangelogs -O--buildsystem=pybuild dh_python2 -O--buildsystem=pybuild dh_python3 -O--buildsystem=pybuild dh_installinit -O--buildsystem=pybuild dh_perl -O--buildsystem=pybuild dh_link -O--buildsystem=pybuild dh_strip_nondeterminism -O--buildsystem=pybuild dh_compress -O--buildsystem=pybuild dh_fixperms -O--buildsystem=pybuild dh_missing -O--buildsystem=pybuild dh_installdeb -O--buildsystem=pybuild dh_gencontrol -O--buildsystem=pybuild dpkg-gencontrol: warning: Depends field of package python-passlib: substitution variable ${shlibs:Depends} used, but is not defined dpkg-gencontrol: warning: Depends field of package python3-passlib: substitution variable ${shlibs:Depends} used, but is not defined dpkg-gencontrol: warning: package python-passlib: substitution variable ${python:Provides} unused, but is defined dpkg-gencontrol: warning: package python-passlib: substitution variable ${python:Versions} unused, but is defined dh_md5sums -O--buildsystem=pybuild dh_builddeb -O--buildsystem=pybuild dpkg-deb: building package 'python3-passlib' in '../python3-passlib_1.7.1-1_all.deb'. dpkg-deb: building package 'python-passlib' in '../python-passlib_1.7.1-1_all.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary >../python-passlib_1.7.1-1_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) 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/32286 and its subdirectories I: Current time: Thu Aug 13 22:34:48 -12 2020 I: pbuilder-time-stamp: 1597401288