summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSsawa <Ssawaa@yahoo.com>2016-10-21 09:59:56 -0400
committerJames Tanner <tanner.jc@gmail.com>2016-10-21 10:02:51 -0400
commit90d382467853d699feaea2c4d841313c37aa5e85 (patch)
treec6fed0a9fae40d094da3705a95693d2926bd228f /test
parent5bd6a9b76c5ed2887b8352cfda5bc97412d1cf2e (diff)
downloadansible-90d382467853d699feaea2c4d841313c37aa5e85.tar.gz
Handle 'smart' scp_if_ssh option for fetch (#18125)
(cherry picked from commit 8e47b9bc70e33534c308298df4b6c8c79886fef1)
Diffstat (limited to 'test')
-rw-r--r--test/units/plugins/connections/test_connection_ssh.py35
1 files changed, 31 insertions, 4 deletions
diff --git a/test/units/plugins/connections/test_connection_ssh.py b/test/units/plugins/connections/test_connection_ssh.py
index 735f1b915f..04d456f325 100644
--- a/test/units/plugins/connections/test_connection_ssh.py
+++ b/test/units/plugins/connections/test_connection_ssh.py
@@ -308,6 +308,19 @@ class TestConnectionBaseClass(unittest.TestCase):
conn._run.return_value = (0, '', '')
conn.host = "some_host"
+ # Test with C.DEFAULT_SCP_IF_SSH set to smart
+ # Test when SFTP works
+ C.DEFAULT_SCP_IF_SSH = 'smart'
+ expected_in_data = b' '.join((b'put', to_bytes(pipes.quote('/path/to/in/file')), to_bytes(pipes.quote('/path/to/dest/file')))) + b'\n'
+ conn.put_file('/path/to/in/file', '/path/to/dest/file')
+ conn._run.assert_called_with('some command to run', expected_in_data, checkrc=False)
+
+ # Test when SFTP doesn't work but SCP does
+ conn._run.side_effect = [(1, 'stdout', 'some errors'), (0, '', '')]
+ conn.put_file('/path/to/in/file', '/path/to/dest/file')
+ conn._run.assert_called_with('some command to run', None, checkrc=False)
+ conn._run.side_effect = None
+
# test with C.DEFAULT_SCP_IF_SSH enabled
C.DEFAULT_SCP_IF_SSH = True
conn.put_file('/path/to/in/file', '/path/to/dest/file')
@@ -328,6 +341,7 @@ class TestConnectionBaseClass(unittest.TestCase):
conn.put_file(u'/path/to/in/file/with/unicode-fö〩', u'/path/to/dest/file/with/unicode-fö〩')
conn._run.assert_called_with('some command to run', expected_in_data, checkrc=False)
+
# test that a non-zero rc raises an error
conn._run.return_value = (1, 'stdout', 'some errors')
self.assertRaises(AnsibleError, conn.put_file, '/path/to/bad/file', '/remote/path/to/file')
@@ -348,25 +362,38 @@ class TestConnectionBaseClass(unittest.TestCase):
conn._run.return_value = (0, '', '')
conn.host = "some_host"
+ # Test with C.DEFAULT_SCP_IF_SSH set to smart
+ # Test when SFTP works
+ C.DEFAULT_SCP_IF_SSH = 'smart'
+ expected_in_data = b' '.join((b'get', to_bytes(pipes.quote('/path/to/in/file')), to_bytes(pipes.quote('/path/to/dest/file')))) + b'\n'
+ conn.fetch_file('/path/to/in/file', '/path/to/dest/file')
+ conn._run.assert_called_with('some command to run', expected_in_data, checkrc=False)
+
+ # Test when SFTP doesn't work but SCP does
+ conn._run.side_effect = [(1, 'stdout', 'some errors'), (0, '', '')]
+ conn.fetch_file('/path/to/in/file', '/path/to/dest/file')
+ conn._run.assert_called_with('some command to run', None, checkrc=False)
+ conn._run.side_effect = None
+
# test with C.DEFAULT_SCP_IF_SSH enabled
C.DEFAULT_SCP_IF_SSH = True
conn.fetch_file('/path/to/in/file', '/path/to/dest/file')
- conn._run.assert_called_with('some command to run', None)
+ conn._run.assert_called_with('some command to run', None, checkrc=False)
conn.fetch_file(u'/path/to/in/file/with/unicode-fö〩', u'/path/to/dest/file/with/unicode-fö〩')
- conn._run.assert_called_with('some command to run', None)
+ conn._run.assert_called_with('some command to run', None, checkrc=False)
# test with C.DEFAULT_SCP_IF_SSH disabled
C.DEFAULT_SCP_IF_SSH = False
expected_in_data = b' '.join((b'get', to_bytes(pipes.quote('/path/to/in/file')), to_bytes(pipes.quote('/path/to/dest/file')))) + b'\n'
conn.fetch_file('/path/to/in/file', '/path/to/dest/file')
- conn._run.assert_called_with('some command to run', expected_in_data)
+ conn._run.assert_called_with('some command to run', expected_in_data, checkrc=False)
expected_in_data = b' '.join((b'get',
to_bytes(pipes.quote('/path/to/in/file/with/unicode-fö〩')),
to_bytes(pipes.quote('/path/to/dest/file/with/unicode-fö〩')))) + b'\n'
conn.fetch_file(u'/path/to/in/file/with/unicode-fö〩', u'/path/to/dest/file/with/unicode-fö〩')
- conn._run.assert_called_with('some command to run', expected_in_data)
+ conn._run.assert_called_with('some command to run', expected_in_data, checkrc=False)
# test that a non-zero rc raises an error
conn._run.return_value = (1, 'stdout', 'some errors')