diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/configs/hostname-exec-tokenized | 2 | ||||
-rw-r--r-- | tests/configs/hostname-tokenized | 1 | ||||
-rw-r--r-- | tests/test_config.py | 10 |
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): |