def test_tunnel_protocol_ignores_warnings(self): """ When using ssh to setup the tunnel, we typically recieve a unknown host key warning message on stderr, the tunnel protocol will filter these messages. """ log = self.capture_logging(level=logging.ERROR) protocol = ClientTunnelProtocol(None, None) protocol.errReceived("Warning: Permanently added") self.assertEqual(log.getvalue(), "")
def test_tunnel_protocol_notes_connection_refused(self): client = self.mocker.mock() client.close() self.mocker.replay() tunnel_deferred = Deferred() protocol = ClientTunnelProtocol(client, tunnel_deferred) message = "blah blah blah Connection refused blah blah" protocol.errReceived(message) expected_message = "Connection refused" def verify_failure(error): self.assertEqual(error.args[0], expected_message) self.failUnlessFailure(tunnel_deferred, NoConnection) tunnel_deferred.addCallback(verify_failure) return tunnel_deferred
def test_tunnel_protocol_notes_invalid_key(self): log = self.capture_logging(level=logging.ERROR) client = self.mocker.mock() client.close() self.mocker.replay() tunnel_deferred = Deferred() protocol = ClientTunnelProtocol(client, tunnel_deferred) message = "Permission denied" protocol.errReceived(message) expected_message = "Invalid SSH key" def verify_failure(error): self.assertEqual(error.args[0], expected_message) self.assertEqual(log.getvalue().strip(), expected_message) self.failUnlessFailure(tunnel_deferred, NoConnection) tunnel_deferred.addCallback(verify_failure) return tunnel_deferred
def test_tunnel_protocol_notes_invalid_host(self): log = self.capture_logging(level=logging.ERROR) client = self.mocker.mock() client.close() self.mocker.replay() tunnel_deferred = Deferred() protocol = ClientTunnelProtocol(client, tunnel_deferred) message = "ssh: Could not resolve hostname magicbean" protocol.errReceived(message) expected_message = "Invalid host for SSH forwarding: %s" % message def verify_failure(error): self.assertEqual(error.args[0], expected_message) self.assertEqual(log.getvalue().strip(), expected_message) self.assertFailure(tunnel_deferred, NoConnection) tunnel_deferred.addCallback(verify_failure) return tunnel_deferred
def test_tunnel_protocol_closes_on_error(self): """ When using ssh to setup the tunnel, we typically recieve a unknown host key warning message on stderr, the tunnel protocol will filter these messages. """ log = self.capture_logging(level=logging.ERROR) client = self.mocker.mock() tunnel_deferred = Deferred() protocol = ClientTunnelProtocol(client, tunnel_deferred) client.close() self.mocker.replay() protocol.errReceived("badness") def verify_failure(error): self.assertEqual(error.args[0], "SSH forwarding error: badness") self.assertEqual(log.getvalue().strip(), "SSH forwarding error: badness") self.assertFailure(tunnel_deferred, NoConnection) tunnel_deferred.addCallback(verify_failure) return tunnel_deferred