summaryrefslogtreecommitdiff
path: root/test/units/plugins/connection/test_ssh.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/units/plugins/connection/test_ssh.py')
-rw-r--r--test/units/plugins/connection/test_ssh.py40
1 files changed, 25 insertions, 15 deletions
diff --git a/test/units/plugins/connection/test_ssh.py b/test/units/plugins/connection/test_ssh.py
index 4c486ade2b..aed63db4d2 100644
--- a/test/units/plugins/connection/test_ssh.py
+++ b/test/units/plugins/connection/test_ssh.py
@@ -100,6 +100,7 @@ class TestConnectionBaseClass(unittest.TestCase):
def test_plugins_connection_ssh__examine_output(self):
pc = PlayContext()
new_stdin = StringIO()
+ become_success_token = b'BECOME-SUCCESS-abcdefghijklmnopqrstuvxyz'
conn = connection_loader.get('ssh', pc, new_stdin)
conn.set_become_plugin(become_loader.get('sudo'))
@@ -110,24 +111,16 @@ class TestConnectionBaseClass(unittest.TestCase):
conn.check_missing_password = MagicMock()
def _check_password_prompt(line):
- if b'foo' in line:
- return True
- return False
+ return b'foo' in line
def _check_become_success(line):
- if b'BECOME-SUCCESS-abcdefghijklmnopqrstuvxyz' in line:
- return True
- return False
+ return become_success_token in line
def _check_incorrect_password(line):
- if b'incorrect password' in line:
- return True
- return False
+ return b'incorrect password' in line
def _check_missing_password(line):
- if b'bad password' in line:
- return True
- return False
+ return b'bad password' in line
conn.become.check_password_prompt = MagicMock(side_effect=_check_password_prompt)
conn.become.check_become_success = MagicMock(side_effect=_check_become_success)
@@ -169,9 +162,9 @@ class TestConnectionBaseClass(unittest.TestCase):
pc.prompt = False
conn.become.prompt = False
- pc.success_key = u'BECOME-SUCCESS-abcdefghijklmnopqrstuvxyz'
- conn.become.success = u'BECOME-SUCCESS-abcdefghijklmnopqrstuvxyz'
- output, unprocessed = conn._examine_output(u'source', u'state', b'line 1\nline 2\nBECOME-SUCCESS-abcdefghijklmnopqrstuvxyz\nline 3\n', False)
+ pc.success_key = become_success_token
+ conn.become.success = become_success_token
+ output, unprocessed = conn._examine_output(u'source', u'state', b'line 1\nline 2\n%s\nline 3\n' % become_success_token, False)
self.assertEqual(output, b'line 1\nline 2\nline 3\n')
self.assertEqual(unprocessed, b'')
self.assertFalse(conn._flags['become_prompt'])
@@ -179,6 +172,23 @@ class TestConnectionBaseClass(unittest.TestCase):
self.assertFalse(conn._flags['become_error'])
self.assertFalse(conn._flags['become_nopasswd_error'])
+ # test we dont detect become success from ssh debug: lines
+ conn._flags = dict(
+ become_prompt=False,
+ become_success=False,
+ become_error=False,
+ become_nopasswd_error=False,
+ )
+
+ pc.prompt = False
+ conn.become.prompt = True
+ pc.success_key = become_success_token
+ conn.become.success = become_success_token
+ output, unprocessed = conn._examine_output(u'source', u'state', b'line 1\nline 2\ndebug1: %s\nline 3\n' % become_success_token, False)
+ self.assertEqual(output, b'line 1\nline 2\ndebug1: %s\nline 3\n' % become_success_token)
+ self.assertEqual(unprocessed, b'')
+ self.assertFalse(conn._flags['become_success'])
+
# test examining output for become failure
conn._flags = dict(
become_prompt=False,