openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #24333
[Merge] lp:~phill-ridout/openlp/bug122534_retake into lp:openlp
Phill has proposed merging lp:~phill-ridout/openlp/bug122534_retake into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
Related bugs:
Bug #1222534 in OpenLP: "KeyError when "Allow presentation application to be overridden" and Spanish language is selected"
https://bugs.launchpad.net/openlp/+bug/1222534
For more details, see:
https://code.launchpad.net/~phill-ridout/openlp/bug122534_retake/+merge/237335
lp:~phill-ridout/openlp/bug122534_retake (revision 2423)
[SUCCESS] http://ci.openlp.org/job/Branch-01-Pull/663/
[SUCCESS] http://ci.openlp.org/job/Branch-02-Functional-Tests/611/
[SUCCESS] http://ci.openlp.org/job/Branch-03-Interface-Tests/555/
[SUCCESS] http://ci.openlp.org/job/Branch-04a-Windows_Functional_Tests/504/
[SUCCESS] http://ci.openlp.org/job/Branch-04b-Windows_Interface_Tests/113/
[SUCCESS] http://ci.openlp.org/job/Branch-05a-Code_Analysis/320/
[SUCCESS] http://ci.openlp.org/job/Branch-05b-Test_Coverage/194/
see https://code.launchpad.net/~phill-ridout/openlp/bug1222534/+merge/236962 for more details
--
https://code.launchpad.net/~phill-ridout/openlp/bug122534_retake/+merge/237335
Your team OpenLP Core is requested to review the proposed merge of lp:~phill-ridout/openlp/bug122534_retake into lp:openlp.
=== modified file 'openlp/plugins/presentations/lib/mediaitem.py'
--- openlp/plugins/presentations/lib/mediaitem.py 2014-08-25 20:04:33 +0000
+++ openlp/plugins/presentations/lib/mediaitem.py 2014-10-06 19:55:35 +0000
@@ -145,7 +145,7 @@
if self.controllers[item].enabled():
self.display_type_combo_box.addItem(item)
if self.display_type_combo_box.count() > 1:
- self.display_type_combo_box.insertItem(0, self.automatic)
+ self.display_type_combo_box.insertItem(0, self.automatic, userData='automatic')
self.display_type_combo_box.setCurrentIndex(0)
if Settings().value(self.settings_section + '/override app') == QtCore.Qt.Checked:
self.presentation_widget.show()
@@ -313,7 +313,7 @@
(path, name) = os.path.split(filename)
service_item.title = name
if os.path.exists(filename):
- if service_item.processor == self.automatic:
+ if self.display_type_combo_box.itemData(self.display_type_combo_box.currentIndex()) == 'automatic':
service_item.processor = self.find_controller_by_type(filename)
if not service_item.processor:
return False
=== modified file 'tests/functional/openlp_plugins/presentations/test_presentationcontroller.py'
--- tests/functional/openlp_plugins/presentations/test_presentationcontroller.py 2014-07-15 10:02:56 +0000
+++ tests/functional/openlp_plugins/presentations/test_presentationcontroller.py 2014-10-06 19:55:35 +0000
@@ -33,7 +33,7 @@
from unittest import TestCase
import os
from openlp.plugins.presentations.lib.presentationcontroller import PresentationController, PresentationDocument
-from tests.functional import MagicMock, patch, mock_open
+from tests.functional import MagicMock, mock_open, patch
FOLDER_TO_PATCH = 'openlp.plugins.presentations.lib.presentationcontroller.PresentationDocument.get_thumbnail_folder'
@@ -42,6 +42,19 @@
"""
Test the PresentationController.
"""
+ # TODO: Items left to test
+ # PresentationController
+ # __init__
+ # enabled
+ # is_available
+ # check_available
+ # start_process
+ # kill
+ # add_document
+ # remove_doc
+ # close_presentation
+ # _get_plugin_manager
+
def setUp(self):
mocked_plugin = MagicMock()
mocked_plugin.settings_section = 'presentations'
@@ -164,3 +177,124 @@
# THEN: it should return two empty lists
self.assertIs(type(result_titles), list, 'result_titles should be a list')
+
+
+class TestPresentationDocument(TestCase):
+ """
+ Test the PresentationDocument Class
+ """
+ # TODO: Items left to test
+ # PresentationDocument
+ # __init__
+ # presentation_deleted
+ # get_thumbnail_folder
+ # get_temp_folder
+ # check_thumbnails
+ # close_presentation
+ # is_active
+ # is_loaded
+ # blank_screen
+ # unblank_screen
+ # is_blank
+ # stop_presentation
+ # start_presentation
+ # get_slide_number
+ # get_slide_count
+ # goto_slide
+ # next_step
+ # previous_step
+ # convert_thumbnail
+ # get_thumbnail_path
+ # poll_slidenumber
+ # get_slide_text
+ # get_slide_notes
+
+ def setUp(self):
+ """
+ Set up the patches and mocks need for all tests.
+ """
+ self.check_directory_exists_patcher = \
+ patch('openlp.plugins.presentations.lib.presentationcontroller.check_directory_exists')
+ self.get_thumbnail_folder_patcher = \
+ patch('openlp.plugins.presentations.lib.presentationcontroller.PresentationDocument.get_thumbnail_folder')
+ self.os_patcher = patch('openlp.plugins.presentations.lib.presentationcontroller.os')
+ self._setup_patcher = \
+ patch('openlp.plugins.presentations.lib.presentationcontroller.PresentationDocument._setup')
+
+ self.mock_check_directory_exists = self.check_directory_exists_patcher.start()
+ self.mock_get_thumbnail_folder = self.get_thumbnail_folder_patcher.start()
+ self.mock_os = self.os_patcher.start()
+ self.mock_setup = self._setup_patcher.start()
+
+ self.mock_controller = MagicMock()
+
+ self.mock_get_thumbnail_folder.return_value = 'returned/path/'
+
+ def tearDown(self):
+ """
+ Stop the patches
+ """
+ self.check_directory_exists_patcher.stop()
+ self.get_thumbnail_folder_patcher.stop()
+ self.os_patcher.stop()
+ self._setup_patcher.stop()
+
+ def initialise_presentation_document_test(self):
+ """
+ Test the PresentationDocument __init__ method when initialising the PresentationDocument Class
+ """
+ # GIVEN: A reset mock_setup and mocked controller
+ self.mock_setup.reset()
+
+ # WHEN: Creating an instance of PresentationDocument
+ PresentationDocument(self.mock_controller, 'Name')
+
+ # THEN: PresentationDocument.__init__ should have been called with the correct arguments
+ self.mock_setup.assert_called_once_with('Name')
+
+ def presentation_document_setup_test(self):
+ """
+ Test the PresentationDocument _setup method when initialising the PresentationDocument Class
+ """
+ self._setup_patcher.stop()
+
+ # GIVEN: A mocked controller, patched check_directory_exists_patcher and patched get_thumbnail_folder method
+
+ # WHEN: Creating an instance of PresentationDocument
+ PresentationDocument(self.mock_controller, 'Name')
+
+ # THEN: check_directory_exists should have been called with the correct arguments
+ self.mock_check_directory_exists.assert_called_once_with('returned/path/')
+
+ self._setup_patcher.start()
+
+ def load_presentation_test(self):
+ """
+ Test the PresentationDocument load_presentation method.
+ """
+
+ # GIVEN: An instance of PresentationDocument
+ instance = PresentationDocument(self.mock_controller, 'Name')
+
+ # WHEN: Calling load_presentation()
+ result = instance.load_presentation()
+
+ # THEN: False should be returned
+ self.assertFalse(result, "PresentationDocument.load_presentation should return false.")
+
+ def get_file_name_test(self):
+ """
+ Test the get_file_name method.
+ """
+
+ # GIVEN: A mocked out os.path.split with specified return value, an instance of PresentationDocument and
+ # arbitary file_path
+ self.mock_os.path.split.return_value = ['directory', 'file.ext']
+ instance = PresentationDocument(self.mock_controller, 'Name')
+ instance.file_path = 'filepath'
+
+ # WHEN: Calling get_file_name
+ result = instance.get_file_name()
+
+ # THEN: The file name should have been returned
+ self.assertEqual(result, 'file.ext')
Follow ups