ó
    Ö›‘h½  ã                   ó¬   • S 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  SS	KJr  \" S
5      r\(       a  SSKJrJr   " S S\5      rg)z)
Tests for L{twisted.conch.manhole_tap}.
é    )ÚStreamServerEndpointService)ÚMultiService)Útelnet)Úerror)ÚUsernamePassword)Úusage)ÚrequireModule)ÚTestCaseÚcryptography)Úmanhole_sshÚmanhole_tapc                   ó`   • \ rS rSrSr\(       d  SrSrSS jrSS jr	SS jr
SS	 jrSS
 jrSrg)ÚMakeServiceTestsé   z'
Tests for L{manhole_tap.makeService}.
zcan't run without cryptography)s   iamusers   thisispasswordNc                 ó  • U R                  5       U l        [        U R                  S5       nUR                  SR	                  U R
                  5      5        SSS5        [        R                  " 5       U l        g! , (       d  f       N)= f)z(
Create a passwd-like file with a user.
Úwbó   :N)	ÚmktempÚfilenameÚopenÚwriteÚjoinÚusernamePasswordr   ÚOptionsÚoptions)ÚselfÚfs     ÚgC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/conch/test/test_manhole_tap.pyÚsetUpÚMakeServiceTests.setUp!   sZ   € ð Ÿ™›ˆŒÜ�$—-‘- Ô&¨!Ø�G‰G�D—I‘I˜d×3Ñ3Ó4Ô5÷ 'ä"×*Ò*Ó,ˆ�÷ 'Õ&ús   ¬+A:Á:
Bc                 ó  • U R                  [        R                  5       n[        R                  " 5       R                  / 5        SSS5        U R                  WR                  R                  S   S5        g! , (       d  f       N8= f)zS
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_requiresPortÚ"MakeServiceTests.test_requiresPort*   sd   € ð
 ×Ñœu×/Ñ/Ô0°AÜ×ÒÓ!×.Ñ.¨rÔ2÷ 1ð 	×ÑØ�K‰K×Ñ˜QÑØNõ	
÷ 1Õ0ús    %A7Á7
Bc                 ó"  • U R                   R                  SS/5        [        R                  " U R                   5      nU R	                  U[
        5        U R                  [        UR                  5      S5        U R	                  UR                  S   [        5        U R	                  UR                  S   R                  R                  [        R                  5        U R                  UR                  S   R                  R                  S5        g)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_telnetPortÚ MakeServiceTests.test_telnetPort7   sÏ   € ð
 	�‰×!Ñ! >°9Ð"=Ô>Ü×)Ò)¨$¯,©,Ó7ˆØ×Ñ˜g¤|Ô4Ø×Ñœ˜W×-Ñ-Ó.°Ô2Ø×Ñ˜g×.Ñ.¨qÑ1Ô3NÔOØ×ÑØ×Ñ˜QÑ×'Ñ'×0Ñ0´+×2PÑ2Pô	
ð 	×Ñ˜×)Ñ)¨!Ñ,×5Ñ5×;Ñ;¸SÕAó    c                 ó2  • U R                   R                  SU R                  5       SSSS/5        [        R                  " U R                   5      nU R                  U[        5        U R                  [        UR                  5      S5        U R                  UR                  S   [        5        U R                  UR                  S   R                  [        R                  5        U R                  UR                  S   R                  R                  S5        g	)
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/   r0   r   r%   r1   r2   r   r3   r   ÚConchFactoryr6   r7   r8   s     r   Útest_sshPortÚMakeServiceTests.test_sshPortF   sÞ   € ð 	�‰×!Ñ!àØ—‘“ØØØØðô		
ô ×)Ò)¨$¯,©,Ó7ˆØ×Ñ˜g¤|Ô4Ø×Ñœ˜W×-Ñ-Ó.°Ô2Ø×Ñ˜g×.Ñ.¨qÑ1Ô3NÔOØ×Ñ˜g×.Ñ.¨qÑ1×9Ñ9¼;×;SÑ;SÔTØ×Ñ˜×)Ñ)¨!Ñ,×5Ñ5×;Ñ;¸SÕAr<   c           
      ó¸  • U R                   R                  SSSU R                  /5        [        R                  " U R                   5      nUR
                  S   R                  R                  R                  nU R                  [        UR                  R                  5       5      S5        U R                  U R                  UR                  [!        U R"                  6 S[$        R&                  5      5      5        U R)                  U R+                  UR                  [!        SS5      S[$        R&                  5      5      R,                  [.        R0                  5        g)	zC
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/   r2   r3   r4   Úportalr%   r1   ÚcheckersÚkeysÚ
assertTrueÚsuccessResultOfÚloginr   r   r   ÚITelnetProtocolr0   ÚfailureResultOfÚvaluer   ÚUnauthorizedLogin)r   r9   rE   s      r   Útest_passwdÚMakeServiceTests.test_passwd_   s  € ð 	�‰×!Ñ! >°8¸ZÈÏÉÐ"WÔXÜ×)Ò)¨$¯,©,Ó7ˆØ×!Ñ! !Ñ$×,Ñ,×5Ñ5×<Ñ<ˆà×Ñœ˜VŸ_™_×1Ñ1Ó3Ó4°aÔ8ð 	�‰Ø× Ñ Ø—‘Ü$ d×&;Ñ&;Ð<ØÜ×*Ñ*óóô	
ð 	×ÑØ× Ñ Ø—‘Ü$ X¨wÓ7¸¼v×?UÑ?Uóó÷ ‰eÜ×#Ñ#õ	
r<   )r   r   )ÚreturnN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úskipr   r   r)   r:   rA   rO   Ú__static_attributes__© r<   r   r   r      s2   † ñö Ø/ˆà6Ðô-ô
ôBôB÷2
r<   r   N)rV   Ú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   rY   r<   r   Ú<module>rb      sC   ðñõ EÝ 4Ý  Ý Ý 5Ý  Ý 0Ý +á˜^Ó,€æß6ôc
�xõ c
r<   