@@ -38,6 +38,46 @@ def test_create(target, mocker):
38
38
s = SSHDriver (target , "ssh" )
39
39
assert isinstance (s , SSHDriver )
40
40
41
+ def test_can_define_ssh_options (target , mocker ):
42
+ NetworkService (target , "service" , "1.2.3.4" , "root" )
43
+ call = mocker .patch ('subprocess.call' )
44
+ call .return_value = 0
45
+ popen = mocker .patch ('subprocess.Popen' , autospec = True )
46
+ path = mocker .patch ('os.path.exists' )
47
+ path .return_value = True
48
+ instance_mock = mocker .MagicMock ()
49
+ popen .return_value = instance_mock
50
+ instance_mock .wait = mocker .MagicMock (return_value = 0 )
51
+
52
+ tp = SSHDriver (target , "ssh" )
53
+ tp .extra_options = "-o HostKeyAlgorithms=+ssh-rsa"
54
+ s = target .get_driver ("SSHDriver" )
55
+ assert "HostKeyAlgorithms=+ssh-rsa" in s .ssh_prefix
56
+
57
+ def test_extra_options_can_be_a_list (target , mocker ):
58
+ NetworkService (target , "service" , "1.2.3.4" , "root" )
59
+ call = mocker .patch ('subprocess.call' )
60
+ call .return_value = 0
61
+ popen = mocker .patch ('subprocess.Popen' , autospec = True )
62
+ path = mocker .patch ('os.path.exists' )
63
+ path .return_value = True
64
+ instance_mock = mocker .MagicMock ()
65
+ popen .return_value = instance_mock
66
+ instance_mock .wait = mocker .MagicMock (return_value = 0 )
67
+
68
+ tp = SSHDriver (target , "ssh" )
69
+ tp .extra_options = [
70
+ "-o HostKeyAlgorithms=+ssh-rsa" ,
71
+ "-o HostKeyAlgorithms=+ssh-dsa" ,
72
+ ]
73
+ s = target .get_driver ("SSHDriver" )
74
+ assert "HostKeyAlgorithms=+ssh-rsa" in s .ssh_prefix
75
+ assert "HostKeyAlgorithms=+ssh-dsa" in s .ssh_prefix
76
+
77
+ def test_no_options_will_not_result_in_none_prefix (ssh_driver_mocked_and_activated , mocker ):
78
+ s = ssh_driver_mocked_and_activated
79
+ assert not '' in s .ssh_prefix
80
+
41
81
def test_run_check (ssh_driver_mocked_and_activated , mocker ):
42
82
s = ssh_driver_mocked_and_activated
43
83
s ._run = mocker .MagicMock (return_value = (['success' ], [], 0 ))
0 commit comments