
     h$                         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     ]/var/www/html/Resume-Scraper/venv/lib/python3.12/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    lD') ,,-	**+	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 dL$/xdoot,;WT<89!DOMM$//3/	b&& 	'	2G< 	*gtZ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%>	@ 	$Ix8	%8%::;	)<)NNOdllG,	%8T%JJKI& 	$Ix./HIdllK0I& 	$Ix8)%6	B 	$M8<*&7GM* 	:DA#K1ST$$& 	/##Hl<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@*&<d3IYIYH[]agk]l>mn*&<d3IYIYH[]agn]o>pq*&<d3IYIYH[]agn]o>pq*&<d3IYIYH[]ago]p>qr*&<d3IYIYH[]agp]q>rs	b&& 		r'' 	 		)<)>>?w'w''	2G<($:HE'	2G<xt4'	2H=	%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&& 	 	($5yA'	48$? 	w''	2G<$$& 	A##H.}  @K  L MM+I6@ (	8<MM+I6@	A 	!!(g, 	?Dh(94@MM+D$7>	?	A 	A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   sN    8 ")g') 	BDT__S16D=A	B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H8K8M,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   