def test_download_happy_path(self, mock_mkdir, mock_os_listdir): mock_os_listdir.return_value = [] mock_stat = mock.Mock() mock_stat.st_mode = stat.S_IFREG sftp = mock.Mock() sftp.listdir.return_value = ['match1', 'nomatch'] sftp.stat.return_value = mock_stat utils.copy_logs_sftp(sftp, ['source/match*'], 'target', 'host', 'username', 'key', upload=False) sftp.get.assert_called_with('source/match1', 'target/match1')
def test_upload_happy_path(self, mock_mkdir, mock_get_ssh_object, mock_os_stat, mock_os_listdir): mock_os_listdir.return_value = ['source_file'] mock_stat = mock.Mock() mock_stat.st_mode = stat.S_IFREG mock_os_stat.return_value = mock_stat sftp = mock.Mock() sftp.listdir.return_value = [] utils.copy_logs_sftp(sftp, ['source/*'], 'target', 'host', 'username', 'key', upload=True) sftp.put.assert_called_with('source/source_file', 'target/source_file')
def test_source_dir_missing(self, mock_mkdir, mock_os_listdir): mock_os_listdir.side_effect = IOError(errno.ENOENT, 'No such file or directory') mock_stat = mock.Mock() mock_stat.st_mode = stat.S_IFREG sftp = mock.Mock() sftp.listdir.return_value = ['source_file'] sftp.stat.return_value = mock_stat utils.copy_logs_sftp(sftp, ['source/*'], 'target', 'host', 'username', 'key', upload=True) self.assertEqual(0, len(sftp.put.mock_calls)) self.assertEqual(1, len(mock_os_listdir.mock_calls))
def test_download_error_continues(self, mock_mkdir, mock_os_listdir): mock_os_listdir.return_value = [] mock_stat = mock.Mock() mock_stat.st_mode = stat.S_IFREG sftp = mock.Mock() sftp.listdir.return_value = ['match1', 'nomatch', 'match2'] sftp.stat.return_value = mock_stat sftp.get.side_effect = IOError(errno.EIO, 'Unknown failure') utils.copy_logs_sftp(sftp, ['source/match*'], 'target', 'host', 'username', 'key', upload=False) sftp.get.assert_has_calls([mock.call('source/match1', 'target/match1'), mock.call('source/match2', 'target/match2')])
def test_download_error_continues(self, mock_mkdir, mock_os_listdir): mock_os_listdir.return_value = [] mock_stat = mock.Mock() mock_stat.st_mode = stat.S_IFREG sftp = mock.Mock() sftp.listdir.return_value = ['match1', 'nomatch', 'match2'] sftp.stat.return_value = mock_stat sftp.get.side_effect = IOError(errno.EIO, 'Unknown failure') utils.copy_logs_sftp(sftp, ['source/match*'], 'target', 'host', 'username', 'key', upload=False) sftp.get.assert_has_calls([ mock.call('source/match1', 'target/match1'), mock.call('source/match2', 'target/match2') ])