This commit is contained in:
Philip Ridout 2017-05-15 11:15:32 +01:00
commit 16d2bd96f0
110 changed files with 552 additions and 542 deletions

View File

@ -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']

View File

@ -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

View File

@ -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']

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'))

View File

@ -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):
"""

View File

@ -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

View File

@ -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

View File

@ -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):

View File

@ -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):

View File

@ -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}',

View File

@ -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 = """

View File

@ -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'))

View File

@ -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'))

View File

@ -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

View File

@ -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):

View File

@ -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)

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -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'\

View File

@ -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):

View File

@ -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

View File

@ -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'

View File

@ -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):
"""

View File

@ -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"""

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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):

View File

@ -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):

View File

@ -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():
"""

View File

@ -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):

View File

@ -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):
"""

View File

@ -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):

View File

@ -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):

View File

@ -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):

View File

@ -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):

View File

@ -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

View File

@ -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):
"""

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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):

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'))

View File

@ -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

View File

@ -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__),

View 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'))

View File

@ -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

View File

@ -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']

View File

@ -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__ = {

View File

@ -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):

View File

@ -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__ = {

View File

@ -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

View File

@ -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):
"""

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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')

View File

@ -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

View File

@ -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'

View File

@ -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__ = {

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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):

View File

@ -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'))

View File

@ -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

View File

@ -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):

View File

@ -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):

View File

@ -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):
"""

View File

@ -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'))

View File

@ -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

View File

@ -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'))

View File

@ -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'))

View File

@ -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'))

View File

@ -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'))

View File

@ -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'))

View File

@ -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

View File

@ -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'))

View File

@ -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'))

View File

@ -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__)

View File

@ -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
"""

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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():
"""

View File

@ -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

View File

@ -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

View File

@ -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 = {

View File

@ -23,13 +23,13 @@
Package to test the openlp.core.ui.shortcutform package.
"""
from unittest import TestCase
from unittest.mock import MagicMock, patch
from PyQt5 import QtCore, QtGui, QtWidgets
from openlp.core.common import Registry
from openlp.core.ui.shortcutlistform import ShortcutListForm
from tests.interfaces import MagicMock, patch
from tests.helpers.testmixin import TestMixin

Some files were not shown because too many files have changed in this diff Show More