# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Tests for L{twisted.conch.ssh.forwarding}. """ from __future__ import division, absolute_import from twisted.python.reflect import requireModule cryptography = requireModule("cryptography") if cryptography: from twisted.conch.ssh import forwarding from twisted.internet.address import IPv6Address from twisted.trial import unittest from twisted.internet.test.test_endpoints import deterministicResolvingReactor from twisted.test.proto_helpers import MemoryReactorClock, StringTransport class TestSSHConnectForwardingChannel(unittest.TestCase): """ Unit and integration tests for L{SSHConnectForwardingChannel}. """ if not cryptography: skip = "Cannot run without cryptography" def makeTCPConnection(self, reactor): """ Fake that connection was established for first connectTCP request made on C{reactor}. @param reactor: Reactor on which to fake the connection. @type reactor: A reactor. """ factory = reactor.tcpClients[0][2] connector = reactor.connectors[0] protocol = factory.buildProtocol(None) transport = StringTransport(peerAddress=connector.getDestination()) protocol.makeConnection(transport) def test_channelOpenHostnameRequests(self): """ When a hostname is sent as part of forwarding requests, it is resolved using HostnameEndpoint's resolver. """ sut = forwarding.SSHConnectForwardingChannel( hostport=('fwd.example.org', 1234)) # Patch channel and resolver to not touch the network. memoryReactor = MemoryReactorClock() sut._reactor = deterministicResolvingReactor(memoryReactor, ['::1']) sut.channelOpen(None) self.makeTCPConnection(memoryReactor) self.successResultOf(sut._channelOpenDeferred) # Channel is connected using a forwarding client to the resolved # address of the requested host. self.assertIsInstance(sut.client, forwarding.SSHForwardingClient) self.assertEqual( IPv6Address('TCP', '::1', 1234), sut.client.transport.getPeer())
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 14 B | 0644 |
|
keydata.py | File | 17.06 KB | 0644 |
|
loopback.py | File | 757 B | 0644 |
|
test_address.py | File | 1.59 KB | 0644 |
|
test_agent.py | File | 12.78 KB | 0644 |
|
test_cftp.py | File | 49.7 KB | 0644 |
|
test_channel.py | File | 11.82 KB | 0644 |
|
test_checkers.py | File | 30.76 KB | 0644 |
|
test_ckeygen.py | File | 19.8 KB | 0644 |
|
test_conch.py | File | 24.55 KB | 0644 |
|
test_connection.py | File | 27.49 KB | 0644 |
|
test_default.py | File | 11.31 KB | 0644 |
|
test_endpoints.py | File | 51.96 KB | 0644 |
|
test_filetransfer.py | File | 26.65 KB | 0644 |
|
test_forwarding.py | File | 2.16 KB | 0644 |
|
test_helper.py | File | 20.01 KB | 0644 |
|
test_insults.py | File | 32.79 KB | 0644 |
|
test_keys.py | File | 53.57 KB | 0644 |
|
test_knownhosts.py | File | 48.26 KB | 0644 |
|
test_manhole.py | File | 12.52 KB | 0644 |
|
test_manhole_tap.py | File | 4.14 KB | 0644 |
|
test_mixin.py | File | 1.03 KB | 0644 |
|
test_openssh_compat.py | File | 4.52 KB | 0644 |
|
test_recvline.py | File | 24.81 KB | 0644 |
|
test_scripts.py | File | 1.84 KB | 0644 |
|
test_session.py | File | 38.54 KB | 0644 |
|
test_ssh.py | File | 31.62 KB | 0644 |
|
test_tap.py | File | 4.83 KB | 0644 |
|
test_telnet.py | File | 25.9 KB | 0644 |
|
test_text.py | File | 3.85 KB | 0644 |
|
test_transport.py | File | 89.71 KB | 0644 |
|
test_unix.py | File | 2.47 KB | 0644 |
|
test_userauth.py | File | 31.84 KB | 0644 |
|
test_window.py | File | 2.07 KB | 0644 |
|