def test_get_sftp_conn_fail( self, mock_get_local_user, mock_get_ssh_dir, mock_get_host_keys, mock_get_ssh_keys, mock_SFTPClient): config = { 'remote_location': 'sftp://127.0.0.1:22/srv/www/saupdate', 'remote_username': mock.sentinel.remote_username } queue = mock.Mock(spec=Queue) queue.get.return_value = mock.Mock() # queue.empty.side_effect = [False, False] queue.empty.return_value = True mock_get_ssh_keys.return_value = queue mock_get_local_user.return_value = mock.sentinel.remote_username mock_SFTPClient.from_transport.return_value = mock.Mock() with self.assertRaises(SaChannelUpdateTransportError): get_sftp_conn(config) mock_get_local_user.assert_called_once_with( mock.sentinel.remote_username ) mock_get_ssh_dir.assert_called_once_with( config, mock_get_local_user.return_value, ) mock_get_host_keys.assert_called_once_with( '127.0.0.1', mock_get_ssh_dir.return_value, )
def test_get_sftp_conn_fail(self, mock_get_local_user, mock_get_ssh_dir, mock_get_host_keys, mock_get_ssh_keys, mock_SFTPClient): config = { 'remote_location': 'sftp://127.0.0.1:22/srv/www/saupdate', 'remote_username': mock.sentinel.remote_username } queue = mock.Mock(spec=Queue) queue.get.return_value = mock.Mock() # queue.empty.side_effect = [False, False] queue.empty.return_value = True mock_get_ssh_keys.return_value = queue mock_get_local_user.return_value = mock.sentinel.remote_username mock_SFTPClient.from_transport.return_value = mock.Mock() with self.assertRaises(SaChannelUpdateTransportError): get_sftp_conn(config) mock_get_local_user.assert_called_once_with( mock.sentinel.remote_username) mock_get_ssh_dir.assert_called_once_with( config, mock_get_local_user.return_value, ) mock_get_host_keys.assert_called_once_with( '127.0.0.1', mock_get_ssh_dir.return_value, )
def test_get_sftp_conn_exp( self, mock_get_local_user, mock_get_ssh_dir, mock_get_host_keys, mock_get_ssh_keys, mock_Transport, mock_PKey, mock_SFTPClient): config = { 'remote_location': 'sftp://127.0.0.1/srv/www/saupdate', 'remote_username': mock.sentinel.remote_username } queue = mock.Mock(spec=Queue) queue.get.return_value = mock.Mock() queue.empty.side_effect = [False, False, True] queue.empty.return_value = False mock_get_ssh_keys.return_value = queue mock_get_local_user.return_value = mock.sentinel.remote_username mock_SFTPClient.from_transport.side_effect = SSHException mock_Transport.return_value.connect.return_value = True with self.assertRaises(SaChannelUpdateTransportError): get_sftp_conn(config) mock_get_local_user.assert_called_once_with( mock.sentinel.remote_username ) mock_get_ssh_dir.assert_called_once_with( config, mock_get_local_user.return_value, ) mock_get_host_keys.assert_called_once_with( '127.0.0.1', mock_get_ssh_dir.return_value, ) mock_get_ssh_keys.assert_called_once_with( mock_get_ssh_dir.return_value, ) mock_Transport.assert_called_once_with( ( '127.0.0.1', 22, ) ) mock_PKey.from_private_key_file.assert_called_with( mock_get_ssh_keys.return_value.get(), ) mock_Transport.return_value.connect.assert_called_with( hostkey=mock_get_host_keys.return_value, username=mock_get_local_user.return_value, password=None, pkey=mock_PKey.from_private_key_file.return_value, ) mock_SFTPClient.from_transport.assert_called_with( mock_Transport.return_value, )
def test_get_sftp_conn_exp(self, mock_get_local_user, mock_get_ssh_dir, mock_get_host_keys, mock_get_ssh_keys, mock_Transport, mock_PKey, mock_SFTPClient): config = { 'remote_location': 'sftp://127.0.0.1/srv/www/saupdate', 'remote_username': mock.sentinel.remote_username } queue = mock.Mock(spec=Queue) queue.get.return_value = mock.Mock() queue.empty.side_effect = [False, False, True] queue.empty.return_value = False mock_get_ssh_keys.return_value = queue mock_get_local_user.return_value = mock.sentinel.remote_username mock_SFTPClient.from_transport.side_effect = SSHException mock_Transport.return_value.connect.return_value = True with self.assertRaises(SaChannelUpdateTransportError): get_sftp_conn(config) mock_get_local_user.assert_called_once_with( mock.sentinel.remote_username) mock_get_ssh_dir.assert_called_once_with( config, mock_get_local_user.return_value, ) mock_get_host_keys.assert_called_once_with( '127.0.0.1', mock_get_ssh_dir.return_value, ) mock_get_ssh_keys.assert_called_once_with( mock_get_ssh_dir.return_value, ) mock_Transport.assert_called_once_with(( '127.0.0.1', 22, )) mock_PKey.from_private_key_file.assert_called_with( mock_get_ssh_keys.return_value.get(), ) mock_Transport.return_value.connect.assert_called_with( hostkey=mock_get_host_keys.return_value, username=mock_get_local_user.return_value, password=None, pkey=mock_PKey.from_private_key_file.return_value, ) mock_SFTPClient.from_transport.assert_called_with( mock_Transport.return_value, )
def upload(config, remote_loc, u_filename): """Upload the files""" rcode = False try: sftp, transport = get_sftp_conn(config) remote_dir = get_remote_path(remote_loc) for part in ['sha1', 'asc']: local_file = '%s.%s' % (u_filename, part) remote_file = os.path.join(remote_dir, local_file) sftp.put(local_file, remote_file) sftp.put(remote_dir, os.path.join(remote_dir, u_filename)) rcode = True except BaseException: pass finally: if 'transport' in locals(): transport.close() return rcode