HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/twisted/cred/test/__pycache__/test_cred.cpython-38.pyc
U


W[5�@s�dZddlmZmZddlmZmZddlmZm	Z	ddl
mZddlm
Z
mZddlmZddlmZdd	lmZmZmZmZzdd
lmZWnek
r�dZYnXGdd
�d
e�ZGdd�de�Zee�Gdd�dej��Ze�eee�Gdd�dej �Z!ee!e�Gdd�de��Z"eej#�Gdd�de��Z$Gdd�dej%�Z&Gdd�dej%�Z'Gdd�dej%�Z(Gdd�de�Z)Gd d!�d!e�Z*Gd"d#�d#e*�Z+Gd$d%�d%e*�Z,Gd&d'�d'e*e)ej%�Z-Gd(d)�d)e+e)ej%�Z.Gd*d+�d+e,e)ej%�Z/dS),z6
Tests for L{twisted.cred}, now with 30% more starch.
�)�absolute_import�division)�implementer�	Interface)�hexlify�	unhexlify)�unittest)�nativeString�
networkString)�
components)�defer)�checkers�credentials�portal�error)�cryptNc@seZdZdZdS)�	ITestablez2
    An interface for a theoretical protocol.
    N��__name__�
__module__�__qualname__�__doc__�rr�=/usr/lib/python3/dist-packages/twisted/cred/test/test_cred.pyrsrc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
TestAvatarz
    A test avatar.
    cCs||_d|_d|_dS)NF)�name�loggedIn�	loggedOut)�selfrrrr�__init__'szTestAvatar.__init__cCs|jr
t�d|_dS�NT)r�AssertionError�rrrr�login-s
zTestAvatar.logincCs
d|_dSr )rr"rrr�logout2szTestAvatar.logoutN)rrrrrr#r$rrrrr#src@seZdZdZdS)�Testablez-
    A theoretical protocol for testing.
    Nrrrrrr%7sr%c@seZdZdS)�IDerivedCredentialsN�rrrrrrrr&Bsr&c@seZdZdd�Zdd�ZdS)�DerivedCredentialscCs||_||_dS�N)�username�password)rr*r+rrrrJszDerivedCredentials.__init__cCs
||jkSr))r+�rr+rrr�
checkPasswordOsz DerivedCredentials.checkPasswordN)rrrrr-rrrrr(Gsr(c@s eZdZdZdd�Zdd�ZdS)�	TestRealmz
    A basic test realm.
    cCs
i|_dSr))�avatarsr"rrrrYszTestRealm.__init__cGsH||jkr|j|}nt|�}||j|<|��|d|d|�|jfS)Nr)r/rr#r$)r�avatarIdZmindZ
interfacesZavatarrrr�
requestAvatar]s

�zTestRealm.requestAvatarN)rrrrrr1rrrrr.Tsr.c@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�	CredTestsz^
    Tests for the meat of L{twisted.cred} -- realms, portals, avatars, and
    checkers.
    cCs@t�|_t�|j�|_t��|_|j�dd�|j�|j�dS)N�bob�hello)	r.Zrealmr�Portalr
Z'InMemoryUsernamePasswordDatabaseDontUseZcheckerZaddUser�registerCheckerr"rrr�setUpns

zCredTests.setUpcCs.tjtjg}|j��}|�t|�t|��dS)z�
        The checkers in a portal can check only certain types of credentials.
        Since this portal has
        L{checkers.InMemoryUsernamePasswordDatabaseDontUse} registered, it
        N)r�IUsernamePasswordZIUsernameHashedPasswordrZlistCredentialsInterfaces�assertEqual�sorted)rZexpectedZgotrrr�test_listCheckersvs
�
zCredTests.test_listCheckerscCs�|�|j�t�dd�|t��}|\}}}|�|t�|�|�|�d||f�|�|j	j
�|�|j	j�|�|�|j	j�dS)z�
        Calling C{login} on a portal with correct credentials and an interface
        that the portal's realm supports works.
        r3r4�%s does not implement %sN)�successResultOfrr#r�UsernamePasswordrr9�
assertTrue�
providedBy�originalrr�rr#Ziface�implr$rrr�test_basicLogin�s

�

�zCredTests.test_basicLogincCs�|�|j�tdd�|t��}|\}}}|�|t�|�|�|�d||f�|�|jj	�|�|jj
�|�|�|jj
�dS)z~
        Logging in with correct derived credentials and an interface
        that the portal's realm supports works.
        r3r4r<N)r=rr#r(rr9r?r@rArrrBrrr�test_derivedInterface�s
�

�zCredTests.test_derivedInterfacecCs<|�|j�t�dd�|t��}|�|�|�tj	|j
�dS)z�
        Calling C{login} with incorrect credentials (in this case a wrong
        password) causes L{error.UnauthorizedLogin} to be raised.
        r3sh3lloN�ZfailureResultOfrr#rr>rr?r9r�UnauthorizedLogin�type�rr#rrr�test_failedLoginPassword�s

�
z"CredTests.test_failedLoginPasswordcCs<|�|j�t�dd�|t��}|�|�|�tj	|j
�dS)z�
        Calling C{login} with incorrect credentials (in this case no known
        user) causes L{error.UnauthorizedLogin} to be raised.
        sjayr4NrFrIrrr�test_failedLoginName�s

�
zCredTests.test_failedLoginNameN)
rrrrr7r;rDrErJrKrrrrr2isr2c@sFeZdZdddgZdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)�OnDiskDatabaseTests��user1spass1��user2spass2��user3spass3c	CsL|��|_t|jd��,}|jD]\}}|�|d|d�qW5QRXdS)N�wb�:�
)�mktemp�dbfile�open�users�write)r�f�u�prrrr7�s
zOnDiskDatabaseTests.setUpcCs$t�d�|_|�tj|jjd�dS)zg
        A missing db file will cause a permanent rejection of authorization
        attempts.
        ztest_thisbetternoteverexist.db�userN)r
�FilePasswordDB�db�assertRaisesrrG�getUserr"rrr�test_getUserNonexistentDatabase�sz3OnDiskDatabaseTests.test_getUserNonexistentDatabasecCsPt�|j�|_|jD]6\}}|�t|jj|���|�	|j�|�||f�qdSr))
r
r_rWr`rYra�KeyErrorrb�upperr9�rr\r]rrr�testUserLookup�sz"OnDiskDatabaseTests.testUserLookupcCsBtj|jdd�|_|jD]$\}}|�|j�|���||f�qdS)NF)Z
caseSensitive)r
r_rWr`rYr9rbrerfrrr�testCaseInSensitivity�sz)OnDiskDatabaseTests.testCaseInSensitivitycsTt��j��_dd��jD�}t��fdd�|D��}|��jdd��jD��|S)NcSsg|]\}}t�||��qSr�rr>��.0r\r]rrr�
<listcomp>�sz;OnDiskDatabaseTests.testRequestAvatarId.<locals>.<listcomp>csg|]}t��jj|��qSr�rZ
maybeDeferredr`�requestAvatarId�rk�cr"rrrl�scSsg|]\}}|�qSrrrjrrrrl�s�	r
r_rWr`rYr�
gatherResults�addCallbackr9�rZcreds�drr"r�testRequestAvatarId�s�z'OnDiskDatabaseTests.testRequestAvatarIdcsTt��j��_dd��jD�}t��fdd�|D��}|��jdd��jD��|S)NcSsg|]\}}t�||��qSr)r�UsernameHashedPasswordrjrrrrl�s�zBOnDiskDatabaseTests.testRequestAvatarId_hashed.<locals>.<listcomp>csg|]}t��jj|��qSrrmror"rrrl�scSsg|]\}}|�qSrrrjrrrrl�srqrtrr"r�testRequestAvatarId_hashed�s��z.OnDiskDatabaseTests.testRequestAvatarId_hashedN)
rrrrYr7rcrgrhrvrxrrrrrL�s�
	rLc@sZeZdZdddgZdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
edkrVdZdS)�!HashedPasswordOnDiskDatabaseTestsrMrOrQcCs�|��}tj||jd�|_t|d��>}|jD]0\}}|�|d|�|||dd��d�q,W5QRXt�}t	�
|�|_|j�|j�dS)N)�hashrSrT�rU)
rVr
r_rzr`rXrYrZr.rr5�portr6)rrWr[r\r]�rrrrr7s4z'HashedPasswordOnDiskDatabaseTests.setUpcCsttt|�t|���Sr))r
rr	)rr\r]�srrrrzsz&HashedPasswordOnDiskDatabaseTests.hashcsFdd��jD�}t��fdd�|D��}|��jdd��jD��|S)NcSsg|]\}}t�||��qSrrirjrrrrlszIHashedPasswordOnDiskDatabaseTests.testGoodCredentials.<locals>.<listcomp>csg|]}�j�|��qSr)r`rnror"rrrls�cSsg|]\}}|�qSrrrjrrrrls�rYrrrrsr9�rZ	goodCredsrurr"r�testGoodCredentialss�z5HashedPasswordOnDiskDatabaseTests.testGoodCredentialscsTdd��jD�}t��fdd�|D��}|�dd��|��jdd��jD��|S)NcSsg|]\}}t�||��qSrrirjrrrrlszOHashedPasswordOnDiskDatabaseTests.testGoodCredentials_login.<locals>.<listcomp>csg|]}�j�|dt��qSr)�r|r#rror"rrrls�cSsdd�|D�S)NcSsg|]\}}}|jj�qSr)rAr)rk�i�a�lrrrrlszaHashedPasswordOnDiskDatabaseTests.testGoodCredentials_login.<locals>.<lambda>.<locals>.<listcomp>r��xrrr�<lambda>�zMHashedPasswordOnDiskDatabaseTests.testGoodCredentials_login.<locals>.<lambda>cSsg|]\}}|�qSrrrjrrrrl srr�rr"r�testGoodCredentials_logins�z;HashedPasswordOnDiskDatabaseTests.testGoodCredentials_logincs@dd��jD�}tj�fdd�|D�dd�}|��jtj�|S)NcSsg|]\}}t�|d��qS)zwrong passwordrirjrrrrl%s�zHHashedPasswordOnDiskDatabaseTests.testBadCredentials.<locals>.<listcomp>csg|]}�j�|dt��qSr)r�ror"rrrl's�T�Z
consumeErrors)rYr�DeferredListrs�_assertFailuresrrG)rZbadCredsrurr"r�testBadCredentials$s���z4HashedPasswordOnDiskDatabaseTests.testBadCredentialscsD�fdd��jD�}tj�fdd�|D�dd�}|��jtj�|S)Ncs.g|]&\}}t�|��d||dd����qS)Nr{)rrwrzrjr"rrrl.s
��zKHashedPasswordOnDiskDatabaseTests.testHashedCredentials.<locals>.<listcomp>csg|]}�j�|dt��qSr)r�ror"rrrl0s�Tr�)rYrr�rsr�rZUnhandledCredentials)rZhashedCredsrurr"r�testHashedCredentials-s
���z7HashedPasswordOnDiskDatabaseTests.testHashedCredentialscGs*|D] \}}|�|tj�|j|�qdSr))r9r�FAILUREZtrap)rZfailuresZexpectedFailures�flagZfailurerrrr�6sz1HashedPasswordOnDiskDatabaseTests._assertFailuresNzcrypt module not available)
rrrrYr7rzr�r�r�r�r�r�skiprrrrry�s�			ryc@s,eZdZdZejdd��Zejdd��ZdS)�
CheckersMixina�
    L{unittest.TestCase} mixin for testing that some checkers accept
    and deny specified credentials.

    Subclasses must provide
    - C{getCheckers} which returns a sequence of
      L{checkers.ICredentialChecker}
    - C{getGoodCredentials} which returns a list of 2-tuples of
      credential to check and avaterId to expect.
    - C{getBadCredentials} which returns a list of credentials
      which are expected to be unauthorized.
    ccs<|��D].}|��D] \}}|�|�V}|�||�qqdS)zt
        The given credentials are accepted by all the checkers, and give
        the expected C{avatarID}s
        N)�getCheckers�getGoodCredentialsrnr9)r�chk�credr0r}rrr�
test_positiveOszCheckersMixin.test_positiveccs:|��D],}|��D]}|�|�}|�|tj�VqqdS)zI
        The given credentials are rejected by all the checkers.
        N)r��getBadCredentialsrnZ
assertFailurerrG)rr�r�rurrr�
test_negative[s
zCheckersMixin.test_negativeN)rrrrrZinlineCallbacksr�r�rrrrr�As


r�c@sDeZdZejZdZedd��ZdddgZ	dd�Z
d	d
�Zdd�ZdS)
�HashlessFilePasswordDBMixinNcCs|Sr)rr�rrrr�jr�z$HashlessFilePasswordDBMixin.<lambda>)rN�	password1)rPs	password2)rR�	password3ccs,|jD] \}}|�||�|��|fVqdSr))�_validCredentials�	credClass�networkHashrfrrrr�rsz.HashlessFilePasswordDBMixin.getGoodCredentialsccs&dD]\}}|�||�|��VqdS)N))rNr�)rPr�)sbloofsblarf)r�r�rfrrrr�wsz-HashlessFilePasswordDBMixin.getBadCredentialsc
#sT�jpdd�}�jo�fdd�}dD�](}���}t|d��0}�jD]"\}}|�|d||�d�qDW5QRXtj|||d�V���}t|d��0}�jD]"\}}|�||�d	|d�q�W5QRXtj|d
dd||d�V���}t|d��8}�jD]*\}}|�d
|��d||�d�q�W5QRXtj|dddd||d�Vq$dS)NcSs|Sr)rr�rrrr�r�z9HashlessFilePasswordDBMixin.getCheckers.<locals>.<lambda>cs
��|�Sr))�diskHash)r*r+Zstoredr"rrr��s)TFrSrTrU)�cacherzs dingle dongle � �rszip,zap,s,zup,�,r{�F)r�rVrXr�rZr
r_�title)rr�Z	hashCheckr��fnZfObjr\r]rr"rr�~s8
&&����z'HashlessFilePasswordDBMixin.getCheckers)
rrrrr>r�r��staticmethodr�r�r�r�r�rrrrr�gs�r�c@seZdZedd��ZdS)� LocallyHashedFilePasswordDBMixincCst|�Sr)�rr�rrrr��r�z)LocallyHashedFilePasswordDBMixin.<lambda>N)rrrr�r�rrrrr��sr�c@s*eZdZedd��ZGdd�dej�ZdS)� NetworkHashedFilePasswordDBMixincCst|�Sr)r�r�rrrr��r�z)NetworkHashedFilePasswordDBMixin.<lambda>c@seZdZdd�ZdS)z*NetworkHashedFilePasswordDBMixin.credClasscCst|j�|kSr))rZhashedr,rrrr-�sz8NetworkHashedFilePasswordDBMixin.credClass.checkPasswordN)rrrr-rrrrr��sr�N)rrrr�r�rrwr�rrrrr��sr�c@seZdZdS)�"HashlessFilePasswordDBCheckerTestsNr'rrrrr��sr�c@seZdZdS)�'LocallyHashedFilePasswordDBCheckerTestsNr'rrrrr��sr�c@seZdZdS)�'NetworkHashedFilePasswordDBCheckerTestsNr'rrrrr��sr�)0rZ
__future__rrZzope.interfacerrZbinasciirrZ
twisted.trialrZtwisted.python.compatr	r
Ztwisted.pythonrZtwisted.internetrZtwisted.credr
rrrr�ImportErrorr�objectrZAdapterr%ZregisterAdapterr8r&r(ZIRealmr.ZTestCaser2rLryr�r�r�r�r�r�r�rrrr�<module>sR
Z9E&4	���