+
    üÐj½  ã                   ó°   € R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ]! R	4      t]'       d	   ^ R
IHtHt  ! R R]4      tR# )z)
Tests for L{twisted.conch.manhole_tap}.
)ÚStreamServerEndpointService)ÚMultiService)Útelnet)Úerror)ÚUsernamePassword)Úusage)ÚrequireModule)ÚTestCaseÚcryptography)Úmanhole_sshÚmanhole_tapc                   ó–   a € ] tR t^t o Rt]'       g   RtRtV 3R lR ltV 3R lR lt	V 3R lR lt
V 3R	 lR
 ltV 3R lR ltRtV tR# )ÚMakeServiceTestsz'
Tests for L{manhole_tap.makeService}.
zcan't run without cryptographyc                ó   <€ V ^8„  d   QhRR/# ©é   ÚreturnN© )ÚformatÚ__classdict__s   "€ÚE/usr/lib/python3/dist-packages/twisted/conch/test/test_manhole_tap.pyÚ__annotate__ÚMakeServiceTests.__annotate__!   s   ø€ ÷ -ñ -�tñ -ó    c                ó,  € V P                  4       V n        \        V P                  R4      ;_uu_ 4       pVP                  RP	                  V P
                  4      4       RRR4       \        P                  ! 4       V n        R#   + '       g   i     L,; i)z(
Create a passwd-like file with a user.
Úwbó   :N)	ÚmktempÚfilenameÚopenÚwriteÚjoinÚusernamePasswordr   ÚOptionsÚoptions)ÚselfÚfs   & r   ÚsetUpÚMakeServiceTests.setUp!   s]   € ð Ÿ™›ˆŒÜ�$—-‘- ×&Ô&¨!Ø�G‰G�D—I‘I˜d×3Ñ3Ó4Ô5÷ 'ä"×*Ò*Ó,ˆŽ÷ '×&ús   ´+BÂB	c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   *   s   ø€ ÷ 
ñ 
 4ñ 
r   c                ó.  € V P                  \        P                  4      ;_uu_ 4       p\        P                  ! 4       P                  . 4       RRR4       V P                  XP                  P                  ^ ,          R4       R#   + '       g   i     L?; i)zS
L{manhole_tap.makeService} requires either 'telnetPort' or 'sshPort' to
be given.
Nz<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*   sg   € ð
 ×Ñœu×/Ñ/×0Ô0°AÜ×ÒÓ!×.Ñ.¨rÔ2÷ 1ð 	×ÑØ�K‰K×Ñ˜QÕØNö	
÷ 1×0ús   ¨%BÂB	c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   7   s   ø€ ÷ Bñ B ñ Br   c                ó<  € V P                   P                  RR.4       \        P                  ! V P                   4      pV P	                  V\
        4       V P                  \        VP                  4      ^4       V P	                  VP                  ^ ,          \        4       V P	                  VP                  ^ ,          P                  P                  \        P                  4       V P                  VP                  ^ ,          P                  P                  ^Þ4       R# )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:222N)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ÖAr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   F   s   ø€ ÷ Bñ B˜dñ Br   c                óL  € V P                   P                  RV P                  4       RRRR.4       \        P                  ! V P                   4      pV P                  V\        4       V P                  \        VP                  4      ^4       V P                  VP                  ^ ,          \        4       V P                  VP                  ^ ,          P                  \        P                  4       V P                  VP                  ^ ,          P                  P                  ^ß4       R# )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:223N)r$   r-   r   r   r7   r8   r   r.   r9   r:   r   r;   r   ÚConchFactoryr>   r?   r@   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                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   _   s   ø€ ÷ 
ñ 
˜Tñ 
r   c           
     óÄ  € V P                   P                  RRRV P                  .4       \        P                  ! V P                   4      pVP
                  ^ ,          P                  P                  P                  pV P                  \        VP                  P                  4       4      ^4       V P                  V P                  VP                  \!        V P"                  !  R\$        P&                  4      4      4       V P)                  V P+                  VP                  \!        RR4      R\$        P&                  4      4      P,                  \.        P0                  4       R# )zC
The C{--passwd} command-line option will load a passwd-like file.
r6   ztcp:22z--passwdNs   wrongs   user)r$   r-   r   r   r7   r:   r;   r<   Úportalr.   r9   ÚcheckersÚkeysÚ
assertTrueÚsuccessResultOfÚloginr   r"   r   ÚITelnetProtocolr8   ÚfailureResultOfÚvaluer   ÚUnauthorizedLogin)r%   rA   rL   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$   N)s   iamusers   thisispassword)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r
   Úskipr"   r'   r2   rB   rH   rV   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      sP   ø‡ € ñ÷ Ø/ˆà6Ð÷-ð -÷
ð 
÷Bð B÷Bð B÷2
ö 
r   r   N)r\   Ú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   r   r   r   Ú<module>rh      sC   ðñõ EÝ 4Ý  Ý Ý 5Ý  Ý 0Ý +á˜^Ó,€çß6ôc
�xö c
r   