summaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorJeff Forcier <jeff@bitprophet.org>2019-12-03 14:04:00 -0500
committerJeff Forcier <jeff@bitprophet.org>2019-12-03 14:04:00 -0500
commit84fa355a253d30d6c39adaea8bb095ced0c3b751 (patch)
treedda481f679fbd57b7a1760dfa42903b5a9e58b59 /tests
parent8ce1e4c36c43363dcc5964daaf6e06754bf12cc2 (diff)
Apply %h tokenization to HostName
This was another spot that incidentally occurred in older (and moved) code, but was made incorrect after cleanup
Diffstat (limited to 'tests')
-rw-r--r--tests/configs/hostname-exec-tokenized2
-rw-r--r--tests/configs/hostname-tokenized1
-rw-r--r--tests/test_config.py10
3 files changed, 13 insertions, 0 deletions
diff --git a/tests/configs/hostname-exec-tokenized b/tests/configs/hostname-exec-tokenized
new file mode 100644
index 00000000..1cae2c03
--- /dev/null
+++ b/tests/configs/hostname-exec-tokenized
@@ -0,0 +1,2 @@
+Match exec "ping %h"
+ HostName pingable.%h
diff --git a/tests/configs/hostname-tokenized b/tests/configs/hostname-tokenized
new file mode 100644
index 00000000..1905c0cc
--- /dev/null
+++ b/tests/configs/hostname-tokenized
@@ -0,0 +1 @@
+HostName prefix.%h
diff --git a/tests/test_config.py b/tests/test_config.py
index 7c86667a..5e9aa059 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -467,6 +467,10 @@ Host *
cmd = config.lookup("some-random-host")["proxycommand"]
assert cmd == "default-proxy"
+ def test_hostname_tokenization(self):
+ result = load_config("hostname-tokenized").lookup("whatever")
+ assert result["hostname"] == "prefix.whatever"
+
class TestSSHConfigDict(object):
def test_SSHConfigDict_construct_empty(self):
@@ -774,6 +778,12 @@ class TestMatchExec(object):
with raises(ConfigParseError):
load_config("match-exec-no-arg")
+ @patch("paramiko.config.invoke.run")
+ def test_works_with_tokenized_hostname(self, run):
+ run.side_effect = _expect("ping target")
+ result = load_config("hostname-exec-tokenized").lookup("target")
+ assert result["hostname"] == "pingable.target"
+
class TestMatchHost(object):
def test_matches_target_name_when_no_hostname(self):