Ϫf.bddlmZddlmZddlmZmZddlmZm Z m Z m Z ddl m Z ddlmZddlmZddlmZdd lmZdd lmZd d lmZmZed ZedZeddlmZmZeeGddZ ednedndZ!GddejDZ#GddejDZ$y)) implementer) IConchUser)AllowAnonymousAccess'InMemoryUsernamePasswordDatabaseDontUse) Anonymous IAnonymousIUsernamePasswordUsernamePassword) LoginDenied)Portal)IReactorProcess) UserDatabase) requireModule)unittest) StubClientStubConnection cryptographyztwisted.conch.unixN) UnixConchUser UnixSSHRealmc,eZdZdZdZdidddddfdZy)MockProcessSpawnerzC An L{IReactorProcess} that logs calls to C{spawnProcess}. cg|_y)N)_spawnProcessCalls)selfs >/usr/lib/python3/dist-packages/twisted/conch/test/test_unix.py__init__zMockProcessSpawner.__init__(s "$Nrc N|jj||||||||| d y)zQ Log a call to C{spawnProcess}. Do not actually spawn a process. ) processProtocol executableargsenvpathuidgidusePTYchildFDsN)rappend) rr!r"r#r$r%r&r'r(r)s r spawnProcesszMockProcessSpawner.spawnProcess+s8 &( $  r)__name__ __module__ __qualname____doc__rr+rrrrr"s(%     rrzCannot run without cryptographyzUnix system requiredceZdZeZddZy)TestSSHSessionForUnixConchUserNcxt}d}d}|j|||jtd|t }t |}t t|_tj||}d}dg}|j|||j\} |j|| d d y) zn C{execCommand} sets the C{HOME} environment variable to the avatar's home directory. z/made/up/path/userhomepwd) transport)reactorNznot-actually-executedr$HOME) raddUserpatchunixrrrrconnSSHSessionForUnixConchUser execCommandr assertEqual) ruserdb homeDirectoryuserName mockReactoravatarsessionprotocolcommandcalls rtestExecCommandEnvironmentz9TestSSHSessionForUnixConchUser.testExecCommandEnvironmentUs ( xm4 4'(* x($z|< 11&+1N*+Hg.// U F(;D6 * $4G[#Ij1*.*>*>v*F' fm4&-000 **,d3rctttg}|jt t dt }|j|}|j|jty)z? L{UnixSSHRealm} will refuse anonymous logins. N) r rrrRrrrfailureResultOfrTvaluer )rrXrZ loginDenieds r"test_unixSSHRefusesAnonymousLoginsz3TestUnixSSHRealm.test_unixSSHRefusesAnonymousLoginssX <>$8$:#; <IK0$ C**62  k//=rrK)r,r-r.r/rMrNr]rbrrrrPrPjs D4,>rrP)%zope.interfacertwisted.conch.interfacesrtwisted.cred.checkersrrtwisted.cred.credentialsrrr r twisted.cred.errorr twisted.cred.portalr twisted.internet.interfacesr twisted.python.fakepwdrtwisted.python.reflectr twisted.trialr test_sessionrrrr<twisted.conch.unixrrrrMTestCaser1rPrrrrps '/ +&7/0"4^, )*> _# # # P& |  =X%6%6=0$>x(($>r