def test_write_ssh_config_arc_overwrite(self, mock_create_file, mock_abspath, mock_warning): op_info = ssh_info.ConfigSession("config", "rg", "vm", None, None, None, True, False, "user", None, "port", "Microsoft.HybridCompute", None, None, "client") op_info.config_path = "config" op_info.ssh_client_folder = "client" op_info.private_key_file = "priv" op_info.public_key_file = "pub" op_info.cert_file = "cert" op_info.proxy_path = "proxy" mock_create_file.return_value = "relay" expected_lines = [ "", "Host rg-vm", "\tHostName vm", "\tUser user", "\tCertificateFile \"cert\"", "\tIdentityFile \"priv\"", "\tProxyCommand \"proxy\" -r \"relay\" -p port" ] with mock.patch('builtins.open') as mock_open: mock_file = mock.Mock() mock_open.return_value.__enter__.return_value = mock_file ssh_utils.write_ssh_config(op_info, True, True) mock_warning.assert_called_once_with(True, True, True, "cert", "relay", "client") mock_open.assert_called_once_with("config", 'w', encoding='utf-8') mock_file.write.assert_called_once_with('\n'.join(expected_lines))
def test_write_ssh_config_append(self, mock_validity): expected_lines = [ "", "Host rg-vm", "\tUser username", "\tHostName 1.2.3.4", "\tCertificateFile cert", "\tIdentityFile privatekey", "Host 1.2.3.4", "\tUser username", "\tCertificateFile cert", "\tIdentityFile privatekey" ] mock_validity.return_value = None with mock.patch('builtins.open') as mock_open: mock_file = mock.Mock() mock_open.return_value.__enter__.return_value = mock_file ssh_utils.write_ssh_config( "path/to/file", "rg", "vm", False, None, "1.2.3.4", "username", "cert", "privatekey", True, True ) mock_validity.assert_called_once_with("cert") mock_open.assert_called_once_with("path/to/file", "a") mock_file.write.assert_called_once_with('\n'.join(expected_lines))
def test_write_ssh_config_ip_only(self, mock_make_dirs): expected_lines = [ "Host 1.2.3.4", "\tUser username", "\tCertificateFile cert", "\tIdentityFile privatekey" ] with mock.patch('builtins.open') as mock_open: mock_file = mock.Mock() mock_open.return_value.__enter__.return_value = mock_file ssh_utils.write_ssh_config("path/to/file", None, None, "1.2.3.4", "username", "cert", "privatekey") mock_make_dirs.assert_called_once_with("path/to/file") mock_open.assert_called_once_with("path/to/file", "w") mock_file.write.assert_called_once_with('\n'.join(expected_lines))
def test_write_ssh_config_append(self, mock_get_text, mock_validity): expected_lines = [ "", "Host rg-vm", "\tUser username", "\tHostName 1.2.3.4", "\tCertificateFile cert", "\tIdentityFile privatekey", "Host 1.2.3.4", "\tUser username", "\tCertificateFile cert", "\tIdentityFile privatekey" ] mock_validity.return_value = None mock_get_text.return_value = expected_lines op_info = mock.Mock() op_info.config_path = "path/to/file" op_info.resource_group_name = "rg" op_info.vm_name = "vm" op_info.overwrite = False op_info.ip = "1.2.3.4" op_info.local_user = "******" op_info.cert_file = "cert" op_info.private_key_file = "privatekey" op_info.ssh_client_folder = "client/folder" op_info.get_config_text = mock_get_text with mock.patch('builtins.open') as mock_open: mock_file = mock.Mock() mock_open.return_value.__enter__.return_value = mock_file ssh_utils.write_ssh_config( op_info, True, True ) mock_validity.assert_called_once_with("cert", "client/folder") mock_open.assert_called_once_with("path/to/file", "a", encoding='utf-8') mock_file.write.assert_called_once_with('\n'.join(expected_lines))