/usr/lib/python3/dist-packages/twisted/conch/test
NameSizeModeActions
__pycache__/-0755rm
keydata.py352080644editdlrm
loopback.py7060644editdlrm
test_address.py15500644editdlrm
test_agent.py132190644editdlrm
test_cftp.py505030644editdlrm
test_channel.py121830644editdlrm
test_checkers.py313400644editdlrm
test_ckeygen.py243390644editdlrm
test_conch.py257400644editdlrm
test_connection.py292570644editdlrm
test_default.py115880644editdlrm
test_endpoints.py558880644editdlrm
test_filetransfer.py331330644editdlrm
test_forwarding.py21620644editdlrm
test_helper.py200330644editdlrm
test_insults.py321320644editdlrm
test_keys.py625190644editdlrm
test_knownhosts.py494970644editdlrm
test_manhole.py132570644editdlrm
test_manhole_tap.py43510644editdlrm
test_mixin.py10540644editdlrm
test_openssh_compat.py48760644editdlrm
test_recvline.py254320644editdlrm
test_scripts.py17810644editdlrm
test_session.py447930644editdlrm
test_ssh.py329380644editdlrm
test_tap.py50370644editdlrm
test_telnet.py268070644editdlrm
test_text.py40210644editdlrm
test_transport.py1072710644editdlrm
test_unix.py26000644editdlrm
test_userauth.py335550644editdlrm
test_window.py21130644editdlrm
__init__.py140644editdlrm
Edit: /usr/lib/python3/dist-packages/twisted/conch/test/test_manhole_tap.py (4351B)
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Tests for L{twisted.conch.manhole_tap}. """ from twisted.application.internet import StreamServerEndpointService from twisted.application.service import MultiService from twisted.conch import telnet from twisted.cred import error from twisted.cred.credentials import UsernamePassword from twisted.python import usage from twisted.python.reflect import requireModule from twisted.trial.unittest import TestCase cryptography = requireModule("cryptography") pyasn1 = requireModule("pyasn1") if cryptography and pyasn1: from twisted.conch import manhole_ssh, manhole_tap class MakeServiceTests(TestCase): """ Tests for L{manhole_tap.makeService}. """ if not cryptography: skip = "can't run without cryptography" if not pyasn1: skip = "Cannot run without PyASN1" usernamePassword = (b"iamuser", b"thisispassword") def setUp(self): """ Create a passwd-like file with a user. """ self.filename = self.mktemp() with open(self.filename, "wb") as f: f.write(b":".join(self.usernamePassword)) self.options = manhole_tap.Options() def test_requiresPort(self): """ L{manhole_tap.makeService} requires either 'telnetPort' or 'sshPort' to be given. """ with self.assertRaises(usage.UsageError) as e: manhole_tap.Options().parseOptions([]) self.assertEqual( e.exception.args[0], ("At least one of --telnetPort " "and --sshPort must be specified"), ) def test_telnetPort(self): """ L{manhole_tap.makeService} will make a telnet service on the port defined by C{--telnetPort}. It will not make a SSH service. """ self.options.parseOptions(["--telnetPort", "tcp:222"]) service = manhole_tap.makeService(self.options) self.assertIsInstance(service, MultiService) self.assertEqual(len(service.services), 1) self.assertIsInstance(service.services[0], StreamServerEndpointService) self.assertIsInstance( service.services[0].factory.protocol, manhole_tap.makeTelnetProtocol ) self.assertEqual(service.services[0].endpoint._port, 222) def test_sshPort(self): """ L{manhole_tap.makeService} will make a SSH service on the port defined by C{--sshPort}. It will not make a telnet service. """ # Why the sshKeyDir and sshKeySize params? To prevent it stomping over # (or using!) the user's private key, we just make a super small one # which will never be used in a temp directory. self.options.parseOptions( [ "--sshKeyDir", self.mktemp(), "--sshKeySize", "512", "--sshPort", "tcp:223", ] ) service = manhole_tap.makeService(self.options) self.assertIsInstance(service, MultiService) self.assertEqual(len(service.services), 1) self.assertIsInstance(service.services[0], StreamServerEndpointService) self.assertIsInstance(service.services[0].factory, manhole_ssh.ConchFactory) self.assertEqual(service.services[0].endpoint._port, 223) def test_passwd(self): """ The C{--passwd} command-line option will load a passwd-like file. """ self.options.parseOptions(["--telnetPort", "tcp:22", "--passwd", self.filename]) service = manhole_tap.makeService(self.options) portal = service.services[0].factory.protocol.portal self.assertEqual(len(portal.checkers.keys()), 2) # Ensure it's the passwd file we wanted by trying to authenticate self.assertTrue( self.successResultOf( portal.login( UsernamePassword(*self.usernamePassword), None, telnet.ITelnetProtocol, ) ) ) self.assertIsInstance( self.failureResultOf( portal.login( UsernamePassword(b"wrong", b"user"), None, telnet.ITelnetProtocol ) ).value, error.UnauthorizedLogin, )