ó
    Ö›‘h.  ã                   óh  • S SK Jr  S SKJr  S SKJrJr  S SKJrJ	r	J
r
Jr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  SSKJrJr  \" S5      r\" S5      r\b  S SKJrJr  \" \5       " S S5      5       r \c  SO\c  SOSr! " S S\RD                  5      r# " S S\RD                  5      r$g)é    )Úimplementer)Ú
IConchUser)ÚAllowAnonymousAccessÚ'InMemoryUsernamePasswordDatabaseDontUse)Ú	AnonymousÚ
IAnonymousÚIUsernamePasswordÚUsernamePassword)ÚLoginDenied)ÚPortal)ÚIReactorProcess)ÚUserDatabase)ÚrequireModule)Úunittesté   )Ú
StubClientÚStubConnectionÚcryptographyztwisted.conch.unixN)ÚUnixConchUserÚUnixSSHRealmc                   ó6   • \ rS rSrSrS rS0 SSSSS4S jrSrg)	ÚMockProcessSpawneré"   z;
An L{IReactorProcess} that logs calls to C{spawnProcess}.
c                 ó   • / U l         g )N©Ú_spawnProcessCalls)Úselfs    Ú`C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/conch/test/test_unix.pyÚ__init__ÚMockProcessSpawner.__init__(   s
   € Ø"$ˆÕó    © Nr   c
                 óN   • U R                   R                  UUUUUUUUU	S.	5        g)zA
Log a call to C{spawnProcess}. Do not actually spawn a process.
)	ÚprocessProtocolÚ
executableÚargsÚenvÚpathÚuidÚgidÚusePTYÚchildFDsN)r   Úappend)
r   r$   r%   r&   r'   r(   r)   r*   r+   r,   s
             r   ÚspawnProcessÚMockProcessSpawner.spawnProcess+   s8   € ð 	×Ñ×&Ñ&à#2Ø(ØØØØØØ Ø$ñ
õ	
r!   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r.   Ú__static_attributes__r"   r!   r   r   r   "   s(   † ñò%ð ØØØØØØ÷
r!   r   zCannot run without cryptographyzUnix system requiredc                   ó"   • \ rS rSr\rSS jrSrg)ÚTestSSHSessionForUnixConchUseréR   Nc                 ó^  • [        5       nSnSnUR                  X2S9  U R                  [        SU5        [	        5       n[        U5      n[        [        5       S9Ul        [        R                  XTS9nSnS/nUR                  Xx5        UR                  u  n	U R                  X)S	   S
   5        g)zV
C{execCommand} sets the C{HOME} environment variable to the avatar's home
directory.
z/made/up/path/Úuser©ÚhomeÚpwd)Ú	transport)ÚreactorNznot-actually-executedr'   ÚHOME)r   ÚaddUserÚpatchÚunixr   r   r   r   ÚconnÚSSHSessionForUnixConchUserÚexecCommandr   ÚassertEqual)
r   ÚuserdbÚhomeDirectoryÚuserNameÚmockReactorÚavatarÚsessionÚprotocolÚcommandÚcalls
             r   ÚtestExecCommandEnvironmentÚ9TestSSHSessionForUnixConchUser.testExecCommandEnvironmentU   s¥   € ô
 “ˆØ(ˆØˆØ�‰�xˆÑ4Ø�
‰
”4˜ Ô'Ü(Ó*ˆÜ˜xÓ(ˆÜ$¬z«|Ñ<ˆŒÜ×1Ñ1°&Ð1ÐNˆØˆØ*Ð+ˆØ×Ñ˜HÔ.Ø×/Ñ/‰ˆØ×Ñ˜¨U©°FÑ(;Õ<r!   r"   ©ÚreturnN)r0   r1   r2   r3   Ú
shouldSkipÚskiprQ   r5   r"   r!   r   r7   r7   R   s   † Ø€D÷=r!   r7   c                   ó0   • \ rS rSrSr\rSS jrSS jrSr	g)ÚTestUnixSSHRealméj   z
Tests for L{UnixSSHRealm}.
Nc                 ó®  • [        5       nSnUR                  SUS9  U R                  [        SU5        [	        SS9n[        [        5       U/5      n[        SS5      nUR                  US[        5      nU R                  U5      u  pxn	U R                  U[        5        [        U[        5      (       d   eU R                  UR                  5       U5        g)	z\
L{UnixSSHRealm} is an L{IRealm} whose C{.requestAvatar} method returns
a L{UnixConchUser}.
z/testing/home/valuer:   r;   r=   s   password)r:   s   userN)r   rA   rB   rC   r   r   r   r
   Úloginr   ÚsuccessResultOfÚassertIsInstancer   Ú
isinstancerG   Ú
getHomeDir)
r   rH   r<   ÚpwdbÚpÚcredsÚresultÚresultInterfacerL   Úlogouts
             r   Útest_unixSSHRealmÚ"TestUnixSSHRealm.test_unixSSHRealmq   s»   € ô
 “ˆØ$ˆØ�‰�v DˆÑ)Ø�
‰
”4˜ Ô'Ü6¸KÑHˆÜ”<“> D 6Ó*ˆô
 $4°G¸[Ó#IˆØ—‘˜ ¤jÓ1ˆØ*.×*>Ñ*>¸vÓ*FÑ'ˆ Ø×Ñ˜f¤mÔ4Ü˜&¤-×0Ñ0Ð0Ð0Ø×Ñ˜×*Ñ*Ó,¨dÕ3r!   c                 óð   • [        [        5       [        5       /5      nUR                  [	        [        5       5      S[        5      nU R                  U5      nU R                  UR                  [        5        g)z/
L{UnixSSHRealm} will refuse anonymous logins.
N)r   r   r   r[   r   r   r   ÚfailureResultOfr]   Úvaluer   )r   ra   rc   ÚloginDenieds       r   Ú"test_unixSSHRefusesAnonymousLoginsÚ3TestUnixSSHRealm.test_unixSSHRefusesAnonymousLogins‡   sX   € ô ”<“>Ô$8Ó$:Ð#;Ó<ˆØ—‘œ¤I£KÓ0°$¼
ÓCˆØ×*Ñ*¨6Ó2ˆØ×Ñ˜k×/Ñ/´Õ=r!   r"   rS   )
r0   r1   r2   r3   r4   rU   rV   rf   rl   r5   r"   r!   r   rX   rX   j   s   † ñð €Dô4÷,>r!   rX   )%Úzope.interfacer   Útwisted.conch.interfacesr   Útwisted.cred.checkersr   r   Útwisted.cred.credentialsr   r   r	   r
   Útwisted.cred.errorr   Útwisted.cred.portalr   Útwisted.internet.interfacesr   Útwisted.python.fakepwdr   Útwisted.python.reflectr   Útwisted.trialr   Útest_sessionr   r   r   rC   Útwisted.conch.unixr   r   r   rU   ÚTestCaser7   rX   r"   r!   r   Ú<module>r{      sµ   ðõ 'å /÷÷ó õ +Ý &Ý 7Ý /Ý 0Ý "ß 4á˜^Ó,€ÙÐ)Ó*€àÑß>ñ ˆ_Ó÷#
ð #
ó ð#
ðP Ññ &ð �|ñ 
 à	ð ô= X×%6Ñ%6ô =ô0$>�x×(Ñ(õ $>r!   