
    tf.                     z   d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ ddlmZmZ  ed          Z ed          Zed dlmZmZ  ee           G d d                      Z ednedndZ! G d dej"                  Z# G d dej"                  Z$dS )    )implementer)
IConchUser)AllowAnonymousAccess'InMemoryUsernamePasswordDatabaseDontUse)	Anonymous
IAnonymousIUsernamePasswordUsernamePassword)LoginDenied)Portal)IReactorProcess)UserDatabase)requireModule)unittest   )
StubClientStubConnectioncryptographyztwisted.conch.unixN)UnixConchUserUnixSSHRealmc                   .    e Zd ZdZd Zdi dddddfdZdS )MockProcessSpawnerzC
    An L{IReactorProcess} that logs calls to C{spawnProcess}.
    c                     g | _         d S )N)_spawnProcessCalls)selfs    [/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/conch/test/test_unix.py__init__zMockProcessSpawner.__init__(   s    "$     Nr   c
                 N    | j                             |||||||||	d	           dS )zQ
        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   spawnProcesszMockProcessSpawner.spawnProcess+   sN     	&&#2( $
 
	
 	
 	
 	
 	
r   )__name__
__module____qualname____doc__r   r+   r   r   r   r   r   "   sX         % % % 
 
 
 
 
 
r   r   zCannot run without cryptographyzUnix system requiredc                       e Zd ZeZddZdS )TestSSHSessionForUnixConchUserreturnNc                    t                      }d}d}|                    ||           |                     t          d|           t	                      }t          |          }t          t                                |_        t          	                    ||          }d}dg}|
                    ||           |j        \  }	|                     ||	d	         d
                    dS )zn
        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   testExecCommandEnvironmentz9TestSSHSessionForUnixConchUser.testExecCommandEnvironmentU   s    
 (xm444

4'''(**x(($z||<<<11&+1NN*+Hg.../UF(;<<<<<r   r2   N)r,   r-   r.   
shouldSkipskiprK   r   r   r   r1   r1   R   s-        D= = = = = =r   r1   c                   &    e Zd ZdZeZddZddZdS )TestUnixSSHRealmz$
    Tests for L{UnixSSHRealm}.
    r2   Nc                 $   t                      }d}|                    d|           |                     t          d|           t	          d          }t          t                      |g          }t          dd          }|                    |dt                    }| 
                    |          \  }}}	|                     |t                     t          |t                    sJ |                     |                                |           dS )	zt
        L{UnixSSHRealm} is an L{IRealm} whose C{.requestAvatar} method returns
        a L{UnixConchUser}.
        z/testing/home/valuer4   r5   r7   s   password)r4   s   userN)r   r;   r<   r=   r   r   r   r
   loginr   successResultOfassertIsInstancer   
isinstancerA   
getHomeDir)
r   rB   r6   pwdbpcredsresultresultInterfacerF   logouts
             r   test_unixSSHRealmz"TestUnixSSHRealm.test_unixSSHRealmq   s    
 $vD)))

4'''6KHHH<>>D6**
 $4G[#I#Ij11*.*>*>v*F*F'fm444&-00000**,,d33333r   c                 ,   t          t                      t                      g          }|                    t	          t                                dt                    }|                     |          }|                     |j	        t                     dS )z?
        L{UnixSSHRealm} will refuse anonymous logins.
        N)r   r   r   rR   r   r   r   failureResultOfrT   valuer   )r   rX   rZ   loginDenieds       r   "test_unixSSHRefusesAnonymousLoginsz3TestUnixSSHRealm.test_unixSSHRefusesAnonymousLogins   st     <>>$8$:$:#;<<IKK00$
CC**622k/=====r   rL   )r,   r-   r.   r/   rM   rN   r]   rb   r   r   r   rP   rP   j   sM          D4 4 4 4,> > > > > >r   rP   )%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   r=   twisted.conch.unixr   r   r   rM   TestCaser1   rP   r   r   r   <module>rp      s   ' & & & & & / / / / / /                   + * * * * * & & & & & & 7 7 7 7 7 7 / / / / / / 0 0 0 0 0 0 " " " " " " 4 4 4 4 4 4 4 4}^,,})**>>>>>>>> _#
 #
 #
 #
 #
 #
 #
 #
P  &% | 
 		 = = = = =X%6 = = =0$> $> $> $> $>x( $> $> $> $> $>r   