Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/p/python-passlib/python-passlib_1.7.4-1_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/python-passlib-1.7.4-16gb6bty1/python-passlib_1.7.4-1_all.buildinfo Get source package info: python-passlib=1.7.4-1 Source URL: http://snapshot.notset.fr/mr/package/python-passlib/1.7.4-1/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=autoconf=2.69-14 automake=1:1.16.3-2 autopoint=0.21-4 autotools-dev=20180224.1+nmu1 base-files=11 base-passwd=3.5.49 bash=5.1-2+b1 binutils=2.35.2-2 binutils-common=2.35.2-2 binutils-x86-64-linux-gnu=2.35.2-2 bsdextrautils=2.36.1-7 bsdutils=1:2.36.1-7 build-essential=12.9 bzip2=1.0.8-4 coreutils=8.32-4+b1 cpp=4:10.2.1-1 cpp-10=10.2.1-6 dash=0.5.11+git20200708+dd9ef66-5 debconf=1.5.75 debhelper=13.3.3 debianutils=4.11.2 dh-autoreconf=20 dh-python=4.20201102+nmu1 dh-strip-nondeterminism=1.11.0-1 diffutils=1:3.7-5 dpkg=1.20.7.1 dpkg-dev=1.20.7.1 dwz=0.13+20210201-1 file=1:5.39-3 findutils=4.8.0-1 g++=4:10.2.1-1 g++-10=10.2.1-6 gcc=4:10.2.1-1 gcc-10=10.2.1-6 gcc-10-base=10.2.1-6 gettext=0.21-4 gettext-base=0.21-4 grep=3.6-1 groff-base=1.22.4-6 gzip=1.10-3 hostname=3.23 init-system-helpers=1.60 intltool-debian=0.35.0+20060710.5 libacl1=2.2.53-10 libarchive-zip-perl=1.68-1 libasan6=10.2.1-6 libatomic1=10.2.1-6 libattr1=1:2.4.48-6 libaudit-common=1:3.0-2 libaudit1=1:3.0-2 libbinutils=2.35.2-2 libblkid1=2.36.1-7 libbz2-1.0=1.0.8-4 libc-bin=2.31-9 libc-dev-bin=2.31-9 libc6=2.31-9 libc6-dev=2.31-9 libcap-ng0=0.7.9-2.2+b1 libcc1-0=10.2.1-6 libcom-err2=1.46.1-1 libcrypt-dev=1:4.4.17-1 libcrypt1=1:4.4.17-1 libctf-nobfd0=2.35.2-2 libctf0=2.35.2-2 libdb5.3=5.3.28+dfsg1-0.8 libdebconfclient0=0.256 libdebhelper-perl=13.3.3 libdpkg-perl=1.20.7.1 libelf1=0.183-1 libexpat1=2.2.10-2 libffi7=3.3-6 libfile-stripnondeterminism-perl=1.11.0-1 libgcc-10-dev=10.2.1-6 libgcc-s1=10.2.1-6 libgcrypt20=1.8.7-3 libgdbm-compat4=1.19-2 libgdbm6=1.19-2 libgmp10=2:6.2.1+dfsg-1 libgomp1=10.2.1-6 libgpg-error0=1.38-2 libgssapi-krb5-2=1.18.3-4 libicu67=67.1-6 libisl23=0.23-1 libitm1=10.2.1-6 libk5crypto3=1.18.3-4 libkeyutils1=1.6.1-2 libkrb5-3=1.18.3-4 libkrb5support0=1.18.3-4 liblsan0=10.2.1-6 liblz4-1=1.9.3-1 liblzma5=5.2.5-1.0 libmagic-mgc=1:5.39-3 libmagic1=1:5.39-3 libmount1=2.36.1-7 libmpc3=1.2.0-1 libmpdec3=2.5.1-1 libmpfr6=4.1.0-3 libncursesw6=6.2+20201114-2 libnsl-dev=1.3.0-2 libnsl2=1.3.0-2 libpam-modules=1.4.0-6 libpam-modules-bin=1.4.0-6 libpam-runtime=1.4.0-6 libpam0g=1.4.0-6 libpcre2-8-0=10.36-2 libpcre3=2:8.39-13 libperl5.32=5.32.1-3 libpipeline1=1.5.3-1 libpython3-stdlib=3.9.1-1 libpython3.9-minimal=3.9.2-1 libpython3.9-stdlib=3.9.2-1 libquadmath0=10.2.1-6 libreadline8=8.1-1 libseccomp2=2.5.1-1 libselinux1=3.1-3 libsigsegv2=2.13-1 libsmartcols1=2.36.1-7 libsqlite3-0=3.34.1-3 libssl1.1=1.1.1j-1 libstdc++-10-dev=10.2.1-6 libstdc++6=10.2.1-6 libsub-override-perl=0.09-2 libsystemd0=247.3-1 libtinfo6=6.2+20201114-2 libtirpc-common=1.3.1-1 libtirpc-dev=1.3.1-1 libtirpc3=1.3.1-1 libtool=2.4.6-15 libtsan0=10.2.1-6 libubsan1=10.2.1-6 libuchardet0=0.0.7-1 libudev1=247.3-1 libunistring2=0.9.10-4 libuuid1=2.36.1-7 libxml2=2.9.10+dfsg-6.3+b1 libzstd1=1.4.8+dfsg-2 linux-libc-dev=5.10.13-1 login=1:4.8.1-1 lsb-base=11.1.0 m4=1.4.18-5 make=4.3-4 man-db=2.9.4-2 mawk=1.3.4.20200120-2 media-types=4.0.0 ncurses-base=6.2+20201114-2 ncurses-bin=6.2+20201114-2 patch=2.7.6-7 perl=5.32.1-3 perl-base=5.32.1-3 perl-modules-5.32=5.32.1-3 po-debconf=1.0.21+nmu1 python3=3.9.1-1 python3-all=3.9.1-1 python3-distutils=3.9.2-1 python3-lib2to3=3.9.2-1 python3-minimal=3.9.1-1 python3-nose=1.3.7-7 python3-pkg-resources=52.0.0-1 python3-setuptools=52.0.0-1 python3.9=3.9.2-1 python3.9-minimal=3.9.2-1 readline-common=8.1-1 sed=4.7-1 sensible-utils=0.0.14 sysvinit-utils=2.96-6 tar=1.34+dfsg-1 tzdata=2021a-1 util-linux=2.36.1-7 xz-utils=5.2.5-1.0 zlib1g=1:1.2.11.dfsg-2 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210301T023626Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d python-passlib=1.7.4-1 && mkdir -p /build/python-passlib-K62jH9 && dpkg-source --no-check -x /*.dsc /build/python-passlib-K62jH9/python-passlib-1.7.4 && chown -R builduser:builduser /build/python-passlib-K62jH9" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/python-passlib-K62jH9/python-passlib-1.7.4 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1614574722" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/python-passlib-K62jH9 /tmp/python-passlib-1.7.4-16gb6bty1 bullseye /dev/null deb http://snapshot.notset.fr/archive/debian/20210301T023626Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.ATAGxhSMcj as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.ATAGxhSMcj Reading package lists... Building dependency tree... util-linux is already the newest version (2.36.1-7). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 134 kB of archives. After this operation, 397 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20210301T023626Z unstable/main amd64 libfakeroot amd64 1.25.3-1.1 [47.0 kB] Get:2 http://snapshot.notset.fr/archive/debian/20210301T023626Z unstable/main amd64 fakeroot amd64 1.25.3-1.1 [87.0 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 134 kB in 0s (1084 kB/s) Selecting previously unselected package libfakeroot:amd64. (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 ... 4663 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.25.3-1.1_amd64.deb ... Unpacking libfakeroot:amd64 (1.25.3-1.1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.25.3-1.1_amd64.deb ... Unpacking fakeroot (1.25.3-1.1) ... Setting up libfakeroot:amd64 (1.25.3-1.1) ... Setting up fakeroot (1.25.3-1.1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.31-9) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210301T023626Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.ATAGxhSMcj Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm InRelease [81.6 kB] Hit:2 http://snapshot.notset.fr/archive/debian/20210301T023626Z unstable InRelease Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources [11.4 MB] Get:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages [11.1 MB] Fetched 22.6 MB in 21s (1091 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.ATAGxhSMcj I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d python-passlib=1.7.4-1 && mkdir -p /build/python-passlib-K62jH9 && dpkg-source --no-check -x /*.dsc /build/python-passlib-K62jH9/python-passlib-1.7.4 && chown -R builduser:builduser /build/python-passlib-K62jH9"' exec /tmp/mmdebstrap.ATAGxhSMcj Reading package lists... NOTICE: 'python-passlib' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/python-team/packages/python-passlib.git Please use: git clone https://salsa.debian.org/python-team/packages/python-passlib.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 548 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main python-passlib 1.7.4-1 (dsc) [2031 B] Get:2 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main python-passlib 1.7.4-1 (tar) [532 kB] Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main python-passlib 1.7.4-1 (diff) [13.9 kB] Fetched 548 kB in 1s (796 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'python-passlib_1.7.4-1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting python-passlib in /build/python-passlib-K62jH9/python-passlib-1.7.4 dpkg-source: info: unpacking python-passlib_1.7.4.orig.tar.xz dpkg-source: info: unpacking python-passlib_1.7.4-1.debian.tar.xz I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/python-passlib-K62jH9/python-passlib-1.7.4 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1614574722" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.ATAGxhSMcj dpkg-buildpackage: info: source package python-passlib dpkg-buildpackage: info: source version 1.7.4-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Sandro Tosi dpkg-source --before-build . fakeroot debian/rules clean dh clean --with python3 --buildsystem=pybuild dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_auto_clean -O--buildsystem=pybuild dh_auto_clean: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: python3.9 setup.py clean running clean removing '/build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build' (and everything under it) 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.9' does not exist -- can't clean it dh_clean -O--buildsystem=pybuild dh_clean: warning: Compatibility levels before 10 are deprecated (level 9 in use) debian/rules build-indep dh build-indep --with python3 --buildsystem=pybuild dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_update_autotools_config -i -O--buildsystem=pybuild dh_auto_configure -i -O--buildsystem=pybuild dh_auto_configure: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: python3.9 setup.py config running config dh_auto_build -i -O--buildsystem=pybuild dh_auto_build: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: /usr/bin/python3 setup.py build running build running build_py creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/hash.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/registry.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/apache.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/hosts.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/apps.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/exc.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/context.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/pwd.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/ifc.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/totp.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib copying passlib/win32.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup copying passlib/_setup/stamp.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup copying passlib/_setup/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/decor.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/pbkdf2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/md4.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/handlers.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/binary.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils copying passlib/utils/des.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/phpass.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/ldap_digests.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/misc.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/mssql.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/sun_md5_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/mysql.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/md5_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/django.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/windows.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/scram.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/digests.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/cisco.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/scrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/oracle.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/pbkdf2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/postgres.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/sha1_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/fshp.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/bcrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/des_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/argon2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/roundup.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers copying passlib/handlers/sha2_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto copying passlib/crypto/digest.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto copying passlib/crypto/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto copying passlib/crypto/_md4.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto copying passlib/crypto/des.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext copying passlib/ext/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_utils_handlers.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_context.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_context_deprecated.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_utils_md4.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_pbkdf2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_totp.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_hosts.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/_test_bad_register.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_argon2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_scrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/tox_support.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_win32.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/backports.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/__main__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_ext_django.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_crypto_builtin_md4.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_registry.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_pwd.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_apache.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_bcrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_apps.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_utils.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_django.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_crypto_des.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_crypto_digest.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_crypto_scrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_handlers_cisco.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/utils.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_ext_django_source.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/test_utils_pbkdf2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat copying passlib/utils/compat/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat copying passlib/utils/compat/_ordered_dict.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/unrolled.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/base.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/_gen_files.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_builtin.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_salsa.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt copying passlib/crypto/scrypt/_gen_files.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django copying passlib/ext/django/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django copying passlib/ext/django/models.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django copying passlib/ext/django/utils.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data creating /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_prefixed.txt -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_short.txt -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/eff_long.txt -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/_data/wordsets/bip39.txt -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets copying passlib/tests/sample1b.cfg -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/sample1c.cfg -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/sample_config_1s.cfg -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests copying passlib/tests/sample1.cfg -> /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests debian/rules override_dh_auto_test make[1]: Entering directory '/build/python-passlib-K62jH9/python-passlib-1.7.4' dh_auto_test -- --system=custom --test-args="{interpreter} setup.py test" dh_auto_test: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: python3.9 setup.py test running test WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox. running egg_info writing passlib.egg-info/PKG-INFO writing dependency_links to passlib.egg-info/dependency_links.txt writing requirements to passlib.egg-info/requires.txt writing top-level names to passlib.egg-info/top_level.txt reading manifest file 'passlib.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'CHANGES' writing manifest file 'passlib.egg-info/SOURCES.txt' running build_ext /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_apache.py:210: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("update\(\) is deprecated"): /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_apache.py:280: DeprecationWarning: invalid escape sequence \( with self.assertWarningList(["verify\(\) is deprecated"]*2): /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_apache.py:370: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("find\(\) is deprecated"): /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_apache.py:606: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("update\(\) is deprecated"): /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_apache.py:640: DeprecationWarning: invalid escape sequence \( with self.assertWarningList(["verify\(\) is deprecated"]*2): /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_apache.py:728: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("find\(\) is deprecated"): /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_context_deprecated.py:554: DeprecationWarning: invalid escape sequence \. warnings.filterwarnings("ignore", ".*(CryptPolicy|context\.policy).*(has|have) been deprecated.*") /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_context_deprecated.py:707: DeprecationWarning: invalid escape sequence \. warnings.filterwarnings("ignore", ".*(CryptPolicy|context\.policy).*(has|have) been deprecated.*") /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_ext_django.py:916: DeprecationWarning: invalid escape sequence \. with self.assertWarningList("another library has patched.*User\.set_password"): /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_handlers.py:1523: DeprecationWarning: invalid escape sequence \d ("freebsd(9|1\d)|linux", True), /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_handlers.py:1761: DeprecationWarning: invalid escape sequence \( warnings.filterwarnings("ignore", "passing settings to .*.hash\(\) is deprecated") /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/tests/test_utils.py:144: DeprecationWarning: invalid escape sequence \( warnings.filterwarnings("ignore", "The function.*generate_password\(\) is deprecated") test_00_constructor_autoload (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test constructor autoload ... ok test_01_delete (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test delete() ... ok test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) ... ok test_02_set_password (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test update() ... ok test_03_users (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test users() ... ok test_04_check_password (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test check_password() ... ok test_05_load (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test load() ... ok test_06_save (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test save() ... ok test_07_realms (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test realms() & delete_realm() ... ok test_08_get_hash (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test get_hash() ... ok test_09_encodings (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test encoding parameter ... ok test_10_to_string (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test to_string() ... ok test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) HtdigestFile: test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) ... ok test_00_constructor_autoload (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test constructor autoload ... ok test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_01_delete (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test delete() ... ok test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_02_set_password (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test set_password() ... ok test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_02_set_password_default_scheme (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test set_password() -- default_scheme ... ok test_03_users (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test users() ... ok test_04_check_password (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test check_password() ... ok test_05_load (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test load() ... ok test_06_save (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test save() ... ok test_07_encodings (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test 'encoding' kwd ... ok test_08_get_hash (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test get_hash() ... ok test_09_to_string (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test to_string ... ok test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) ... ok test_13_whitespace (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: whitespace & comment handling ... ok test_htpasswd_cmd_verify (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: verify "htpasswd" command can read output ... SKIP: requires `htpasswd` cmdline tool test_htpasswd_cmd_verify_bcrypt (passlib.tests.test_apache.HtpasswdFileTest) HtpasswdFile: verify "htpasswd" command can read bcrypt format ... SKIP: requires `htpasswd` cmdline tool test_custom_app_context (passlib.tests.test_apps.AppsTest) ... ok test_django16_context (passlib.tests.test_apps.AppsTest) ... ok test_django_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_mysql_context (passlib.tests.test_apps.AppsTest) ... ok test_ldap_nocrypt_context (passlib.tests.test_apps.AppsTest) ... ok test_master_context (passlib.tests.test_apps.AppsTest) ... ok test_phpbb3_context (passlib.tests.test_apps.AppsTest) ... ok test_phppass_context (passlib.tests.test_apps.AppsTest) ... ok test_postgres_context (passlib.tests.test_apps.AppsTest) ... ok test_roundup_context (passlib.tests.test_apps.AppsTest) ... ok test_01_constructor (passlib.tests.test_context.CryptContextTest) CryptContext: test class constructor ... ok test_02_from_string (passlib.tests.test_context.CryptContextTest) CryptContext: test from_string() constructor ... ok test_03_from_path (passlib.tests.test_context.CryptContextTest) CryptContext: test from_path() constructor ... ok test_04_copy (passlib.tests.test_context.CryptContextTest) CryptContext: test copy() method ... ok test_09_repr (passlib.tests.test_context.CryptContextTest) CryptContext: test repr() ... ok test_10_load (passlib.tests.test_context.CryptContextTest) CryptContext: test load() / load_path() method ... ok test_11_load_rollback (passlib.tests.test_context.CryptContextTest) CryptContext: test load() errors restore old state ... ok test_12_update (passlib.tests.test_context.CryptContextTest) CryptContext: test update() method ... ok test_20_options (passlib.tests.test_context.CryptContextTest) CryptContext: test basic option parsing ... ok test_21_schemes (passlib.tests.test_context.CryptContextTest) CryptContext: test 'schemes' context option parsing ... ok test_22_deprecated (passlib.tests.test_context.CryptContextTest) CryptContext: test 'deprecated' context option parsing ... ok test_23_default (passlib.tests.test_context.CryptContextTest) CryptContext: test 'default' context option parsing ... ok test_24_vary_rounds (passlib.tests.test_context.CryptContextTest) CryptContext: test 'vary_rounds' hash option parsing ... ok test_30_schemes (passlib.tests.test_context.CryptContextTest) CryptContext: test schemes() method ... ok test_31_default_scheme (passlib.tests.test_context.CryptContextTest) CryptContext: test default_scheme() method ... ok test_32_handler (passlib.tests.test_context.CryptContextTest) CryptContext: test handler() method ... ok test_33_options (passlib.tests.test_context.CryptContextTest) CryptContext: test internal _get_record_options() method ... ok test_34_to_dict (passlib.tests.test_context.CryptContextTest) CryptContext: test to_dict() method ... ok test_35_to_string (passlib.tests.test_context.CryptContextTest) CryptContext: test to_string() method ... ok test_40_basic (passlib.tests.test_context.CryptContextTest) CryptContext: test basic hash/identify/verify functionality ... ok test_41_genconfig (passlib.tests.test_context.CryptContextTest) CryptContext: test genconfig() method ... ok test_42_genhash (passlib.tests.test_context.CryptContextTest) CryptContext: test genhash() method ... ok test_43_hash (passlib.tests.test_context.CryptContextTest) CryptContext: test hash() method ... ok test_43_hash_legacy (passlib.tests.test_context.CryptContextTest) CryptContext: test hash() method -- legacy 'scheme' and settings keywords ... ok test_44_identify (passlib.tests.test_context.CryptContextTest) CryptContext: test identify() border cases ... ok test_45_verify (passlib.tests.test_context.CryptContextTest) CryptContext: test verify() scheme kwd ... ok test_46_needs_update (passlib.tests.test_context.CryptContextTest) CryptContext: test needs_update() method ... ok test_47_verify_and_update (passlib.tests.test_context.CryptContextTest) CryptContext: test verify_and_update() ... ok test_48_context_kwds (passlib.tests.test_context.CryptContextTest) CryptContext: hash(), verify(), and verify_and_update() -- discard unused context keywords ... ok test_50_rounds_limits (passlib.tests.test_context.CryptContextTest) CryptContext: test rounds limits ... ok test_51_linear_vary_rounds (passlib.tests.test_context.CryptContextTest) CryptContext: test linear vary rounds ... ok test_52_log2_vary_rounds (passlib.tests.test_context.CryptContextTest) CryptContext: test log2 vary rounds ... ok test_61_autodeprecate (passlib.tests.test_context.CryptContextTest) CryptContext: test deprecated='auto' is handled correctly ... ok test_disabled_hashes (passlib.tests.test_context.CryptContextTest) CryptContext: disabled hash support ... ok test_dummy_verify (passlib.tests.test_context.CryptContextTest) CryptContext: dummy_verify() method ... ok test_harden_verify_parsing (passlib.tests.test_context.CryptContextTest) CryptContext: harden_verify -- parsing ... ok test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) LazyCryptContext: test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) ... ok test_kwd_constructor (passlib.tests.test_context.LazyCryptContextTest) LazyCryptContext: test plain kwds ... ok test_00_constructor (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test constructor ... ok test_01_replace (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test replace() ... ok test_02_no_handlers (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test no handlers ... ok test_12_hash_needs_update (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test hash_needs_update() method ... ok test_30_nonstring_hash (passlib.tests.test_context_deprecated.CryptContextTest) CryptContext: test non-string hash values cause error ... ok test_00_constructor (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy() constructor ... ok test_01_from_path (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_path() constructor with encodings ... ok test_01_from_path_simple (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_path() constructor ... ok test_02_from_string (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_string() constructor ... ok test_03_from_source (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_source() constructor ... ok test_04_from_sources (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.from_sources() constructor ... ok test_05_replace (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy.replace() constructor ... ok test_06_forbidden (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test CryptPolicy() forbidden kwds ... ok test_10_has_schemes (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test has_schemes() method ... ok test_11_iter_handlers (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test iter_handlers() method ... ok test_12_get_handler (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test get_handler() method ... ok test_13_get_options (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test get_options() method ... ok test_14_handler_is_deprecated (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test handler_is_deprecated() method ... ok test_15_min_verify_time (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test get_min_verify_time() method ... ok test_20_iter_config (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test iter_config() method ... ok test_21_to_dict (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test to_dict() method ... ok test_22_to_string (passlib.tests.test_context_deprecated.CryptPolicyTest) CryptPolicy: test to_string() method ... ok test_callable_constructor (passlib.tests.test_context_deprecated.LazyCryptContextTest) LazyCryptContext: test create_policy() hook, returning CryptPolicy ... ok test_kwd_constructor (passlib.tests.test_context_deprecated.LazyCryptContextTest) LazyCryptContext: test plain kwds ... ok test_attrs (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): informational attributes ... ok test_md4_copy (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): copy() method ... ok test_md4_digest (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): digest() method ... ok test_md4_hexdigest (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): hexdigest() method ... ok test_md4_update (passlib.tests.test_crypto_builtin_md4.MD4_Builtin_Test) passlib.crypto._md4.md4(): update() method ... ok test_attrs (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): informational attributes ... ok test_md4_copy (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): copy() method ... ok test_md4_digest (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): digest() method ... ok test_md4_hexdigest (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): hexdigest() method ... ok test_md4_update (passlib.tests.test_crypto_builtin_md4.MD4_SSL_Test) hashlib.new('md4'): update() method ... ok test_01_expand (passlib.tests.test_crypto_des.DesTest) passlib.crypto.des: expand_des_key() ... ok test_02_shrink (passlib.tests.test_crypto_des.DesTest) passlib.crypto.des: shrink_des_key() ... ok test_03_encrypt_bytes (passlib.tests.test_crypto_des.DesTest) passlib.crypto.des: des_encrypt_block() ... ok test_04_encrypt_ints (passlib.tests.test_crypto_des.DesTest) passlib.crypto.des: des_encrypt_int_block() ... ok test_lookup_hash_alt_types (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- alternate types ... ok test_lookup_hash_ctor (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- constructor ... ok test_lookup_hash_metadata (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- metadata ... ok test_lookup_hash_w_unknown_name (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- unknown hash name ... ok test_mock_fips_mode (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: lookup_hash() -- test set_mock_fips_mode() ... ok test_norm_hash_name (passlib.tests.test_crypto_digest.HashInfoTest) passlib.crypto.digest: norm_hash_name() ... ok test_border (passlib.tests.test_crypto_digest.Pbkdf1_Test) passlib.crypto.digest.pbkdf1: test border cases ... ok test_known (passlib.tests.test_crypto_digest.Pbkdf1_Test) passlib.crypto.digest.pbkdf1: test reference vectors ... ok test_backends (passlib.tests.test_crypto_digest.Pbkdf2Test) passlib.crypto.digest.pbkdf2_hmac() : verify expected backends are present ... ok test_border (passlib.tests.test_crypto_digest.Pbkdf2Test) passlib.crypto.digest.pbkdf2_hmac() : test border cases ... ok test_default_keylen (passlib.tests.test_crypto_digest.Pbkdf2Test) passlib.crypto.digest.pbkdf2_hmac() : test keylen==None ... ok test_known (passlib.tests.test_crypto_digest.Pbkdf2Test) passlib.crypto.digest.pbkdf2_hmac() : test reference vectors ... ok test_backend (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : backend management ... ok test_keylen_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'keylen' parameter ... ok test_missing_backend (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : backend management -- missing backend ... SKIP: non-builtin backend is present test_n_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'n' (rounds) parameter ... ok test_other_backends (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : compare output to other backends ... ok test_p_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'p' (parallelism) parameter ... ok test_r_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'r' (block size) parameter ... ok test_reference_vectors (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : reference vectors ... ok test_salt_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'salt' parameter ... ok test_secret_param (passlib.tests.test_crypto_scrypt.BuiltinScryptTest) passlib.utils.scrypt.scrypt() : 'secret' parameter ... ok test_bmix (passlib.tests.test_crypto_scrypt.ScryptEngineTest) passlib.crypto.scrypt._builtin: bmix() ... ok test_salsa (passlib.tests.test_crypto_scrypt.ScryptEngineTest) passlib.crypto.scrypt._builtin: salsa20() ... ok test_smix (passlib.tests.test_crypto_scrypt.ScryptEngineTest) passlib.crypto.scrypt._builtin: smix() ... ok test_backend (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : backend management ... ok test_default_backend (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : backend management -- default backend ... ok test_keylen_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'keylen' parameter ... ok test_n_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'n' (rounds) parameter ... ok test_other_backends (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : compare output to other backends ... /build/python-passlib-K62jH9/python-passlib-1.7.4/passlib/crypto/scrypt/__init__.py:163: PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower than is required for adequate security. Installing scrypt support (via 'pip install scrypt') is strongly recommended warn("Using builtin scrypt backend, which is %dx slower than is required " ok test_p_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'p' (parallelism) parameter ... ok test_r_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'r' (block size) parameter ... ok test_reference_vectors (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : reference vectors ... ok test_salt_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'salt' parameter ... ok test_secret_param (passlib.tests.test_crypto_scrypt.StdlibScryptTest) passlib.utils.scrypt.scrypt() : 'secret' parameter ... ok test_available_schemes (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: run a bunch of subtests for each hasher available in the default django setup ... SKIP: Django not installed test_default_algorithm (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test django's default algorithm ... SKIP: Django not installed test_empty_hash_value (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle empty string as hash value ... SKIP: Django not installed test_empty_password (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle empty string as password ... SKIP: Django not installed test_extension_config (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test extension config is loaded correctly ... SKIP: Django not installed test_invalid_hash_values (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle invalid hash values. ... SKIP: Django not installed test_none_hash_value (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle None as hash value ... SKIP: Django not installed test_unusable_flag (passlib.tests.test_ext_django.DjangoBehaviorTest) verify django behavior: test how methods handle 'unusable flag' in hash ... SKIP: Django not installed test_00_patch_control (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test set_django_password_context patch/unpatch ... SKIP: Django not installed test_01_overwrite_detection (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test detection of foreign monkeypatching ... SKIP: Django not installed test_02_handler_wrapper (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test Hasher-compatible handler wrappers ... SKIP: Django not installed test_11_config_disabled (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_CONFIG='disabled' ... SKIP: Django not installed test_12_config_presets (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_CONFIG='' ... SKIP: Django not installed test_13_config_defaults (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_CONFIG default behavior ... SKIP: Django not installed test_14_config_invalid (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_CONFIG type checks ... SKIP: Django not installed test_21_category_setting (passlib.tests.test_ext_django.DjangoExtensionTest) passlib.ext.django plugin: test PASSLIB_GET_CATEGORY parameter ... SKIP: Django not installed test_available_schemes (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: run a bunch of subtests for each hasher available in the default django setup ... SKIP: Django not installed test_default_algorithm (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test django's default algorithm ... SKIP: Django not installed test_empty_hash_value (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle empty string as hash value ... SKIP: Django not installed test_empty_password (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle empty string as password ... SKIP: Django not installed test_extension_config (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test extension config is loaded correctly ... SKIP: Django not installed test_invalid_hash_values (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle invalid hash values. ... SKIP: Django not installed test_none_hash_value (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle None as hash value ... SKIP: Django not installed test_unusable_flag (passlib.tests.test_ext_django.ExtensionBehaviorTest) verify extension behavior: test how methods handle 'unusable flag' in hash ... SKIP: Django not installed test_external_django_hasher_tests (passlib.tests.test_ext_django_source.HashersTest) external django hasher tests ... SKIP: django not installed test_pairs (passlib.tests.test_handlers.RoundupTest) ... ok test_01_required_attributes (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.apr_md5_crypt_test) apr_md5_crypt: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_internal (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test_90_internal (passlib.tests.test_handlers.bigcrypt_test) ... ok test_disable_and_enable (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bigcrypt_test) bigcrypt: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bsd_nthash_test) bsd_nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_builtin_test) ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_even_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): needs_update() should flag even rounds ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) ... ok test_78_fuzz_threading (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = True) test_disable_and_enable (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_needs_update_w_even_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): needs_update() should flag even rounds ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.crypt16_test) crypt16: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.crypt16_test) crypt16: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.crypt16_test) crypt16: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.crypt16_test) crypt16: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.crypt16_test) crypt16: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.crypt16_test) crypt16: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.crypt16_test) crypt16: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.crypt16_test) crypt16: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.crypt16_test) crypt16: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.crypt16_test) crypt16: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.crypt16_test) crypt16: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.crypt16_test) crypt16: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.crypt16_test) crypt16: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.crypt16_test) crypt16: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.crypt16_test) crypt16: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.crypt16_test) crypt16: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.crypt16_test) crypt16: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.crypt16_test) crypt16: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.crypt16_test) crypt16: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.crypt16_test) crypt16: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.crypt16_test) crypt16: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.crypt16_test) crypt16: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.crypt16_test) crypt16: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.crypt16_test) crypt16: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.crypt16_test) crypt16: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.crypt16_test) crypt16: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.crypt16_test) crypt16: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.crypt16_test) crypt16: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.crypt16_test) crypt16: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.crypt16_test) crypt16: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers.crypt16_test) crypt16: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers.crypt16_test) crypt16: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.crypt16_test) crypt16: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.des_crypt_builtin_test) des_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok test_disable_and_enable (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.des_crypt_os_crypt_test) des_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.fshp_test) fshp: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.fshp_test) fshp: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.fshp_test) fshp: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.fshp_test) fshp: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.fshp_test) fshp: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.fshp_test) fshp: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.fshp_test) fshp: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.fshp_test) fshp: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.fshp_test) fshp: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.fshp_test) fshp: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.fshp_test) fshp: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.fshp_test) fshp: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.fshp_test) fshp: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.fshp_test) fshp: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.fshp_test) fshp: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.fshp_test) fshp: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.fshp_test) fshp: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.fshp_test) fshp: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.fshp_test) fshp: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.fshp_test) fshp: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.fshp_test) fshp: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.fshp_test) fshp: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.fshp_test) fshp: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.fshp_test) fshp: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.fshp_test) fshp: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.fshp_test) fshp: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.fshp_test) fshp: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.fshp_test) fshp: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_variant (passlib.tests.test_handlers.fshp_test) fshp: test variant keyword ... ok test_disable_and_enable (passlib.tests.test_handlers.fshp_test) fshp: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.fshp_test) fshp: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.fshp_test) fshp: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.fshp_test) fshp: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.fshp_test) fshp: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.fshp_test) fshp: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.fshp_test) fshp: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_md4_test) hex_md4: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_md4_test) hex_md4: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_md4_test) hex_md4: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_md4_test) hex_md4: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_md4_test) hex_md4: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_md4_test) hex_md4: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_md4_test) hex_md4: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_md4_test) hex_md4: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_md4_test) hex_md4: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_md4_test) hex_md4: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_md4_test) hex_md4: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_md4_test) hex_md4: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_md4_test) hex_md4: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_md4_test) hex_md4: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_md4_test) hex_md4: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_md4_test) hex_md4: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_md4_test) hex_md4: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_md4_test) hex_md4: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_md4_test) hex_md4: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_md5_test) hex_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_md5_test) hex_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_md5_test) hex_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_md5_test) hex_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_md5_test) hex_md5: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_md5_test) hex_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_md5_test) hex_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_md5_test) hex_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_md5_test) hex_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_md5_test) hex_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_md5_test) hex_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_md5_test) hex_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_md5_test) hex_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_md5_test) hex_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_md5_test) hex_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_md5_test) hex_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_md5_test) hex_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_mock_fips_mode (passlib.tests.test_handlers.hex_md5_test) hex_md5: if md5 isn't available, a dummy instance should be created. ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_md5_test) hex_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_md5_test) hex_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_sha1_test) hex_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_sha256_test) hex_sha256: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.hex_sha512_test) hex_sha512: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.htdigest_test) htdigest: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.htdigest_test) htdigest: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.htdigest_test) htdigest: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.htdigest_test) htdigest: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.htdigest_test) htdigest: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.htdigest_test) htdigest: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.htdigest_test) htdigest: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.htdigest_test) htdigest: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.htdigest_test) htdigest: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.htdigest_test) htdigest: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.htdigest_test) htdigest: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.htdigest_test) htdigest: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.htdigest_test) htdigest: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.htdigest_test) htdigest: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.htdigest_test) htdigest: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.htdigest_test) htdigest: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.htdigest_test) htdigest: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.htdigest_test) htdigest: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.htdigest_test) htdigest: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.htdigest_test) htdigest: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.htdigest_test) htdigest: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.htdigest_test) htdigest: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.htdigest_test) htdigest: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.htdigest_test) htdigest: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.htdigest_test) htdigest: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.htdigest_test) htdigest: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.htdigest_test) htdigest: test_80_user (passlib.tests.test_handlers.htdigest_test) ... SKIP: test case doesn't support 'realm' keyword test_81_user_case (passlib.tests.test_handlers.htdigest_test) htdigest: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.htdigest_test) htdigest: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.htdigest_test) htdigest: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.htdigest_test) htdigest: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.htdigest_test) htdigest: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.htdigest_test) htdigest: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.htdigest_test) htdigest: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.htdigest_test) htdigest: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.htdigest_test) htdigest: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_builtin_test) ldap_md5_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers test_disable_and_enable (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_md5_crypt_os_crypt_test) ldap_md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_md5_test) ldap_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_plaintext_test) ldap_plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_salted_md5_test) ldap_salted_md5: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_salted_sha1_test) ldap_salted_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_salted_sha256_test) ldap_salted_sha256: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_salted_sha512_test) ldap_salted_sha512: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ... SKIP: unneeded test_78_fuzz_threading (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers test_disable_and_enable (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.ldap_sha1_test) ldap_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.lmhash_test) lmhash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.lmhash_test) lmhash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.lmhash_test) lmhash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.lmhash_test) lmhash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.lmhash_test) lmhash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.lmhash_test) lmhash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.lmhash_test) lmhash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.lmhash_test) lmhash: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.lmhash_test) lmhash: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.lmhash_test) lmhash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.lmhash_test) lmhash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.lmhash_test) lmhash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.lmhash_test) lmhash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.lmhash_test) lmhash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.lmhash_test) lmhash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.lmhash_test) lmhash: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.lmhash_test) lmhash: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.lmhash_test) lmhash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.lmhash_test) lmhash: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.lmhash_test) lmhash: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.lmhash_test) lmhash: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.lmhash_test) lmhash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.lmhash_test) lmhash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.lmhash_test) lmhash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.lmhash_test) lmhash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.lmhash_test) lmhash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_raw (passlib.tests.test_handlers.lmhash_test) lmhash: test lmhash.raw() method ... ok test_disable_and_enable (passlib.tests.test_handlers.lmhash_test) lmhash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.lmhash_test) lmhash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.lmhash_test) lmhash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.lmhash_test) lmhash: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers.lmhash_test) lmhash: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers.lmhash_test) lmhash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.lmhash_test) lmhash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.md5_crypt_builtin_test) md5_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok test_disable_and_enable (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.md5_crypt_os_crypt_test) md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.msdcc2_test) msdcc2: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.msdcc2_test) msdcc2: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.msdcc2_test) msdcc2: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.msdcc2_test) msdcc2: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.msdcc2_test) msdcc2: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.msdcc2_test) msdcc2: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.msdcc2_test) msdcc2: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.msdcc2_test) msdcc2: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.msdcc2_test) msdcc2: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.msdcc2_test) msdcc2: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.msdcc2_test) msdcc2: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.msdcc2_test) msdcc2: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.msdcc2_test) msdcc2: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.msdcc2_test) msdcc2: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.msdcc2_test) msdcc2: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.msdcc2_test) msdcc2: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers.msdcc2_test) msdcc2: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.msdcc2_test) msdcc2: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.msdcc2_test) msdcc2: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.msdcc2_test) msdcc2: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.msdcc2_test) msdcc2: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.msdcc2_test) msdcc2: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.msdcc_test) msdcc: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.msdcc_test) msdcc: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.msdcc_test) msdcc: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.msdcc_test) msdcc: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.msdcc_test) msdcc: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.msdcc_test) msdcc: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.msdcc_test) msdcc: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.msdcc_test) msdcc: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.msdcc_test) msdcc: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.msdcc_test) msdcc: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.msdcc_test) msdcc: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.msdcc_test) msdcc: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.msdcc_test) msdcc: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.msdcc_test) msdcc: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.msdcc_test) msdcc: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.msdcc_test) msdcc: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.msdcc_test) msdcc: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.msdcc_test) msdcc: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers.msdcc_test) msdcc: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.msdcc_test) msdcc: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.msdcc_test) msdcc: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.msdcc_test) msdcc: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.msdcc_test) msdcc: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.msdcc_test) msdcc: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.msdcc_test) msdcc: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.msdcc_test) msdcc: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.msdcc_test) msdcc: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers.msdcc_test) msdcc: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.msdcc_test) msdcc: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.msdcc_test) msdcc: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.msdcc_test) msdcc: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.msdcc_test) msdcc: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.msdcc_test) msdcc: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.msdcc_test) msdcc: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.msdcc_test) msdcc: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.msdcc_test) msdcc: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.mssql2000_test) mssql2000: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.mssql2000_test) mssql2000: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.mssql2000_test) mssql2000: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.mssql2000_test) mssql2000: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.mssql2000_test) mssql2000: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.mssql2000_test) mssql2000: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.mssql2000_test) mssql2000: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.mssql2000_test) mssql2000: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.mssql2000_test) mssql2000: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.mssql2000_test) mssql2000: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers.mssql2000_test) mssql2000: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.mssql2000_test) mssql2000: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.mssql2000_test) mssql2000: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.mssql2000_test) mssql2000: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.mssql2000_test) mssql2000: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.mssql2000_test) mssql2000: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.mssql2000_test) mssql2000: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.mssql2000_test) mssql2000: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.mssql2000_test) mssql2000: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.mssql2005_test) mssql2005: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.mssql2005_test) mssql2005: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.mssql2005_test) mssql2005: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.mssql2005_test) mssql2005: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.mssql2005_test) mssql2005: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.mssql2005_test) mssql2005: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.mssql2005_test) mssql2005: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.mssql2005_test) mssql2005: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.mssql2005_test) mssql2005: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.mssql2005_test) mssql2005: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers.mssql2005_test) mssql2005: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.mssql2005_test) mssql2005: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.mssql2005_test) mssql2005: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.mssql2005_test) mssql2005: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.mssql2005_test) mssql2005: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.mssql2005_test) mssql2005: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.mssql2005_test) mssql2005: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.mssql2005_test) mssql2005: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.mssql2005_test) mssql2005: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.mysql323_test) mysql323: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.mysql323_test) mysql323: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.mysql323_test) mysql323: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.mysql323_test) mysql323: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.mysql323_test) mysql323: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.mysql323_test) mysql323: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.mysql323_test) mysql323: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.mysql323_test) mysql323: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.mysql323_test) mysql323: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.mysql323_test) mysql323: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.mysql323_test) mysql323: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.mysql323_test) mysql323: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.mysql323_test) mysql323: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.mysql323_test) mysql323: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.mysql323_test) mysql323: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.mysql323_test) mysql323: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.mysql323_test) mysql323: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.mysql323_test) mysql323: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.mysql323_test) mysql323: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.mysql323_test) mysql323: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.mysql323_test) mysql323: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.mysql323_test) mysql323: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.mysql323_test) mysql323: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.mysql323_test) mysql323: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.mysql323_test) mysql323: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.mysql323_test) mysql323: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_whitespace (passlib.tests.test_handlers.mysql323_test) mysql323: check whitespace is ignored per spec ... ok test_disable_and_enable (passlib.tests.test_handlers.mysql323_test) mysql323: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.mysql323_test) mysql323: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.mysql323_test) mysql323: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.mysql323_test) mysql323: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.mysql323_test) mysql323: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.mysql323_test) mysql323: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.mysql323_test) mysql323: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.mysql41_test) mysql41: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.mysql41_test) mysql41: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.mysql41_test) mysql41: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.mysql41_test) mysql41: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.mysql41_test) mysql41: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.mysql41_test) mysql41: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.mysql41_test) mysql41: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.mysql41_test) mysql41: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.mysql41_test) mysql41: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.mysql41_test) mysql41: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.mysql41_test) mysql41: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.mysql41_test) mysql41: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.mysql41_test) mysql41: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.mysql41_test) mysql41: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.mysql41_test) mysql41: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.mysql41_test) mysql41: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.mysql41_test) mysql41: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.mysql41_test) mysql41: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.mysql41_test) mysql41: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.mysql41_test) mysql41: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.mysql41_test) mysql41: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.mysql41_test) mysql41: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.mysql41_test) mysql41: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.mysql41_test) mysql41: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.mysql41_test) mysql41: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.mysql41_test) mysql41: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.mysql41_test) mysql41: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.mysql41_test) mysql41: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.mysql41_test) mysql41: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.mysql41_test) mysql41: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.mysql41_test) mysql41: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.mysql41_test) mysql41: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.mysql41_test) mysql41: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.nthash_test) nthash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.nthash_test) nthash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.nthash_test) nthash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.nthash_test) nthash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.nthash_test) nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.nthash_test) nthash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.nthash_test) nthash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.nthash_test) nthash: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.nthash_test) nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.nthash_test) nthash: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.nthash_test) nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.nthash_test) nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.nthash_test) nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.nthash_test) nthash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.nthash_test) nthash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.nthash_test) nthash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.nthash_test) nthash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.nthash_test) nthash: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.nthash_test) nthash: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.nthash_test) nthash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.nthash_test) nthash: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.nthash_test) nthash: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.nthash_test) nthash: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.nthash_test) nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.nthash_test) nthash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.nthash_test) nthash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.nthash_test) nthash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.nthash_test) nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.nthash_test) nthash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.nthash_test) nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.nthash_test) nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.nthash_test) nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.nthash_test) nthash: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.nthash_test) nthash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.nthash_test) nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.oracle10_test) oracle10: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.oracle10_test) oracle10: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.oracle10_test) oracle10: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.oracle10_test) oracle10: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.oracle10_test) oracle10: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.oracle10_test) oracle10: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.oracle10_test) oracle10: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.oracle10_test) oracle10: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.oracle10_test) oracle10: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.oracle10_test) oracle10: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.oracle10_test) oracle10: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.oracle10_test) oracle10: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.oracle10_test) oracle10: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.oracle10_test) oracle10: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.oracle10_test) oracle10: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.oracle10_test) oracle10: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.oracle10_test) oracle10: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.oracle10_test) oracle10: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.oracle10_test) oracle10: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.oracle10_test) oracle10: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.oracle10_test) oracle10: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.oracle10_test) oracle10: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.oracle10_test) oracle10: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.oracle10_test) oracle10: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.oracle10_test) oracle10: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.oracle10_test) oracle10: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.oracle10_test) oracle10: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers.oracle10_test) oracle10: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.oracle10_test) oracle10: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.oracle10_test) oracle10: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.oracle10_test) oracle10: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.oracle10_test) oracle10: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.oracle10_test) oracle10: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.oracle10_test) oracle10: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.oracle10_test) oracle10: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.oracle10_test) oracle10: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.oracle11_test) oracle11: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.oracle11_test) oracle11: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.oracle11_test) oracle11: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.oracle11_test) oracle11: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.oracle11_test) oracle11: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.oracle11_test) oracle11: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.oracle11_test) oracle11: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.oracle11_test) oracle11: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.oracle11_test) oracle11: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.oracle11_test) oracle11: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.oracle11_test) oracle11: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.oracle11_test) oracle11: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.oracle11_test) oracle11: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.oracle11_test) oracle11: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.oracle11_test) oracle11: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.oracle11_test) oracle11: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.oracle11_test) oracle11: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.oracle11_test) oracle11: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.oracle11_test) oracle11: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.oracle11_test) oracle11: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.oracle11_test) oracle11: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.oracle11_test) oracle11: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.oracle11_test) oracle11: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.oracle11_test) oracle11: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.oracle11_test) oracle11: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.oracle11_test) oracle11: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.oracle11_test) oracle11: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.oracle11_test) oracle11: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.oracle11_test) oracle11: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.oracle11_test) oracle11: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.oracle11_test) oracle11: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.oracle11_test) oracle11: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.oracle11_test) oracle11: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.phpass_test) phpass: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.phpass_test) phpass: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.phpass_test) phpass: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.phpass_test) phpass: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.phpass_test) phpass: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.phpass_test) phpass: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.phpass_test) phpass: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.phpass_test) phpass: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.phpass_test) phpass: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.phpass_test) phpass: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.phpass_test) phpass: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.phpass_test) phpass: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.phpass_test) phpass: validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers.phpass_test) phpass: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.phpass_test) phpass: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.phpass_test) phpass: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.phpass_test) phpass: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.phpass_test) phpass: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.phpass_test) phpass: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.phpass_test) phpass: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.phpass_test) phpass: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.phpass_test) phpass: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.phpass_test) phpass: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.phpass_test) phpass: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.phpass_test) phpass: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.phpass_test) phpass: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.phpass_test) phpass: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.phpass_test) phpass: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.phpass_test) phpass: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.phpass_test) phpass: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.phpass_test) phpass: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.phpass_test) phpass: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.phpass_test) phpass: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.phpass_test) phpass: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.phpass_test) phpass: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.plaintext_test) plaintext: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.plaintext_test) plaintext: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.plaintext_test) plaintext: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.plaintext_test) plaintext: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.plaintext_test) plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.plaintext_test) plaintext: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.plaintext_test) plaintext: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.plaintext_test) plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.plaintext_test) plaintext: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.plaintext_test) plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.plaintext_test) plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.plaintext_test) plaintext: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.plaintext_test) plaintext: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.plaintext_test) plaintext: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.plaintext_test) plaintext: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.plaintext_test) plaintext: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.plaintext_test) plaintext: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.plaintext_test) plaintext: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.plaintext_test) plaintext: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.plaintext_test) plaintext: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.plaintext_test) plaintext: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.plaintext_test) plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.plaintext_test) plaintext: test known foreign hashes ... SKIP: not applicable test_76_hash_border (passlib.tests.test_handlers.plaintext_test) plaintext: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.plaintext_test) plaintext: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.plaintext_test) plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.plaintext_test) plaintext: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.plaintext_test) plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.plaintext_test) plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.plaintext_test) plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.plaintext_test) plaintext: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.plaintext_test) plaintext: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.plaintext_test) plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test user used as salt ... ok test_disable_and_enable (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.postgres_md5_test) postgres_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = True) test_disable_and_enable (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.sha256_crypt_builtin_test) sha256_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok test_disable_and_enable (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha256_crypt_os_crypt_test) sha256_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.sha512_crypt_builtin_test) sha512_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok test_disable_and_enable (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha512_crypt_os_crypt_test) sha512_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sun_md5_crypt_test) sun_md5_crypt: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) ... ok test_77_fuzz_input (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable test_78_fuzz_threading (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_special (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test marker option & special behavior ... ok test_disable_and_enable (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: .disable() / .enable() methods ... ok test_has_many_idents_using (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.unix_disabled_test) unix_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test known foreign hashes ... SKIP: not applicable test_76_hash_border (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: fuzz testing -- random passwords and options ... SKIP: not applicable test_78_fuzz_threading (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_wildcard (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test enable_wildcard flag ... ok test_91_preserves_existing (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test preserves existing disabled hash ... ok test_disable_and_enable (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: .disable() / .enable() methods ... ok test_has_many_idents_using (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.unix_fallback_test) unix_fallback: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_argon_byte_encoding (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): verify we're using right base64 encoding for argon2 ... SKIP: only default backend is being tested test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) argon2 (argon2_cffi backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_argon_byte_encoding (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): verify we're using right base64 encoding for argon2 ... SKIP: only default backend is being tested test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) argon2 (argon2pure backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcryptor_test) bcrypt (bcryptor backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_builtin_test) bcrypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = True) test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): needs_update corrects bcrypt padding ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_pybcrypt_test) bcrypt (pybcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) bcrypt_sha256 (bcryptor backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) bcrypt_sha256 (builtin backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate HasManyIdents configuration ... SKIP: multiple idents not supported test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_faulty_crypt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test with faulty crypt() ... ok test_81_crypt_fallback (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test per-call crypt() fallback ... ok test_82_crypt_support (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux' platform (current host support = True) test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test digest calc v2 matches bcrypt() ... ok test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: multiple idents not supported test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): Handler.using() -- default_salt_size ... ok test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) ... ok test_01_required_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) bcrypt_sha256 (pybcrypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test user used as salt ... ok test_calc_digest_spoiler (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: _calc_checksum() -- spoil oversize passwords during verify ... ok test_disable_and_enable (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_cisco.cisco_asa_test) cisco_asa: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_80_user (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test user context keyword ... ok test_81_user_case (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test user case sensitivity ... ok test_82_user_salt (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test user used as salt ... ok test_calc_digest_spoiler (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: _calc_checksum() -- spoil oversize passwords during verify ... ok test_disable_and_enable (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_cisco.cisco_pix_test) cisco_pix: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate optional salt attributes ... SKIP: handler doesn't provide salt info test_11_unique_salt (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't provide salt info test_13_max_salt_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't provide salt info test_14_salt_chars (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() honors salt_chars ... SKIP: handler doesn't provide salt info test_15_salt_type (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_decode (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test cisco_type7.decode() ... ok test_91_salt (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test salt value border cases ... ok test_disable_and_enable (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_cisco.cisco_type7_test) cisco_type7: Handler.using() -- default_salt_size ... SKIP: handler doesn't provide salt info test_01_required_attributes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (os_crypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test password size limits raise truncate_error (if appropriate) ... ok test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_des_crypt_test) django_des_crypt: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known alternate hashes ... ok test_71_parsehash_results (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable test_78_fuzz_threading (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: .disable() / .enable() methods ... ok test_has_many_idents_using (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_disabled_test) django_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_01_required_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha1_test) django_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_pbkdf2_sha256_test) django_pbkdf2_sha256: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_salted_md5_test) django_salted_md5: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_django_reference (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed test_91_django_generation (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed test_disable_and_enable (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_salted_sha1_test) django_salted_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.atlassian_pbkdf2_sha1_test) atlassian_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.cta_pbkdf2_sha1_test) cta_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.dlitz_pbkdf2_sha1_test) dlitz_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.grub_pbkdf2_sha512_test) grub_pbkdf2_sha512: Handler.using() -- default_salt_size ... ok test_wrappers (passlib.tests.test_handlers_pbkdf2.ldap_pbkdf2_test) test ldap pbkdf2 wrappers ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha1_test) pbkdf2_sha1: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha256_test) pbkdf2_sha256: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.pbkdf2_sha512_test) pbkdf2_sha512: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_pbkdf2.scram_test) scram: parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_pbkdf2.scram_test) scram: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_pbkdf2.scram_test) scram: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_pbkdf2.scram_test) scram: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_90_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test parsing of 'algs' setting ... ok test_90_checksums (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test internal parsing of 'checksum' keyword ... ok test_91_extract_digest_info (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test scram.extract_digest_info() ... ok test_92_extract_digest_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test scram.extract_digest_algs() ... ok test_93_derive_digest (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test scram.derive_digest() ... ok test_94_needs_update_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: needs_update() -- algs setting ... ok test_94_saslprep (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test hash/verify use saslprep ... ok test_94_using_w_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: using() -- 'algs' parameter ... ok test_94_using_w_default_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: using() -- 'default_algs' parameter ... ok test_95_context_algs (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test handling of 'algs' in context object ... ok test_96_full_verify (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test verify(full=True) flag ... ok test_disable_and_enable (passlib.tests.test_handlers_pbkdf2.scram_test) scram: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_pbkdf2.scram_test) scram: HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_pbkdf2.scram_test) scram: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_pbkdf2.scram_test) scram: Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_scrypt.scrypt_builtin_test) scrypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested test_03_legacy_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested test_11_unique_salt (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested test_12_min_salt_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested test_13_max_salt_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested test_78_fuzz_threading (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested test_has_many_idents_using (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_secret_w_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested test_secret_wo_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_scrypt.scrypt_scrypt_test) scrypt (scrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested test_01_required_attributes (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_scrypt.scrypt_stdlib_test) scrypt (stdlib backend): Handler.using() -- default_salt_size ... ok test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok test_host_context (passlib.tests.test_hosts.HostsTest) ... ok test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok test_entropy (passlib.tests.test_pwd.PhraseGeneratorTest) passlib.pwd.genphrase(): 'length' & 'entropy' keywords ... ok test_general (passlib.tests.test_pwd.PhraseGeneratorTest) passlib.pwd.genphrase(): general behavior ... ok test_returns (passlib.tests.test_pwd.PhraseGeneratorTest) passlib.pwd.genphrase(): 'returns' keyword ... ok test_wordset (passlib.tests.test_pwd.PhraseGeneratorTest) passlib.pwd.genphrase(): 'wordset' & 'words' options ... ok test_self_info_rate (passlib.tests.test_pwd.UtilsTest) passlib.pwd: _self_info_rate() ... ok test_charset (passlib.tests.test_pwd.WordGeneratorTest) passlib.pwd.genword(): 'charset' & 'chars' options ... ok test_general (passlib.tests.test_pwd.WordGeneratorTest) passlib.pwd.genword(): general behavior ... ok test_returns (passlib.tests.test_pwd.WordGeneratorTest) passlib.pwd.genword(): 'returns' keyword ... ok test_get_crypt_handler (passlib.tests.test_registry.RegistryTest) passlib.registry: test get_crypt_handler() ... ok test_handlers (passlib.tests.test_registry.RegistryTest) passlib.registry: verify we have tests for all builtin handlers ... ok test_hash_proxy (passlib.tests.test_registry.RegistryTest) passlib.registry: test passlib.hash proxy object ... ok test_list_crypt_handlers (passlib.tests.test_registry.RegistryTest) passlib.registry: test list_crypt_handlers() ... ok test_register_crypt_handler (passlib.tests.test_registry.RegistryTest) passlib.registry: test register_crypt_handler() ... ok test_register_crypt_handler_path (passlib.tests.test_registry.RegistryTest) passlib.registry: test register_crypt_handler_path() ... ok test_decrypt_key (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: .decrypt_key() ... SKIP: 'cryptography' package not installed test_decrypt_key_needs_recrypt (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: .decrypt_key() -- needs_recrypt flag ... SKIP: 'cryptography' package not installed test_default_tag (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: constructor -- 'default_tag' param ... ok test_encrypt_cost_timing (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: verify cost parameter via timing ... SKIP: 'cryptography' package not installed test_encrypt_key (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: .encrypt_key() ... SKIP: 'cryptography' package not installed test_secrets_tags (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: constructor -- 'secrets' param -- tag/value normalization ... ok test_secrets_types (passlib.tests.test_totp.AppWalletTest) passlib.totp.AppWallet: constructor -- 'secrets' param -- input types ... ok iter_test_vectors (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: helper to iterate over test vectors. ... ok test_ctor_w_alg (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'alg' parameter ... ok test_ctor_w_digits (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'digits' parameter ... ok test_ctor_w_issuer (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'issuer' parameter ... ok test_ctor_w_key_and_format (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'key' and 'format' parameters ... ok test_ctor_w_label (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'label' parameter ... ok test_ctor_w_new (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'new' parameter ... ok test_ctor_w_period (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'period' parameter ... ok test_ctor_w_size (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: constructor -- 'size' parameter ... ok test_from_dict (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: from_dict() ... ok test_from_source (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: from_source() ... ok test_from_uri (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: from_uri() ... ok test_generate (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: generate() ... ok test_generate_w_reference_vectors (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: generate() -- reference vectors ... ok test_key_attrs (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: pretty_key() and .key attributes ... ok test_match_w_reference_vectors (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- reference vectors ... ok test_match_w_reuse (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- 'reuse' and 'last_counter' parameters ... ok test_match_w_skew (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- 'skew' parameters ... ok test_match_w_token_normalization (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- token normalization ... ok test_match_w_window (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- 'time' and 'window' parameters ... ok test_normalize_time (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: normalize_time() ... ok test_normalize_token_class (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: normalize_token() -- class method ... ok test_normalize_token_instance (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: normalize_token() -- instance method ... ok test_randotp (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: internal test -- randotp() ... ok test_to_dict (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: to_dict() ... ok test_to_uri (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: to_uri() ... ok test_totp_match_w_invalid_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- invalid TotpMatch object ... ok test_totp_match_w_new_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- valid TotpMatch object with past token ... ok test_totp_match_w_older_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- valid TotpMatch object with future token ... ok test_totp_match_w_valid_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: match() -- valid TotpMatch object ... ok test_totp_token (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: generate() -- TotpToken() class ... ok test_using_w_now (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: using -- 'now' parameter ... ok test_using_w_period (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: using() -- 'period' parameter ... ok test_verify (passlib.tests.test_totp.TotpTest) passlib.totp.TOTP: verify() ... ok test_ab64_decode (passlib.tests.test_utils.Base64EngineTest) ab64_decode() ... ok test_ab64_encode (passlib.tests.test_utils.Base64EngineTest) ab64_encode() ... ok test_b64s_decode (passlib.tests.test_utils.Base64EngineTest) b64s_decode() ... ok test_b64s_encode (passlib.tests.test_utils.Base64EngineTest) b64s_encode() ... ok test_constructor (passlib.tests.test_utils.Base64EngineTest) ... ok test_bytes (passlib.tests.test_utils.CodecTest) test b() helper, bytes and native str type ... ok test_is_ascii_safe (passlib.tests.test_utils.CodecTest) test is_ascii_safe() ... ok test_is_same_codec (passlib.tests.test_utils.CodecTest) test is_same_codec() ... ok test_to_bytes (passlib.tests.test_utils.CodecTest) test to_bytes() ... ok test_to_native_str (passlib.tests.test_utils.CodecTest) test to_native_str() ... ok test_to_unicode (passlib.tests.test_utils.CodecTest) test to_unicode() ... ok test_codec (passlib.tests.test_utils.H64Big_Test) h64big codec: test encode_bytes/decode_bytes against random data ... ok test_decode_bytes (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_bytes() against reference inputs ... ok test_decode_bytes_bad (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_bytes() with bad input ... ok test_decode_bytes_padding (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_bytes() ignores padding bits ... ok test_decode_transposed_bytes (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_transposed_bytes() ... ok test_decode_transposed_bytes_bad (passlib.tests.test_utils.H64Big_Test) h64big codec: test decode_transposed_bytes() fails if map is a one-way ... ok test_encode_bytes (passlib.tests.test_utils.H64Big_Test) h64big codec: test encode_bytes() against reference inputs ... ok test_encode_bytes_bad (passlib.tests.test_utils.H64Big_Test) h64big codec: test encode_bytes() with bad input ... ok test_encode_transposed_bytes (passlib.tests.test_utils.H64Big_Test) h64big codec: test encode_transposed_bytes() ... ok test_encoded_ints (passlib.tests.test_utils.H64Big_Test) h64big codec: test against reference integer encodings ... ok test_int12 (passlib.tests.test_utils.H64Big_Test) h64big codec: test_int12 (passlib.tests.test_utils.H64Big_Test) ... ok test_int24 (passlib.tests.test_utils.H64Big_Test) h64big codec: test_int24 (passlib.tests.test_utils.H64Big_Test) ... ok test_int6 (passlib.tests.test_utils.H64Big_Test) h64big codec: test_int6 (passlib.tests.test_utils.H64Big_Test) ... ok test_int64 (passlib.tests.test_utils.H64Big_Test) h64big codec: test_int64 (passlib.tests.test_utils.H64Big_Test) ... ok test_repair_unused (passlib.tests.test_utils.H64Big_Test) h64big codec: test repair_unused() ... ok test_codec (passlib.tests.test_utils.H64_Test) h64 codec: test encode_bytes/decode_bytes against random data ... ok test_decode_bytes (passlib.tests.test_utils.H64_Test) h64 codec: test decode_bytes() against reference inputs ... ok test_decode_bytes_bad (passlib.tests.test_utils.H64_Test) h64 codec: test decode_bytes() with bad input ... ok test_decode_bytes_padding (passlib.tests.test_utils.H64_Test) h64 codec: test decode_bytes() ignores padding bits ... ok test_decode_transposed_bytes (passlib.tests.test_utils.H64_Test) h64 codec: test decode_transposed_bytes() ... ok test_decode_transposed_bytes_bad (passlib.tests.test_utils.H64_Test) h64 codec: test decode_transposed_bytes() fails if map is a one-way ... ok test_encode_bytes (passlib.tests.test_utils.H64_Test) h64 codec: test encode_bytes() against reference inputs ... ok test_encode_bytes_bad (passlib.tests.test_utils.H64_Test) h64 codec: test encode_bytes() with bad input ... ok test_encode_transposed_bytes (passlib.tests.test_utils.H64_Test) h64 codec: test encode_transposed_bytes() ... ok test_encoded_ints (passlib.tests.test_utils.H64_Test) h64 codec: test against reference integer encodings ... ok test_int12 (passlib.tests.test_utils.H64_Test) h64 codec: test_int12 (passlib.tests.test_utils.H64_Test) ... ok test_int24 (passlib.tests.test_utils.H64_Test) h64 codec: test_int24 (passlib.tests.test_utils.H64_Test) ... ok test_int6 (passlib.tests.test_utils.H64_Test) h64 codec: test_int6 (passlib.tests.test_utils.H64_Test) ... ok test_int64 (passlib.tests.test_utils.H64_Test) h64 codec: test_int64 (passlib.tests.test_utils.H64_Test) ... ok test_repair_unused (passlib.tests.test_utils.H64_Test) h64 codec: test repair_unused() ... ok test_classproperty (passlib.tests.test_utils.MiscTest) ... ok test_compat (passlib.tests.test_utils.MiscTest) test compat's lazymodule ... ok test_consteq (passlib.tests.test_utils.MiscTest) test consteq() ... ok test_crypt (passlib.tests.test_utils.MiscTest) test crypt.crypt() wrappers ... ok test_deprecated_function (passlib.tests.test_utils.MiscTest) ... ok test_generate_password (passlib.tests.test_utils.MiscTest) generate_password() ... ok test_genseed (passlib.tests.test_utils.MiscTest) test genseed() ... ok test_getrandbytes (passlib.tests.test_utils.MiscTest) getrandbytes() ... ok test_getrandstr (passlib.tests.test_utils.MiscTest) getrandstr() ... ok test_is_crypt_context (passlib.tests.test_utils.MiscTest) test is_crypt_context() ... ok test_memoized_property (passlib.tests.test_utils.MiscTest) ... ok test_saslprep (passlib.tests.test_utils.MiscTest) test saslprep() unicode normalizer ... ok test_splitcomma (passlib.tests.test_utils.MiscTest) ... ok test_utf8_truncate (passlib.tests.test_utils.MiscTest) utf8_truncate() ... ok test_00_lazy_loading (passlib.tests.test_utils_handlers.PrefixWrapperTest) test PrefixWrapper lazy loading of handler ... ok test_01_active_loading (passlib.tests.test_utils_handlers.PrefixWrapperTest) test PrefixWrapper active loading of handler ... ok test_02_explicit (passlib.tests.test_utils_handlers.PrefixWrapperTest) test PrefixWrapper with explicitly specified handler ... ok test_10_wrapped_attributes (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test_11_wrapped_methods (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test_12_ident (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok test_13_repr (passlib.tests.test_utils_handlers.PrefixWrapperTest) test repr() ... ok test_14_bad_hash (passlib.tests.test_utils_handlers.PrefixWrapperTest) test orig_prefix sanity check ... ok test_01_required_attributes (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known hashes ... ok test_70_parsehash (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: parsehash() ... ok test_71_alternates (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) ... ok test_disable_and_enable (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_utils_handlers.SaltedHashTest) salted_test_hash: Handler.using() -- default_salt_size ... ok test_00_static_handler (passlib.tests.test_utils_handlers.SkeletonTest) test StaticHandler class ... ok test_01_calc_checksum_hack (passlib.tests.test_utils_handlers.SkeletonTest) test StaticHandler legacy attr ... ok test_10_identify (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler.identify() ... ok test_11_norm_checksum (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler checksum handling ... ok test_12_norm_checksum_raw (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasRawChecksum mixin ... ok test_20_norm_salt (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasSalt mixin ... ok test_30_init_rounds (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasRounds mixin ... ok test_40_backends (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasManyBackends mixin ... ok test_41_backends (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasManyBackends mixin (deprecated api) ... ok test_50_norm_ident (passlib.tests.test_utils_handlers.SkeletonTest) test GenericHandler + HasManyIdents ... ok test_91_parsehash (passlib.tests.test_utils_handlers.SkeletonTest) test parsehash() ... ok test_92_bitsize (passlib.tests.test_utils_handlers.SkeletonTest) test bitsize() ... ok test_01_required_attributes (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate required attributes ... ok test_02_config_workflow (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test multi-backend support ... SKIP: handler only has one backend test_10_optional_salt_attributes (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate optional salt attributes ... SKIP: handler doesn't have salt test_11_unique_salt (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt test_12_min_salt_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt test_13_max_salt_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt test_14_salt_chars (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() honors salt_chars ... SKIP: handler doesn't have salt test_15_salt_type (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test non-string salt values ... SKIP: handler doesn't have salt test_20_optional_rounds_attributes (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes test_21_min_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes test_21b_max_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes test_30_HasManyIdents (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed test_70_hashes (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known hashes ... ok test_70_parsehash (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: parsehash() ... ok test_71_alternates (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known config strings ... SKIP: hash has no settings test_73_unidentified (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) ... ok test_disable_and_enable (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_and_needs_update (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes test_has_rounds_using_harness (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_default_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_min_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_rounds (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes test_secret_w_truncate_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_utils_handlers.UnsaltedHashTest) unsalted_test_hash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt test_attrs (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): informational attributes ... ok test_md4_copy (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): copy() method ... ok test_md4_digest (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): digest() method ... ok test_md4_hexdigest (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): hexdigest() method ... ok test_md4_update (passlib.tests.test_utils_md4.Legacy_MD4_Test) passlib.utils.md4.md4(): update() method ... ok test_border (passlib.tests.test_utils_pbkdf2.Pbkdf1_Test) passlib.utils.pbkdf2.pbkdf1(): test border cases ... ok test_known (passlib.tests.test_utils_pbkdf2.Pbkdf1_Test) passlib.utils.pbkdf2.pbkdf1(): test reference vectors ... ok test_border (passlib.tests.test_utils_pbkdf2.Pbkdf2_Test) passlib.utils.pbkdf2.pbkdf2(): test border cases ... ok test_custom_prf (passlib.tests.test_utils_pbkdf2.Pbkdf2_Test) passlib.utils.pbkdf2.pbkdf2(): test custom prf function ... ok test_default_keylen (passlib.tests.test_utils_pbkdf2.Pbkdf2_Test) passlib.utils.pbkdf2.pbkdf2(): test keylen==None ... ok test_known (passlib.tests.test_utils_pbkdf2.Pbkdf2_Test) passlib.utils.pbkdf2.pbkdf2(): test reference vectors ... ok test_norm_hash_name (passlib.tests.test_utils_pbkdf2.UtilsTest) passlib.utils.pbkdf2: norm_hash_name() ... ok test_lmhash (passlib.tests.test_win32.UtilTest) ... ok test_nthash (passlib.tests.test_win32.UtilTest) ... ok ---------------------------------------------------------------------- Ran 4372 tests in 212.390s OK (skipped=2346) make[1]: Leaving directory '/build/python-passlib-K62jH9/python-passlib-1.7.4' fakeroot debian/rules binary-indep dh binary-indep --with python3 --buildsystem=pybuild dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_testroot -i -O--buildsystem=pybuild dh_prep -i -O--buildsystem=pybuild dh_auto_install -i -O--buildsystem=pybuild dh_auto_install: warning: Compatibility levels before 10 are deprecated (level 9 in use) I: pybuild base:232: /usr/bin/python3 setup.py install --root /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib running install running build running build_py running install_lib creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9 creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets/eff_prefixed.txt -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets/eff_short.txt -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets/eff_long.txt -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_data/wordsets/bip39.txt -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_data/wordsets creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup/stamp.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/_setup/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/hash.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/registry.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/decor.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/compat/_ordered_dict.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/pbkdf2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/md4.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/handlers.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/binary.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/utils/des.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/apache.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/hosts.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/phpass.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/ldap_digests.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/misc.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/mssql.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/sun_md5_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/mysql.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/md5_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/django.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/windows.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/scram.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/digests.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/cisco.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/scrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/oracle.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/pbkdf2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/postgres.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/sha1_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/fshp.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/bcrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/des_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/argon2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/roundup.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/handlers/sha2_crypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/apps.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/exc.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/digest.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish/unrolled.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish/base.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_blowfish/_gen_files.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/_md4.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt/_builtin.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt/_salsa.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/scrypt/_gen_files.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/crypto/des.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django/models.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ext/django/utils.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/context.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/pwd.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/ifc.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib creating /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_utils_handlers.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_context.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_context_deprecated.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_utils_md4.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_pbkdf2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_totp.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/sample1b.cfg -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/__init__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_hosts.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/_test_bad_register.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_argon2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_scrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/sample1c.cfg -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/tox_support.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_win32.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/backports.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/__main__.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_ext_django.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_crypto_builtin_md4.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_registry.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/sample_config_1s.cfg -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_pwd.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_apache.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_bcrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_apps.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_utils.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_django.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_crypto_des.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_crypto_digest.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_crypto_scrypt.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_handlers_cisco.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/utils.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_ext_django_source.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/sample1.cfg -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/tests/test_utils_pbkdf2.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/totp.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib copying /build/python-passlib-K62jH9/python-passlib-1.7.4/.pybuild/cpython3_3.9_passlib/build/passlib/win32.py -> /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup/stamp.py to stamp.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/_setup/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/hash.py to hash.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/registry.py to registry.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/decor.py to decor.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/pbkdf2.py to pbkdf2.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/md4.py to md4.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/handlers.py to handlers.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/binary.py to binary.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/utils/des.py to des.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/apache.py to apache.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/hosts.py to hosts.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/phpass.py to phpass.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/ldap_digests.py to ldap_digests.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/misc.py to misc.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/mssql.py to mssql.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/mysql.py to mysql.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/md5_crypt.py to md5_crypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/django.py to django.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/windows.py to windows.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/scram.py to scram.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/digests.py to digests.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/cisco.py to cisco.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/scrypt.py to scrypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/oracle.py to oracle.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/pbkdf2.py to pbkdf2.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/postgres.py to postgres.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/fshp.py to fshp.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/bcrypt.py to bcrypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/des_crypt.py to des_crypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/argon2.py to argon2.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/roundup.py to roundup.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/apps.py to apps.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/exc.py to exc.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/digest.py to digest.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish/base.py to base.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/_md4.py to _md4.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt/_builtin.py to _builtin.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt/_salsa.py to _salsa.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/crypto/des.py to des.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django/models.py to models.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ext/django/utils.py to utils.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/context.py to context.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/pwd.py to pwd.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/ifc.py to ifc.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_context.py to test_context.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_utils_md4.py to test_utils_md4.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_totp.py to test_totp.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/__init__.py to __init__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_hosts.py to test_hosts.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/_test_bad_register.py to _test_bad_register.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers.py to test_handlers.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/tox_support.py to tox_support.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_win32.py to test_win32.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/backports.py to backports.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/__main__.py to __main__.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_ext_django.py to test_ext_django.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_registry.py to test_registry.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_pwd.py to test_pwd.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_apache.py to test_apache.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_apps.py to test_apps.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_utils.py to test_utils.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_django.py to test_handlers_django.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_crypto_des.py to test_crypto_des.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/utils.py to utils.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/totp.py to totp.cpython-39.pyc byte-compiling /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib/win32.py to win32.cpython-39.pyc running install_egg_info running egg_info writing passlib.egg-info/PKG-INFO writing dependency_links to passlib.egg-info/dependency_links.txt writing requirements to passlib.egg-info/requires.txt writing top-level names to passlib.egg-info/top_level.txt reading manifest file 'passlib.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'CHANGES' writing manifest file 'passlib.egg-info/SOURCES.txt' Copying passlib.egg-info to /build/python-passlib-K62jH9/python-passlib-1.7.4/debian/python3-passlib/usr/lib/python3.9/dist-packages/passlib-1.7.4.egg-info Skipping SOURCES.txt running install_scripts dh_installdocs -i -O--buildsystem=pybuild dh_installdocs: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_installchangelogs -i -O--buildsystem=pybuild dh_installchangelogs: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_python3 -i -O--buildsystem=pybuild dh_installinit -i -O--buildsystem=pybuild dh_installinit: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_perl -i -O--buildsystem=pybuild dh_link -i -O--buildsystem=pybuild dh_strip_nondeterminism -i -O--buildsystem=pybuild dh_compress -i -O--buildsystem=pybuild dh_compress: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_fixperms -i -O--buildsystem=pybuild dh_missing -i -O--buildsystem=pybuild dh_missing: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_installdeb -i -O--buildsystem=pybuild dh_installdeb: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_gencontrol -i -O--buildsystem=pybuild dpkg-gencontrol: warning: Depends field of package python3-passlib: substitution variable ${shlibs:Depends} used, but is not defined dh_md5sums -i -O--buildsystem=pybuild dh_builddeb -i -O--buildsystem=pybuild dpkg-deb: building package 'python3-passlib' in '../python3-passlib_1.7.4-1_all.deb'. dpkg-genbuildinfo --build=all dpkg-genchanges --build=all >../python-passlib_1.7.4-1_all.changes dpkg-genchanges: info: binary-only arch-indep upload (source code and arch-specific packages not included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: running special hook: sync-out /build/python-passlib-K62jH9 /tmp/python-passlib-1.7.4-16gb6bty1 I: cleaning package lists and apt cache... I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.ATAGxhSMcj... I: success in 635.6801 seconds md5: python3-passlib_1.7.4-1_all.deb: OK sha1: python3-passlib_1.7.4-1_all.deb: OK sha256: python3-passlib_1.7.4-1_all.deb: OK Checksums: OK