forked from openlp/openlp
Merge w/ trunk
This commit is contained in:
commit
38c9ed1fd0
@ -36,8 +36,8 @@ import shutil
|
||||
import time
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry, OpenLPMixin, AppLocation, Settings, UiStrings, check_directory_exists, \
|
||||
is_macosx, is_win, translate
|
||||
from openlp.core.common import Registry, OpenLPMixin, AppLocation, LanguageManager, Settings, UiStrings, \
|
||||
check_directory_exists, is_macosx, is_win, translate
|
||||
from openlp.core.lib import ScreenList
|
||||
from openlp.core.resources import qInitResources
|
||||
from openlp.core.ui.mainwindow import MainWindow
|
||||
@ -45,7 +45,7 @@ from openlp.core.ui.firsttimelanguageform import FirstTimeLanguageForm
|
||||
from openlp.core.ui.firsttimeform import FirstTimeForm
|
||||
from openlp.core.ui.exceptionform import ExceptionForm
|
||||
from openlp.core.ui import SplashScreen
|
||||
from openlp.core.utils import LanguageManager, VersionThread, get_application_version
|
||||
from openlp.core.utils import VersionThread, get_application_version
|
||||
|
||||
|
||||
__all__ = ['OpenLP', 'main']
|
||||
|
@ -242,3 +242,5 @@ from .uistrings import UiStrings
|
||||
from .settings import Settings
|
||||
from .applocation import AppLocation
|
||||
from .historycombobox import HistoryComboBox
|
||||
from .actions import ActionList
|
||||
from .languagemanager import LanguageManager
|
||||
|
@ -27,8 +27,8 @@ import logging
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry, UiStrings, translate, is_macosx
|
||||
from openlp.core.common.actions import ActionList
|
||||
from openlp.core.lib import build_icon
|
||||
from openlp.core.utils.actions import ActionList
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -25,7 +25,7 @@ The language selection dialog.
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
|
||||
from openlp.core.lib.ui import create_action
|
||||
from openlp.core.utils import LanguageManager
|
||||
from openlp.core.common import LanguageManager
|
||||
from .firsttimelanguagedialog import Ui_FirstTimeLanguageDialog
|
||||
|
||||
|
||||
|
@ -24,30 +24,29 @@ This is the main window, where all the action happens.
|
||||
"""
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import shutil
|
||||
import sys
|
||||
import time
|
||||
from datetime import datetime
|
||||
from distutils import dir_util
|
||||
from distutils.errors import DistutilsFileError
|
||||
from tempfile import gettempdir
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry, RegistryProperties, AppLocation, Settings, check_directory_exists, translate, \
|
||||
is_win, is_macosx
|
||||
from openlp.core.common import Registry, RegistryProperties, AppLocation, LanguageManager, Settings, \
|
||||
check_directory_exists, translate, is_win, is_macosx
|
||||
from openlp.core.common.actions import ActionList, CategoryOrder
|
||||
from openlp.core.lib import Renderer, OpenLPDockWidget, PluginManager, ImageManager, PluginStatus, ScreenList, \
|
||||
build_icon
|
||||
from openlp.core.lib.ui import UiStrings, create_action
|
||||
from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, ThemeManager, LiveController, PluginForm, \
|
||||
MediaDockManager, ShortcutListForm, FormattingTagForm, PreviewController
|
||||
|
||||
from openlp.core.ui.media import MediaController
|
||||
from openlp.core.utils import LanguageManager, add_actions, get_application_version
|
||||
from openlp.core.utils.actions import ActionList, CategoryOrder
|
||||
from openlp.core.ui.firsttimeform import FirstTimeForm
|
||||
from openlp.core.ui.projector.manager import ProjectorManager
|
||||
from openlp.core.ui.media import MediaController
|
||||
from openlp.core.ui.printserviceform import PrintServiceForm
|
||||
from openlp.core.ui.projector.manager import ProjectorManager
|
||||
from openlp.core.utils import get_application_version, add_actions
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -23,23 +23,22 @@
|
||||
The service manager sets up, loads, saves and manages services.
|
||||
"""
|
||||
import html
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import zipfile
|
||||
import json
|
||||
from tempfile import mkstemp
|
||||
from datetime import datetime, timedelta
|
||||
from tempfile import mkstemp
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry, RegistryProperties, AppLocation, Settings, ThemeLevel, OpenLPMixin, \
|
||||
RegistryMixin, check_directory_exists, UiStrings, translate
|
||||
from openlp.core.common.actions import ActionList, CategoryOrder
|
||||
from openlp.core.lib import OpenLPToolbar, ServiceItem, ItemCapabilities, PluginStatus, build_icon
|
||||
from openlp.core.lib.ui import critical_error_message_box, create_widget_action, find_and_set_in_combo_box
|
||||
from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm
|
||||
from openlp.core.ui.printserviceform import PrintServiceForm
|
||||
from openlp.core.utils import delete_file, split_filename, format_time
|
||||
from openlp.core.utils.actions import ActionList, CategoryOrder
|
||||
|
||||
|
||||
class ServiceManagerList(QtWidgets.QTreeWidget):
|
||||
|
@ -27,7 +27,7 @@ import re
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from openlp.core.common import RegistryProperties, Settings, translate
|
||||
from openlp.core.utils.actions import ActionList
|
||||
from openlp.core.common.actions import ActionList
|
||||
from .shortcutlistdialog import Ui_ShortcutListDialog
|
||||
|
||||
REMOVE_AMPERSAND = re.compile(r'&{1}')
|
||||
|
@ -23,20 +23,20 @@
|
||||
The :mod:`slidecontroller` module contains the most important part of OpenLP - the slide controller
|
||||
"""
|
||||
|
||||
import os
|
||||
import copy
|
||||
import os
|
||||
from collections import deque
|
||||
from threading import Lock
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry, RegistryProperties, Settings, SlideLimits, UiStrings, translate, \
|
||||
RegistryMixin, OpenLPMixin, is_win
|
||||
RegistryMixin, OpenLPMixin
|
||||
from openlp.core.common.actions import ActionList, CategoryOrder
|
||||
from openlp.core.lib import OpenLPToolbar, ItemCapabilities, ServiceItem, ImageSource, ServiceItemAction, \
|
||||
ScreenList, build_icon, build_html
|
||||
from openlp.core.ui import HideMode, MainDisplay, Display, DisplayControllerType
|
||||
from openlp.core.lib.ui import create_action
|
||||
from openlp.core.utils.actions import ActionList, CategoryOrder
|
||||
from openlp.core.ui import HideMode, MainDisplay, Display, DisplayControllerType
|
||||
from openlp.core.ui.listpreviewwidget import ListPreviewWidget
|
||||
|
||||
# Threshold which has to be trespassed to toggle.
|
||||
|
@ -22,29 +22,28 @@
|
||||
"""
|
||||
The :mod:`openlp.core.utils` module provides the utility libraries for OpenLP.
|
||||
"""
|
||||
from datetime import datetime
|
||||
from distutils.version import LooseVersion
|
||||
from http.client import HTTPException
|
||||
import logging
|
||||
import locale
|
||||
import logging
|
||||
import os
|
||||
import platform
|
||||
import re
|
||||
import socket
|
||||
import time
|
||||
from shutil import which
|
||||
from subprocess import Popen, PIPE
|
||||
import sys
|
||||
import urllib.request
|
||||
import time
|
||||
import urllib.error
|
||||
import urllib.parse
|
||||
import urllib.request
|
||||
from datetime import datetime
|
||||
from distutils.version import LooseVersion
|
||||
from http.client import HTTPException
|
||||
from random import randint
|
||||
from shutil import which
|
||||
from subprocess import Popen, PIPE
|
||||
|
||||
from PyQt5 import QtGui, QtCore
|
||||
|
||||
from openlp.core.common import Registry, AppLocation, Settings, is_win, is_macosx
|
||||
|
||||
|
||||
if not is_win() and not is_macosx():
|
||||
try:
|
||||
from xdg import BaseDirectory
|
||||
@ -511,7 +510,7 @@ def get_locale_key(string):
|
||||
try:
|
||||
if ICU_COLLATOR is None:
|
||||
import icu
|
||||
from .languagemanager import LanguageManager
|
||||
from openlp.core.common.languagemanager import LanguageManager
|
||||
language = LanguageManager.get_language()
|
||||
icu_locale = icu.Locale(language)
|
||||
ICU_COLLATOR = icu.Collator.createInstance(icu_locale)
|
||||
@ -523,6 +522,8 @@ def get_locale_key(string):
|
||||
def get_natural_key(string):
|
||||
"""
|
||||
Generate a key for locale aware natural string sorting.
|
||||
|
||||
:param string: string to be sorted by
|
||||
Returns a list of string compare keys and integers.
|
||||
"""
|
||||
key = DIGITS_OR_NONDIGITS.findall(string)
|
||||
@ -533,11 +534,6 @@ def get_natural_key(string):
|
||||
return [b''] + key
|
||||
return key
|
||||
|
||||
|
||||
from .languagemanager import LanguageManager
|
||||
from .actions import ActionList
|
||||
|
||||
|
||||
__all__ = ['ActionList', 'LanguageManager', 'get_application_version', 'check_latest_version',
|
||||
__all__ = ['get_application_version', 'check_latest_version',
|
||||
'add_actions', 'get_filesystem_encoding', 'get_web_page', 'get_uno_command', 'get_uno_instance',
|
||||
'delete_file', 'clean_filename', 'format_time', 'get_locale_key', 'get_natural_key']
|
||||
|
@ -24,17 +24,16 @@ import logging
|
||||
|
||||
from PyQt5 import QtGui
|
||||
|
||||
|
||||
from openlp.core.common import Settings, translate
|
||||
from openlp.core.common.actions import ActionList
|
||||
from openlp.core.lib import Plugin, StringContent, build_icon
|
||||
from openlp.core.lib.db import Manager
|
||||
from openlp.core.lib.ui import create_action, UiStrings
|
||||
from openlp.core.lib.theme import VerticalType
|
||||
from openlp.core.lib.ui import create_action, UiStrings
|
||||
from openlp.core.ui import AlertLocation
|
||||
from openlp.core.utils.actions import ActionList
|
||||
from openlp.plugins.alerts.forms import AlertForm
|
||||
from openlp.plugins.alerts.lib import AlertsManager, AlertsTab
|
||||
from openlp.plugins.alerts.lib.db import init_schema
|
||||
from openlp.plugins.alerts.forms import AlertForm
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -24,13 +24,13 @@ import logging
|
||||
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
from openlp.core.common.actions import ActionList
|
||||
from openlp.core.lib import Plugin, StringContent, build_icon, translate
|
||||
from openlp.core.lib.ui import UiStrings, create_action
|
||||
from openlp.core.utils.actions import ActionList
|
||||
from openlp.plugins.bibles.forms import BibleUpgradeForm
|
||||
from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem, LayoutStyle, DisplayStyle, \
|
||||
LanguageSelection
|
||||
from openlp.plugins.bibles.lib.mediaitem import BibleSearch
|
||||
from openlp.plugins.bibles.forms import BibleUpgradeForm
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -28,8 +28,8 @@ import logging
|
||||
from sqlalchemy import Table, Column, ForeignKey, types
|
||||
from sqlalchemy.sql.expression import func, false, null, text
|
||||
|
||||
from openlp.core.common.db import drop_columns
|
||||
from openlp.core.lib.db import get_upgrade_op
|
||||
from openlp.core.utils.db import drop_columns
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
__version__ = 5
|
||||
|
@ -26,27 +26,26 @@ for the Songs plugin.
|
||||
|
||||
import logging
|
||||
import os
|
||||
from tempfile import gettempdir
|
||||
import sqlite3
|
||||
from tempfile import gettempdir
|
||||
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
|
||||
from openlp.core.common import UiStrings, Registry, translate
|
||||
from openlp.core.common.actions import ActionList
|
||||
from openlp.core.lib import Plugin, StringContent, build_icon
|
||||
from openlp.core.lib.db import Manager
|
||||
from openlp.core.lib.ui import create_action
|
||||
from openlp.core.utils.actions import ActionList
|
||||
from openlp.plugins.songs.forms.duplicatesongremovalform import DuplicateSongRemovalForm
|
||||
from openlp.plugins.songs.forms.songselectform import SongSelectForm
|
||||
from openlp.plugins.songs.lib import clean_song, upgrade
|
||||
from openlp.plugins.songs.lib.db import init_schema, Song
|
||||
from openlp.plugins.songs.lib.mediaitem import SongSearch
|
||||
from openlp.plugins.songs.lib.importer import SongFormat
|
||||
from openlp.plugins.songs.lib.importers.openlp import OpenLPSongImport
|
||||
from openlp.plugins.songs.lib.mediaitem import SongMediaItem
|
||||
from openlp.plugins.songs.lib.mediaitem import SongSearch
|
||||
from openlp.plugins.songs.lib.songstab import SongsTab
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
__default_settings__ = {
|
||||
'songs/db type': 'sqlite',
|
||||
|
@ -26,10 +26,10 @@ from datetime import datetime
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
|
||||
from openlp.core.common import Registry, Settings, translate
|
||||
from openlp.core.common.actions import ActionList
|
||||
from openlp.core.lib import Plugin, StringContent, build_icon
|
||||
from openlp.core.lib.db import Manager
|
||||
from openlp.core.lib.ui import create_action
|
||||
from openlp.core.utils.actions import ActionList
|
||||
from openlp.plugins.songusage.forms import SongUsageDetailForm, SongUsageDeleteForm
|
||||
from openlp.plugins.songusage.lib import upgrade
|
||||
from openlp.plugins.songusage.lib.db import init_schema, SongUsageItem
|
||||
|
0
tests/functional/openlp_core/__init__.py
Normal file
0
tests/functional/openlp_core/__init__.py
Normal file
@ -37,7 +37,7 @@ class TestInitFunctions(TestMixin, TestCase):
|
||||
# GIVEN: a a set of system arguments.
|
||||
sys.argv[1:] = []
|
||||
# WHEN: We we parse them to expand to options
|
||||
args = parse_options()
|
||||
args = parse_options(None)
|
||||
# THEN: the following fields will have been extracted.
|
||||
self.assertFalse(args.dev_version, 'The dev_version flag should be False')
|
||||
self.assertEquals(args.loglevel, 'warning', 'The log level should be set to warning')
|
||||
@ -54,7 +54,7 @@ class TestInitFunctions(TestMixin, TestCase):
|
||||
# GIVEN: a a set of system arguments.
|
||||
sys.argv[1:] = ['-l debug']
|
||||
# WHEN: We we parse them to expand to options
|
||||
args = parse_options()
|
||||
args = parse_options(None)
|
||||
# THEN: the following fields will have been extracted.
|
||||
self.assertFalse(args.dev_version, 'The dev_version flag should be False')
|
||||
self.assertEquals(args.loglevel, ' debug', 'The log level should be set to debug')
|
||||
@ -71,7 +71,7 @@ class TestInitFunctions(TestMixin, TestCase):
|
||||
# GIVEN: a a set of system arguments.
|
||||
sys.argv[1:] = ['--portable']
|
||||
# WHEN: We we parse them to expand to options
|
||||
args = parse_options()
|
||||
args = parse_options(None)
|
||||
# THEN: the following fields will have been extracted.
|
||||
self.assertFalse(args.dev_version, 'The dev_version flag should be False')
|
||||
self.assertEquals(args.loglevel, 'warning', 'The log level should be set to warning')
|
||||
@ -88,7 +88,7 @@ class TestInitFunctions(TestMixin, TestCase):
|
||||
# GIVEN: a a set of system arguments.
|
||||
sys.argv[1:] = ['-l debug', '-d']
|
||||
# WHEN: We we parse them to expand to options
|
||||
args = parse_options()
|
||||
args = parse_options(None)
|
||||
# THEN: the following fields will have been extracted.
|
||||
self.assertTrue(args.dev_version, 'The dev_version flag should be True')
|
||||
self.assertEquals(args.loglevel, ' debug', 'The log level should be set to debug')
|
||||
@ -105,7 +105,7 @@ class TestInitFunctions(TestMixin, TestCase):
|
||||
# GIVEN: a a set of system arguments.
|
||||
sys.argv[1:] = ['dummy_temp']
|
||||
# WHEN: We we parse them to expand to options
|
||||
args = parse_options()
|
||||
args = parse_options(None)
|
||||
# THEN: the following fields will have been extracted.
|
||||
self.assertFalse(args.dev_version, 'The dev_version flag should be False')
|
||||
self.assertEquals(args.loglevel, 'warning', 'The log level should be set to warning')
|
||||
@ -122,7 +122,7 @@ class TestInitFunctions(TestMixin, TestCase):
|
||||
# GIVEN: a a set of system arguments.
|
||||
sys.argv[1:] = ['-l debug', 'dummy_temp']
|
||||
# WHEN: We we parse them to expand to options
|
||||
args = parse_options()
|
||||
args = parse_options(None)
|
||||
# THEN: the following fields will have been extracted.
|
||||
self.assertFalse(args.dev_version, 'The dev_version flag should be False')
|
||||
self.assertEquals(args.loglevel, ' debug', 'The log level should be set to debug')
|
||||
@ -130,15 +130,3 @@ class TestInitFunctions(TestMixin, TestCase):
|
||||
self.assertFalse(args.portable, 'The portable flag should be set to false')
|
||||
self.assertEquals(args.style, None, 'There are no style flags to be processed')
|
||||
self.assertEquals(args.rargs, 'dummy_temp', 'The service file should not be blank')
|
||||
|
||||
def parse_options_two_files_test(self):
|
||||
"""
|
||||
Test the parse options process works with a file
|
||||
|
||||
"""
|
||||
# GIVEN: a a set of system arguments.
|
||||
sys.argv[1:] = ['dummy_temp', 'dummy_temp2']
|
||||
# WHEN: We we parse them to expand to options
|
||||
args = parse_options()
|
||||
# THEN: the following fields will have been extracted.
|
||||
self.assertEquals(args, None, 'The args should be None')
|
||||
|
@ -20,15 +20,14 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Package to test the openlp.core.utils.actions package.
|
||||
Package to test the openlp.core.common.actions package.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
|
||||
from PyQt5 import QtGui, QtCore, QtWidgets
|
||||
|
||||
from openlp.core.common import Settings
|
||||
from openlp.core.utils import ActionList
|
||||
from openlp.core.utils.actions import CategoryActionList
|
||||
from openlp.core.common.actions import CategoryActionList, ActionList
|
||||
from tests.functional import MagicMock
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
@ -20,19 +20,19 @@
|
||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
###############################################################################
|
||||
"""
|
||||
Package to test the openlp.core.utils.db package.
|
||||
Package to test the openlp.core.common.db package.
|
||||
"""
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase
|
||||
import gc
|
||||
import os
|
||||
import shutil
|
||||
import sqlalchemy
|
||||
import time
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase
|
||||
|
||||
from openlp.core.utils.db import drop_column, drop_columns
|
||||
import sqlalchemy
|
||||
|
||||
from openlp.core.common.db import drop_column, drop_columns
|
||||
from openlp.core.lib.db import init_db, get_upgrade_op
|
||||
|
||||
from tests.utils.constants import TEST_RESOURCES_PATH
|
||||
|
||||
|
@ -241,7 +241,7 @@ class TestUtils(TestCase):
|
||||
"""
|
||||
Test the get_locale_key(string) function
|
||||
"""
|
||||
with patch('openlp.core.utils.languagemanager.LanguageManager.get_language') as mocked_get_language:
|
||||
with patch('openlp.core.common.languagemanager.LanguageManager.get_language') as mocked_get_language:
|
||||
# GIVEN: The language is German
|
||||
# 0x00C3 (A with diaresis) should be sorted as "A". 0x00DF (sharp s) should be sorted as "ss".
|
||||
mocked_get_language.return_value = 'de'
|
||||
@ -258,7 +258,7 @@ class TestUtils(TestCase):
|
||||
"""
|
||||
Test the get_natural_key(string) function
|
||||
"""
|
||||
with patch('openlp.core.utils.languagemanager.LanguageManager.get_language') as mocked_get_language:
|
||||
with patch('openlp.core.common.languagemanager.LanguageManager.get_language') as mocked_get_language:
|
||||
# GIVEN: The language is English (a language, which sorts digits before letters)
|
||||
mocked_get_language.return_value = 'en'
|
||||
unsorted_list = ['item 10a', 'item 3b', '1st item']
|
||||
|
Loading…
Reference in New Issue
Block a user