
    K}bg$                        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j                  Z G d
 dej                  ZdZ G d de          ZdS )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dS )dummy_0N__name__
__module____qualname__name     n/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/passlib/tests/test_registry.pyr   r              DDDr   r   c                       e Zd ZdZdS )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}|                     |           d S )Nc                      t           j                                         t           j                                       t           j                                         t           j                                        d S )N)r   
_locationsclearupdate	_handlers)handlers	locationss   r   restorez#RegistryTest.setUp.<locals>.restore0   sa    %%'''&&y111$$&&&%%h/////r   )superr   setUpdictr   r    r#   
addCleanup)selfr&   r$   r%   	__class__s     @@r   r(   zRegistryTest.setUp*   s{    lD!!''))) ,--	*++	0 	0 	0 	0 	0 	0
 	     r   c                    t          t                     t          t                     |                     t          t
          t          d           t          t          dd          }t                      }|t          _        |                     t          j        |           |0t          `| 	                    t          t          d                     n,|t          _        |                     t          j        |            G d dt          j                  }|t          _        |                     t          d          |           |                     t          t           t          d|           dS )ztest passlib.hash proxy objectfooey
__loader__Nc                       e Zd ZdZdS )-RegistryTest.test_hash_proxy.<locals>.dummy_1dummy_1Nr   r   r   r   r2   r1   P           DDDr   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AA dL$//xxdot,,,;WT<889999!DOMM$/3///	 	 	 	 	b& 	 	 	'	22G<<< 	*gtZIIIIIr   c                    t           j        }|                     d|v           |                     t	          t
          d                     |                     t          t          dd           |                     t          t          dt          dz              |                     t          t          dt          dz              t          dt                     |                     dt                      v            |                     dt          d          v           |                     t
          j        t                     |                     dt          d          v            t          d           t          dt          dz              |                     t
          j        t                     t          d           t          dt                     |                     t          t           d           t          d	t                     |                     t          t           d	           t          d	           t"          j                            d
d           t          dd
           t)          j                    5  t)          j        ddt.                     t!          d          }ddd           n# 1 swxY w Y   ddlm} |                     ||j                   dS )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1222 	*&A#%5	7 	7 	7*&A#X%>	@ 	@ 	@*&A#X%>	@ 	@ 	@ 	$Ix888	%8%:%::;;;	)<)N)N)NNOOOdlG,,,	%8T%J%J%JJKKKI&&& 	$Ix./HIIIdlK000I&&& 	$Ix888)%6	BBB 	$M8<<<*&7GGGM*** 	:DAAA#K1STTT$&& 	/ 	/#Hl<NOOO!+..A	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	<;;;;;a*+++++s   +J99J= J=c                    |                      t          t          i            |                      t          t          t	          dt
          j        ft          d                               |                      t          t          t	          dt
          j        ft          d                               |                      t          t          t	          dt
          j        ft          d                               |                      t          t          t	          dt
          j        ft          d                               |                      t          t          t	          dt
          j        ft          d                                G d d	t
          j                  } G d
 dt
          j                  }|                     d	t                      v           t          |           t          |           | 
                    t          d	          |           |                      t          t          |           | 
                    t          d	          |           t          |d           | 
                    t          d	          |           |                     d	t                      v            dS )ztest register_crypt_handler()xN)r   AB_CDzab-cdab__cddefaultc                       e Zd ZdZdS )9RegistryTest.test_register_crypt_handler.<locals>.dummy_1r2   Nr   r   r   r   r2   rb      r3   r   r2   c                       e Zd ZdZdS ):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   sr    	)%;R@@@*&<d3IYH[]agk]l]l]l>m>mnnn*&<d3IYH[]agn]o]o]o>p>pqqq*&<d3IYH[]agn]o]o]o>p>pqqq*&<d3IYH[]ago]p]p]p>q>qrrr*&<d3IYH[]agp]q]q]q>r>rsss	 	 	 	 	b& 	 	 		 	 	 	 	r' 	 	 	 		)<)>)>>???w'''w''''	22G<<<($:HEEE'	22G<<<xt4444'	22H===	%8%:%::;;;;;r   c                 $    G d dt           j                  }|                     t          t          d           |                     t	          dd          d           t          |           |                     t	          d          |           t          j                    5  t          j	        ddt                     |                     t	          d          |           t          dt                     |                     t	          d          t                     ddd           n# 1 swxY w Y   d	d
lm} d|j        d<   dD ]G}|                     t          t          |           |                     t	          |d          d           HdS )ztest get_crypt_handler()c                       e Zd ZdZdS )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AA'	488$??? 	w''''	22G<<<$&& 	A 	A#H.}  @K  L  L  L MM+I66@@@ (	8<<<MM+I66@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	!     !(g, 	? 	?Dh(94@@@MM+D$77>>>>	? 	?s   #A<D++D/2D/c                     ddl m} dt          j        d<    |            D ].}|                     |                    d          d|z             /t          d           dS )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   sy    888888 ")g'')) 	B 	BDT__S116D=AAAAG$$$$$r   c                    ddl m} ddlm}m}  |            D ]j}|                    d          r|dd          |            v r,|dv r1	 |                      ||                     Q# t          j        $ r ||v rY f w xY wdS )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88888````````'')) 	 	Dw'' DH8K8K8M8M,M,M,,, 0 0 6 67777*   999H	 	s   A**B?B)r   r   r   descriptionPrefixr(   rD   r[   ri   rs   ry   r   __classcell__)r,   s   @r   r   r   &   s        *! ! ! ! !J J 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      s   D D & % % % % %        



 ( ' ' ' ' ' ' ' ' 'X X X X X X X X X X X X X X # # # # # # # # # ( ( ( ( ( (i    b       ""    
z z z z z8 z z z z zr   