mirror of https://gitlab.com/openlp/openlp.git
Merge branch 'issue-1179' into 'master'
Fix issue #1179 (generating slide data for a folder) Closes #1179 See merge request openlp/openlp!498
This commit is contained in:
commit
64e365b0fb
|
@ -300,6 +300,9 @@ class PresentationMediaItem(FolderLibraryItem):
|
|||
return False
|
||||
items = [self.list_view.itemFromIndex(item) if isinstance(item, QtCore.QModelIndex) else item
|
||||
for item in items]
|
||||
# If this is a folder, show an error message and return
|
||||
if items and isinstance(items[0].data(0, QtCore.Qt.UserRole), Folder):
|
||||
return False
|
||||
if file_path is None:
|
||||
file_path = Path(items[0].data(0, QtCore.Qt.UserRole).file_path)
|
||||
file_type = file_path.suffix.lower()[1:]
|
||||
|
|
|
@ -24,8 +24,11 @@ This module contains tests for the lib submodule of the Presentations plugin.
|
|||
from pathlib import Path
|
||||
from unittest.mock import MagicMock, PropertyMock, call, patch
|
||||
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
|
||||
from openlp.core.lib import ServiceItemContext
|
||||
from openlp.core.lib.serviceitem import ItemCapabilities
|
||||
from openlp.plugins.presentations.lib.db import Folder, Item
|
||||
from openlp.plugins.presentations.lib.mediaitem import PresentationMediaItem
|
||||
|
||||
|
||||
|
@ -128,7 +131,60 @@ def test_clean_up_thumbnails_missing_file(media_item):
|
|||
mocked_doc.assert_has_calls([call.get_thumbnail_path(1, True), call.presentation_deleted()], True)
|
||||
|
||||
|
||||
def test_pdf_generate_slide_data(media_item):
|
||||
def test_generate_slide_data_from_folder(media_item):
|
||||
"""
|
||||
Test that the generate slide data function exits early when the item is a Folder instead of an Item
|
||||
"""
|
||||
# GIVEN: A Folder instance
|
||||
media_item.list_view = MagicMock()
|
||||
mocked_service_item = MagicMock()
|
||||
folder = Folder(id=1, name='Mock folder')
|
||||
list_item = QtWidgets.QTreeWidgetItem(None)
|
||||
list_item.setData(0, QtCore.Qt.UserRole, folder)
|
||||
|
||||
# WHEN: generate_slide_data is called
|
||||
result = media_item.generate_slide_data(mocked_service_item, item=list_item)
|
||||
|
||||
# THEN: The result should be false
|
||||
assert result is False
|
||||
|
||||
|
||||
def test_generate_slide_data_from_list_view(media_item):
|
||||
"""
|
||||
Test that the generate slide data function exits early when there are more than 1 items selected
|
||||
"""
|
||||
# GIVEN: A Folder instance
|
||||
mocked_service_item = MagicMock()
|
||||
list_item = QtWidgets.QTreeWidgetItem(None)
|
||||
media_item.list_view = MagicMock(selectedItems=MagicMock(return_value=[list_item, list_item]))
|
||||
|
||||
# WHEN: generate_slide_data is called
|
||||
result = media_item.generate_slide_data(mocked_service_item)
|
||||
|
||||
# THEN: The result should be false
|
||||
assert result is False
|
||||
|
||||
|
||||
def test_generate_slide_data_with_file_path_from_item(media_item):
|
||||
"""
|
||||
Test that the generate slide data function exits early when there is no display type combobox text
|
||||
"""
|
||||
# GIVEN: A Folder instance
|
||||
media_item.list_view = MagicMock()
|
||||
media_item.display_type_combo_box = MagicMock(currentText=MagicMock(return_value=''))
|
||||
mocked_service_item = MagicMock()
|
||||
item = Item(id=1, file_path='path/to/presentation.odp')
|
||||
list_item = QtWidgets.QTreeWidgetItem(None)
|
||||
list_item.setData(0, QtCore.Qt.UserRole, item)
|
||||
|
||||
# WHEN: generate_slide_data is called
|
||||
result = media_item.generate_slide_data(mocked_service_item, item=list_item)
|
||||
|
||||
# THEN: The result should be false
|
||||
assert result is False
|
||||
|
||||
|
||||
def test_generate_slide_data_from_pdf(media_item):
|
||||
"""
|
||||
Test that the generate slide data function makes the correct ajustments to a pdf service item.
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue