§
    HŠtj+  ã            	       óô  — d Z ddlmZmZmZ ddlZ ej        e¦  «        Zddl	m
Z
 ddlmZmZmZ ddlmZmZ ddlmZmZmZ erdd	lmZ d
gZdZdZ ed¬¦  «        rdZ�nXe�rNddlZddlZej                             d¦  «        Ze�rej                              e¦  «        s e!dez  ¦  «        ‚ e"d„ dD ¦   «         ¦  «        s e!dez  ¦  «        ‚e #                    de¦  «         ej         $                    ed¦  «        Z%ej         &                    de%¦  «         	 ddl'm(Z n'# e)$ rZ* e
 e!de›de*›�¦  «        ¦  «        ‚dZ*[*ww xY w	 ej         +                    e%¦  «         nN# ej         +                    e%¦  «         w xY wdZ ed¦  «        rej,         -                    d¦  «         nerdZndZer.ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 dd l	m4Z4  G d!„ d
ej5        e¦  «        Z6dS  G d"„ d
e¦  «        Z6dS )#z5
test passlib.ext.django against django source tests
é    )Úabsolute_importÚdivisionÚprint_functionN)Úsuppress_cause)ÚDJANGO_VERSIONÚDjangoTranslatorÚ_PasslibHasherWrapper)ÚTestCaseÚ	TEST_MODEé   )Úhas_min_djangoÚstock_configÚ_ExtensionSupport)ÚsettingsÚHashersTestÚquick)Úmaxzrequires >= 'default' test modeÚ PASSLIB_TESTS_DJANGO_SOURCE_PATHz django source path not found: %rc              #   óš   K  — | ]F}t           j                             t           j                             t          |¦  «        ¦  «        V — ŒGd S ©N)ÚosÚpathÚexistsÚjoinÚsource_path)Ú.0Únames     úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/passlib/tests/test_ext_django_source.pyú	<genexpr>r   6   sT   è è € ð 4ð 4Øõ ”7—>’>¥"¤'§,¢,­{¸DÑ"AÔ"AÑBÔBð 4ð 4ð 4ð 4ð 4ð 4ó    )ÚdjangoÚtestszinvalid django source path: %rz'using django tests from source path: %rr"   )Útest_hashersz6error trying to import django tests from source path (z): z3requires PASSLIB_TESTS_DJANGO_SOURCE_PATH to be setÚfullzt
WARNING: $PASSLIB_TESTS_DJANGO_SOURCE_PATH is not set; can't run Django's own unittests against passlib.ext.django
zdjango version too oldzdjango not installed)Úsetting_changed)Úreceiver©Úimport_string)Úget_unbound_method_functionc                   ó^   ‡ — e Zd ZdZ eej        ¦  «        Zd„ Zˆ fd„Zd„ Z	e	Z
e	Ze	Ze	Zˆ xZS )r   zq
        Run django's hasher unittests against passlib's extension
        and workalike implementations
        c           	      óR  ‡‡‡‡	‡
— |                       t          d¬¦  «         ddlmŠ ‰j        Šddlm} dD ],}|                      t          |t          ||¦  «        ¦  «         Œ-ddl
m} |                      |dd¦  «         t          ¦   «         j        Š	t          t          d¬	¦  «        ˆˆˆ	fd
„¦   «         }|                      t          j        |¦  «          |¦   «          ˆˆfd„Š
dgŠˆˆ
fd„}dD ]}|                      ‰||d¬¦  «         Œ|                      ‰d|d¬¦  «         d S )NF)ÚPASSLIB_CONTEXTÚcheckr   )Úadapter)Úhashers)Úmake_passwordÚcheck_passwordÚidentify_hasherÚis_password_usableÚ
get_hasher)Údjango_des_cryptÚuse_duplicate_salt)Úweakc                  ó(  •— | r| d         dk    rd S ‰‰j         u sJ ‚ˆfd„t          j        D ¦   «         }d|v rd|vr|                     d¦  «         |                     d¦  «         ‰                     |d¬¦  «         ‰                     ¦   «          d S )	NÚsettingÚPASSWORD_HASHERSc                 óP   •— g | ]"} ‰ t          |¦  «        ¦   «         ¦  «        ‘Œ#S © r'   )r   Ú	hash_pathÚdjango_to_passlib_names     €r   ú
<listcomp>z=HashersTest.setUp.<locals>.update_schemes.<locals>.<listcomp>’   sE   ø€ ð ð ð à!ð +Ð*Ð+C­=¸Ñ+CÔ+CÑ+EÔ+EÑFÔFðð ð r    Úhex_md5Údjango_salted_md5Údjango_disabledÚauto)ÚschemesÚ
deprecated)Úcontextr   r:   ÚappendÚupdateÚreset_hashers)ÚkwdsrD   r.   rF   r>   s     €€€r   Úupdate_schemesz)HashersTest.setUp.<locals>.update_schemes�   sÉ   ø€ àð ˜D œOÐ/AÒAÐAØ�FØ '¤/Ð1Ð1Ð1Ð1ðð ð ð å%-Ô%>ðñ ô �ð  Ð'Ð'Ð,?ÀwÐ,NÐ,NØ—N’NÐ#6Ñ7Ô7Ð7Ø—’Ð0Ñ1Ô1Ð1Ø—’ w¸6�ÑBÔBÐBØ×%Ò%Ñ'Ô'Ð'Ð'Ð'r    c                  ó  •— ‰                      d¬¦  «        D ]q} d| j        vrŒ‰                     | ¦  «        }t          |t          ¦  «        rŒ7t          |dd¦  «        pt          |dd¦  «        }|€Œ\|x| _        x| _        | _        ŒrdS )zN
                sync django hasher config -> passlib hashers
                T)ÚresolveÚroundsNÚ
iterations)	rD   Úsetting_kwdsÚpasslib_to_djangoÚ
isinstancer	   ÚgetattrÚmin_desired_roundsÚmax_desired_roundsÚdefault_rounds)ÚhandlerÚhasherrN   r.   rF   s      €€r   Úupdate_roundsz(HashersTest.setUp.<locals>.update_rounds«   sº   ø€ ð  'Ÿš°t˜Ñ<Ô<ð nð n�GØ wÔ';Ð;Ð;Ø Ø$×6Ò6°wÑ?Ô?�FÝ! &Õ*?Ñ@Ô@ð !Ø Ý$ V¨X°tÑ<Ô<ð AÝ$ V¨\¸4Ñ@Ô@ð à�~Ø ð hnÐm�GÔ.Ðm°Ô1KÈgÔNdÐNdðnð nr    c                 ód   •— ‰d         s d‰d<   	  ‰¦   «          d‰d<   n
# d‰d<   w xY w | |i |¤ŽS )zY
                wrapper around arbitrary func, that first triggers sync
                r   TFr<   )ÚwrappedÚargsrJ   Ú
_in_updaterY   s      €€r   Úupdate_wrapperz)HashersTest.setUp.<locals>.update_wrapperÀ   s_   ø€ ð " !”}ð .Ø$(�J˜q‘Mð.Ø%˜™œ˜à(-˜
 1™˜ø¨˜
 1™Ð-Ð-Ð-Ð-Ø�w Ð-¨Ð-Ð-Ð-s   �
   ')rD   rW   Údefault_schemeÚhashÚverifyÚneeds_updateÚverify_and_updateT)ÚwrapÚdjango_to_passlib)Úload_extensionr   Úpasslib.ext.django.modelsr.   rF   Údjango.contrib.authr/   Ú	patchAttrÚtest_hashers_modrS   Úpasslib.hashr5   r   r>   r&   r%   Ú
addCleanupÚ
disconnect)Úselfr/   Úattrr5   rK   r^   r]   r.   rF   r>   rY   s         @@@@@r   ÚsetUpzHashersTest.setUpn   sÆ  øøøøø€ ð ×ÒµÀEÐÑJÔJÐJØ9Ð9Ð9Ð9Ð9Ð9Ø”oˆGð 4Ð3Ð3Ð3Ð3Ð3ð'ð Oð O�ð
 —’Õ/°µw¸wÈÑ7MÔ7MÑNÔNÐNÐNð
 6Ð5Ð5Ð5Ð5Ð5Ø�NŠNÐ+Ð-AÀ5ÑIÔIÐIõ
 &6Ñ%7Ô%7Ô%NÐ"å•o¨EÐ2Ñ2Ô2ð(ð (ð (ð (ð (ð (ñ 3Ô2ð(ð  �OŠO�OÔ6¸ÑGÔGÐGàˆNÑÔÐðnð nð nð nð nð nð&  ˜ˆJð
.ð 
.ð 
.ð 
.ð 
.ð 
.ðHð Ið I�à—’˜w¨¨nÀ4�ÑHÔHÐHÐHð �NŠN˜7Ð$7¸ÈdˆNÑSÔSÐSÐSÐSr    c                 ó~   •— |                       ¦   «          t          t          | ¦  «                             ¦   «          d S r   )Úunload_extensionÚsuperr   ÚtearDown)rn   Ú	__class__s    €r   rt   zHashersTest.tearDownÔ   s7   ø€ à×!Ò!Ñ#Ô#Ð#Ý•+˜tÑ$Ô$×-Ò-Ñ/Ô/Ð/Ð/Ð/r    c                 ó,   — |                       d¦  «        S )Nzomitted by passlib)ÚskipTest©rn   s    r   ú<lambda>zHashersTest.<lambda>Þ   s   € ˜TŸ]š]Ð+?Ñ@Ô@€ r    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r)   r
   ri   rp   rt   Ú_OMITÚtest_pbkdf2_upgrade_new_hasherÚ(test_check_password_calls_harden_runtimeÚtest_bcrypt_harden_runtimeÚtest_pbkdf2_harden_runtimeÚ__classcell__)ru   s   @r   r   r   ^   sŒ   ø€ € € € € ð	ð 	ð 0Ð/°Ô0BÑCÔCˆ	ð
d	Tð d	Tð d	TðL	0ð 	0ð 	0ð 	0ð 	0ð AÐ@ˆð
 */Ð&ð 49Ð0Ø%*Ð"Ø%*Ð"Ð"Ð"Ð"Ð"r    c                   ó   — e Zd Zd„ ZdS )r   c                 ó6   — |                       t          ¦  «        ‚)zexternal django hasher tests)rw   Úhashers_skip_msgrx   s    r   Ú!test_external_django_hasher_testsz-HashersTest.test_external_django_hasher_testsô   s   € à—-’-Õ 0Ñ1Ô1Ð1r    N)rz   r{   r|   r‡   r<   r    r   r   r   ò   s#   € € € € € ð	2ð 	2ð 	2ð 	2ð 	2r    )7r}   Ú
__future__r   r   r   ÚloggingÚ	getLoggerrz   ÚlogÚpasslib.utils.compatr   Úpasslib.ext.django.utilsr   r   r	   Úpasslib.tests.utilsr
   r   Útest_ext_djangor   r   r   r   Ú__all__rj   r†   r   ÚsysÚenvironÚgetr   r   r   ÚEnvironmentErrorÚallÚinfor   Ú
tests_pathÚinsertÚ
auth_testsr#   ÚImportErrorÚerrÚremoveÚstderrÚwriteÚdjango.core.signalsr%   Údjango.dispatchr&   Údjango.utils.module_loadingr(   r)   ÚTestUtilsHashPassr   r<   r    r   ú<module>r£      sÝ  ððð ð AÐ @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @à €€€Ð'�gÔ'¨Ñ1Ô1�ð 0Ð /Ð /Ð /Ð /Ð /Ø \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð ð *Ø)Ð)Ð)Ð)Ð)Ð)ð ð€ð Ð ð Ð ð €9�ÐÑÔð '.Ø8ÐÑàñ $.Ø€I€I€IØ€J€J€JØ”*—.’.Ð!CÑDÔD€Kàñ ^ØŒw�~Š~˜kÑ*Ô*ð 	UØ"Ð"Ð#EÈÑ#SÑTÔTÐTØˆsð 4ð 4Ø2ð4ñ 4ô 4ñ 4ô 4ð 	Sà"Ð"Ð#CÀkÑ#QÑRÔRÐRØ�ŠÐ:¸KÑHÔHÐHØ”W—\’\ +¨wÑ7Ô7ˆ
ØŒ�Š˜˜:Ñ&Ô&Ð&ð	(ØCÐCÐCÐCÐCÐCÐCøØð 	6ð 	6ð 	6Ø �.Ø Ð Ð à"- + +¨s¨sð"4ñ 5ô 5ñ6ô 6ð 6øøøøð	6øøøð Dð ŒH�OŠO˜JÑ'Ô'Ð'Ð'øˆCŒH�OŠO˜JÑ'Ô'Ð'Ð'øøøð QÐàˆ9�VÑÔð 	^àŒJ×Òð ]ñ ^ô ^ð ^øð ð .Ø/ÐÐð .Ðð ð ^2Ø3Ð3Ð3Ð3Ð3Ð3Ø(Ð(Ð(Ð(Ð(Ð(Ø9Ð9Ð9Ð9Ð9Ð9Ø@Ð@Ð@Ð@Ð@Ð@ðK+ð K+ð K+ð K+ð K+Ð&Ô8Ð:Kñ K+ô K+ð K+ð K+ð K+ðh2ð 2ð 2ð 2ð 2�hñ 2ô 2ð 2ð 2ð 2s*   Ä"D) Ä(E, Ä)EÄ.EÅEÅE, Å,F