From 6f7ac333de3aa98f717e251c77220598a310d280 Mon Sep 17 00:00:00 2001 From: Michael Davies Date: Fri, 20 Dec 2013 17:30:59 +1030 Subject: [PATCH] Adding additional tests for novaclient ssh There's a few gaps in the testing regime for do_ssh, specifically around IPv6, specifying identity files, and additional args. This patch attempts to address these. Change-Id: I590fd7ffe1e3470c8507d7f7fb2abcfdb6162561 --- novaclient/tests/v1_1/test_shell.py | 36 ++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/novaclient/tests/v1_1/test_shell.py b/novaclient/tests/v1_1/test_shell.py index 6885e96d5..9b3c9b05e 100644 --- a/novaclient/tests/v1_1/test_shell.py +++ b/novaclient/tests/v1_1/test_shell.py @@ -1837,19 +1837,43 @@ class ShellTest(utils.TestCase): def test_ssh(self, mock_system, mock_find_server): class FakeResources(object): addresses = { - "private": [{'version': 4, 'addr': "1.1.1.1"}], - "public": [{'version': 4, 'addr': "2.2.2.2"}] + "private": [{'version': 4, 'addr': "1.1.1.1"}, + {'version': 6, 'addr': "2607:f0d0:1002::4"}], + "public": [{'version': 4, 'addr': "2.2.2.2"}, + {'version': 6, 'addr': "7612:a1b2:2004::6"}] } mock_find_server.return_value = FakeResources() self.run_command("ssh --login bob server") - mock_system.assert_any_call("ssh -4 -p22 bob@2.2.2.2 ") + mock_system.assert_called_with("ssh -4 -p22 bob@2.2.2.2 ") self.run_command("ssh alice@server") - mock_system.assert_any_call("ssh -4 -p22 alice@2.2.2.2 ") + mock_system.assert_called_with("ssh -4 -p22 alice@2.2.2.2 ") self.run_command("ssh --port 202 server") - mock_system.assert_any_call("ssh -4 -p202 root@2.2.2.2 ") + mock_system.assert_called_with("ssh -4 -p202 root@2.2.2.2 ") self.run_command("ssh --private server") - mock_system.assert_any_call("ssh -4 -p22 root@1.1.1.1 ") + mock_system.assert_called_with("ssh -4 -p22 root@1.1.1.1 ") + self.run_command("ssh -i ~/my_rsa_key server --private") + mock_system.assert_called_with("ssh -4 -p22 -i ~/my_rsa_key " + "root@1.1.1.1 ") + self.run_command("ssh --extra-opts -1 server") + mock_system.assert_called_with("ssh -4 -p22 root@2.2.2.2 -1") + + self.run_command("ssh --ipv6 --login carol server") + mock_system.assert_called_with("ssh -6 -p22 carol@7612:a1b2:2004::6 ") + self.run_command("ssh --ipv6 dan@server") + mock_system.assert_called_with("ssh -6 -p22 dan@7612:a1b2:2004::6 ") + self.run_command("ssh --ipv6 --port 2022 server") + mock_system.assert_called_with("ssh -6 -p2022 " + "root@7612:a1b2:2004::6 ") + self.run_command("ssh --ipv6 --private server") + mock_system.assert_called_with("ssh -6 -p22 root@2607:f0d0:1002::4 ") + self.run_command("ssh --ipv6 --identity /home/me/my_dsa_key " + "--private server") + mock_system.assert_called_with("ssh -6 -p22 -i /home/me/my_dsa_key " + "root@2607:f0d0:1002::4 ") + self.run_command("ssh --ipv6 --private --extra-opts -1 server") + mock_system.assert_called_with("ssh -6 -p22 " + "root@2607:f0d0:1002::4 -1") class GetSecgroupTest(utils.TestCase):