summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker/transport/sshconn.py8
-rw-r--r--tests/unit/sshadapter_test.py32
2 files changed, 36 insertions, 4 deletions
diff --git a/docker/transport/sshconn.py b/docker/transport/sshconn.py
index 7593b5b..fbfdf41 100644
--- a/docker/transport/sshconn.py
+++ b/docker/transport/sshconn.py
@@ -30,10 +30,10 @@ class SSHSocket(socket.socket):
self.host = host
self.port = None
self.user = None
- if ':' in host:
- self.host, self.port = host.split(':')
+ if ':' in self.host:
+ self.host, self.port = self.host.split(':')
if '@' in self.host:
- self.user, self.host = host.split('@')
+ self.user, self.host = self.host.split('@')
self.proc = None
@@ -167,7 +167,7 @@ class SSHHTTPAdapter(BaseHTTPAdapter):
def __init__(self, base_url, timeout=60,
pool_connections=constants.DEFAULT_NUM_POOLS,
max_pool_size=constants.DEFAULT_MAX_POOL_SIZE,
- shell_out=True):
+ shell_out=False):
self.ssh_client = None
if not shell_out:
self._create_paramiko_client(base_url)
diff --git a/tests/unit/sshadapter_test.py b/tests/unit/sshadapter_test.py
new file mode 100644
index 0000000..ddee592
--- /dev/null
+++ b/tests/unit/sshadapter_test.py
@@ -0,0 +1,32 @@
+import unittest
+import docker
+from docker.transport.sshconn import SSHSocket
+
+class SSHAdapterTest(unittest.TestCase):
+ def test_ssh_hostname_prefix_trim(self):
+ conn = docker.transport.SSHHTTPAdapter(base_url="ssh://user@hostname:1234", shell_out=True)
+ assert conn.ssh_host == "user@hostname:1234"
+
+ def test_ssh_parse_url(self):
+ c = SSHSocket(host="user@hostname:1234")
+ assert c.host == "hostname"
+ assert c.port == "1234"
+ assert c.user == "user"
+
+ def test_ssh_parse_hostname_only(self):
+ c = SSHSocket(host="hostname")
+ assert c.host == "hostname"
+ assert c.port == None
+ assert c.user == None
+
+ def test_ssh_parse_user_and_hostname(self):
+ c = SSHSocket(host="user@hostname")
+ assert c.host == "hostname"
+ assert c.port == None
+ assert c.user == "user"
+
+ def test_ssh_parse_hostname_and_port(self):
+ c = SSHSocket(host="hostname:22")
+ assert c.host == "hostname"
+ assert c.port == "22"
+ assert c.user == None \ No newline at end of file