forked from openlp/openlp
Mock comes with Python as of 3.3, and I don't think there is anyone using lower than 3.3, so let's use Python's mock directly now.
Windows tests are failing due to file sharing (we've had this issue before), unrelated to my changes. Add this to your merge proposal: -------------------------------- lp:~raoul-snyman/openlp/refactor-mock (revision 2734) [SUCCESS] https://ci.openlp.io/job/Branch-01-Pull/1992/ [SUCCESS] https://ci.openlp.io/job/Branch-02-Functional-Tests/1902/ [SUCCESS] https://... bzr-revno: 2733
This commit is contained in:
commit
d74c9c0c81
@ -25,13 +25,8 @@ Base directory for tests
|
||||
import sys
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
if sys.version_info[1] >= 3:
|
||||
from unittest.mock import ANY, MagicMock, patch, mock_open, call, PropertyMock
|
||||
else:
|
||||
from mock import ANY, MagicMock, patch, mock_open, call, PropertyMock
|
||||
|
||||
# Only one QApplication can be created. Use QtWidgets.QApplication.instance() when you need to "create" a QApplication.
|
||||
application = QtWidgets.QApplication([])
|
||||
application.setApplicationName('OpenLP')
|
||||
|
||||
__all__ = ['ANY', 'MagicMock', 'patch', 'mock_open', 'call', 'application', 'PropertyMock']
|
||||
__all__ = ['application']
|
||||
|
@ -23,12 +23,13 @@
|
||||
Package to test the openlp.core.common.actions package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from PyQt5 import QtGui, QtCore, QtWidgets
|
||||
|
||||
from openlp.core.common import Settings
|
||||
from openlp.core.common.actions import CategoryActionList, ActionList
|
||||
from tests.functional import MagicMock
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -25,9 +25,9 @@ Functional tests to test the AppLocation class and related methods.
|
||||
import copy
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.common import AppLocation, get_frozen_path
|
||||
from tests.functional import patch
|
||||
|
||||
FILE_LIST = ['file1', 'file2', 'file3.txt', 'file4.txt', 'file5.mp3', 'file6.mp3']
|
||||
|
||||
|
@ -22,12 +22,11 @@
|
||||
"""
|
||||
Functional tests to test the AppLocation class and related methods.
|
||||
"""
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common import check_directory_exists, de_hump, trace_error_handler, translate, is_win, is_macosx, \
|
||||
is_linux, clean_button_text
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
|
||||
class TestCommonFunctions(TestCase):
|
||||
|
@ -26,10 +26,10 @@ import os
|
||||
import tempfile
|
||||
import socket
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common.httputils import get_user_agent, get_web_page, get_url_file_size, url_get_file
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -25,10 +25,11 @@ Functional tests to test the AppLocation class and related methods.
|
||||
import os
|
||||
from io import BytesIO
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, PropertyMock, call, patch
|
||||
|
||||
from openlp.core.common import add_actions, clean_filename, delete_file, get_file_encoding, get_filesystem_encoding, \
|
||||
get_uno_command, get_uno_instance, split_filename
|
||||
from tests.functional import MagicMock, PropertyMock, call, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,8 +23,8 @@
|
||||
Functional tests to test the AppLocation class and related methods.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from tests.functional import patch
|
||||
from openlp.core.common.languagemanager import get_locale_key, get_natural_key
|
||||
|
||||
|
||||
|
@ -24,9 +24,9 @@ Package to test the openlp.core.lib package.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from tests.functional import MagicMock
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '../', '..', 'resources'))
|
||||
|
||||
|
@ -23,11 +23,10 @@
|
||||
Test the registry properties
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common import Registry, RegistryProperties
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
|
||||
class TestRegistryProperties(TestCase, RegistryProperties):
|
||||
"""
|
||||
|
@ -23,10 +23,11 @@
|
||||
Package to test the openlp.core.lib.settings package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.common import Settings
|
||||
from openlp.core.common.settings import recent_files_conv
|
||||
from tests.functional import patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,10 +23,11 @@
|
||||
Package to test the openlp.core.common.versionchecker package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common.settings import Settings
|
||||
from openlp.core.common.versionchecker import VersionThread
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -24,13 +24,13 @@ Package to test the openlp.core.lib package.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from sqlalchemy.pool import NullPool
|
||||
from sqlalchemy.orm.scoping import ScopedSession
|
||||
from sqlalchemy import MetaData
|
||||
|
||||
from openlp.core.lib.db import init_db, get_upgrade_op, delete_database
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
|
||||
class TestDB(TestCase):
|
||||
|
@ -1,11 +1,31 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2017 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 #
|
||||
###############################################################################
|
||||
"""
|
||||
Package to test the openlp.core.lib.filedialog package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, call, patch
|
||||
|
||||
from openlp.core.common import UiStrings
|
||||
from openlp.core.lib.filedialog import FileDialog
|
||||
from tests.functional import MagicMock, call, patch
|
||||
|
||||
|
||||
class TestFileDialog(TestCase):
|
||||
|
@ -24,10 +24,9 @@ Package to test the openlp.core.lib.formattingtags package.
|
||||
"""
|
||||
import copy
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.lib import FormattingTags
|
||||
from tests.functional import patch
|
||||
|
||||
|
||||
TAG = {
|
||||
'end tag': '{/aa}',
|
||||
|
@ -1,8 +1,8 @@
|
||||
"""
|
||||
Package to test the openlp.core.lib.htmlbuilder module.
|
||||
"""
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore, QtWebKit
|
||||
|
||||
@ -10,7 +10,7 @@ from openlp.core.common import Settings
|
||||
from openlp.core.lib.htmlbuilder import build_html, build_background_css, build_lyrics_css, build_lyrics_outline_css, \
|
||||
build_lyrics_format_css, build_footer_css, webkit_version
|
||||
from openlp.core.lib.theme import HorizontalType, VerticalType
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
HTML = """
|
||||
|
@ -25,14 +25,15 @@ Package to test the openlp.core.ui package.
|
||||
import os
|
||||
import time
|
||||
from threading import Lock
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from PyQt5 import QtGui
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.lib import ImageManager, ScreenList
|
||||
from openlp.core.lib.imagemanager import Priority
|
||||
from tests.functional import patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'resources'))
|
||||
|
@ -23,15 +23,14 @@
|
||||
Package to test the openlp.core.lib package.
|
||||
"""
|
||||
import os
|
||||
|
||||
from unittest import TestCase
|
||||
from datetime import datetime, timedelta
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore, QtGui
|
||||
|
||||
from openlp.core.lib import build_icon, check_item_selected, clean_tags, create_thumb, create_separated_list, \
|
||||
expand_tags, get_text_file_string, image_to_byte, resize_image, str_to_bool, validate_thumb
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'resources'))
|
||||
|
||||
|
@ -23,10 +23,10 @@
|
||||
Package to test the openlp.core.lib.mediamanageritem package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.lib import MediaManagerItem
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,11 +23,11 @@
|
||||
Package to test the openlp.core.lib.pluginmanager package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from openlp.core.common import Registry, Settings
|
||||
from openlp.core.lib.pluginmanager import PluginManager
|
||||
from openlp.core.lib import PluginStatus
|
||||
from tests.functional import MagicMock
|
||||
|
||||
|
||||
class TestPluginManager(TestCase):
|
||||
|
@ -22,14 +22,12 @@
|
||||
"""
|
||||
Package to test the openlp.core.lib.projector.pjlink1 package.
|
||||
"""
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from openlp.core.lib.projector.pjlink1 import PJLink1
|
||||
from openlp.core.lib.projector.constants import E_PARAMETER, ERROR_STRING, S_OFF, S_STANDBY, S_WARMUP, S_ON, \
|
||||
S_COOLDOWN, PJLINK_POWR_STATUS
|
||||
from openlp.core.lib.projector.constants import E_PARAMETER, ERROR_STRING, S_OFF, S_STANDBY, S_ON, PJLINK_POWR_STATUS
|
||||
|
||||
from tests.functional import patch, MagicMock
|
||||
from tests.resources.projector.data import TEST_PIN, TEST_SALT, TEST_CONNECT_AUTHENTICATE, TEST_HASH
|
||||
|
||||
pjlink_test = PJLink1(name='test', ip='127.0.0.1', pin=TEST_PIN, no_poll=True)
|
||||
|
@ -27,11 +27,11 @@ PREREQUISITE: add_record() and get_all() functions validated.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.lib.projector.db import Manufacturer, Model, Projector, ProjectorDB, ProjectorSource, Source
|
||||
from openlp.core.lib.projector.constants import PJLINK_PORT
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.resources.projector.data import TEST_DB, TEST1_DATA, TEST2_DATA, TEST3_DATA
|
||||
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
Package to test the openlp.core.ui.renderer package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
@ -31,7 +32,6 @@ from openlp.core.lib import Renderer, ScreenList, ServiceItem, FormattingTags
|
||||
from openlp.core.lib.renderer import words_split, get_start_tags
|
||||
from openlp.core.lib.theme import ThemeXML
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
SCREEN = {
|
||||
'primary': False,
|
||||
|
@ -23,12 +23,12 @@
|
||||
Package to test the openlp.core.lib.screenlist package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.lib import ScreenList
|
||||
from tests.functional import MagicMock
|
||||
|
||||
SCREEN = {
|
||||
'primary': False,
|
||||
|
@ -24,13 +24,13 @@ Package to test the openlp.core.lib package.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.utils import assert_length, convert_file_service_item
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common import Registry, md5_hash
|
||||
from openlp.core.lib import ItemCapabilities, ServiceItem, ServiceItemType
|
||||
|
||||
from tests.utils import assert_length, convert_file_service_item
|
||||
|
||||
VERSE = 'The Lord said to {r}Noah{/r}: \n'\
|
||||
'There\'s gonna be a {su}floody{/su}, {sb}floody{/sb}\n'\
|
||||
'The Lord said to {g}Noah{/g}:\n'\
|
||||
|
@ -22,14 +22,15 @@
|
||||
"""
|
||||
Package to test the openlp.core.lib.ui package.
|
||||
"""
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from openlp.core.common import UiStrings, translate
|
||||
from openlp.core.lib.ui import add_welcome_page, create_button_box, create_horizontal_adjusting_combo_box, \
|
||||
create_button, create_action, create_valign_selection_widgets, find_and_set_in_combo_box, create_widget_action, \
|
||||
set_case_insensitive_completer
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
|
||||
class TestUi(TestCase):
|
||||
|
@ -24,10 +24,10 @@ Package to test the openlp.core.ui.firsttimeform package.
|
||||
"""
|
||||
import datetime
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.ui.aboutform import AboutForm
|
||||
|
||||
from tests.functional import patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -26,15 +26,13 @@ Package to test the openlp.core.ui.exeptionform package.
|
||||
import os
|
||||
import tempfile
|
||||
from unittest import TestCase
|
||||
from unittest.mock import mock_open
|
||||
from unittest.mock import mock_open, patch
|
||||
|
||||
from openlp.core.common import Registry
|
||||
|
||||
from tests.functional import patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
from openlp.core.ui import exceptionform
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
exceptionform.WEBKIT_VERSION = 'Webkit Test'
|
||||
exceptionform.MIGRATE_VERSION = 'Migrate Test'
|
||||
exceptionform.CHARDET_VERSION = 'CHARDET Test'
|
||||
|
@ -22,17 +22,16 @@
|
||||
"""
|
||||
Package to test the openlp.core.utils.__init__ package.
|
||||
"""
|
||||
|
||||
from unittest import TestCase
|
||||
import urllib.request
|
||||
import urllib.error
|
||||
import urllib.parse
|
||||
|
||||
from tests.functional import patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.common.httputils import CONNECTION_RETRIES, get_web_page
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
class TestFirstTimeWizard(TestMixin, TestCase):
|
||||
"""
|
||||
|
@ -26,11 +26,11 @@ import os
|
||||
import tempfile
|
||||
import urllib
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.ui.firsttimeform import FirstTimeForm
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
FAKE_CONFIG = b"""
|
||||
|
@ -23,8 +23,7 @@
|
||||
Package to test the openlp.core.ui.formattingtagsform package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
|
||||
from tests.functional import MagicMock, patch, call
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from openlp.core.ui.formattingtagform import FormattingTagForm
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
Package to test the openlp.core.ui.slidecontroller package.
|
||||
"""
|
||||
from unittest import TestCase, skipUnless
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
@ -33,11 +34,9 @@ from openlp.core.ui.media import MediaController
|
||||
from openlp.core.ui.maindisplay import TRANSPARENT_STYLESHEET, OPAQUE_STYLESHEET
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
if is_macosx():
|
||||
from ctypes import pythonapi, c_void_p, c_char_p, py_object
|
||||
|
||||
from sip import voidptr
|
||||
from objc import objc_object
|
||||
from AppKit import NSMainMenuWindowLevel, NSWindowCollectionBehaviorManaged
|
||||
|
@ -23,8 +23,8 @@
|
||||
Package to test openlp.core.ui.mainwindow package.
|
||||
"""
|
||||
import os
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
@ -32,7 +32,6 @@ from openlp.core.ui.mainwindow import MainWindow
|
||||
from openlp.core.lib.ui import UiStrings
|
||||
from openlp.core.common.registry import Registry
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
|
||||
|
@ -22,12 +22,13 @@
|
||||
"""
|
||||
Package to test the openlp.core.ui package.
|
||||
"""
|
||||
from PyQt5 import QtCore
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
from openlp.core.ui.media import get_media_players, parse_optical_path
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -24,15 +24,14 @@ Package to test the openlp.core.ui.slidecontroller package.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import PyQt5
|
||||
|
||||
from openlp.core.common import Registry, ThemeLevel
|
||||
from openlp.core.ui.lib.toolbar import OpenLPToolbar
|
||||
from openlp.core.lib import ServiceItem, ServiceItemType, ItemCapabilities
|
||||
from openlp.core.ui import ServiceManager
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from openlp.core.ui.lib.toolbar import OpenLPToolbar
|
||||
|
||||
|
||||
class TestServiceManager(TestCase):
|
||||
|
@ -22,14 +22,14 @@
|
||||
"""
|
||||
Package to test the openlp.core.ui.settingsform package.
|
||||
"""
|
||||
from PyQt5 import QtWidgets
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.ui.settingsform import SettingsForm
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
|
||||
class TestSettingsForm(TestCase):
|
||||
|
||||
|
@ -22,12 +22,12 @@
|
||||
"""
|
||||
Package to test the openlp.core.ui.shortcutlistdialog package.
|
||||
"""
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
from openlp.core.ui.shortcutlistdialog import CaptureShortcutButton, ShortcutTreeWidget
|
||||
|
||||
from tests.interfaces import MagicMock, patch
|
||||
|
||||
|
||||
def test_key_press_event():
|
||||
"""
|
||||
|
@ -22,16 +22,16 @@
|
||||
"""
|
||||
Package to test the openlp.core.ui.slidecontroller package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore, QtGui
|
||||
|
||||
from unittest import TestCase
|
||||
from openlp.core import Registry
|
||||
from openlp.core.lib import ImageSource, ServiceItemAction
|
||||
from openlp.core.ui import SlideController, LiveController, PreviewController
|
||||
from openlp.core.ui.slidecontroller import InfoLabel, WIDE_MENU, NON_TEXT_MENU
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
|
||||
class TestSlideController(TestCase):
|
||||
|
||||
|
@ -22,13 +22,11 @@
|
||||
"""
|
||||
Package to test the openlp.core.ui.themeform package.
|
||||
"""
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.ui import ThemeForm
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
|
||||
class TestThemeManager(TestCase):
|
||||
"""
|
||||
|
@ -24,18 +24,16 @@ Package to test the openlp.core.ui.thememanager package.
|
||||
"""
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from unittest import TestCase
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase
|
||||
from unittest.mock import ANY, MagicMock, patch
|
||||
|
||||
from PyQt5 import QtWidgets
|
||||
from tempfile import mkdtemp
|
||||
|
||||
from openlp.core.ui import ThemeManager
|
||||
from openlp.core.common import Registry
|
||||
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
from tests.functional import ANY, MagicMock, patch
|
||||
|
||||
|
||||
class TestThemeManager(TestCase):
|
||||
|
@ -23,13 +23,13 @@
|
||||
Package to test the openlp.core.ui.ThemeTab package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.ui.themestab import ThemesTab
|
||||
from openlp.core.ui.settingsform import SettingsForm
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.functional import MagicMock
|
||||
|
||||
|
||||
class TestThemeTab(TestCase, TestMixin):
|
||||
|
@ -23,9 +23,9 @@
|
||||
This module contains tests for the openlp.core.lib.filedialog module
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, call, patch
|
||||
|
||||
from openlp.core.ui.lib.colorbutton import ColorButton
|
||||
from tests.functional import MagicMock, call, patch
|
||||
|
||||
|
||||
class TestColorDialog(TestCase):
|
||||
|
@ -23,6 +23,7 @@
|
||||
Package to test the openlp.core.ui.lib.listpreviewwidget package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from PyQt5 import QtGui
|
||||
|
||||
@ -30,8 +31,6 @@ from openlp.core.common import Settings
|
||||
from openlp.core.ui.lib.listpreviewwidget import ListPreviewWidget
|
||||
from openlp.core.lib import ImageSource, ServiceItem
|
||||
|
||||
from tests.functional import MagicMock, patch, call
|
||||
|
||||
|
||||
class TestListPreviewWidget(TestCase):
|
||||
|
||||
|
@ -23,12 +23,12 @@
|
||||
Package to test the openlp.core.ui.media package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.ui.media.mediacontroller import MediaController
|
||||
from openlp.core.ui.media.mediaplayer import MediaPlayer
|
||||
from openlp.core.common import Registry
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
Package to test the openlp.core.ui.media.systemplayer package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, call, patch
|
||||
|
||||
from PyQt5 import QtCore, QtMultimedia
|
||||
|
||||
@ -30,8 +31,6 @@ from openlp.core.common import Registry
|
||||
from openlp.core.ui.media import MediaState
|
||||
from openlp.core.ui.media.systemplayer import SystemPlayer, CheckMediaWorker, ADDITIONAL_EXT
|
||||
|
||||
from tests.functional import MagicMock, call, patch
|
||||
|
||||
|
||||
class TestSystemPlayer(TestCase):
|
||||
"""
|
||||
|
@ -26,12 +26,12 @@ import os
|
||||
import sys
|
||||
from datetime import datetime, timedelta
|
||||
from unittest import TestCase, skip
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.ui.media import MediaState, MediaType
|
||||
from openlp.core.ui.media.vlcplayer import AUDIO_EXT, VIDEO_EXT, VlcPlayer, get_vlc
|
||||
|
||||
from tests.functional import MagicMock, patch, call
|
||||
from tests.helpers import MockDateTime
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
Package to test the openlp.core.ui.media.webkitplayer package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from tests.functional import MagicMock, patch
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.ui.media.webkitplayer import WebkitPlayer
|
||||
|
||||
|
@ -22,12 +22,11 @@
|
||||
"""
|
||||
This module contains tests for the CSV Bible importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
import json
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from openlp.core.common.registry import Registry
|
||||
from openlp.plugins.alerts.lib.alertsmanager import AlertsManager
|
||||
|
||||
|
@ -22,18 +22,17 @@
|
||||
"""
|
||||
This module contains tests for the bibleimport module.
|
||||
"""
|
||||
|
||||
from io import BytesIO
|
||||
from lxml import etree, objectify
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from lxml import etree, objectify
|
||||
from PyQt5.QtWidgets import QDialog
|
||||
|
||||
from openlp.core.common.languages import Language
|
||||
from openlp.core.lib.exceptions import ValidationError
|
||||
from openlp.plugins.bibles.lib.bibleimport import BibleImport
|
||||
from openlp.plugins.bibles.lib.db import BibleDB
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
|
||||
class TestBibleImport(TestCase):
|
||||
|
@ -23,9 +23,10 @@
|
||||
This module contains tests for the http module of the Bibles plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
from tests.functional import patch, MagicMock
|
||||
from openlp.plugins.bibles.lib.importers.http import BSExtract
|
||||
|
||||
# TODO: Items left to test
|
||||
|
@ -22,14 +22,13 @@
|
||||
"""
|
||||
This module contains tests for the CSV Bible importer.
|
||||
"""
|
||||
|
||||
import csv
|
||||
import json
|
||||
import os
|
||||
from collections import namedtuple
|
||||
from unittest import TestCase
|
||||
from unittest.mock import ANY, MagicMock, PropertyMock, call, patch
|
||||
|
||||
from tests.functional import ANY, MagicMock, PropertyMock, call, patch
|
||||
from openlp.core.lib.exceptions import ValidationError
|
||||
from openlp.plugins.bibles.lib.bibleimport import BibleImport
|
||||
from openlp.plugins.bibles.lib.importers.csvbible import Book, CSVBible, Verse
|
||||
|
@ -23,10 +23,11 @@
|
||||
This module contains tests for the lib submodule of the Bibles plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.plugins.bibles import lib
|
||||
from openlp.plugins.bibles.lib import SearchResults, get_reference_match
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -22,19 +22,19 @@
|
||||
"""
|
||||
This module contains tests for the OpenSong Bible importer.
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from lxml import objectify
|
||||
|
||||
from tests.functional import MagicMock, patch, call
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from openlp.core.common import Registry
|
||||
from openlp.plugins.bibles.lib.importers.opensong import OpenSongBible, get_text, parse_chapter_number
|
||||
from openlp.plugins.bibles.lib.bibleimport import BibleImport
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||
'..', '..', '..', 'resources', 'bibles'))
|
||||
|
||||
|
@ -22,12 +22,11 @@
|
||||
"""
|
||||
This module contains tests for the OSIS Bible importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
import json
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, call, patch
|
||||
|
||||
from tests.functional import MagicMock, call, patch
|
||||
from openlp.plugins.bibles.lib.bibleimport import BibleImport
|
||||
from openlp.plugins.bibles.lib.db import BibleDB
|
||||
from openlp.plugins.bibles.lib.importers.osis import OSISBible
|
||||
|
@ -26,13 +26,14 @@ This module contains tests for the SWORD Bible importer.
|
||||
import os
|
||||
import json
|
||||
from unittest import TestCase, skipUnless
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
try:
|
||||
from openlp.plugins.bibles.lib.importers.sword import SwordBible
|
||||
HAS_PYSWORD = True
|
||||
except ImportError:
|
||||
HAS_PYSWORD = False
|
||||
|
||||
from openlp.plugins.bibles.lib.db import BibleDB
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||
|
@ -22,15 +22,12 @@
|
||||
"""
|
||||
This module contains tests for the WordProject Bible importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
import json
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from openlp.plugins.bibles.lib.importers.wordproject import WordProjectBible
|
||||
from openlp.plugins.bibles.lib.db import BibleDB
|
||||
|
||||
from tests.functional import MagicMock, patch, call
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||
'..', '..', '..', 'resources', 'bibles'))
|
||||
|
@ -22,12 +22,11 @@
|
||||
"""
|
||||
This module contains tests for the Zefania Bible importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
import json
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from openlp.plugins.bibles.lib.importers.zefania import ZefaniaBible
|
||||
from openlp.plugins.bibles.lib.db import BibleDB
|
||||
|
||||
|
@ -1,15 +1,36 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2017 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 #
|
||||
###############################################################################
|
||||
"""
|
||||
This module contains tests for the lib submodule of the Songs plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
from openlp.core.common import Registry, Settings
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.lib import ServiceItem, PluginStatus
|
||||
from openlp.plugins.custom.lib import CustomMediaItem
|
||||
from openlp.plugins.custom.lib.db import CustomSlide
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
FOOTER = ['Arky Arky (Unknown)', 'Public Domain', 'CCLI 123456']
|
||||
|
@ -23,15 +23,15 @@
|
||||
This module contains tests for the lib submodule of the Images plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
from openlp.core.common import Settings
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.common import Registry, Settings
|
||||
from openlp.plugins.images.lib.db import ImageFilenames, ImageGroups
|
||||
from openlp.plugins.images.lib.mediaitem import ImageMediaItem
|
||||
from openlp.plugins.images.lib import ImageTab
|
||||
from tests.functional import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
__default_settings__ = {
|
||||
|
@ -23,13 +23,13 @@
|
||||
This module contains tests for the lib submodule of the Images plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import ANY, MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.plugins.images.lib.db import ImageFilenames, ImageGroups
|
||||
from openlp.plugins.images.lib.mediaitem import ImageMediaItem
|
||||
from tests.functional import ANY, MagicMock, patch
|
||||
|
||||
|
||||
class TestImageMediaItem(TestCase):
|
||||
|
@ -23,15 +23,13 @@
|
||||
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 unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from openlp.core import Settings
|
||||
from openlp.plugins.media.lib.mediaitem import MediaMediaItem
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
__default_settings__ = {
|
||||
|
@ -23,11 +23,11 @@
|
||||
Test the media plugin
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core import Registry
|
||||
from openlp.plugins.media.mediaplugin import MediaPlugin, process_check_binary
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,19 +23,19 @@
|
||||
Functional tests to test the Impress class and related methods.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
import os
|
||||
import shutil
|
||||
from tempfile import mkdtemp
|
||||
|
||||
from tests.functional import patch, MagicMock
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
from openlp.core.common import Settings
|
||||
from openlp.plugins.presentations.lib.impresscontroller import \
|
||||
ImpressController, ImpressDocument, TextType
|
||||
from openlp.plugins.presentations.presentationplugin import __default_settings__
|
||||
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
class TestImpressController(TestCase, TestMixin):
|
||||
"""
|
||||
|
@ -23,10 +23,11 @@
|
||||
This module contains tests for the lib submodule of the Presentations plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock, call
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.plugins.presentations.lib.mediaitem import PresentationMediaItem
|
||||
from tests.functional import patch, MagicMock, call
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,11 +23,12 @@
|
||||
This module contains tests for the lib submodule of the Presentations plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.plugins.presentations.lib.mediaitem import MessageListener, PresentationMediaItem
|
||||
from openlp.plugins.presentations.lib.messagelistener import Controller
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -24,14 +24,16 @@ This module contains tests for the PdfController
|
||||
"""
|
||||
import os
|
||||
import shutil
|
||||
from unittest import TestCase, SkipTest
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase, SkipTest
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore, QtGui
|
||||
|
||||
from openlp.plugins.presentations.lib.pdfcontroller import PdfController, PdfDocument
|
||||
from tests.functional import MagicMock, patch
|
||||
from openlp.core.common import Settings
|
||||
from openlp.core.lib import ScreenList
|
||||
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
@ -1,303 +1,303 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2017 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 #
|
||||
###############################################################################
|
||||
"""
|
||||
Functional tests to test the PowerPointController class and related methods.
|
||||
"""
|
||||
import os
|
||||
import shutil
|
||||
from unittest import TestCase
|
||||
from tempfile import mkdtemp
|
||||
|
||||
from tests.functional import patch, MagicMock
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
|
||||
from openlp.plugins.presentations.lib.powerpointcontroller import PowerpointController, PowerpointDocument,\
|
||||
_get_text_from_shapes
|
||||
from openlp.core.common import is_win, Settings
|
||||
|
||||
if is_win():
|
||||
import pywintypes
|
||||
|
||||
__default_settings__ = {
|
||||
'presentations/powerpoint slide click advance': True
|
||||
}
|
||||
|
||||
|
||||
class TestPowerpointController(TestCase, TestMixin):
|
||||
"""
|
||||
Test the PowerpointController Class
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
Set up the patches and mocks need for all tests.
|
||||
"""
|
||||
self.setup_application()
|
||||
self.build_settings()
|
||||
self.mock_plugin = MagicMock()
|
||||
self.temp_folder = mkdtemp()
|
||||
self.mock_plugin.settings_section = self.temp_folder
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Stop the patches
|
||||
"""
|
||||
self.destroy_settings()
|
||||
shutil.rmtree(self.temp_folder)
|
||||
|
||||
def test_constructor(self):
|
||||
"""
|
||||
Test the Constructor from the PowerpointController
|
||||
"""
|
||||
# GIVEN: No presentation controller
|
||||
controller = None
|
||||
|
||||
# WHEN: The presentation controller object is created
|
||||
controller = PowerpointController(plugin=self.mock_plugin)
|
||||
|
||||
# THEN: The name of the presentation controller should be correct
|
||||
self.assertEqual('Powerpoint', controller.name,
|
||||
'The name of the presentation controller should be correct')
|
||||
|
||||
|
||||
class TestPowerpointDocument(TestCase, TestMixin):
|
||||
"""
|
||||
Test the PowerpointDocument Class
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
Set up the patches and mocks need for all tests.
|
||||
"""
|
||||
self.setup_application()
|
||||
self.build_settings()
|
||||
self.mock_plugin = MagicMock()
|
||||
self.temp_folder = mkdtemp()
|
||||
self.mock_plugin.settings_section = self.temp_folder
|
||||
self.powerpoint_document_stop_presentation_patcher = patch(
|
||||
'openlp.plugins.presentations.lib.powerpointcontroller.PowerpointDocument.stop_presentation')
|
||||
self.presentation_document_get_temp_folder_patcher = patch(
|
||||
'openlp.plugins.presentations.lib.powerpointcontroller.PresentationDocument.get_temp_folder')
|
||||
self.presentation_document_setup_patcher = patch(
|
||||
'openlp.plugins.presentations.lib.powerpointcontroller.PresentationDocument._setup')
|
||||
self.mock_powerpoint_document_stop_presentation = self.powerpoint_document_stop_presentation_patcher.start()
|
||||
self.mock_presentation_document_get_temp_folder = self.presentation_document_get_temp_folder_patcher.start()
|
||||
self.mock_presentation_document_setup = self.presentation_document_setup_patcher.start()
|
||||
self.mock_controller = MagicMock()
|
||||
self.mock_presentation = MagicMock()
|
||||
self.mock_presentation_document_get_temp_folder.return_value = 'temp folder'
|
||||
self.file_name = os.path.join(TEST_RESOURCES_PATH, 'presentations', 'test.pptx')
|
||||
self.real_controller = PowerpointController(self.mock_plugin)
|
||||
Settings().extend_default_settings(__default_settings__)
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Stop the patches
|
||||
"""
|
||||
self.powerpoint_document_stop_presentation_patcher.stop()
|
||||
self.presentation_document_get_temp_folder_patcher.stop()
|
||||
self.presentation_document_setup_patcher.stop()
|
||||
self.destroy_settings()
|
||||
shutil.rmtree(self.temp_folder)
|
||||
|
||||
def test_show_error_msg(self):
|
||||
"""
|
||||
Test the PowerpointDocument.show_error_msg() method gets called on com exception
|
||||
"""
|
||||
if is_win():
|
||||
# GIVEN: A PowerpointDocument with mocked controller and presentation
|
||||
with patch('openlp.plugins.presentations.lib.powerpointcontroller.critical_error_message_box') as \
|
||||
mocked_critical_error_message_box:
|
||||
instance = PowerpointDocument(self.mock_controller, self.mock_presentation)
|
||||
instance.presentation = MagicMock()
|
||||
instance.presentation.SlideShowWindow.View.GotoSlide = MagicMock(side_effect=pywintypes.com_error('1'))
|
||||
instance.index_map[42] = 42
|
||||
|
||||
# WHEN: Calling goto_slide which will throw an exception
|
||||
instance.goto_slide(42)
|
||||
|
||||
# THEN: mocked_critical_error_message_box should have been called
|
||||
mocked_critical_error_message_box.assert_called_with('Error', 'An error occurred in the PowerPoint '
|
||||
'integration and the presentation will be stopped.'
|
||||
' Restart the presentation if you wish to '
|
||||
'present it.')
|
||||
|
||||
# add _test to the following if necessary
|
||||
def verify_loading_document(self):
|
||||
"""
|
||||
Test loading a document in PowerPoint
|
||||
"""
|
||||
if is_win() and self.real_controller.check_available():
|
||||
# GIVEN: A PowerpointDocument and a presentation
|
||||
doc = PowerpointDocument(self.real_controller, self.file_name)
|
||||
|
||||
# WHEN: loading the filename
|
||||
doc.load_presentation()
|
||||
result = doc.is_loaded()
|
||||
|
||||
# THEN: result should be true
|
||||
self.assertEqual(result, True, 'The result should be True')
|
||||
else:
|
||||
self.skipTest('Powerpoint not available, skipping test.')
|
||||
|
||||
def test_create_titles_and_notes(self):
|
||||
"""
|
||||
Test creating the titles from PowerPoint
|
||||
"""
|
||||
# GIVEN: mocked save_titles_and_notes, _get_text_from_shapes and two mocked slides
|
||||
self.doc = PowerpointDocument(self.mock_controller, self.file_name)
|
||||
self.doc.get_slide_count = MagicMock()
|
||||
self.doc.get_slide_count.return_value = 2
|
||||
self.doc.index_map = {1: 1, 2: 2}
|
||||
self.doc.save_titles_and_notes = MagicMock()
|
||||
self.doc._PowerpointDocument__get_text_from_shapes = MagicMock()
|
||||
slide = MagicMock()
|
||||
slide.Shapes.Title.TextFrame.TextRange.Text = 'SlideText'
|
||||
pres = MagicMock()
|
||||
pres.Slides = MagicMock(side_effect=[slide, slide])
|
||||
self.doc.presentation = pres
|
||||
|
||||
# WHEN reading the titles and notes
|
||||
self.doc.create_titles_and_notes()
|
||||
|
||||
# THEN the save should have been called exactly once with 2 titles and 2 notes
|
||||
self.doc.save_titles_and_notes.assert_called_once_with(['SlideText\n', 'SlideText\n'], [' ', ' '])
|
||||
|
||||
def test_create_titles_and_notes_with_no_slides(self):
|
||||
"""
|
||||
Test creating the titles from PowerPoint when it returns no slides
|
||||
"""
|
||||
# GIVEN: mocked save_titles_and_notes, _get_text_from_shapes and two mocked slides
|
||||
doc = PowerpointDocument(self.mock_controller, self.file_name)
|
||||
doc.save_titles_and_notes = MagicMock()
|
||||
doc._PowerpointDocument__get_text_from_shapes = MagicMock()
|
||||
pres = MagicMock()
|
||||
pres.Slides = []
|
||||
doc.presentation = pres
|
||||
|
||||
# WHEN reading the titles and notes
|
||||
doc.create_titles_and_notes()
|
||||
|
||||
# THEN the save should have been called exactly once with empty titles and notes
|
||||
doc.save_titles_and_notes.assert_called_once_with([], [])
|
||||
|
||||
def test_get_text_from_shapes(self):
|
||||
"""
|
||||
Test getting text from powerpoint shapes
|
||||
"""
|
||||
# GIVEN: mocked shapes
|
||||
shape = MagicMock()
|
||||
shape.PlaceholderFormat.Type = 2
|
||||
shape.HasTextFrame = shape.TextFrame.HasText = True
|
||||
shape.TextFrame.TextRange.Text = 'slideText'
|
||||
shapes = [shape, shape]
|
||||
|
||||
# WHEN: getting the text
|
||||
result = _get_text_from_shapes(shapes)
|
||||
|
||||
# THEN: it should return the text
|
||||
self.assertEqual(result, 'slideText\nslideText\n', 'result should match \'slideText\nslideText\n\'')
|
||||
|
||||
def test_get_text_from_shapes_with_no_shapes(self):
|
||||
"""
|
||||
Test getting text from powerpoint shapes with no shapes
|
||||
"""
|
||||
# GIVEN: empty shapes array
|
||||
shapes = []
|
||||
|
||||
# WHEN: getting the text
|
||||
result = _get_text_from_shapes(shapes)
|
||||
|
||||
# THEN: it should not fail but return empty string
|
||||
self.assertEqual(result, '', 'result should be empty')
|
||||
|
||||
def test_goto_slide(self):
|
||||
"""
|
||||
Test that goto_slide goes to next effect if the slide is already displayed
|
||||
"""
|
||||
# GIVEN: A Document with mocked controller, presentation, and mocked functions get_slide_number and next_step
|
||||
doc = PowerpointDocument(self.mock_controller, self.mock_presentation)
|
||||
doc.presentation = MagicMock()
|
||||
doc.presentation.SlideShowWindow.View.GetClickIndex.return_value = 1
|
||||
doc.presentation.SlideShowWindow.View.GetClickCount.return_value = 2
|
||||
doc.get_slide_number = MagicMock()
|
||||
doc.get_slide_number.return_value = 1
|
||||
doc.next_step = MagicMock()
|
||||
doc.index_map[1] = 1
|
||||
|
||||
# WHEN: Calling goto_slide
|
||||
doc.goto_slide(1)
|
||||
|
||||
# THEN: next_step() should be call to try to advance to the next effect.
|
||||
self.assertTrue(doc.next_step.called, 'next_step() should have been called!')
|
||||
|
||||
def test_blank_screen(self):
|
||||
"""
|
||||
Test that blank_screen works as expected
|
||||
"""
|
||||
# GIVEN: A Document with mocked controller, presentation, and mocked function get_slide_number
|
||||
doc = PowerpointDocument(self.mock_controller, self.mock_presentation)
|
||||
doc.presentation = MagicMock()
|
||||
doc.presentation.SlideShowWindow.View.GetClickIndex.return_value = 3
|
||||
doc.presentation.Application.Version = 14.0
|
||||
doc.get_slide_number = MagicMock()
|
||||
doc.get_slide_number.return_value = 2
|
||||
|
||||
# WHEN: Calling goto_slide
|
||||
doc.blank_screen()
|
||||
|
||||
# THEN: The view state, doc.blank_slide and doc.blank_click should have new values
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.View.State, 3, 'The View State should be 3')
|
||||
self.assertEquals(doc.blank_slide, 2, 'doc.blank_slide should be 2 because of the PowerPoint version')
|
||||
self.assertEquals(doc.blank_click, 3, 'doc.blank_click should be 3 because of the PowerPoint version')
|
||||
|
||||
def test_unblank_screen(self):
|
||||
"""
|
||||
Test that unblank_screen works as expected
|
||||
"""
|
||||
# GIVEN: A Document with mocked controller, presentation, ScreenList, and mocked function get_slide_number
|
||||
with patch('openlp.plugins.presentations.lib.powerpointcontroller.ScreenList') as mocked_screen_list:
|
||||
mocked_screen_list_ret = MagicMock()
|
||||
mocked_screen_list_ret.screen_list = [1]
|
||||
mocked_screen_list.return_value = mocked_screen_list_ret
|
||||
doc = PowerpointDocument(self.mock_controller, self.mock_presentation)
|
||||
doc.presentation = MagicMock()
|
||||
doc.presentation.SlideShowWindow.View.GetClickIndex.return_value = 3
|
||||
doc.presentation.Application.Version = 14.0
|
||||
doc.get_slide_number = MagicMock()
|
||||
doc.get_slide_number.return_value = 2
|
||||
doc.index_map[1] = 1
|
||||
doc.blank_slide = 1
|
||||
doc.blank_click = 1
|
||||
|
||||
# WHEN: Calling goto_slide
|
||||
doc.unblank_screen()
|
||||
|
||||
# THEN: The view state have new value, and several function should have been called
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.View.State, 1, 'The View State should be 1')
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.Activate.called, True,
|
||||
'SlideShowWindow.Activate should have been called')
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.View.GotoSlide.called, True,
|
||||
'View.GotoSlide should have been called because of the PowerPoint version')
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.View.GotoClick.called, True,
|
||||
'View.GotoClick should have been called because of the PowerPoint version')
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||
|
||||
###############################################################################
|
||||
# OpenLP - Open Source Lyrics Projection #
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Copyright (c) 2008-2017 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 #
|
||||
###############################################################################
|
||||
"""
|
||||
Functional tests to test the PowerPointController class and related methods.
|
||||
"""
|
||||
import os
|
||||
import shutil
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
from tempfile import mkdtemp
|
||||
|
||||
from openlp.plugins.presentations.lib.powerpointcontroller import PowerpointController, PowerpointDocument,\
|
||||
_get_text_from_shapes
|
||||
from openlp.core.common import is_win, Settings
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
|
||||
if is_win():
|
||||
import pywintypes
|
||||
|
||||
__default_settings__ = {
|
||||
'presentations/powerpoint slide click advance': True
|
||||
}
|
||||
|
||||
|
||||
class TestPowerpointController(TestCase, TestMixin):
|
||||
"""
|
||||
Test the PowerpointController Class
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
Set up the patches and mocks need for all tests.
|
||||
"""
|
||||
self.setup_application()
|
||||
self.build_settings()
|
||||
self.mock_plugin = MagicMock()
|
||||
self.temp_folder = mkdtemp()
|
||||
self.mock_plugin.settings_section = self.temp_folder
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Stop the patches
|
||||
"""
|
||||
self.destroy_settings()
|
||||
shutil.rmtree(self.temp_folder)
|
||||
|
||||
def test_constructor(self):
|
||||
"""
|
||||
Test the Constructor from the PowerpointController
|
||||
"""
|
||||
# GIVEN: No presentation controller
|
||||
controller = None
|
||||
|
||||
# WHEN: The presentation controller object is created
|
||||
controller = PowerpointController(plugin=self.mock_plugin)
|
||||
|
||||
# THEN: The name of the presentation controller should be correct
|
||||
self.assertEqual('Powerpoint', controller.name,
|
||||
'The name of the presentation controller should be correct')
|
||||
|
||||
|
||||
class TestPowerpointDocument(TestCase, TestMixin):
|
||||
"""
|
||||
Test the PowerpointDocument Class
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
Set up the patches and mocks need for all tests.
|
||||
"""
|
||||
self.setup_application()
|
||||
self.build_settings()
|
||||
self.mock_plugin = MagicMock()
|
||||
self.temp_folder = mkdtemp()
|
||||
self.mock_plugin.settings_section = self.temp_folder
|
||||
self.powerpoint_document_stop_presentation_patcher = patch(
|
||||
'openlp.plugins.presentations.lib.powerpointcontroller.PowerpointDocument.stop_presentation')
|
||||
self.presentation_document_get_temp_folder_patcher = patch(
|
||||
'openlp.plugins.presentations.lib.powerpointcontroller.PresentationDocument.get_temp_folder')
|
||||
self.presentation_document_setup_patcher = patch(
|
||||
'openlp.plugins.presentations.lib.powerpointcontroller.PresentationDocument._setup')
|
||||
self.mock_powerpoint_document_stop_presentation = self.powerpoint_document_stop_presentation_patcher.start()
|
||||
self.mock_presentation_document_get_temp_folder = self.presentation_document_get_temp_folder_patcher.start()
|
||||
self.mock_presentation_document_setup = self.presentation_document_setup_patcher.start()
|
||||
self.mock_controller = MagicMock()
|
||||
self.mock_presentation = MagicMock()
|
||||
self.mock_presentation_document_get_temp_folder.return_value = 'temp folder'
|
||||
self.file_name = os.path.join(TEST_RESOURCES_PATH, 'presentations', 'test.pptx')
|
||||
self.real_controller = PowerpointController(self.mock_plugin)
|
||||
Settings().extend_default_settings(__default_settings__)
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Stop the patches
|
||||
"""
|
||||
self.powerpoint_document_stop_presentation_patcher.stop()
|
||||
self.presentation_document_get_temp_folder_patcher.stop()
|
||||
self.presentation_document_setup_patcher.stop()
|
||||
self.destroy_settings()
|
||||
shutil.rmtree(self.temp_folder)
|
||||
|
||||
def test_show_error_msg(self):
|
||||
"""
|
||||
Test the PowerpointDocument.show_error_msg() method gets called on com exception
|
||||
"""
|
||||
if is_win():
|
||||
# GIVEN: A PowerpointDocument with mocked controller and presentation
|
||||
with patch('openlp.plugins.presentations.lib.powerpointcontroller.critical_error_message_box') as \
|
||||
mocked_critical_error_message_box:
|
||||
instance = PowerpointDocument(self.mock_controller, self.mock_presentation)
|
||||
instance.presentation = MagicMock()
|
||||
instance.presentation.SlideShowWindow.View.GotoSlide = MagicMock(side_effect=pywintypes.com_error('1'))
|
||||
instance.index_map[42] = 42
|
||||
|
||||
# WHEN: Calling goto_slide which will throw an exception
|
||||
instance.goto_slide(42)
|
||||
|
||||
# THEN: mocked_critical_error_message_box should have been called
|
||||
mocked_critical_error_message_box.assert_called_with('Error', 'An error occurred in the PowerPoint '
|
||||
'integration and the presentation will be stopped.'
|
||||
' Restart the presentation if you wish to '
|
||||
'present it.')
|
||||
|
||||
# add _test to the following if necessary
|
||||
def verify_loading_document(self):
|
||||
"""
|
||||
Test loading a document in PowerPoint
|
||||
"""
|
||||
if is_win() and self.real_controller.check_available():
|
||||
# GIVEN: A PowerpointDocument and a presentation
|
||||
doc = PowerpointDocument(self.real_controller, self.file_name)
|
||||
|
||||
# WHEN: loading the filename
|
||||
doc.load_presentation()
|
||||
result = doc.is_loaded()
|
||||
|
||||
# THEN: result should be true
|
||||
self.assertEqual(result, True, 'The result should be True')
|
||||
else:
|
||||
self.skipTest('Powerpoint not available, skipping test.')
|
||||
|
||||
def test_create_titles_and_notes(self):
|
||||
"""
|
||||
Test creating the titles from PowerPoint
|
||||
"""
|
||||
# GIVEN: mocked save_titles_and_notes, _get_text_from_shapes and two mocked slides
|
||||
self.doc = PowerpointDocument(self.mock_controller, self.file_name)
|
||||
self.doc.get_slide_count = MagicMock()
|
||||
self.doc.get_slide_count.return_value = 2
|
||||
self.doc.index_map = {1: 1, 2: 2}
|
||||
self.doc.save_titles_and_notes = MagicMock()
|
||||
self.doc._PowerpointDocument__get_text_from_shapes = MagicMock()
|
||||
slide = MagicMock()
|
||||
slide.Shapes.Title.TextFrame.TextRange.Text = 'SlideText'
|
||||
pres = MagicMock()
|
||||
pres.Slides = MagicMock(side_effect=[slide, slide])
|
||||
self.doc.presentation = pres
|
||||
|
||||
# WHEN reading the titles and notes
|
||||
self.doc.create_titles_and_notes()
|
||||
|
||||
# THEN the save should have been called exactly once with 2 titles and 2 notes
|
||||
self.doc.save_titles_and_notes.assert_called_once_with(['SlideText\n', 'SlideText\n'], [' ', ' '])
|
||||
|
||||
def test_create_titles_and_notes_with_no_slides(self):
|
||||
"""
|
||||
Test creating the titles from PowerPoint when it returns no slides
|
||||
"""
|
||||
# GIVEN: mocked save_titles_and_notes, _get_text_from_shapes and two mocked slides
|
||||
doc = PowerpointDocument(self.mock_controller, self.file_name)
|
||||
doc.save_titles_and_notes = MagicMock()
|
||||
doc._PowerpointDocument__get_text_from_shapes = MagicMock()
|
||||
pres = MagicMock()
|
||||
pres.Slides = []
|
||||
doc.presentation = pres
|
||||
|
||||
# WHEN reading the titles and notes
|
||||
doc.create_titles_and_notes()
|
||||
|
||||
# THEN the save should have been called exactly once with empty titles and notes
|
||||
doc.save_titles_and_notes.assert_called_once_with([], [])
|
||||
|
||||
def test_get_text_from_shapes(self):
|
||||
"""
|
||||
Test getting text from powerpoint shapes
|
||||
"""
|
||||
# GIVEN: mocked shapes
|
||||
shape = MagicMock()
|
||||
shape.PlaceholderFormat.Type = 2
|
||||
shape.HasTextFrame = shape.TextFrame.HasText = True
|
||||
shape.TextFrame.TextRange.Text = 'slideText'
|
||||
shapes = [shape, shape]
|
||||
|
||||
# WHEN: getting the text
|
||||
result = _get_text_from_shapes(shapes)
|
||||
|
||||
# THEN: it should return the text
|
||||
self.assertEqual(result, 'slideText\nslideText\n', 'result should match \'slideText\nslideText\n\'')
|
||||
|
||||
def test_get_text_from_shapes_with_no_shapes(self):
|
||||
"""
|
||||
Test getting text from powerpoint shapes with no shapes
|
||||
"""
|
||||
# GIVEN: empty shapes array
|
||||
shapes = []
|
||||
|
||||
# WHEN: getting the text
|
||||
result = _get_text_from_shapes(shapes)
|
||||
|
||||
# THEN: it should not fail but return empty string
|
||||
self.assertEqual(result, '', 'result should be empty')
|
||||
|
||||
def test_goto_slide(self):
|
||||
"""
|
||||
Test that goto_slide goes to next effect if the slide is already displayed
|
||||
"""
|
||||
# GIVEN: A Document with mocked controller, presentation, and mocked functions get_slide_number and next_step
|
||||
doc = PowerpointDocument(self.mock_controller, self.mock_presentation)
|
||||
doc.presentation = MagicMock()
|
||||
doc.presentation.SlideShowWindow.View.GetClickIndex.return_value = 1
|
||||
doc.presentation.SlideShowWindow.View.GetClickCount.return_value = 2
|
||||
doc.get_slide_number = MagicMock()
|
||||
doc.get_slide_number.return_value = 1
|
||||
doc.next_step = MagicMock()
|
||||
doc.index_map[1] = 1
|
||||
|
||||
# WHEN: Calling goto_slide
|
||||
doc.goto_slide(1)
|
||||
|
||||
# THEN: next_step() should be call to try to advance to the next effect.
|
||||
self.assertTrue(doc.next_step.called, 'next_step() should have been called!')
|
||||
|
||||
def test_blank_screen(self):
|
||||
"""
|
||||
Test that blank_screen works as expected
|
||||
"""
|
||||
# GIVEN: A Document with mocked controller, presentation, and mocked function get_slide_number
|
||||
doc = PowerpointDocument(self.mock_controller, self.mock_presentation)
|
||||
doc.presentation = MagicMock()
|
||||
doc.presentation.SlideShowWindow.View.GetClickIndex.return_value = 3
|
||||
doc.presentation.Application.Version = 14.0
|
||||
doc.get_slide_number = MagicMock()
|
||||
doc.get_slide_number.return_value = 2
|
||||
|
||||
# WHEN: Calling goto_slide
|
||||
doc.blank_screen()
|
||||
|
||||
# THEN: The view state, doc.blank_slide and doc.blank_click should have new values
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.View.State, 3, 'The View State should be 3')
|
||||
self.assertEquals(doc.blank_slide, 2, 'doc.blank_slide should be 2 because of the PowerPoint version')
|
||||
self.assertEquals(doc.blank_click, 3, 'doc.blank_click should be 3 because of the PowerPoint version')
|
||||
|
||||
def test_unblank_screen(self):
|
||||
"""
|
||||
Test that unblank_screen works as expected
|
||||
"""
|
||||
# GIVEN: A Document with mocked controller, presentation, ScreenList, and mocked function get_slide_number
|
||||
with patch('openlp.plugins.presentations.lib.powerpointcontroller.ScreenList') as mocked_screen_list:
|
||||
mocked_screen_list_ret = MagicMock()
|
||||
mocked_screen_list_ret.screen_list = [1]
|
||||
mocked_screen_list.return_value = mocked_screen_list_ret
|
||||
doc = PowerpointDocument(self.mock_controller, self.mock_presentation)
|
||||
doc.presentation = MagicMock()
|
||||
doc.presentation.SlideShowWindow.View.GetClickIndex.return_value = 3
|
||||
doc.presentation.Application.Version = 14.0
|
||||
doc.get_slide_number = MagicMock()
|
||||
doc.get_slide_number.return_value = 2
|
||||
doc.index_map[1] = 1
|
||||
doc.blank_slide = 1
|
||||
doc.blank_click = 1
|
||||
|
||||
# WHEN: Calling goto_slide
|
||||
doc.unblank_screen()
|
||||
|
||||
# THEN: The view state have new value, and several function should have been called
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.View.State, 1, 'The View State should be 1')
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.Activate.called, True,
|
||||
'SlideShowWindow.Activate should have been called')
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.View.GotoSlide.called, True,
|
||||
'View.GotoSlide should have been called because of the PowerPoint version')
|
||||
self.assertEquals(doc.presentation.SlideShowWindow.View.GotoClick.called, True,
|
||||
'View.GotoClick should have been called because of the PowerPoint version')
|
||||
|
@ -24,17 +24,16 @@ This module contains tests for the pptviewcontroller module of the Presentations
|
||||
"""
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.plugins.presentations.lib.pptviewcontroller import PptviewDocument, PptviewController
|
||||
from openlp.core.common import is_win
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
|
||||
if is_win():
|
||||
from ctypes import cdll
|
||||
|
||||
|
@ -23,10 +23,11 @@
|
||||
Functional tests to test the PresentationController and PresentationDocument
|
||||
classes and related methods.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, mock_open, patch
|
||||
|
||||
from openlp.plugins.presentations.lib.presentationcontroller import PresentationController, PresentationDocument
|
||||
from tests.functional import MagicMock, mock_open, patch
|
||||
|
||||
FOLDER_TO_PATCH = 'openlp.plugins.presentations.lib.presentationcontroller.PresentationDocument.get_thumbnail_folder'
|
||||
|
||||
|
@ -25,13 +25,13 @@ This module contains tests for the lib submodule of the Remotes plugin.
|
||||
import os
|
||||
import re
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
|
||||
from openlp.core.common import Settings
|
||||
from openlp.plugins.remotes.lib.remotetab import RemoteTab
|
||||
from tests.functional import patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
__default_settings__ = {
|
||||
|
@ -23,6 +23,7 @@
|
||||
This module contains tests for the lib submodule of the Songs plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
@ -30,7 +31,7 @@ from openlp.core.common import Registry, Settings
|
||||
from openlp.core.lib import ServiceItem
|
||||
from openlp.plugins.songs.forms.editsongform import EditSongForm
|
||||
from openlp.plugins.songs.lib.db import AuthorType
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,14 +23,12 @@
|
||||
This module contains tests for the editverseform of the Songs plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
from PyQt5 import QtCore
|
||||
|
||||
from openlp.core.common import Registry, Settings
|
||||
from openlp.core.lib import ServiceItem
|
||||
from openlp.plugins.songs.forms.editverseform import EditVerseForm
|
||||
from openlp.plugins.songs.lib.db import AuthorType
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -22,11 +22,9 @@
|
||||
"""
|
||||
This module contains tests for the EasyWorship song importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
from unittest import TestCase
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.plugins.songs.lib.importers.easyworship import EasyWorshipSongImport, FieldDescEntry, FieldType
|
||||
|
@ -22,10 +22,9 @@
|
||||
"""
|
||||
This module contains tests for the SongShow Plus song importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from tests.functional import patch, MagicMock
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from openlp.plugins.songs.lib.importers.foilpresenter import FoilPresenter
|
||||
|
||||
|
@ -23,10 +23,10 @@
|
||||
This module contains tests for the lib submodule of the Songs plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock, PropertyMock
|
||||
|
||||
from openlp.plugins.songs.lib import VerseType, clean_string, clean_title, strip_rtf
|
||||
from openlp.plugins.songs.lib.songcompare import songs_probably_equal, _remove_typos, _op_length
|
||||
from tests.functional import patch, MagicMock, PropertyMock
|
||||
|
||||
|
||||
class TestLib(TestCase):
|
||||
|
@ -21,14 +21,10 @@
|
||||
"""
|
||||
This module contains tests for the LyriX song importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
||||
from openlp.core.common import Registry
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
TEST_PATH = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'lyrixsongs'))
|
||||
|
@ -23,15 +23,15 @@
|
||||
This module contains tests for the lib submodule of the Songs plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import call
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
from openlp.core.common import Registry, Settings
|
||||
from openlp.core.lib import ServiceItem
|
||||
from openlp.plugins.songs.lib.mediaitem import SongMediaItem
|
||||
from openlp.plugins.songs.lib.db import AuthorType, Song
|
||||
from tests.functional import patch, MagicMock
|
||||
from openlp.plugins.songs.lib.mediaitem import SongMediaItem
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -22,8 +22,9 @@
|
||||
"""
|
||||
Test the MediaShout importer
|
||||
"""
|
||||
from unittest import TestCase, skipUnless
|
||||
from collections import namedtuple
|
||||
from unittest import TestCase, skipUnless
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from openlp.core.common import Registry
|
||||
try:
|
||||
@ -32,8 +33,6 @@ try:
|
||||
except ImportError:
|
||||
CAN_RUN_TESTS = False
|
||||
|
||||
from tests.functional import MagicMock, patch, call
|
||||
|
||||
|
||||
@skipUnless(CAN_RUN_TESTS, 'Not Windows, skipping test')
|
||||
class TestMediaShoutImport(TestCase):
|
||||
|
@ -23,10 +23,10 @@
|
||||
This module contains tests for the OpenLP song importer.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from openlp.plugins.songs.lib.importers.openlp import OpenLPSongImport
|
||||
from openlp.core.common import Registry
|
||||
from tests.functional import patch, MagicMock
|
||||
from openlp.plugins.songs.lib.importers.openlp import OpenLPSongImport
|
||||
|
||||
|
||||
class TestOpenLPImport(TestCase):
|
||||
|
@ -22,17 +22,17 @@
|
||||
"""
|
||||
This module contains tests for the OpenLyrics song importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
from unittest import TestCase
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from openlp.plugins.songs.lib.openlyricsexport import OpenLyricsExport
|
||||
from openlp.core.common import Registry
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
class TestOpenLyricsExport(TestCase, TestMixin):
|
||||
"""
|
||||
|
@ -22,19 +22,19 @@
|
||||
"""
|
||||
This module contains tests for the OpenLyrics song importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
import json
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from lxml import etree, objectify
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from openlp.plugins.songs.lib.importers.openlyrics import OpenLyricsImport
|
||||
from openlp.plugins.songs.lib.importers.songimport import SongImport
|
||||
from openlp.plugins.songs.lib.openlyricsxml import OpenLyrics
|
||||
from openlp.core.common import Registry, Settings
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||
'..', '..', '..', 'resources', 'openlyricssongs'))
|
||||
|
@ -23,6 +23,7 @@
|
||||
This module contains tests for the OpenOffice/LibreOffice importer.
|
||||
"""
|
||||
from unittest import TestCase, SkipTest
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common import Registry
|
||||
try:
|
||||
@ -30,7 +31,6 @@ try:
|
||||
except ImportError:
|
||||
raise SkipTest('Could not import OpenOfficeImport probably due to unavailability of uno')
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -24,12 +24,12 @@ This module contains tests for the OpenSong song importer.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
||||
from openlp.core.common import Registry
|
||||
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
||||
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
TEST_PATH = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'opensongsongs'))
|
||||
|
@ -25,6 +25,7 @@ This module contains tests for the WorshipCenter Pro song importer.
|
||||
import os
|
||||
import json
|
||||
from unittest import TestCase, skipUnless
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
try:
|
||||
from openlp.core.common import Registry
|
||||
@ -33,8 +34,6 @@ try:
|
||||
except ImportError:
|
||||
CAN_RUN_TESTS = False
|
||||
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'opsprosongs'))
|
||||
|
||||
|
||||
|
@ -22,15 +22,15 @@
|
||||
"""
|
||||
This module contains tests for the Songbeamer song importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
from tests.functional import MagicMock, patch
|
||||
from openlp.plugins.songs.lib.importers.songbeamer import SongBeamerImport, SongBeamerTypes
|
||||
from openlp.core.common import Registry
|
||||
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||
'..', '..', '..', 'resources', 'songbeamersongs'))
|
||||
|
||||
|
@ -22,14 +22,14 @@
|
||||
"""
|
||||
This module contains tests for the SongShow Plus song importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
from openlp.plugins.songs.lib import VerseType
|
||||
from openlp.plugins.songs.lib.importers.songshowplus import SongShowPlusImport
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
|
||||
TEST_PATH = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'songshowplussongs'))
|
||||
|
@ -19,13 +19,12 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
This module contains tests for the VideoPsalm song importer.
|
||||
This module contains tests for the SundayPlus song importer.
|
||||
"""
|
||||
|
||||
import os
|
||||
from unittest.mock import patch
|
||||
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
from tests.functional import patch
|
||||
|
||||
TEST_PATH = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'sundayplussongs'))
|
||||
|
@ -23,6 +23,7 @@
|
||||
This module contains tests for the WorshipCenter Pro song importer.
|
||||
"""
|
||||
from unittest import TestCase, skipUnless
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
try:
|
||||
import pyodbc
|
||||
@ -33,9 +34,6 @@ except ImportError:
|
||||
CAN_RUN_TESTS = False
|
||||
|
||||
|
||||
from tests.functional import patch, MagicMock
|
||||
|
||||
|
||||
class TestRecord(object):
|
||||
"""
|
||||
Microsoft Access Driver is not available on non Microsoft Systems for this reason the :class:`TestRecord` is used
|
||||
|
@ -23,15 +23,15 @@
|
||||
This module contains tests for the ZionWorx song importer.
|
||||
"""
|
||||
import os
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from tests.functional import MagicMock, patch
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
from openlp.plugins.songs.lib.importers.zionworx import ZionWorxImport
|
||||
from openlp.plugins.songs.lib.importers.songimport import SongImport
|
||||
from openlp.core.common import Registry
|
||||
|
||||
from tests.helpers.songfileimport import SongImportTestHelper
|
||||
|
||||
TEST_PATH = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'zionworxsongs'))
|
||||
|
||||
|
@ -24,6 +24,7 @@ Package to test the openlp.core.__init__ package.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
|
||||
@ -31,7 +32,6 @@ from openlp.core import OpenLP, parse_options
|
||||
from openlp.core.common import Settings
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.functional import MagicMock, patch, call
|
||||
|
||||
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'resources'))
|
||||
|
||||
|
@ -26,11 +26,10 @@ song files from third party applications.
|
||||
import json
|
||||
import logging
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
|
||||
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
||||
from openlp.core.common import Registry
|
||||
|
||||
from tests.functional import patch, MagicMock, call
|
||||
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -19,9 +19,6 @@
|
||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
import sys
|
||||
|
||||
if sys.version_info[1] >= 3:
|
||||
from unittest.mock import patch, MagicMock
|
||||
else:
|
||||
from mock import patch, MagicMock
|
||||
"""
|
||||
Interface tests
|
||||
"""
|
||||
|
@ -27,12 +27,13 @@ import shutil
|
||||
import gc
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
from openlp.core.common import Registry, Settings
|
||||
from openlp.core.lib.pluginmanager import PluginManager
|
||||
from tests.interfaces import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,12 +23,13 @@
|
||||
Package to test the openlp.core.ui package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtTest, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.ui import filerenameform
|
||||
from tests.interfaces import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,11 +23,11 @@
|
||||
Package to test the openlp.core.ui.mainwindow package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.ui.mainwindow import MainWindow
|
||||
from tests.interfaces import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -25,12 +25,12 @@ class and methods.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.lib.projector.db import Projector, ProjectorDB
|
||||
from openlp.core.ui import ProjectorEditForm
|
||||
|
||||
from tests.functional import patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.resources.projector.data import TEST_DB, TEST1_DATA, TEST2_DATA
|
||||
|
||||
|
@ -24,14 +24,13 @@ Interface tests to test the themeManager class and related methods.
|
||||
"""
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from openlp.core.common import Registry, Settings
|
||||
from tests.functional import patch, MagicMock
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
from openlp.core.ui import ProjectorManager, ProjectorEditForm
|
||||
from openlp.core.lib.projector.db import Projector, ProjectorDB
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.resources.projector.data import TEST_DB, TEST1_DATA, TEST2_DATA, TEST3_DATA
|
||||
|
||||
|
||||
|
@ -24,24 +24,21 @@
|
||||
|
||||
Tests for the Projector Source Select form.
|
||||
"""
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
log.debug('test_projectorsourceform loaded')
|
||||
import os
|
||||
import time
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from PyQt5.QtWidgets import QDialog
|
||||
|
||||
from tests.functional import patch
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.resources.projector.data import TEST_DB, TEST1_DATA
|
||||
|
||||
from openlp.core.common import Registry, Settings
|
||||
from openlp.core.lib.projector.db import ProjectorDB, Projector
|
||||
from openlp.core.lib.projector.constants import PJLINK_DEFAULT_CODES, PJLINK_DEFAULT_SOURCES
|
||||
from openlp.core.ui.projector.sourceselectform import source_group, SourceSelectSingle
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
from tests.resources.projector.data import TEST_DB, TEST1_DATA
|
||||
|
||||
|
||||
def build_source_dict():
|
||||
"""
|
||||
|
@ -22,13 +22,13 @@
|
||||
"""
|
||||
Package to test the openlp.core.lib package.
|
||||
"""
|
||||
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.lib import ScreenList, ServiceItem, ItemCapabilities
|
||||
from openlp.core.ui.mainwindow import MainWindow
|
||||
from tests.interfaces import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,12 +23,13 @@
|
||||
Package to test the openlp.core.ui package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import patch
|
||||
|
||||
from PyQt5 import QtCore, QtTest, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.ui import servicenoteform
|
||||
from tests.interfaces import patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
|
@ -23,13 +23,14 @@
|
||||
Package to test the openlp.core.lib.settingsform package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from PyQt5 import QtCore, QtTest
|
||||
|
||||
from openlp.core.common import Registry
|
||||
from openlp.core.ui import settingsform
|
||||
from openlp.core.lib import ScreenList
|
||||
from tests.interfaces import MagicMock, patch
|
||||
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
SCREEN = {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user