Ë
    àU.j$  ã                   óü   — d Z ddlmZ ddlmZ ddlZddlZddlmZm	Z	m
Z
 ddlmZmZmZmZmZ ddlmc mZ ddlmZ  ee«      Z G d„ d	ej4                  «      Z G d
„ dej4                  «      ZdZ G d„ de«      Zy)z>tests for passlib.hash -- (c) Assurance Technologies 2003-2009é    )Úwith_statement)Ú	getLoggerN)ÚhashÚregistryÚexc)Úregister_crypt_handlerÚregister_crypt_handler_pathÚget_crypt_handlerÚlist_crypt_handlersÚ_unload_handler_name)ÚTestCasec                   ó   — e Zd Zd Zy)Údummy_0N©Ú__name__Ú
__module__Ú__qualname__Úname© ó    ú]C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\passlib/tests/test_registry.pyr   r      ó   „ Ø�Dr   r   c                   ó   — e Zd ZdZy)Úalt_dummy_0r   Nr   r   r   r   r   r      r   r   r   é   c                   óF   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )	ÚRegistryTestzpasslib.registryc                 óÀ   •‡‡— t         t        | �  «        t        t        j
                  «      Št        t        j                  «      Šˆˆfd„}| j                  |«       y )Nc                  óú   •— t         j                  j                  «        t         j                  j                  ‰«       t         j                  j                  «        t         j                  j                  ‰ «       y )N)r   Ú
_locationsÚclearÚupdateÚ	_handlers)ÚhandlersÚ	locationss   €€r   Úrestorez#RegistryTest.setUp.<locals>.restore0   sO   ø€ Ü×Ñ×%Ñ%Ô'Ü×Ñ×&Ñ& yÔ1Ü×Ñ×$Ñ$Ô&Ü×Ñ×%Ñ% hÕ/r   )Úsuperr   ÚsetUpÚdictr   r    r#   Ú
addCleanup)Úselfr&   r$   r%   Ú	__class__s     @@€r   r(   zRegistryTest.setUp*   sE   ú€ ÜŒl˜DÑ'Ô)ô œ×,Ñ,Ó-ˆ	Üœ×*Ñ*Ó+ˆõ	0ð
 	�‰˜Õ r   c                 ór  — t        t        «       t        t        «       | j                  t        t
        t        d«       t        t        dd«      }t        «       }|t        _        | j                  t        j                  |«       |€&t        `| j                  t        t        d«      «       n+|t        _        | j                  t        j                  |«        G d„ dt        j                  «      }|t        _        | j                  t        d«      |«       | j                  t        t         t        d|«       y)ztest passlib.hash proxy objectÚfooeyÚ
__loader__Nc                   ó   — e Zd ZdZy)ú-RegistryTest.test_hash_proxy.<locals>.dummy_1Údummy_1Nr   r   r   r   r2   r1   P   ó   „ Ø‰Dr   r2   Údummy_1x)Údirr   ÚreprÚassertRaisesÚAttributeErrorÚgetattrÚobjectr/   ÚassertIsÚassertFalseÚhasattrÚuhÚStaticHandlerr2   r
   Ú
ValueErrorÚsetattr)r+   ÚoldÚtestr2   s       r   Útest_hash_proxyzRegistryTest.test_hash_proxy7   s×   € ô 	ŒDŒ	ô 	ŒTŒ
ð 	×Ñœ.¬'´4¸ÔAô ”d˜L¨$Ó/ˆÜ‹xˆØŒŒØ�‰”d—o‘o tÔ,Øˆ;Ü�Ø×ÑœW¤T¨<Ó8Õ9à!ŒDŒOØ�M‰Mœ$Ÿ/™/¨3Ô/ô	”b×&Ñ&ô 	àŒŒØ�‰Ô'¨	Ó2°GÔ<ð 	×Ñœ*¤g¬t°ZÀÕIr   c                 óô  — t         j                  }| j                  d|v«       | j                  t	        t
        d«      «       | j                  t        t        dd«       | j                  t        t        dt        dz   «       | j                  t        t        dt        dz   «       t        dt        «       | j                  dt        «       v «       | j                  dt        d¬«      v«       | j                  t
        j                  t        «       | j                  dt        d¬«      v «       t        d«       t        dt        dz   «       | j                  t
        j                  t        «       t        d«       t        dt        «       | j                  t        t         d«       t        d	t        «       | j                  t        t         d	«       t        d	«       t"        j$                  j'                  d
d«       t        dd
«       t)        j*                  «       5  t)        j,                  ddt.        «       t!        d«      }ddd«       ddlm} | j                  |j4                  «       y# 1 sw Y   Œ,xY w)z"test register_crypt_handler_path()r   z.test_registryz:dummy_0:xxxz:dummy_0.xxxT)Úloaded_onlyz:alt_dummy_0Údummy_xr   z passlib.tests._test_bad_registerNÚ	dummy_badÚignoreÚ
xxxxxxxxxxr   )Ú_test_bad_register)r   r    Ú
assertTruer<   r=   r   r7   r@   r	   r   r   r;   r   Úunload_handler_namer   Ú	TypeErrorr
   ÚsysÚmodulesÚpopÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningÚpasslib.testsrK   Úalt_dummy_bad)r+   ÚpathsÚhÚtbrs       r   Ú test_register_crypt_handler_pathz-RegistryTest.test_register_crypt_handler_pathX   sØ  € ô ×#Ñ#ˆð 	�‰˜	¨Ð.Ô/Ø×Ñœ¤ yÓ1Ô2ð 	×Ñœ*Ô&AØ#Ð%5ô	7à×Ñœ*Ô&AØ#¤X°Ñ%>ô	@à×Ñœ*Ô&AØ#¤X°Ñ%>ô	@ô 	$ I¬xÔ8Ø�‰˜	Ô%8Ó%:Ð:Ô;Ø�‰˜	Ô)<ÈÔ)NÐNÔOØ�‰”d—l‘l¤GÔ,Ø�‰˜	Ô%8ÀTÔ%JÐJÔKÜ˜IÔ&ô 	$ I¬x¸.Ñ/HÔIØ�‰”d—l‘l¤KÔ0Ü˜IÔ&ô 	$ I¬xÔ8Ø×Ñœ)Ô%6¸	ÔBô 	$ M´8Ô<Ø×Ñœ*Ô&7¸ÔGÜ˜MÔ*ô 	�‰�‰Ð:¸DÔAÜ# KÐ1SÔTÜ×$Ñ$Õ&Ü×#Ñ# H¨lÔ<NÔOÜ! +Ó.ˆA÷ 'õ 	<Ø�‰�a˜×*Ñ*Õ+÷	 'Ð&ús   È'I.É.I7c                 óž  — | j                  t        t        i «       | j                  t        t        t	        dt
        j                  ft        d¬«      «      «       | j                  t        t        t	        dt
        j                  ft        d¬«      «      «       | j                  t        t        t	        dt
        j                  ft        d¬«      «      «       | j                  t        t        t	        dt
        j                  ft        d¬«      «      «       | j                  t        t        t	        dt
        j                  ft        d¬«      «      «        G d„ d	t
        j                  «      } G d
„ dt
        j                  «      }| j                  d	t        «       v«       t        |«       t        |«       | j                  t        d	«      |«       | j                  t        t        |«       | j                  t        d	«      |«       t        |d¬«       | j                  t        d	«      |«       | j                  d	t        «       v «       y)ztest register_crypt_handler()ÚxN)r   ÚAB_CDzab-cdÚab__cdÚdefaultc                   ó   — e Zd ZdZy)ú9RegistryTest.test_register_crypt_handler.<locals>.dummy_1r2   Nr   r   r   r   r2   rb   “   r3   r   r2   c                   ó   — e Zd ZdZy)ú:RegistryTest.test_register_crypt_handler.<locals>.dummy_1br2   Nr   r   r   r   Údummy_1brd   –   r3   r   re   T)Úforce)r7   rN   r   r@   Útyper>   r?   r)   rL   r   r;   r
   ÚKeyError)r+   r2   re   s      r   Útest_register_crypt_handlerz(RegistryTest.test_register_crypt_handlerˆ   s¬  € ð 	×Ñœ)Ô%;¸RÔ@à×Ñœ*Ô&<¼dÀ3Ì×IYÑIYÐH[Ô]aÐgkÔ]lÓ>mÔnØ×Ñœ*Ô&<¼dÀ3Ì×IYÑIYÐH[Ô]aÐgnÔ]oÓ>pÔqØ×Ñœ*Ô&<¼dÀ3Ì×IYÑIYÐH[Ô]aÐgnÔ]oÓ>pÔqØ×Ñœ*Ô&<¼dÀ3Ì×IYÑIYÐH[Ô]aÐgoÔ]pÓ>qÔrØ×Ñœ*Ô&<¼dÀ3Ì×IYÑIYÐH[Ô]aÐgpÔ]qÓ>rÔsô	”b×&Ñ&ô 	ô	”r×'Ñ'ô 	ð 	�‰˜	Ô)<Ó)>Ð>Ô?ä˜wÔ'Ü˜wÔ'Ø�‰Ô'¨	Ó2°GÔ<à×Ñœ(Ô$:¸HÔEØ�‰Ô'¨	Ó2°GÔ<ä˜x¨tÕ4Ø�‰Ô'¨	Ó2°HÔ=à�‰˜	Ô%8Ó%:Ð:Õ;r   c                 ó²  —  G d„ dt         j                  «      }| j                  t        t        d«       | j                  t	        dd«      d«       t        |«       | j                  t	        d«      |«       t        j                  «       5  t        j                  ddt        «       | j                  t	        d«      |«       t        dt        «       | j                  t	        d«      t        «       ddd«       d	d
lm} d|j                   d<   dD ]9  }| j                  t        t        |«       | j                  t	        |d«      d«       Œ; y# 1 sw Y   Œ]xY w)ztest get_crypt_handler()c                   ó   — e Zd ZdZy)ú4RegistryTest.test_get_crypt_handler.<locals>.dummy_1r2   Nr   r   r   r   r2   rl   ª   r3   r   r2   NrI   zMhandler names should be lower-case, and use underscores instead of hyphens:.*zDUMMY-1r   zDUMMY-0r   )r   ÚdummyÚ_fake)rn   Ú__package__)r>   r?   r7   rh   r
   r;   r   rR   rS   rT   ÚUserWarningr	   r   r   Úpasslibr   Ú__dict__)r+   r2   r   r   s       r   Útest_get_crypt_handlerz#RegistryTest.test_get_crypt_handler§   s  € ô	”b×&Ñ&ô 	ð 	×Ñœ(Ô$5°yÔAØ�‰Ô'¨	°4Ó8¸$Ô?ô 	˜wÔ'Ø�‰Ô'¨	Ó2°GÔ<ä×$Ñ$Õ&Ü×#Ñ# HÐ.}ô  @Kô  Lð �M‰MÔ+¨IÓ6¸Ô@ô (¨	´8Ô<Ø�M‰MÔ+¨IÓ6¼Ô@÷ 'õ 	!Ø!(ˆ�‰�gÑÛ,ˆDØ×ÑœhÔ(9¸4Ô@Ø�M‰MÔ+¨D°$Ó7¸Õ>ñ -÷ 'Ð&ús   ÂA&EÅEc                 ó¬   — ddl m} dt        j                  d<    |«       D ]&  }| j	                  |j                  d«      d|z  «       Œ( t        d«       y)ztest list_crypt_handlers()r   ©r   rm   rn   Ú_z%r: N)Úpasslib.registryr   r   rr   r<   Ú
startswithrM   )r+   r   r   s      r   Útest_list_crypt_handlersz%RegistryTest.test_list_crypt_handlersÆ   sG   € å8ð ")Œ�‰�gÑÙ'Ö)ˆDØ×Ñ˜TŸ_™_¨SÓ1°6¸D±=ÕAð *ä˜GÕ$r   c                 óê   — ddl m} ddlm}m}  |«       D ]=  }|j                  d«      r|dd  |«       v rŒ!|dv rŒ&	 | j                   ||«      «       Œ? y# t        j                  $ r ||v rY ŒZ‚ w xY w)z-verify we have tests for all builtin handlersr   ru   )Úget_handler_caseÚconditionally_available_hashesÚldap_é   N)Úroundup_plaintext)	rw   r   Úpasslib.tests.test_handlersr{   r|   rx   rL   r   ÚMissingBackendError)r+   r   r{   r|   r   s        r   Útest_handlerszRegistryTest.test_handlersÐ   s~   € å8ß`Ù'Ö)ˆDà�‰˜wÔ'¨D°°¨HÑ8KÓ8MÑ,MØØÐ,Ñ,ØðØ—‘Ñ 0°Ó 6Õ7ñ *øô ×*Ñ*ò ØÐ9Ñ9ÙØðús   ½AÁA2Á0A2)r   r   r   ÚdescriptionPrefixr(   rD   r[   ri   rs   ry   r‚   Ú__classcell__)r,   s   @r   r   r   &   s/   ø„ à*Ðô!òJòB.,ò`<ò>?ò>%ör   r   )Ú__doc__Ú
__future__r   Úloggingr   rR   rO   rq   r   r   r   rw   r   r	   r
   r   r   rM   Úpasslib.utils.handlersÚutilsr$   r>   Úpasslib.tests.utilsr   r   Úlogr?   r   r   rG   r   r   r   r   Ú<module>rŒ      sv   ðÙ Dõ &å Û Û 
÷ (Ñ '÷Xõ Xç #Ð #Ý (á�Ó€ôˆb×Ñô ô�"×"Ñ"ô ð €ô
z�8õ zr   