a fŸWc¡ã@sRdZddlmZddlZe e¡ZddlmZm Z ddl m Z Gdd„de ƒZ dS)ztest passlib.appsé)Úwith_statementN)ÚappsÚhash)ÚTestCasec@sheZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)ÚAppsTestz0perform general tests to make sure contexts workcCstj}| t| ¡ƒd¡dS)Né2)rZmaster_contextZ assertGreaterÚlenÚschemes)ÚselfÚctx©r ú;/usr/lib/python3.9/site-packages/passlib/tests/test_apps.pyÚtest_master_contextszAppsTest.test_master_contextcCs6tj}| | ¡d¡dD]}| | d|¡¡qdS)N)Z sha512_cryptZ sha256_crypt)zw$6$rounds=41128$VoQLvDjkaZ6L6BIE$4pt.1Ll1XdDYduEwEYPCMOBiR6W6znsyUEoNlcVXpv2gKKIbQolgmTGe6uEEVJ7azUxuc8Tf7zV9SD2z7Ij751zL$5$rounds=31817$iZGmlyBQ99JSB5n6$p4E.pdPBWx19OajgjLRiOW0itGnyxDGgMlDcOsfaI17Útest)rZcustom_app_contextÚ assertEqualr Ú assertTrueÚverify©r r rr r r Útest_custom_app_contextsz AppsTest.test_custom_app_contextcCsJtj}dD]}| | d|¡¡q | | d¡d¡| | dd¡¡dS)N)úMpbkdf2_sha256$29000$ZsgquwnCyBs2$fBxRQpfKd2PIeMxtkKPy0h7SrnrN+EU/cm67aitoZ2s=z3sha1$0d082$cdb462ae8b6be8784ef24b20778c4d0c82d5957fz*md5$b887a$37767f8a745af10612ad44c80ff52e92zcrypt$95a6d$95x74hLDQKXI2Z 098f6bcd4621d373cade4e832627b4f6rú!Údjango_disabled)rZdjango16_contextrrrÚidentifyÚ assertFalserr r r Útest_django16_context)s zAppsTest.test_django16_contextcCsJtj}dD]}| | d|¡¡q | | d¡d¡| | dd¡¡dS)N)rrrr)rZdjango_contextrrrrrrr r r Útest_django_context7s zAppsTest.test_django_contextcCs8tj}dD]}| | d|¡¡q | | d¡d¡dS)N)ú&{SSHA}cPusOzd6d5n3OjSVK3R329ZGCNyFcC7FrrúS{CRYPT}$5$rounds=31817$iZGmlyBQ99JSB5n6$p4E.pdPBWx19OajgjLRiOW0itGnyxDGgMlDcOsfaI17)rZldap_nocrypt_contextrrZassertIsrrr r r Útest_ldap_nocrypt_contextAs  ÿz"AppsTest.test_ldap_nocrypt_contextcCs&tj}dD]}| | d|¡¡q dS)N)rrrr)rZ ldap_contextrrrr r r Útest_ldap_contextLszAppsTest.test_ldap_contextcCs&tj}dD]}| | d|¡¡q dS)N)z)*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29Z378b243e220ca493r)rZ mysql_contextrrrr r r Útest_ldap_mysql_contextVsz AppsTest.test_ldap_mysql_contextcCs$tj}d}| |jd|dd¡dS)NZ#md55d9c68c6c50ed3d02a2fcf54f63993b6rÚuser)r!)rZpostgres_contextrrrr r r Útest_postgres_context^szAppsTest.test_postgres_contextcCsžtj}dD]}| | d|¡¡q d}tj ¡rf| | d|¡¡| | ¡d¡| |  ¡j d¡n4| |  |¡d¡| | ¡d¡| |  ¡j d¡dS)N)ú"$P$8Ja1vJsKa5qyy/b3mCJGXM7GyBnt6..ú"$H$8b95CoYQnQ9Y6fSTsACyphNh5yoM02.z_cD..aBxeRhYFJvtUvsIrz<$2a$04$yjDgE74RJkeqC0/1NheSSOrvKeu9IbKDpcQf/Ox3qsrRS/Kw42qISÚbcryptZphpass) rZphpass_contextrrÚhashmodr%Z has_backendrZdefault_schemeZhandlerÚnamer)r r rZh1r r r Útest_phppass_contextcs zAppsTest.test_phppass_contextcCs<tj}dD]}| | d|¡¡q | | d¡ d¡¡dS)N)r#r$rz$H$)rZphpbb3_contextrrrÚ startswithrr r r Útest_phpbb3_contextvszAppsTest.test_phpbb3_contextcCs&tj}dD]}| | d|¡¡q dS)N)z?{PBKDF2}9849$JMTYu3eOUSoFYExprVVqbQ$N5.gV.uR1.BTgLSvi0qyPiRlGZ0z-{SHA}a94a8fe5ccb19ba61c4c0873d391e987982fbbd3z{CRYPT}dptOmKDriOGfUz{plaintext}testr)rZroundup_contextrrrr r r Útest_roundup_contextszAppsTest.test_roundup_contextN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrrrr r"r(r*r+r r r r rs     r)r/Z __future__rZloggingZ getLoggerr,ÚlogZpasslibrrr&Zpasslib.tests.utilsrrr r r r Ús