AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.133.143.36
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python2.7/site-packages/passlib/tests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /lib/python2.7/site-packages/passlib/tests/test_ext_django.pyo
�
V;Xc@`s,dZddlmZmZmZddlZeje�Zddl	Z	ddl
mZm
Z
mZddlmZmZmZddlmZddlmZmZmZddlmZmZmZdd	lmZdd
lm Z m!Z!m"Z"ddl#m$Z$m%Z%dd
dgZ&eekZ'e'r�ddl(m)Z)m*Z*e+e)e*�rhe,de)f��ne)j-re)j.�nddl/mZej0ddg�ne1�Z2d�Z3e'r�ddl4m5Z5de5fd��YZ6nd�Z7eddfkrej8j9�Z:dZ;n?eddfkrCejj9�Z:dZ;nejj9�Z:dZ;e:j<dd d!e;d"e;�dd#l=m>Z>e?d$d%e>j@d&e:jAd"��jBd%�f�ZCde1fd'��YZDd(e eDfd)��YZEdeEfd*��YZFd
eFfd+��YZGd,eEfd-��YZHdS(.stest passlib.ext.djangoi(tabsolute_importtdivisiontprint_functionN(tappstexctregistry(tdjango10_contexttdjango14_contexttdjango16_context(tCryptContext(tDJANGO_VERSIONtMIN_DJANGO_VERSIONtDjangoTranslator(t	iteritemstget_method_functiontu(tmemoized_property(tTestCaset	TEST_MODEthandler_derived_from(tget_handler_casetconditionally_available_hashestDjangoBehaviorTesttExtensionBehaviorTestt_ExtensionSupport(tsettingstLazySettingss4expected django.conf.settings to be LazySettings: %r(Rsdjango.contrib.contenttypessdjango.contrib.authcK`s_xXt|�D]J\}}|tkrGtt|�rWtt|�qWq
tt||�q
WdS(s*helper to update django settings from kwdsN(R
tUNSETthasattrRtdelattrtsetattr(tkwdstktv((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytupdate_settingsEs
(tUsertFakeUsercB`sEeZdZddd��YZed��Zd�Zdd�ZRS(s#mock user object for use in testingtMetacB`seZeZRS((t__name__t
__module__t	app_label(((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyR%VscC`sgS(N((tself((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytsaved_passwordsYscC`sz|jSWd|j2XdS(N(R*(R)((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytpop_saved_passwords]scC`s|jj|j�dS(N(R*tappendtpassword(R)t
update_fields((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytsavecs(N(	R&R't__doc__R%RR*R+tNoneR/(((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyR$Qs
	c`s1g��fd�}�fd�}||_|S(Nc`s�j|�dS(N(R,(R-(tstate(sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytsetterisc`sz	�SWd�2XdS(N(((R2(sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytpopstateks	(R4(R3R4((R2sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytcreate_mock_settergs
	ii
i0ui	i�]i Nt
deprecatedtautot"django_pbkdf2_sha1__default_roundst$django_pbkdf2_sha256__default_rounds(tdjango_pbkdf2_sha256R:snot a passwordtroundscB`sVeZdZed��Zd�Zd	d�ZdddgZe	d�Z
d�ZRS(
s-support funcs for loading/unloading extensioncc`sddlm}m}ddg}ddg}dddddg}||f|j|f||fg}x�|D]�\}}x�t|�D]�}	|	jd	�r�q�n|jj|	t�}
|
tkr�|	|kr�q�nt	|
�}
t
|
d
d�}|r�||	||	|kfVq�q�WqnWdS(s�helper to scan for monkeypatches.

        returns tuple containing:
        * object (module or class)
        * attribute of object
        * value of attribute
        * whether it should or should not be patched
        i(tmodelsthasherstcheck_passwordtset_passwordt
make_passwordt
get_hashertidentify_hashertget_hasherst_R'N(tdjango.contrib.authR<R=R#tdirt
startswitht__dict__tgetRRtgetattrR1(tclsR<R=t
user_attrstmodel_attrsthasher_attrstobjstobjtpatchedtattrtvaluetsource((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyt_iter_patch_candidates�s&		cC`s�tjjd�}|j|o'|jjd�xu|j�D]g\}}}}|r||j|jd�d|||f�q;|j|jd�d|||f�q;WdS(s&test that django is in unpatched statespasslib.ext.django.modelsspatch should not be enabledsdjango.contrib.auth.s#obj=%r attr=%r was not reverted: %rspasslib.s/obj=%r attr=%r should not have been patched: %rN(	tsystmodulesRItassertFalsetadapterRQRUt
assertTrueRG(R)tmodRPRRRTRQ((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytassert_unpatched�scC`s�tjjd�}|j|o'|jjd�xr|j�D]d\}}}}|ry|j|dkd|||f�q;|j|jd�d|||f�q;W|dk	r�t
j|�}|j|j
jdt�|jdt��ndS(	sGhelper to ensure django HAS been patched, and is using specified configspasslib.ext.django.modelsspatch should have been enabledspasslib.ext.django.utilss+obj=%r attr=%r should have been patched: %rspasslib.s/obj=%r attr=%r should not have been patched: %rtresolveN(RVRWRIRZRYRQRURXRGR1R	t_norm_sourcetassertEqualtpassword_contexttto_dicttTrue(R)tcontextR[RPRRRTRQ((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytassert_patched�stPASSLIB_CONFIGtPASSLIB_CONTEXTtPASSLIB_GET_CATEGORYcK`s�|j�|r1|jd�p+|jd�}nx!|jD]}|j|t�q;Wt|�ddl}|r�|jd|�ndS(s=helper to load extension with specified config & patch djangoReRfiNRc(tunload_extensionRIt_config_keyst
setdefaultRR"tpasslib.ext.django.modelsRd(R)tcheckRtconfigtkeytpasslib((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytload_extension�s
!
cC`s]tjjd�}|r2|jj�tjd=nttd�|jD���|j�dS(s-helper to remove patches and unload extensionspasslib.ext.django.modelscs`s|]}|tfVqdS(N(R(t.0Rn((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pys	<genexpr>�sN(	RVRWRIRYtremove_patchR"tdictRiR\(R)R[((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyRh�s

N(R&R'R0tclassmethodRUR\R1RdRiRbRpRh(((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyR�s$	t_ExtensionTestcB`seZd�ZRS(cC`sntt|�j�|jd�ts8|jd��ntsP|jd��n|j�|j|j�dS(NtdefaultsDjango not installedsDjango version too old(	tsuperRutsetUptrequire_TEST_MODER
tskipTestthas_min_djangoRht
addCleanup(R)((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyRxs

(R&R'Rx(((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyRuscB`sPeZdZdZeZeZed��Z	d�Z
edd�Z
d�ZRS(s2tests model to verify it matches django's behaviorsverify django behaviorcC`stj|j�S(N(R	R^Rm(R)((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyRc&scC`sF|j|jjd��|j|j��|j|j�g�dS(s=check that user object is set to 'unusable password' constantt!N(RZR-RGRXthas_usable_passwordR_R+(R)tuser((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytassert_unusable_password*scC`s�|tkr5|j|jd�|j|jd�n|j|j|�|j|j�d|jf�|j|j�|dkr�gn|g�dS(s�check that user object has a usuable password hash.

        :param hash: optionally check it has this exact hash
        :param saved: check that mock commit history
                      for user.password matches this list
        R}shash should be usable: %rN(RtassertNotEqualR-R1R_RZR~R+(R)Rthashtsaved((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytassert_valid_password0scC`s�|j|j}}|j}t�}d}d}ddlm}m}m}	m}
|r�ddl	m
}|j|jdt
�|jdt
��ddlm}|j||�nt�}
|
j|�|j|j�j||
j��|j|
�||�}|j|j�j||��t�}
|
jd�|
j}|j|j�jd|��|j|
|�|j|
jd��|j|
|�|j|d|��t�}
|
j�|j|
�t�}
|
jd�|j|
�|j|
jd��|j|
jd	��|j|
jd��|j|
j|��|j|
j|��|j|
�|j|d�jd
��|j||d
��|j|	|
j��|jt|
|
j�t�}
d|
_|j|
j|��|j|
j��|j||d��|jt|
d�x�dD]�}t�}
||
_|j|
j|��|j|
j|�|j|
j�g�|j|
j��|j|||��|jt|
|�q5Wx�|j �D]�}|j|�}|j|�j!}yt"|�}Wnt#j$k
r)q�nX|j%r9q�nt&j'|�sNq�nyt(|\}}WnFt)k
r�|d�j*}x't
r�|�\}}|r�Pq�q�WnXd
}t�}
||
_|j|
jd��|j|
j|��|j|
|�|j|
j|��|}|r�|j+|
j|�|j|j,|
j��|j|j�j||
j��|j|
d|
j�n|j|
|�t-dd�r�q�nt.�j/|�}||d|�}|j|j||��|j|||d|��|j|j0�|r$|gng�|j|||d|��|j|j0�g�|j|	|��t.�j1|
|�j2�}|j||�q�WdS(stest hashing interface

        this function is run against both the actual django code, to
        verify the assumptions of the unittests are correct;
        and run against the passlib extension, to verify it matches
        those assumptions.
        ttoomanysecretstletmeini(R>R@tis_password_usableRB(R`R](R>tR1R}s$789$fooRxtdontletmeinR�tmaxRvthasherR3N(R�s$789$foo(3RQRmRcR5tdjango.contrib.auth.hashersR>R@R�RBRkR`R_RaRbtdjango.contrib.auth.modelsR$R?RZthandlertverifyR-R�tset_unusable_passwordR�R1RXRGtassertRaisest
ValueErrorR~t	TypeErrorR+tschemesR6RRtMissingBackendErrortis_disabledRthas_backendt
sample_hashestKeyErrortget_sample_hashR�tidentifyRRtpasslib_to_django_nameR4tdjango_to_passlib_namet	algorithm(R)RQRmtctxR3tPASS1tWRONG1R>R@R�RBR`tcheck_password2RR�tschemeR�R6ttestcasetsecretR�tothertneeds_updatetalgthash2tname((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_configAs�		"	
"
		
		

	


		
			
			"%N(R&R'R0tdescriptionPrefixtFalseRQtstock_configRmtpropertyRcR�RR1R�R�(((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyRs	cB`s8eZdZdZeZedddd�Zd�ZRS(s6test model to verify passlib.ext.django conforms to itsverify extension behaviorR�s sha256_crypt,md5_crypt,des_cryptR6t	des_cryptcC`s*tt|�j�|jd|j�dS(NRe(RwRRxRpRm(R)((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyRxPs(	R&R'R0R�RbRQRsRmRx(((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyRGs	tDjangoExtensionTestcB`s\eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZRS(
s&test the ``passlib.ext.django`` pluginspasslib.ext.django pluginc	C`s�|jdddt�|j�|jd��|jdddt�WdQX|j�|jdddt�|jdt�|j�|jdddt�|jdt�|j�dS(	s.test set_django_password_context patch/unpatchRetdisabledRls!PASSLIB_CONFIG=None is deprecatedNs
django-1.0Rcs
django-1.4(	RpR�R\tassertWarningListR1RdRRhR(R)((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_00_patch_control[s


cC`s�d}|jd|�ddljjj}ddlm}d�}|jj}||j_|j	d��|j
j�WdQX||j_|j}||_|j	d��|j
j�WdQX||_dS(	s(test detection of foreign monkeypatchings[passlib]
schemes=des_crypt
ReiN(RYcS`sdS(N((((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytdummy�ss/another library has patched.*User\.set_passwords2another library has patched.*models:check_password(
RpR�tcontribtauthR<RkRYR#R?R�t_managert	check_allR>(R)RmR<RYR�torig((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_01_overwrite_detectionus			cC`srddlm}t�j}tdkr>|jt|d�n|d�}|j||j�|d�}|j||j	�ddl
m}|d�}|j|j
d	�|jd
�}|j|jd
|��|j|jd
|��|j|jd|��|jd
ddd�}|j|d�|j|j|�idd6td�d6dd6td�d6�dS(s'test Hasher-compatible handler wrappersi(R=ii
thex_md5t
django_bcrypt(tsha256_cryptR�tpasslib_sha256_crypttstubtxxxxtabcdiR;i�sK$5$rounds=1234$abcdabcdabcdabcd$v2RWkZQzctPdejyRqmmTDQpZN6wTh7.RUy9zF2LftT6R�sabcdab**********tsalts+v2RWkZ*************************************R�N(ii
tabcdabcdabcdabcd(RER=Rtpasslib_to_djangoR
R�R�tassertIsInstancetUnsaltedMD5PasswordHashertBCryptPasswordHashertpasslib.hashR�R_R�tencodeRZR�RXtsafe_summaryR(R)R=R�R�R�tencoded((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_02_handler_wrapper�s,

c	C`sZ|jd��|jdddt�WdQX|j�|jdddt�|j�dS(stest PASSLIB_CONFIG='disabled's!PASSLIB_CONFIG=None is deprecatedReRlNR�(R�RpR1R�R\(R)((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_11_config_disabled�s

cC`ss|jdddt�t}|j|�|jdddt�|jt�|jdddt�|jt�dS(stest PASSLIB_CONFIG='<preset>'Rfsdjango-defaultRlRes
django-1.0s
django-1.4N(RpR�RRdRR(R)R�((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_12_config_presets�s

cC`s�ddlm}tj|�}|j�|j|�|jdddt�|j|�|jd|dt�|j|�dS(s$test PASSLIB_CONFIG default behaviori(tPASSLIB_DEFAULTRfspasslib-defaultRlN(tpasslib.ext.django.utilsR�R	tfrom_stringRpRdR�(R)R�Rv((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_13_config_defaults�s


cC`sZtdddt�|jttd�|j�tdddt�|jttd�dS(stest PASSLIB_CONFIG type checksRfi{Respasslib.ext.django.modelssmissing-presetN(R"RR�R�t
__import__RhR�(R)((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_14_config_invalid�s

c	`s�tddgdddddd�}d	d
lm��fd�}|jd|�|j|�d�|j|d
t�d�|j|dt�d�d�}|jd|d|�|j|�d�|j|dd�d�|j|dd�d�|j|dd�d�d�}|jd|d|�|j|�d�|j|dd�d�|j|ddd
t�d�|j|dddt�d�|jt|jd|dd�dS(s#test PASSLIB_GET_CATEGORY parameterR�R�tsha256_crypt__default_roundsi�t#staff__sha256_crypt__default_roundsi�t'superuser__sha256_crypt__default_roundsi�i(R�c`s,t|�}|jd��j|j�jS(s;helper to take in user opts, return rounds used in passwordR�(R$R?R�R-R;(RR(R�(sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytrun�s
Retis_stafftis_superusercS`s
|jpdS(N(t
first_nameR1(R((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pytget_categorysRfRgR�R�tstafft	superusercS`sdS(N(R1(R((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyR�stxN(RsR�R�RpR_RbR�R�(R)RmR�R�((R�sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyttest_21_category_setting�s6				(R&R'R0R�R�R�R�R�R�R�R�R�(((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyR�Ts			)		
		(IR0t
__future__RRRtloggingt	getLoggerR&tlogRVRoRt_appsRRtpasslib.appsRRRtpasslib.contextR	R�R
RRtpasslib.utils.compatR
RRtpasslib.utils.decorRtpasslib.tests.utilsRRRtpasslib.tests.test_handlersRRt__all__R{tdjango.confRRt
isinstancetRuntimeErrort
configuredt	configuretdjango.appstpopulatetobjectRR"R�R#R$R5tdjango110_contextRaR�tstock_roundstupdateR�R:RstusingRIR�R�RRuRRR�(((sA/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.pyt<module>sj	

							r�-

Anon7 - 2022
AnonSec Team