§
    Ètºf½  ã                   ó°   — 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¨!Ø�GŠG�D—I’I˜dÔ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ð 	3°AÝÔÑ!Ô!×.Ò.¨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Ô1Õ3NÑ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Ô1Õ3NÑ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  € ð 	Œ×!Ò! >°8¸ZÈÌÐ"WÑXÔXÐXÝÔ)¨$¬,Ñ7Ô7ˆØÔ! !Ô$Ô,Ô5Ô<ˆà×Ò�˜Vœ_×1Ò1Ñ3Ô3Ñ4Ô4°aÑ8Ô8Ð8ð 	�ŠØ× Ò Ø—’Ý$ dÔ&;Ð<ØÝÔ*ñô ñô ñ	
ô 	
ð 	
ð 	×ÒØ× Ò Ø—’Ý$ X¨wÑ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   