U
    ø¹Öh¡  ã                   @   sR   d Z ddlmZ ddlZe e¡ZddlmZm	Z
 ddlmZ G dd„ deƒZdS )ztest passlib.appsé    )Úwith_statementN)ÚappsÚhash)ÚTestCasec                   @   sh   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚAppsTestz0perform general tests to make sure contexts workc                 C   s   t j}|  t| ¡ ƒd¡ d S )Né2   )r   Zmaster_contextZassertGreaterÚlenÚschemes)ÚselfÚctx© r   ú=./venv/lib/python3.8/site-packages/passlib/tests/test_apps.pyÚtest_master_context   s    zAppsTest.test_master_contextc                 C   s6   t j}|  | ¡ d¡ dD ]}|  | d|¡¡ qd S )N)Zsha512_cryptZsha256_crypt)zw$6$rounds=41128$VoQLvDjkaZ6L6BIE$4pt.1Ll1XdDYduEwEYPCMOBiR6W6znsyUEoNlcVXpv2gKKIbQolgmTGe6uEEVJ7azUxuc8Tf7zV9SD2z7Ij751zL$5$rounds=31817$iZGmlyBQ99JSB5n6$p4E.pdPBWx19OajgjLRiOW0itGnyxDGgMlDcOsfaI17Útest)r   Zcustom_app_contextÚassertEqualr	   Ú
assertTrueÚverify©r
   r   r   r   r   r   Útest_custom_app_context   s    z AppsTest.test_custom_app_contextc                 C   sJ   t j}dD ]}|  | d|¡¡ q
|  | d¡d¡ |  | dd¡¡ d S )N)úMpbkdf2_sha256$29000$ZsgquwnCyBs2$fBxRQpfKd2PIeMxtkKPy0h7SrnrN+EU/cm67aitoZ2s=z3sha1$0d082$cdb462ae8b6be8784ef24b20778c4d0c82d5957fz*md5$b887a$37767f8a745af10612ad44c80ff52e92zcrypt$95a6d$95x74hLDQKXI2Z 098f6bcd4621d373cade4e832627b4f6r   ú!Údjango_disabled)r   Zdjango16_contextr   r   r   ÚidentifyÚassertFalser   r   r   r   Útest_django16_context)   s
    zAppsTest.test_django16_contextc                 C   sJ   t j}dD ]}|  | d|¡¡ q
|  | d¡d¡ |  | dd¡¡ d S )N)r   r   r   r   )r   Zdjango_contextr   r   r   r   r   r   r   r   r   Útest_django_context7   s
    zAppsTest.test_django_contextc                 C   s8   t j}dD ]}|  | d|¡¡ q
|  | d¡d ¡ d S )N)ú&{SSHA}cPusOzd6d5n3OjSVK3R329ZGCNyFcC7Fr   r   úS{CRYPT}$5$rounds=31817$iZGmlyBQ99JSB5n6$p4E.pdPBWx19OajgjLRiOW0itGnyxDGgMlDcOsfaI17)r   Zldap_nocrypt_contextr   r   ZassertIsr   r   r   r   r   Útest_ldap_nocrypt_contextA   s    ÿz"AppsTest.test_ldap_nocrypt_contextc                 C   s&   t j}dD ]}|  | d|¡¡ q
d S )N)r   r   r   r   )r   Zldap_contextr   r   r   r   r   r   Útest_ldap_contextL   s    zAppsTest.test_ldap_contextc                 C   s&   t j}dD ]}|  | d|¡¡ q
d S )N)z)*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29Z378b243e220ca493r   )r   Zmysql_contextr   r   r   r   r   r   Útest_ldap_mysql_contextV   s    z AppsTest.test_ldap_mysql_contextc                 C   s$   t j}d}|  |jd|dd¡ d S )NZ#md55d9c68c6c50ed3d02a2fcf54f63993b6r   Úuser)r!   )r   Zpostgres_contextr   r   r   r   r   r   Útest_postgres_context^   s    zAppsTest.test_postgres_contextc                 C   sž   t j}dD ]}|  | d|¡¡ q
d}tj ¡ rf|  | d|¡¡ |  | ¡ d¡ |  | 	¡ j
d¡ n4|  | |¡d¡ |  | ¡ d¡ |  | 	¡ j
d¡ d S )N)ú"$P$8Ja1vJsKa5qyy/b3mCJGXM7GyBnt6..ú"$H$8b95CoYQnQ9Y6fSTsACyphNh5yoM02.z_cD..aBxeRhYFJvtUvsIr   z<$2a$04$yjDgE74RJkeqC0/1NheSSOrvKeu9IbKDpcQf/Ox3qsrRS/Kw42qISÚbcryptZphpass)r   Zphpass_contextr   r   Úhashmodr%   Zhas_backendr   Zdefault_schemeZhandlerÚnamer   )r
   r   r   Zh1r   r   r   Útest_phppass_contextc   s    
zAppsTest.test_phppass_contextc                 C   s<   t j}dD ]}|  | d|¡¡ q
|  | d¡ d¡¡ d S )N)r#   r$   r   z$H$)r   Zphpbb3_contextr   r   r   Ú
startswithr   r   r   r   Útest_phpbb3_contextv   s    zAppsTest.test_phpbb3_contextc                 C   s&   t j}dD ]}|  | d|¡¡ q
d S )N)z?{PBKDF2}9849$JMTYu3eOUSoFYExprVVqbQ$N5.gV.uR1.BTgLSvi0qyPiRlGZ0z-{SHA}a94a8fe5ccb19ba61c4c0873d391e987982fbbd3z{CRYPT}dptOmKDriOGfUz{plaintext}testr   )r   Zroundup_contextr   r   r   r   r   r   Útest_roundup_context   s    zAppsTest.test_roundup_contextN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r    r"   r(   r*   r+   r   r   r   r   r      s   

	r   )r/   Z
__future__r   ZloggingZ	getLoggerr,   ÚlogZpasslibr   r   r&   Zpasslib.tests.utilsr   r   r   r   r   r   Ú<module>   s    
