starting phase `set-SOURCE-DATE-EPOCH' phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds starting phase `set-paths' environment variable `PATH' set to `/gnu/store/6wpnf4yx1ar04jmcs7ardf3dcb7fc4k7-python-wrapper-3.9.9/bin:/gnu/store/yg76x3fh33xiyfy4ybs39z938c83gcg9-python-nose-1.3.7/bin:/gnu/store/vffvncn7d149shc7c2znx2ia7mg30d8j-tar-1.34/bin:/gnu/store/bdwsnfq7y20cwzxd5xdipz2lqndcniv2-gzip-1.10/bin:/gnu/store/hq8w61vwbjgr7kkwdfvcr9wgdf7i7pyf-bzip2-1.0.8/bin:/gnu/store/3bmnfqz1a46ddl89iqcargdf2ximijxs-xz-5.2.5/bin:/gnu/store/q4g6nw26jlg61018xhjn575nzc975wh3-file-5.39/bin:/gnu/store/gzl6fga809pi6x0mncgh4hl97xcrai2v-diffutils-3.8/bin:/gnu/store/d8nk495685457rpmdf6a46278zijc4mf-patch-2.7.6/bin:/gnu/store/5sr7igkcclqyz01g0q3f2gsc5y5lg7am-findutils-4.8.0/bin:/gnu/store/z42b5grcygvc8rxp3638qhkjv1410b4d-gawk-5.1.0/bin:/gnu/store/axhn2x0d98gj3fmrlc06d5j1vn715ray-sed-4.8/bin:/gnu/store/f4kp7yaiqp9imxf2r9lm3kzs35cwfsc8-grep-3.6/bin:/gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin:/gnu/store/74aw9c2yfpgbwac78c5jddhk2lf03958-make-4.3/bin:/gnu/store/lzf5zg0diw2bhh2qji4bl2v46wd8pylc-bash-minimal-5.1.8/bin:/gnu/store/1khybib025zzd3hjqkaw8bf909ccbq2b-ld-wrapper-0/bin:/gnu/store/0cwwi9fdd1xx0pn0xxk4xya6wdhliyds-binutils-2.37/bin:/gnu/store/dbcbcaxq20kbkhh2mr8k98qfnymq22kp-gcc-10.3.0/bin:/gnu/store/gfjp8gfv4xxschbaxvldpigadfwqazhw-glibc-2.33/bin:/gnu/store/gfjp8gfv4xxschbaxvldpigadfwqazhw-glibc-2.33/sbin:/gnu/store/yqyf9xwlnylfgc5w2ym0m4pfm8k9lz3p-python-3.9.9/bin' environment variable `GUIX_PYTHONPATH' set to `/gnu/store/yg76x3fh33xiyfy4ybs39z938c83gcg9-python-nose-1.3.7/lib/python3.9/site-packages:/gnu/store/wyd03kh4wqig2x310rhsxcqrf2x88pkk-python-bcrypt-3.2.0/lib/python3.9/site-packages:/gnu/store/yqyf9xwlnylfgc5w2ym0m4pfm8k9lz3p-python-3.9.9/lib/python3.9/site-packages:/gnu/store/rv7wcfjd8mknq52mfpgqda6wm4r759sm-python-six-1.16.0/lib/python3.9/site-packages:/gnu/store/yicv0lcqd7rvzs5y0n75bv6xi9q02n22-python-cffi-1.14.4/lib/python3.9/site-packages:/gnu/store/98g8chr9pcxyz0czp9fq2w3q8rm2sn14-python-pycparser-2.21/lib/python3.9/site-packages' environment variable `PYTHONTZPATH' unset environment variable `BASH_LOADABLES_PATH' unset environment variable `C_INCLUDE_PATH' set to `/gnu/store/hq8w61vwbjgr7kkwdfvcr9wgdf7i7pyf-bzip2-1.0.8/include:/gnu/store/3bmnfqz1a46ddl89iqcargdf2ximijxs-xz-5.2.5/include:/gnu/store/q4g6nw26jlg61018xhjn575nzc975wh3-file-5.39/include:/gnu/store/z42b5grcygvc8rxp3638qhkjv1410b4d-gawk-5.1.0/include:/gnu/store/74aw9c2yfpgbwac78c5jddhk2lf03958-make-4.3/include:/gnu/store/0cwwi9fdd1xx0pn0xxk4xya6wdhliyds-binutils-2.37/include:/gnu/store/dbcbcaxq20kbkhh2mr8k98qfnymq22kp-gcc-10.3.0/include:/gnu/store/gfjp8gfv4xxschbaxvldpigadfwqazhw-glibc-2.33/include:/gnu/store/yqyf9xwlnylfgc5w2ym0m4pfm8k9lz3p-python-3.9.9/include:/gnu/store/gm5mbaxkqhzafwy0wnimrg53j884glxn-linux-libre-headers-5.10.35/include' environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/hq8w61vwbjgr7kkwdfvcr9wgdf7i7pyf-bzip2-1.0.8/include:/gnu/store/3bmnfqz1a46ddl89iqcargdf2ximijxs-xz-5.2.5/include:/gnu/store/q4g6nw26jlg61018xhjn575nzc975wh3-file-5.39/include:/gnu/store/z42b5grcygvc8rxp3638qhkjv1410b4d-gawk-5.1.0/include:/gnu/store/74aw9c2yfpgbwac78c5jddhk2lf03958-make-4.3/include:/gnu/store/0cwwi9fdd1xx0pn0xxk4xya6wdhliyds-binutils-2.37/include:/gnu/store/dbcbcaxq20kbkhh2mr8k98qfnymq22kp-gcc-10.3.0/include/c++:/gnu/store/dbcbcaxq20kbkhh2mr8k98qfnymq22kp-gcc-10.3.0/include:/gnu/store/gfjp8gfv4xxschbaxvldpigadfwqazhw-glibc-2.33/include:/gnu/store/yqyf9xwlnylfgc5w2ym0m4pfm8k9lz3p-python-3.9.9/include:/gnu/store/gm5mbaxkqhzafwy0wnimrg53j884glxn-linux-libre-headers-5.10.35/include' environment variable `LIBRARY_PATH' set to `/gnu/store/yg76x3fh33xiyfy4ybs39z938c83gcg9-python-nose-1.3.7/lib:/gnu/store/wyd03kh4wqig2x310rhsxcqrf2x88pkk-python-bcrypt-3.2.0/lib:/gnu/store/hq8w61vwbjgr7kkwdfvcr9wgdf7i7pyf-bzip2-1.0.8/lib:/gnu/store/3bmnfqz1a46ddl89iqcargdf2ximijxs-xz-5.2.5/lib:/gnu/store/q4g6nw26jlg61018xhjn575nzc975wh3-file-5.39/lib:/gnu/store/z42b5grcygvc8rxp3638qhkjv1410b4d-gawk-5.1.0/lib:/gnu/store/0cwwi9fdd1xx0pn0xxk4xya6wdhliyds-binutils-2.37/lib:/gnu/store/gfjp8gfv4xxschbaxvldpigadfwqazhw-glibc-2.33/lib:/gnu/store/4yb66zp717gb7hc5a1q4lkxhami93d4b-glibc-2.33-static/lib:/gnu/store/akml58i0q8mikg7xf6hm789mzlijpm5j-glibc-utf8-locales-2.33/lib:/gnu/store/yqyf9xwlnylfgc5w2ym0m4pfm8k9lz3p-python-3.9.9/lib:/gnu/store/rv7wcfjd8mknq52mfpgqda6wm4r759sm-python-six-1.16.0/lib:/gnu/store/yicv0lcqd7rvzs5y0n75bv6xi9q02n22-python-cffi-1.14.4/lib:/gnu/store/98g8chr9pcxyz0czp9fq2w3q8rm2sn14-python-pycparser-2.21/lib' environment variable `GUIX_LOCPATH' set to `/gnu/store/akml58i0q8mikg7xf6hm789mzlijpm5j-glibc-utf8-locales-2.33/lib/locale' phase `set-paths' succeeded after 0.0 seconds starting phase `install-locale' using 'en_US.utf8' locale for category "LC_ALL" phase `install-locale' succeeded after 0.0 seconds starting phase `unpack' passlib-1.7.4/ passlib-1.7.4/LICENSE passlib-1.7.4/MANIFEST.in passlib-1.7.4/PKG-INFO passlib-1.7.4/README passlib-1.7.4/docs/ passlib-1.7.4/docs/_fragments/ passlib-1.7.4/docs/_fragments/asa_verify_callout.rst passlib-1.7.4/docs/_fragments/insecure_hash_warning.rst passlib-1.7.4/docs/_fragments/trivial_hash_warning.rst passlib-1.7.4/docs/_static/ passlib-1.7.4/docs/_static/bb-logo.png passlib-1.7.4/docs/_static/bb-logo.png.orig passlib-1.7.4/docs/_static/bb-logo.svg passlib-1.7.4/docs/_static/bb-logo.svg.orig passlib-1.7.4/docs/_static/logo-128.png passlib-1.7.4/docs/_static/logo-64.png passlib-1.7.4/docs/_static/logo.ico passlib-1.7.4/docs/_static/logo.png passlib-1.7.4/docs/_static/logo.svg passlib-1.7.4/docs/_static/masthead.png passlib-1.7.4/docs/_static/masthead.svg passlib-1.7.4/docs/conf.py passlib-1.7.4/docs/contents.rst passlib-1.7.4/docs/copyright.rst passlib-1.7.4/docs/dev-requirements.txt passlib-1.7.4/docs/faq.rst passlib-1.7.4/docs/history/ passlib-1.7.4/docs/history/1.5.rst passlib-1.7.4/docs/history/1.6.rst passlib-1.7.4/docs/history/1.7.rst passlib-1.7.4/docs/history/ancient.rst passlib-1.7.4/docs/history/index.rst passlib-1.7.4/docs/history.rst passlib-1.7.4/docs/index.rst passlib-1.7.4/docs/install.rst passlib-1.7.4/docs/lib/ passlib-1.7.4/docs/lib/index.rst passlib-1.7.4/docs/lib/passlib.apache.rst passlib-1.7.4/docs/lib/passlib.apps.rst passlib-1.7.4/docs/lib/passlib.context-tutorial.rst passlib-1.7.4/docs/lib/passlib.context.rst passlib-1.7.4/docs/lib/passlib.crypto.des.rst passlib-1.7.4/docs/lib/passlib.crypto.digest.rst passlib-1.7.4/docs/lib/passlib.crypto.rst passlib-1.7.4/docs/lib/passlib.exc.rst passlib-1.7.4/docs/lib/passlib.ext.django.rst passlib-1.7.4/docs/lib/passlib.hash.apr_md5_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.argon2.rst passlib-1.7.4/docs/lib/passlib.hash.atlassian_pbkdf2_sha1.rst passlib-1.7.4/docs/lib/passlib.hash.bcrypt.rst passlib-1.7.4/docs/lib/passlib.hash.bcrypt_sha256.rst passlib-1.7.4/docs/lib/passlib.hash.bigcrypt.rst passlib-1.7.4/docs/lib/passlib.hash.bsdi_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.cisco_asa.rst passlib-1.7.4/docs/lib/passlib.hash.cisco_pix.rst passlib-1.7.4/docs/lib/passlib.hash.cisco_type7.rst passlib-1.7.4/docs/lib/passlib.hash.crypt16.rst passlib-1.7.4/docs/lib/passlib.hash.cta_pbkdf2_sha1.rst passlib-1.7.4/docs/lib/passlib.hash.des_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.django_std.rst passlib-1.7.4/docs/lib/passlib.hash.dlitz_pbkdf2_sha1.rst passlib-1.7.4/docs/lib/passlib.hash.fshp.rst passlib-1.7.4/docs/lib/passlib.hash.grub_pbkdf2_sha512.rst passlib-1.7.4/docs/lib/passlib.hash.hex_digests.rst passlib-1.7.4/docs/lib/passlib.hash.ldap_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.ldap_other.rst passlib-1.7.4/docs/lib/passlib.hash.ldap_pbkdf2_digest.rst passlib-1.7.4/docs/lib/passlib.hash.ldap_std.rst passlib-1.7.4/docs/lib/passlib.hash.lmhash.rst passlib-1.7.4/docs/lib/passlib.hash.md5_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.msdcc.rst passlib-1.7.4/docs/lib/passlib.hash.msdcc2.rst passlib-1.7.4/docs/lib/passlib.hash.mssql2000.rst passlib-1.7.4/docs/lib/passlib.hash.mssql2005.rst passlib-1.7.4/docs/lib/passlib.hash.mysql323.rst passlib-1.7.4/docs/lib/passlib.hash.mysql41.rst passlib-1.7.4/docs/lib/passlib.hash.nthash.rst passlib-1.7.4/docs/lib/passlib.hash.oracle10.rst passlib-1.7.4/docs/lib/passlib.hash.oracle11.rst passlib-1.7.4/docs/lib/passlib.hash.pbkdf2_digest.rst passlib-1.7.4/docs/lib/passlib.hash.phpass.rst passlib-1.7.4/docs/lib/passlib.hash.plaintext.rst passlib-1.7.4/docs/lib/passlib.hash.postgres_md5.rst passlib-1.7.4/docs/lib/passlib.hash.rst passlib-1.7.4/docs/lib/passlib.hash.scram.rst passlib-1.7.4/docs/lib/passlib.hash.scrypt.rst passlib-1.7.4/docs/lib/passlib.hash.sha1_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.sha256_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.sha512_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.sun_md5_crypt.rst passlib-1.7.4/docs/lib/passlib.hash.unix_disabled.rst passlib-1.7.4/docs/lib/passlib.hosts.rst passlib-1.7.4/docs/lib/passlib.ifc.rst passlib-1.7.4/docs/lib/passlib.pwd.rst passlib-1.7.4/docs/lib/passlib.registry.rst passlib-1.7.4/docs/lib/passlib.totp.rst passlib-1.7.4/docs/lib/passlib.utils.binary.rst passlib-1.7.4/docs/lib/passlib.utils.compat.rst passlib-1.7.4/docs/lib/passlib.utils.des.rst passlib-1.7.4/docs/lib/passlib.utils.handlers.rst passlib-1.7.4/docs/lib/passlib.utils.pbkdf2.rst passlib-1.7.4/docs/lib/passlib.utils.rst passlib-1.7.4/docs/modular_crypt_format.rst passlib-1.7.4/docs/narr/ passlib-1.7.4/docs/narr/context-tutorial.rst passlib-1.7.4/docs/narr/hash-tutorial.rst passlib-1.7.4/docs/narr/index.rst passlib-1.7.4/docs/narr/overview.rst passlib-1.7.4/docs/narr/quickstart.rst passlib-1.7.4/docs/narr/totp-tutorial.rst passlib-1.7.4/docs/new_app_quickstart.rst passlib-1.7.4/docs/other.rst passlib-1.7.4/docs/overview.rst passlib-1.7.4/docs/password_hash_api.rst passlib-1.7.4/docs/requirements.txt passlib-1.7.4/passlib/ passlib-1.7.4/passlib/__init__.py passlib-1.7.4/passlib/_data/ passlib-1.7.4/passlib/_data/wordsets/ passlib-1.7.4/passlib/_data/wordsets/bip39.txt passlib-1.7.4/passlib/_data/wordsets/eff_long.txt passlib-1.7.4/passlib/_data/wordsets/eff_prefixed.txt passlib-1.7.4/passlib/_data/wordsets/eff_short.txt passlib-1.7.4/passlib/_setup/ passlib-1.7.4/passlib/_setup/__init__.py passlib-1.7.4/passlib/_setup/stamp.py passlib-1.7.4/passlib/apache.py passlib-1.7.4/passlib/apps.py passlib-1.7.4/passlib/context.py passlib-1.7.4/passlib/crypto/ passlib-1.7.4/passlib/crypto/__init__.py passlib-1.7.4/passlib/crypto/_blowfish/ passlib-1.7.4/passlib/crypto/_blowfish/__init__.py passlib-1.7.4/passlib/crypto/_blowfish/_gen_files.py passlib-1.7.4/passlib/crypto/_blowfish/base.py passlib-1.7.4/passlib/crypto/_blowfish/unrolled.py passlib-1.7.4/passlib/crypto/_md4.py passlib-1.7.4/passlib/crypto/des.py passlib-1.7.4/passlib/crypto/digest.py passlib-1.7.4/passlib/crypto/scrypt/ passlib-1.7.4/passlib/crypto/scrypt/__init__.py passlib-1.7.4/passlib/crypto/scrypt/_builtin.py passlib-1.7.4/passlib/crypto/scrypt/_gen_files.py passlib-1.7.4/passlib/crypto/scrypt/_salsa.py passlib-1.7.4/passlib/exc.py passlib-1.7.4/passlib/ext/ passlib-1.7.4/passlib/ext/__init__.py passlib-1.7.4/passlib/ext/django/ passlib-1.7.4/passlib/ext/django/__init__.py passlib-1.7.4/passlib/ext/django/models.py passlib-1.7.4/passlib/ext/django/utils.py passlib-1.7.4/passlib/handlers/ passlib-1.7.4/passlib/handlers/__init__.py passlib-1.7.4/passlib/handlers/argon2.py passlib-1.7.4/passlib/handlers/bcrypt.py passlib-1.7.4/passlib/handlers/cisco.py passlib-1.7.4/passlib/handlers/des_crypt.py passlib-1.7.4/passlib/handlers/digests.py passlib-1.7.4/passlib/handlers/django.py passlib-1.7.4/passlib/handlers/fshp.py passlib-1.7.4/passlib/handlers/ldap_digests.py passlib-1.7.4/passlib/handlers/md5_crypt.py passlib-1.7.4/passlib/handlers/misc.py passlib-1.7.4/passlib/handlers/mssql.py passlib-1.7.4/passlib/handlers/mysql.py passlib-1.7.4/passlib/handlers/oracle.py passlib-1.7.4/passlib/handlers/pbkdf2.py passlib-1.7.4/passlib/handlers/phpass.py passlib-1.7.4/passlib/handlers/postgres.py passlib-1.7.4/passlib/handlers/roundup.py passlib-1.7.4/passlib/handlers/scram.py passlib-1.7.4/passlib/handlers/scrypt.py passlib-1.7.4/passlib/handlers/sha1_crypt.py passlib-1.7.4/passlib/handlers/sha2_crypt.py passlib-1.7.4/passlib/handlers/sun_md5_crypt.py passlib-1.7.4/passlib/handlers/windows.py passlib-1.7.4/passlib/hash.py passlib-1.7.4/passlib/hosts.py passlib-1.7.4/passlib/ifc.py passlib-1.7.4/passlib/pwd.py passlib-1.7.4/passlib/registry.py passlib-1.7.4/passlib/tests/ passlib-1.7.4/passlib/tests/__init__.py passlib-1.7.4/passlib/tests/__main__.py passlib-1.7.4/passlib/tests/_test_bad_register.py passlib-1.7.4/passlib/tests/backports.py passlib-1.7.4/passlib/tests/sample1.cfg passlib-1.7.4/passlib/tests/sample1b.cfg passlib-1.7.4/passlib/tests/sample1c.cfg passlib-1.7.4/passlib/tests/sample_config_1s.cfg passlib-1.7.4/passlib/tests/test_apache.py passlib-1.7.4/passlib/tests/test_apps.py passlib-1.7.4/passlib/tests/test_context.py passlib-1.7.4/passlib/tests/test_context_deprecated.py passlib-1.7.4/passlib/tests/test_crypto_builtin_md4.py passlib-1.7.4/passlib/tests/test_crypto_des.py passlib-1.7.4/passlib/tests/test_crypto_digest.py passlib-1.7.4/passlib/tests/test_crypto_scrypt.py passlib-1.7.4/passlib/tests/test_ext_django.py passlib-1.7.4/passlib/tests/test_ext_django_source.py passlib-1.7.4/passlib/tests/test_handlers.py passlib-1.7.4/passlib/tests/test_handlers_argon2.py passlib-1.7.4/passlib/tests/test_handlers_bcrypt.py passlib-1.7.4/passlib/tests/test_handlers_cisco.py passlib-1.7.4/passlib/tests/test_handlers_django.py passlib-1.7.4/passlib/tests/test_handlers_pbkdf2.py passlib-1.7.4/passlib/tests/test_handlers_scrypt.py passlib-1.7.4/passlib/tests/test_hosts.py passlib-1.7.4/passlib/tests/test_pwd.py passlib-1.7.4/passlib/tests/test_registry.py passlib-1.7.4/passlib/tests/test_totp.py passlib-1.7.4/passlib/tests/test_utils.py passlib-1.7.4/passlib/tests/test_utils_handlers.py passlib-1.7.4/passlib/tests/test_utils_md4.py passlib-1.7.4/passlib/tests/test_utils_pbkdf2.py passlib-1.7.4/passlib/tests/test_win32.py passlib-1.7.4/passlib/tests/tox_support.py passlib-1.7.4/passlib/tests/utils.py passlib-1.7.4/passlib/totp.py passlib-1.7.4/passlib/utils/ passlib-1.7.4/passlib/utils/__init__.py passlib-1.7.4/passlib/utils/binary.py passlib-1.7.4/passlib/utils/compat/ passlib-1.7.4/passlib/utils/compat/__init__.py passlib-1.7.4/passlib/utils/compat/_ordered_dict.py passlib-1.7.4/passlib/utils/decor.py passlib-1.7.4/passlib/utils/des.py passlib-1.7.4/passlib/utils/handlers.py passlib-1.7.4/passlib/utils/md4.py passlib-1.7.4/passlib/utils/pbkdf2.py passlib-1.7.4/passlib/win32.py passlib-1.7.4/passlib.egg-info/ passlib-1.7.4/passlib.egg-info/PKG-INFO passlib-1.7.4/passlib.egg-info/SOURCES.txt passlib-1.7.4/passlib.egg-info/dependency_links.txt passlib-1.7.4/passlib.egg-info/requires.txt passlib-1.7.4/passlib.egg-info/top_level.txt passlib-1.7.4/passlib.egg-info/zip-safe passlib-1.7.4/setup.cfg passlib-1.7.4/setup.py passlib-1.7.4/tox.ini phase `unpack' succeeded after 0.1 seconds starting phase `ensure-no-mtimes-pre-1980' phase `ensure-no-mtimes-pre-1980' succeeded after 0.0 seconds starting phase `enable-bytecode-determinism' phase `enable-bytecode-determinism' succeeded after 0.0 seconds starting phase `ensure-no-cythonized-files' phase `ensure-no-cythonized-files' succeeded after 0.0 seconds starting phase `patch-usr-bin-file' phase `patch-usr-bin-file' succeeded after 0.0 seconds starting phase `patch-source-shebangs' phase `patch-source-shebangs' succeeded after 0.1 seconds starting phase `patch-generated-file-shebangs' phase `patch-generated-file-shebangs' succeeded after 0.0 seconds starting phase `build' running "python setup.py" with command "build" and parameters () running build running build_py creating build creating build/lib creating build/lib/passlib copying passlib/__init__.py -> build/lib/passlib copying passlib/apache.py -> build/lib/passlib copying passlib/apps.py -> build/lib/passlib copying passlib/context.py -> build/lib/passlib copying passlib/exc.py -> build/lib/passlib copying passlib/hash.py -> build/lib/passlib copying passlib/hosts.py -> build/lib/passlib copying passlib/ifc.py -> build/lib/passlib copying passlib/pwd.py -> build/lib/passlib copying passlib/registry.py -> build/lib/passlib copying passlib/totp.py -> build/lib/passlib copying passlib/win32.py -> build/lib/passlib creating build/lib/passlib/_setup copying passlib/_setup/__init__.py -> build/lib/passlib/_setup copying passlib/_setup/stamp.py -> build/lib/passlib/_setup creating build/lib/passlib/crypto copying passlib/crypto/__init__.py -> build/lib/passlib/crypto copying passlib/crypto/_md4.py -> build/lib/passlib/crypto copying passlib/crypto/des.py -> build/lib/passlib/crypto copying passlib/crypto/digest.py -> build/lib/passlib/crypto creating build/lib/passlib/ext copying passlib/ext/__init__.py -> build/lib/passlib/ext creating build/lib/passlib/handlers copying passlib/handlers/__init__.py -> build/lib/passlib/handlers copying passlib/handlers/argon2.py -> build/lib/passlib/handlers copying passlib/handlers/bcrypt.py -> build/lib/passlib/handlers copying passlib/handlers/cisco.py -> build/lib/passlib/handlers copying passlib/handlers/des_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/digests.py -> build/lib/passlib/handlers copying passlib/handlers/django.py -> build/lib/passlib/handlers copying passlib/handlers/fshp.py -> build/lib/passlib/handlers copying passlib/handlers/ldap_digests.py -> build/lib/passlib/handlers copying passlib/handlers/md5_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/misc.py -> build/lib/passlib/handlers copying passlib/handlers/mssql.py -> build/lib/passlib/handlers copying passlib/handlers/mysql.py -> build/lib/passlib/handlers copying passlib/handlers/oracle.py -> build/lib/passlib/handlers copying passlib/handlers/pbkdf2.py -> build/lib/passlib/handlers copying passlib/handlers/phpass.py -> build/lib/passlib/handlers copying passlib/handlers/postgres.py -> build/lib/passlib/handlers copying passlib/handlers/roundup.py -> build/lib/passlib/handlers copying passlib/handlers/scram.py -> build/lib/passlib/handlers copying passlib/handlers/scrypt.py -> build/lib/passlib/handlers copying passlib/handlers/sha1_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/sha2_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/sun_md5_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/windows.py -> build/lib/passlib/handlers creating build/lib/passlib/tests copying passlib/tests/__init__.py -> build/lib/passlib/tests copying passlib/tests/__main__.py -> build/lib/passlib/tests copying passlib/tests/_test_bad_register.py -> build/lib/passlib/tests copying passlib/tests/backports.py -> build/lib/passlib/tests copying passlib/tests/test_apache.py -> build/lib/passlib/tests copying passlib/tests/test_apps.py -> build/lib/passlib/tests copying passlib/tests/test_context.py -> build/lib/passlib/tests copying passlib/tests/test_context_deprecated.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_builtin_md4.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_des.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_digest.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_scrypt.py -> build/lib/passlib/tests copying passlib/tests/test_ext_django.py -> build/lib/passlib/tests copying passlib/tests/test_ext_django_source.py -> build/lib/passlib/tests copying passlib/tests/test_handlers.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_argon2.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_bcrypt.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_cisco.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_django.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_pbkdf2.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_scrypt.py -> build/lib/passlib/tests copying passlib/tests/test_hosts.py -> build/lib/passlib/tests copying passlib/tests/test_pwd.py -> build/lib/passlib/tests copying passlib/tests/test_registry.py -> build/lib/passlib/tests copying passlib/tests/test_totp.py -> build/lib/passlib/tests copying passlib/tests/test_utils.py -> build/lib/passlib/tests copying passlib/tests/test_utils_handlers.py -> build/lib/passlib/tests copying passlib/tests/test_utils_md4.py -> build/lib/passlib/tests copying passlib/tests/test_utils_pbkdf2.py -> build/lib/passlib/tests copying passlib/tests/test_win32.py -> build/lib/passlib/tests copying passlib/tests/tox_support.py -> build/lib/passlib/tests copying passlib/tests/utils.py -> build/lib/passlib/tests creating build/lib/passlib/utils copying passlib/utils/__init__.py -> build/lib/passlib/utils copying passlib/utils/binary.py -> build/lib/passlib/utils copying passlib/utils/decor.py -> build/lib/passlib/utils copying passlib/utils/des.py -> build/lib/passlib/utils copying passlib/utils/handlers.py -> build/lib/passlib/utils copying passlib/utils/md4.py -> build/lib/passlib/utils copying passlib/utils/pbkdf2.py -> build/lib/passlib/utils creating build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/__init__.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/_gen_files.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/base.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/unrolled.py -> build/lib/passlib/crypto/_blowfish creating build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/__init__.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_builtin.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_gen_files.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_salsa.py -> build/lib/passlib/crypto/scrypt creating build/lib/passlib/ext/django copying passlib/ext/django/__init__.py -> build/lib/passlib/ext/django copying passlib/ext/django/models.py -> build/lib/passlib/ext/django copying passlib/ext/django/utils.py -> build/lib/passlib/ext/django creating build/lib/passlib/utils/compat copying passlib/utils/compat/__init__.py -> build/lib/passlib/utils/compat copying passlib/utils/compat/_ordered_dict.py -> build/lib/passlib/utils/compat creating build/lib/passlib/_data creating build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/bip39.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_long.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_prefixed.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_short.txt -> build/lib/passlib/_data/wordsets copying passlib/tests/sample1.cfg -> build/lib/passlib/tests copying passlib/tests/sample1b.cfg -> build/lib/passlib/tests copying passlib/tests/sample1c.cfg -> build/lib/passlib/tests copying passlib/tests/sample_config_1s.cfg -> build/lib/passlib/tests warning: build_py: byte-compiling is disabled, skipping. phase `build' succeeded after 0.7 seconds starting phase `install' running "python setup.py" with command "install" and parameters ("--prefix=/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4" "--no-compile" "--single-version-externally-managed" "--root=/") running install running build running build_py warning: build_py: byte-compiling is disabled, skipping. running install_lib creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4 creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9 creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/apache.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/apps.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/context.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/exc.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/hash.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/hosts.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/ifc.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/pwd.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/registry.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/totp.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib copying build/lib/passlib/win32.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_setup copying build/lib/passlib/_setup/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_setup copying build/lib/passlib/_setup/stamp.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_setup creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto copying build/lib/passlib/crypto/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto copying build/lib/passlib/crypto/_md4.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto copying build/lib/passlib/crypto/des.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto copying build/lib/passlib/crypto/digest.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/_gen_files.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/base.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/unrolled.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_builtin.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_gen_files.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_salsa.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext copying build/lib/passlib/ext/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/models.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/utils.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/django creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/argon2.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/bcrypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/cisco.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/des_crypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/digests.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/django.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/fshp.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/ldap_digests.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/md5_crypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/misc.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/mssql.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/mysql.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/oracle.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/pbkdf2.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/phpass.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/postgres.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/roundup.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/scram.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/scrypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha1_crypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha2_crypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/sun_md5_crypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers copying build/lib/passlib/handlers/windows.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/__main__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/_test_bad_register.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/backports.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_apache.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_apps.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_context.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_context_deprecated.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_builtin_md4.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_des.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_digest.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_scrypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django_source.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_argon2.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_bcrypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_cisco.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_django.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_pbkdf2.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_scrypt.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_hosts.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_pwd.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_registry.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_totp.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_handlers.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_md4.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_pbkdf2.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/test_win32.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/tox_support.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/utils.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/sample1.cfg -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/sample1b.cfg -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/sample1c.cfg -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests copying build/lib/passlib/tests/sample_config_1s.cfg -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils copying build/lib/passlib/utils/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils copying build/lib/passlib/utils/binary.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils copying build/lib/passlib/utils/decor.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils copying build/lib/passlib/utils/des.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils copying build/lib/passlib/utils/handlers.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils copying build/lib/passlib/utils/md4.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils copying build/lib/passlib/utils/pbkdf2.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/__init__.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/_ordered_dict.py -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/compat creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_data creating /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/bip39.txt -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_long.txt -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_prefixed.txt -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_short.txt -> /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_data/wordsets warning: install_lib: byte-compiling is disabled, skipping. 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' adding license file 'LICENSE' writing manifest file 'passlib.egg-info/SOURCES.txt' Copying passlib.egg-info to /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib-1.7.4-py3.9.egg-info running install_scripts Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/__init__.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_data'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_data/wordsets'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_setup'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_setup/__init__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/_setup/stamp.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/apache.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/apps.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/context.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/__init__.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish/__init__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish/_gen_files.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish/base.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_blowfish/unrolled.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/_md4.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/des.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/digest.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt/__init__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt/_builtin.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt/_gen_files.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/crypto/scrypt/_salsa.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/exc.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/__init__.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/django'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/django/__init__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/django/models.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ext/django/utils.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/__init__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/argon2.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/bcrypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/cisco.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/des_crypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/digests.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/django.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/fshp.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/ldap_digests.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/md5_crypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/misc.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/mssql.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/mysql.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/oracle.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/pbkdf2.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/phpass.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/postgres.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/roundup.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/scram.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/scrypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/sha1_crypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/sha2_crypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/sun_md5_crypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/handlers/windows.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/hash.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/hosts.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/ifc.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/pwd.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/registry.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/__init__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/__main__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/_test_bad_register.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/backports.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_apache.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_apps.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_context.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_context_deprecated.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_crypto_builtin_md4.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_crypto_des.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_crypto_digest.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_crypto_scrypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_ext_django.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_ext_django_source.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_handlers.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_handlers_argon2.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_handlers_bcrypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_handlers_cisco.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_handlers_django.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_handlers_pbkdf2.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_handlers_scrypt.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_hosts.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_pwd.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_registry.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_totp.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_utils.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_utils_handlers.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_utils_md4.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_utils_pbkdf2.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/test_win32.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/tox_support.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/tests/utils.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/totp.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/__init__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/binary.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/compat'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/compat/__init__.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/compat/_ordered_dict.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/decor.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/des.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/handlers.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/md4.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/utils/pbkdf2.py'... Compiling '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib/win32.py'... Listing '/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages/passlib-1.7.4-py3.9.egg-info'... phase `install' succeeded after 1.8 seconds starting phase `add-install-to-pythonpath' phase `add-install-to-pythonpath' succeeded after 0.0 seconds starting phase `add-install-to-path' phase `add-install-to-path' succeeded after 0.0 seconds starting phase `wrap' find-files: /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/bin: No such file or directory find-files: /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/sbin: No such file or directory phase `wrap' succeeded after 0.0 seconds starting phase `set-PYTHON_EGG_CACHE' phase `set-PYTHON_EGG_CACHE' succeeded after 0.0 seconds starting phase `check' running "python setup.py" with command "test" and parameters () 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' adding license file 'LICENSE' writing manifest file 'passlib.egg-info/SOURCES.txt' running build_ext /tmp/guix-build-python-passlib-1.7.4.drv-0/passlib-1.7.4/passlib/tests/test_apache.py:210: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("update\(\) is deprecated"): /tmp/guix-build-python-passlib-1.7.4.drv-0/passlib-1.7.4/passlib/tests/test_apache.py:280: DeprecationWarning: invalid escape sequence \( with self.assertWarningList(["verify\(\) is deprecated"]*2): /tmp/guix-build-python-passlib-1.7.4.drv-0/passlib-1.7.4/passlib/tests/test_apache.py:370: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("find\(\) is deprecated"): /tmp/guix-build-python-passlib-1.7.4.drv-0/passlib-1.7.4/passlib/tests/test_apache.py:606: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("update\(\) is deprecated"): /tmp/guix-build-python-passlib-1.7.4.drv-0/passlib-1.7.4/passlib/tests/test_apache.py:640: DeprecationWarning: invalid escape sequence \( with self.assertWarningList(["verify\(\) is deprecated"]*2): /tmp/guix-build-python-passlib-1.7.4.drv-0/passlib-1.7.4/passlib/tests/test_apache.py:728: DeprecationWarning: invalid escape sequence \( with self.assertWarningList("find\(\) is deprecated"): /tmp/guix-build-python-passlib-1.7.4.drv-0/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.*") /tmp/guix-build-python-passlib-1.7.4.drv-0/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.*") /tmp/guix-build-python-passlib-1.7.4.drv-0/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"): /tmp/guix-build-python-passlib-1.7.4.drv-0/passlib-1.7.4/passlib/tests/test_handlers.py:1523: DeprecationWarning: invalid escape sequence \d ("freebsd(9|1\d)|linux", True), /tmp/guix-build-python-passlib-1.7.4.drv-0/passlib-1.7.4/passlib/tests/test_handlers.py:1761: DeprecationWarning: invalid escape sequence \( warnings.filterwarnings("ignore", "passing settings to .*.hash\(\) is deprecated") /tmp/guix-build-python-passlib-1.7.4.drv-0/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 ... /tmp/guix-build-python-passlib-1.7.4.drv-0/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 ... ok test_02_config_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided test_75_foreign (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_builtin_test) ... ok test_78_fuzz_threading (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok test_needs_update_w_even_rounds (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): needs_update() should flag even rounds ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.bsdi_crypt_builtin_test) bsdi_crypt (builtin backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested 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) ... SKIP: only default backend is being tested 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: only default backend is being tested test_80_faulty_crypt (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested test_81_crypt_fallback (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested 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 = False) test_disable_and_enable (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested 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: only default backend is being tested 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 ... SKIP: only default backend is being tested 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() ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt 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_os_crypt_test) bsdi_crypt (os_crypt 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_os_crypt_test) bsdi_crypt (os_crypt 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_os_crypt_test) bsdi_crypt (os_crypt 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_os_crypt_test) bsdi_crypt (os_crypt 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_os_crypt_test) bsdi_crypt (os_crypt 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_os_crypt_test) bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested 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. ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested 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: only default backend is being tested 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: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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: only default backend is being tested 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: only default backend is being tested test_80_faulty_crypt (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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: only default backend is being tested 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: only default backend is being tested 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 ... SKIP: only default backend is being tested 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() ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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: only default backend is being tested 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) ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... ok test_02_config_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok test_04_hash_types (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents test_61_secret_case_sensitive (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents test_has_rounds_replace_w_max_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set test_secret_wo_truncate_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok test_truncate_error_setting (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers.sha1_crypt_builtin_test) sha1_crypt (builtin backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested 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: only default backend is being tested test_80_faulty_crypt (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested test_81_crypt_fallback (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested 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 = False) test_disable_and_enable (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested 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: only default backend is being tested 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 ... SKIP: only default backend is being tested 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() ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt 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_os_crypt_test) sha1_crypt (os_crypt 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_os_crypt_test) sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested 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: only default backend is being tested 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) ... SKIP: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers.sha1_crypt_os_crypt_test) sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested 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 ... ok test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test basic hash-string workflow. ... ok 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 ... ok test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok test_12_min_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known unidentifiably-mangled strings ... ok test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): fuzz testing -- random passwords and options ... ok 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: requires >= 'full' test mode test_90_bcrypt_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: requires >= 'full' test mode test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok 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 ... ok test_has_rounds_using_and_needs_update (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- default_rounds ... ok 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 ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok test_has_rounds_using_w_vary_rounds_parsing (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): needs_update corrects bcrypt padding ... ok 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) ... ok 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: truncate_size is set test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_bcrypt_test) bcrypt (bcrypt backend): Handler.using() -- default_salt_size ... ok 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 ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested test_64_forbidden_chars (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested 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: only default backend is being tested test_80_faulty_crypt (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested test_81_crypt_fallback (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested 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 = False) 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: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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() ... SKIP: only default backend is being tested test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt 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_os_crypt_test) bcrypt (os_crypt 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_os_crypt_test) bcrypt (os_crypt 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_os_crypt_test) bcrypt (os_crypt 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_os_crypt_test) bcrypt (os_crypt 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_os_crypt_test) bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested test_needs_update_w_padding (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested 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) ... SKIP: only default backend is being tested 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: only default backend is being tested test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_os_crypt_test) bcrypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested 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 ... ok test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test basic hash-string workflow. ... ok 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 ... ok test_04_hash_types (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate optional salt attributes ... ok 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 ... ok 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 ... ok 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 ... ok test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate HasManyIdents configuration ... SKIP: multiple idents not supported 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) ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok 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: none listed test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known config strings ... ok test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known identifiable-but-malformed strings ... ok test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): fuzz testing -- random passwords and options ... ok 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: requires >= 'full' test mode test_calc_digest_v2 (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): test digest calc v2 matches bcrypt() ... ok test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable 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: multiple idents not supported 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 ... ok 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() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok test_has_rounds_using_w_default_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- default_rounds ... ok 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 ... ok test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): HasRounds.using() -- rounds ... ok 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 ... ok 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 ... ok 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: truncate_size not set 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) ... ok test_truncate_error_setting (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) bcrypt_sha256 (bcrypt backend): Handler.using() -- default_salt_size ... ok 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) ... ok 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 ... SKIP: only default backend is being tested test_02_config_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested test_02_using_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested test_03_hash_workflow (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested test_10_optional_salt_attributes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_14_salt_chars (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested test_15_salt_type (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_30_HasManyIdents (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested 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) ... SKIP: only default backend is being tested test_61_secret_case_sensitive (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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: only default backend is being tested test_70_hashes (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known hashes ... SKIP: only default backend is being tested test_70_parsehash (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): parsehash() ... SKIP: only default backend is being tested test_71_alternates (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested test_71_parsehash_results (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested test_72_configs (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known config strings ... SKIP: only default backend is being tested test_73_unidentified (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested test_74_malformed (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested test_75_foreign (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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: only default backend is being tested test_80_faulty_crypt (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested test_81_crypt_fallback (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested 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 = False) 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() ... SKIP: only default backend is being tested test_disable_and_enable (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested 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: only default backend is being tested 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 ... SKIP: only default backend is being tested 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() ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested 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 ... SKIP: only default backend is being tested test_has_rounds_using_w_rounds (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt 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_os_crypt_test) bcrypt_sha256 (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested 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) ... SKIP: only default backend is being tested 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 (bcrypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt 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 (bcrypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): validate HasManyIdents configuration ... ok test_61_secret_case_sensitive (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt 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 (bcrypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): parsehash() ... ok test_71_alternates (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt 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 (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present test_72_configs (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt 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 (bcrypt 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 (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_bcrypt_sha256_test) django_bcrypt_sha256 (bcrypt backend): Handler.using() -- default_salt_size ... ok test_01_required_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): validate required attributes ... ok test_02_config_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test basic config-string workflow ... ok test_02_using_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test basic using() workflow ... ok test_03_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test basic hash-string workflow. ... ok test_03_legacy_hash_workflow (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt backend): test hashes can be unicode or bytes ... ok test_05_backends (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test multi-backend support ... ok test_10_optional_salt_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): validate optional salt attributes ... ok test_11_unique_salt (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok test_13_max_salt_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok test_14_salt_chars (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test hash() honors salt_chars ... ok test_15_salt_type (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test non-string salt values ... ok test_20_optional_rounds_attributes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): validate optional rounds attributes ... ok test_21_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok test_21b_max_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok test_30_HasManyIdents (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt backend): test password case sensitivity ... ok test_62_secret_border (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test non-string passwords are rejected ... ok test_63_large_secret (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok test_64_forbidden_chars (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test forbidden characters not allowed in password ... ok test_70_hashes (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test known hashes ... ok test_70_parsehash (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): parsehash() ... SKIP: parsehash() not implemented test_71_alternates (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided test_71_parsehash_results (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented test_72_configs (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test known config strings ... SKIP: no config strings provided test_73_unidentified (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided test_74_malformed (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt backend): test known foreign hashes ... ok test_76_hash_border (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): test non-string hashes are rejected ... ok test_77_fuzz_input (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt backend): fuzz testing -- random passwords and options ... ok test_78_fuzz_threading (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt 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 (bcrypt 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 (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable test_has_many_idents_using (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt 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 (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok test_has_rounds_using_harness (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt backend): HasRounds.using() -- default_rounds ... ok test_has_rounds_using_w_min_rounds (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt backend): HasRounds.using() -- rounds ... ok test_has_rounds_using_w_vary_rounds_generation (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok test_secret_w_truncate_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 (bcrypt 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 (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok test_using_salt_size (passlib.tests.test_handlers_django.django_bcrypt_test) django_bcrypt (bcrypt 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 249.255s OK (skipped=2390) phase `check' succeeded after 250.3 seconds starting phase `sanity-check' validating 'passlib' /gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib/python3.9/site-packages ...checking requirements: OK ...trying to load module passlib: OK phase `sanity-check' succeeded after 0.5 seconds starting phase `patch-shebangs' phase `patch-shebangs' succeeded after 0.0 seconds starting phase `rename-pth-file' phase `rename-pth-file' succeeded after 0.0 seconds starting phase `strip' stripping binaries in "/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib" with "strip" and flags ("--strip-unneeded" "--enable-deterministic-archives") phase `strip' succeeded after 0.1 seconds starting phase `validate-runpath' validating RUNPATH of 0 binaries in "/gnu/store/x4p5jrcdcvf07hbb5zslnzbln9bammhg-python-passlib-1.7.4/lib"... phase `validate-runpath' succeeded after 0.0 seconds starting phase `validate-documentation-location' phase `validate-documentation-location' succeeded after 0.0 seconds starting phase `delete-info-dir-file' phase `delete-info-dir-file' succeeded after 0.0 seconds starting phase `patch-dot-desktop-files' phase `patch-dot-desktop-files' succeeded after 0.0 seconds starting phase `make-dynamic-linker-cache' phase `make-dynamic-linker-cache' succeeded after 0.0 seconds starting phase `install-license-files' installing 1 license files from '.' phase `install-license-files' succeeded after 0.0 seconds starting phase `reset-gzip-timestamps' phase `reset-gzip-timestamps' succeeded after 0.0 seconds starting phase `compress-documentation' phase `compress-documentation' succeeded after 0.0 seconds