From 50df2e6258d9a0c87c12a1de609f041caf1eacf0 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 11 Jan 2016 21:04:24 +0000 Subject: [PATCH 1/2] fix json --- openlp/plugins/remotes/lib/httprouter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/remotes/lib/httprouter.py b/openlp/plugins/remotes/lib/httprouter.py index 04ad9b946..851bfa209 100644 --- a/openlp/plugins/remotes/lib/httprouter.py +++ b/openlp/plugins/remotes/lib/httprouter.py @@ -621,7 +621,7 @@ class HttpRouter(RegistryProperties): event = getattr(self.service_manager, 'servicemanager_%s_item' % action) if self.request_data: try: - data = json.loads(self.request_data)['request']['id'] + data = int(json.loads(self.request_data)['request']['id']) except KeyError: return self.do_http_error() event.emit(data) From 3f0025a013f9890b2a48e7b0509bb18839f7e884 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 11 Jan 2016 21:57:45 +0000 Subject: [PATCH 2/2] add tests --- .../openlp_plugins/media/test_mediaitem.py | 86 +++++++++++++++++++ .../openlp_plugins/remotes/test_router.py | 1 - 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 tests/functional/openlp_plugins/media/test_mediaitem.py diff --git a/tests/functional/openlp_plugins/media/test_mediaitem.py b/tests/functional/openlp_plugins/media/test_mediaitem.py new file mode 100644 index 000000000..47bc42d86 --- /dev/null +++ b/tests/functional/openlp_plugins/media/test_mediaitem.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2016 OpenLP Developers # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### +""" +Test the media plugin +""" +from unittest import TestCase + +from openlp.core import Registry, Settings +from openlp.plugins.media.mediaplugin import MediaPlugin +from openlp.plugins.media.lib.mediaitem import MediaMediaItem +from openlp.core.ui.media.mediacontroller import MediaController + +from PyQt5 import QtCore + +from tests.functional import MagicMock, patch +from tests.helpers.testmixin import TestMixin + +__default_settings__ = { + 'media/media auto start': QtCore.Qt.Unchecked, + 'media/media files': [] +} + + +class MediaItemTest(TestCase, TestMixin): + """ + Test the media item for Media + """ + + def setUp(self): + """ + Set up the components need for all tests. + """ + with patch('openlp.plugins.media.lib.mediaitem.MediaManagerItem.__init__'),\ + patch('openlp.plugins.media.lib.mediaitem.MediaMediaItem.setup'): + self.media_item = MediaMediaItem(None, MagicMock()) + self.media_item.settings_section = 'media' + self.setup_application() + self.build_settings() + Settings().extend_default_settings(__default_settings__) + + def tearDown(self): + """ + Clean up after the tests + """ + self.destroy_settings() + + def test_search_found(self): + """ + Media Remote Search Successful find + """ + # GIVEN: The Mediaitem set up a list of media + Settings().setValue(self.media_item.settings_section + '/media files', ['test.mp3', 'test.mp4']) + # WHEN: Retrieving the test file + result = self.media_item.search('test.mp4', False) + # THEN: a file should be found + self.assertEqual(result, [['test.mp4', 'test.mp4']], 'The result file contain the file name') + + def test_search_not_found(self): + """ + Media Remote Search not find + """ + # GIVEN: The Mediaitem set up a list of media + Settings().setValue(self.media_item.settings_section + '/media files', ['test.mp3', 'test.mp4']) + # WHEN: Retrieving the test file + result = self.media_item.search('test.mpx', False) + # THEN: a file should be found + self.assertEqual(result, [], 'The result file should be empty') diff --git a/tests/functional/openlp_plugins/remotes/test_router.py b/tests/functional/openlp_plugins/remotes/test_router.py index 2a8b9b87c..28af5f2c1 100644 --- a/tests/functional/openlp_plugins/remotes/test_router.py +++ b/tests/functional/openlp_plugins/remotes/test_router.py @@ -29,7 +29,6 @@ from unittest import TestCase from openlp.core.common import Settings, Registry from openlp.core.ui import ServiceManager from openlp.plugins.remotes.lib.httpserver import HttpRouter -from urllib.parse import urlparse from tests.functional import MagicMock, patch, mock_open from tests.helpers.testmixin import TestMixin