feat: add ssh
module with cache_host_key()
function
This commit is contained in:
parent
c41d364e03
commit
3c75194c26
4 changed files with 144 additions and 0 deletions
62
tests/test_ssh.py
Normal file
62
tests/test_ssh.py
Normal file
|
@ -0,0 +1,62 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, call
|
||||
|
||||
from wuttamess import ssh as mod
|
||||
|
||||
|
||||
class TestCacheHostKey(TestCase):
|
||||
|
||||
def test_root_already_cached(self):
|
||||
c = MagicMock()
|
||||
|
||||
# assume the first command runs okay
|
||||
c.run.return_value.failed = False
|
||||
mod.cache_host_key(c, 'example.com')
|
||||
c.run.assert_called_once_with('ssh example.com whoami', warn=True)
|
||||
|
||||
def test_root_commands_not_allowed(self):
|
||||
c = MagicMock()
|
||||
|
||||
# assume the first command fails b/c "disallowed"
|
||||
c.run.return_value.failed = True
|
||||
c.run.return_value.stderr = "Disallowed command"
|
||||
mod.cache_host_key(c, 'example.com')
|
||||
c.run.assert_called_once_with('ssh example.com whoami', warn=True)
|
||||
|
||||
def test_root_cache_key(self):
|
||||
c = MagicMock()
|
||||
|
||||
# first command fails; second command caches host key
|
||||
c.run.return_value.failed = True
|
||||
mod.cache_host_key(c, 'example.com')
|
||||
c.run.assert_has_calls([call('ssh example.com whoami', warn=True)])
|
||||
c.run.assert_called_with('ssh -o StrictHostKeyChecking=no example.com whoami', warn=True)
|
||||
|
||||
def test_user_already_cached(self):
|
||||
c = MagicMock()
|
||||
|
||||
# assume the first command runs okay
|
||||
c.sudo.return_value.failed = False
|
||||
mod.cache_host_key(c, 'example.com', user='foo')
|
||||
c.sudo.assert_called_once_with('ssh example.com whoami', user='foo', warn=True)
|
||||
|
||||
def test_user_commands_not_allowed(self):
|
||||
c = MagicMock()
|
||||
|
||||
# assume the first command fails b/c "disallowed"
|
||||
c.sudo.return_value.failed = True
|
||||
c.sudo.return_value.stderr = "Disallowed command"
|
||||
mod.cache_host_key(c, 'example.com', user='foo')
|
||||
c.sudo.assert_called_once_with('ssh example.com whoami', user='foo', warn=True)
|
||||
|
||||
def test_user_cache_key(self):
|
||||
c = MagicMock()
|
||||
|
||||
# first command fails; second command caches host key
|
||||
c.sudo.return_value.failed = True
|
||||
mod.cache_host_key(c, 'example.com', user='foo')
|
||||
c.sudo.assert_has_calls([call('ssh example.com whoami', user='foo', warn=True)])
|
||||
c.sudo.assert_called_with('ssh -o StrictHostKeyChecking=no example.com whoami',
|
||||
user='foo', warn=True)
|
Loading…
Add table
Add a link
Reference in a new issue