
    tf                         d 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 dd	lmZ  ed
          ZerddlmZmZ  G d de          ZdS )z)
Tests for L{twisted.conch.manhole_tap}.
    )StreamServerEndpointService)MultiService)telnet)error)UsernamePassword)usage)requireModule)TestCasecryptography)manhole_sshmanhole_tapc                   F    e Zd ZdZesdZdZddZddZddZ	dd	Z
dd
ZdS )MakeServiceTestsz/
    Tests for L{manhole_tap.makeService}.
    zcan't run without cryptography)s   iamusers   thisispasswordreturnNc                    |                                  | _        t          | j        d          5 }|                    d                    | j                             ddd           n# 1 swxY w Y   t          j                    | _        dS )z8
        Create a passwd-like file with a user.
        wb   :N)	mktempfilenameopenwritejoinusernamePasswordr   Optionsoptions)selffs     b/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/conch/test/test_manhole_tap.pysetUpzMakeServiceTests.setUp!   s     $-&& 	6!GGDIId344555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6"*,,s   .A))A-0A-c                    |                      t          j                  5 }t          j                                        g            ddd           n# 1 swxY w Y   |                     |j        j        d         d           dS )zk
        L{manhole_tap.makeService} requires either 'telnetPort' or 'sshPort' to
        be given.
        Nr   z<At least one of --telnetPort and --sshPort must be specified)	assertRaisesr   
UsageErrorr   r   parseOptionsassertEqual	exceptionargs)r   es     r   test_requiresPortz"MakeServiceTests.test_requiresPort*   s    
 u/00 	3A!!..r222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	KQN	
 	
 	
 	
 	
s   'AAAc                    | j                             ddg           t          j        | j                   }|                     |t
                     |                     t          |j                  d           |                     |j        d         t                     |                     |j        d         j
        j        t          j                   |                     |j        d         j        j        d           dS )z
        L{manhole_tap.makeService} will make a telnet service on the port
        defined by C{--telnetPort}. It will not make a SSH service.
        --telnetPortztcp:222   r      N)r   r#   r   makeServiceassertIsInstancer   r$   lenservicesr   factoryprotocolmakeTelnetProtocolendpoint_portr   services     r   test_telnetPortz MakeServiceTests.test_telnetPort7   s    
 	!!>9"=>>>)$,77g|444W-..222g.q13NOOOQ'0+2P	
 	
 	
 	)!,5;SAAAAA    c                 $   | j                             d|                                 ddddg           t          j        | j                   }|                     |t                     |                     t          |j	                  d           |                     |j	        d         t                     |                     |j	        d         j        t          j                   |                     |j	        d         j        j        d           d	S )
z
        L{manhole_tap.makeService} will make a SSH service on the port
        defined by C{--sshPort}. It will not make a telnet service.
        z--sshKeyDirz--sshKeySize1024z	--sshPortztcp:223r+   r      N)r   r#   r   r   r-   r.   r   r$   r/   r0   r   r1   r   ConchFactoryr4   r5   r6   s     r   test_sshPortzMakeServiceTests.test_sshPortF   s     	!!		
 		
 		
 )$,77g|444W-..222g.q13NOOOg.q19;;STTT)!,5;SAAAAAr9   c           
         | j                             ddd| j        g           t          j        | j                   }|j        d         j        j        j        }| 	                    t          |j                                                  d           |                     |                     |                    t!          | j         dt$          j                                       |                     |                     |                    t!          dd          dt$          j                            j        t.          j                   dS )	zS
        The C{--passwd} command-line option will load a passwd-like file.
        r*   ztcp:22z--passwdr      Ns   wrongs   user)r   r#   r   r   r-   r0   r1   r2   portalr$   r/   checkerskeys
assertTruesuccessResultOfloginr   r   r   ITelnetProtocolr.   failureResultOfvaluer   UnauthorizedLogin)r   r7   rA   s      r   test_passwdzMakeServiceTests.test_passwd_   s0    	!!>8Z"WXXX)$,77!!$,5<V_113344a888 	  $d&;<*  	
 	
 	
 	  $Xw77v?U   #	
 	
 	
 	
 	
r9   )r   N)__name__
__module____qualname____doc__r   skipr   r   r(   r8   r>   rK    r9   r   r   r      s           0/6- - - -
 
 
 
B B B BB B B B2
 
 
 
 
 
r9   r   N)rO   twisted.application.internetr   twisted.application.servicer   twisted.conchr   twisted.credr   twisted.cred.credentialsr   twisted.pythonr   twisted.python.reflectr	   twisted.trial.unittestr
   r   r   r   r   rQ   r9   r   <module>rZ      s    E D D D D D 4 4 4 4 4 4                   5 5 5 5 5 5             0 0 0 0 0 0 + + + + + +}^,, 766666666c
 c
 c
 c
 c
x c
 c
 c
 c
 c
r9   