openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #32548
[Merge] lp:~phill-ridout/openlp/pathlib11 into lp:openlp
Phill has proposed merging lp:~phill-ridout/openlp/pathlib11 into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
For more details, see:
https://code.launchpad.net/~phill-ridout/openlp/pathlib11/+merge/335578
Some more pathlib refactors.
Test tidy ups
lp:~phill-ridout/openlp/pathlib11 (revision 2806)
https://ci.openlp.io/job/Branch-01-Pull/2384/ [WAITING]
[RUNNING]
[SUCCESS]
https://ci.openlp.io/job/Branch-02a-Linux-Tests/2285/ [WAITING]
[RUNNING]
[SUCCESS]
https://ci.openlp.io/job/Branch-02b-macOS-Tests/80/ [WAITING]
[SUCCESS]
https://ci.openlp.io/job/Branch-03a-Build-Source/5/ [WAITING]
[SUCCESS]
https://ci.openlp.io/job/Branch-03b-Build-macOS/5/ [WAITING]
[RUNNING]
[SUCCESS]
https://ci.openlp.io/job/Branch-04a-Code-Analysis/1467/ [WAITING]
[SUCCESS]
https://ci.openlp.io/job/Branch-04b-Test-Coverage/1280/ [WAITING]
[SUCCESS]
https://ci.openlp.io/job/Branch-05-AppVeyor-Tests/238/ [WAITING]
[RUNNING]
[ABORTED]
--
Your team OpenLP Core is requested to review the proposed merge of lp:~phill-ridout/openlp/pathlib11 into lp:openlp.
=== modified file 'openlp.py'
--- openlp.py 2017-10-23 22:09:57 +0000
+++ openlp.py 2017-12-24 07:50:03 +0000
@@ -39,7 +39,7 @@
"""
# Create the cache directory if it doesn't exist, and enable the fault handler to log to an error log file
create_paths(AppLocation.get_directory(AppLocation.CacheDir))
- faulthandler.enable(open(str(AppLocation.get_directory(AppLocation.CacheDir) / 'error.log'), 'wb'))
+ faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb'))
if __name__ == '__main__':
=== modified file 'openlp/core/lib/mediamanageritem.py'
--- openlp/core/lib/mediamanageritem.py 2017-12-19 19:47:02 +0000
+++ openlp/core/lib/mediamanageritem.py 2017-12-24 07:50:03 +0000
@@ -331,8 +331,7 @@
"""
new_file_paths = []
error_shown = False
- for file_name in data['files']:
- file_path = str_to_path(file_name)
+ for file_path in data['file_paths']:
if file_path.suffix[1:].lower() not in self.on_new_file_masks:
if not error_shown:
critical_error_message_box(
=== modified file 'openlp/core/ui/firsttimeform.py'
--- openlp/core/ui/firsttimeform.py 2017-10-23 22:09:57 +0000
+++ openlp/core/ui/firsttimeform.py 2017-12-24 07:50:03 +0000
@@ -401,7 +401,7 @@
screenshot = self.config.get('theme_{theme}'.format(theme=theme), 'screenshot')
item = self.themes_list_widget.item(index)
if item:
- item.setIcon(build_icon(os.path.join(gettempdir(), 'openlp', screenshot)))
+ item.setIcon(build_icon(Path(gettempdir(), 'openlp', screenshot)))
def _download_progress(self, count, block_size):
"""
@@ -550,9 +550,9 @@
Download selected songs, bibles and themes. Returns False on download error
"""
# Build directories for downloads
- songs_destination = os.path.join(gettempdir(), 'openlp')
- bibles_destination = str(AppLocation.get_section_data_path('bibles'))
- themes_destination = str(AppLocation.get_section_data_path('themes'))
+ songs_destination_path = Path(gettempdir(), 'openlp')
+ bibles_destination_path = AppLocation.get_section_data_path('bibles')
+ themes_destination_path = AppLocation.get_section_data_path('themes')
missed_files = []
# Download songs
for i in range(self.songs_list_widget.count()):
@@ -561,7 +561,7 @@
filename, sha256 = item.data(QtCore.Qt.UserRole)
self._increment_progress_bar(self.downloading.format(name=filename), 0)
self.previous_size = 0
- destination = Path(songs_destination, str(filename))
+ destination = songs_destination_path / str(filename)
if not url_get_file(self, '{path}{name}'.format(path=self.songs_url, name=filename),
destination, sha256):
missed_files.append('Song: {name}'.format(name=filename))
@@ -574,8 +574,7 @@
self._increment_progress_bar(self.downloading.format(name=bible), 0)
self.previous_size = 0
if not url_get_file(self, '{path}{name}'.format(path=self.bibles_url, name=bible),
- Path(bibles_destination, bible),
- sha256):
+ bibles_destination_path / bible, sha256):
missed_files.append('Bible: {name}'.format(name=bible))
bibles_iterator += 1
# Download themes
@@ -586,8 +585,7 @@
self._increment_progress_bar(self.downloading.format(name=theme), 0)
self.previous_size = 0
if not url_get_file(self, '{path}{name}'.format(path=self.themes_url, name=theme),
- Path(themes_destination, theme),
- sha256):
+ themes_destination_path / theme, sha256):
missed_files.append('Theme: {name}'.format(name=theme))
if missed_files:
file_list = ''
=== modified file 'openlp/core/widgets/views.py'
--- openlp/core/widgets/views.py 2017-10-27 21:11:29 +0000
+++ openlp/core/widgets/views.py 2017-12-24 07:50:03 +0000
@@ -23,18 +23,36 @@
The :mod:`listpreviewwidget` is a widget that lists the slides in the slide controller.
It is based on a QTableWidget but represents its contents in list form.
"""
-import os
-
from PyQt5 import QtCore, QtGui, QtWidgets
from openlp.core.common import is_win
from openlp.core.common.i18n import UiStrings
from openlp.core.common.mixins import RegistryProperties
+from openlp.core.common.path import Path
from openlp.core.common.registry import Registry
from openlp.core.common.settings import Settings
from openlp.core.lib import ImageSource, ItemCapabilities, ServiceItem
+def handle_mime_data_urls(mime_data):
+ """
+ Process the data from a drag and drop operation.
+
+ :param PyQt5.QtCore.QMimeData mime_data: The mime data from the drag and drop opperation.
+ :return: A list of file paths that were dropped
+ :rtype: list[openlp.core.common.path.Path]
+ """
+ file_paths = []
+ for url in mime_data.urls():
+ local_path = Path(url.toLocalFile())
+ if local_path.is_file():
+ file_paths.append(local_path)
+ elif local_path.is_dir():
+ for path in local_path.iterdir():
+ file_paths.append(path)
+ return file_paths
+
+
class ListPreviewWidget(QtWidgets.QTableWidget, RegistryProperties):
"""
A special type of QTableWidget which lists the slides in the slide controller
@@ -326,17 +344,9 @@
if event.mimeData().hasUrls():
event.setDropAction(QtCore.Qt.CopyAction)
event.accept()
- files = []
- for url in event.mimeData().urls():
- local_file = os.path.normpath(url.toLocalFile())
- if os.path.isfile(local_file):
- files.append(local_file)
- elif os.path.isdir(local_file):
- listing = os.listdir(local_file)
- for file in listing:
- files.append(os.path.join(local_file, file))
+ file_paths = handle_mime_data_urls(event.mimeData())
Registry().execute('{mime_data}_dnd'.format(mime_data=self.mime_data_text),
- {'files': files})
+ {'file_paths': file_paths})
else:
event.ignore()
@@ -454,16 +464,9 @@
if event.mimeData().hasUrls():
event.setDropAction(QtCore.Qt.CopyAction)
event.accept()
- files = []
- for url in event.mimeData().urls():
- local_file = url.toLocalFile()
- if os.path.isfile(local_file):
- files.append(local_file)
- elif os.path.isdir(local_file):
- listing = os.listdir(local_file)
- for file_name in listing:
- files.append(os.path.join(local_file, file_name))
- Registry().execute('%s_dnd' % self.mime_data_text, {'files': files, 'target': self.itemAt(event.pos())})
+ file_paths = handle_mime_data_urls(event.mimeData())
+ Registry().execute('%s_dnd' % self.mime_data_text,
+ {'file_paths': file_paths, 'target': self.itemAt(event.pos())})
elif self.allow_internal_dnd:
event.setDropAction(QtCore.Qt.CopyAction)
event.accept()
=== modified file 'openlp/plugins/media/lib/mediaitem.py'
--- openlp/plugins/media/lib/mediaitem.py 2017-11-22 21:56:56 +0000
+++ openlp/plugins/media/lib/mediaitem.py 2017-12-24 07:50:03 +0000
@@ -302,7 +302,7 @@
Initialize media item.
"""
self.list_view.clear()
- self.service_path = os.path.join(str(AppLocation.get_section_data_path(self.settings_section)), 'thumbnails')
+ self.service_path = str(AppLocation.get_section_data_path(self.settings_section) / 'thumbnails')
create_paths(Path(self.service_path))
self.load_list([path_to_str(file) for file in Settings().value(self.settings_section + '/media files')])
self.rebuild_players()
=== modified file 'openlp/plugins/songs/lib/importers/powersong.py'
--- openlp/plugins/songs/lib/importers/powersong.py 2017-10-10 02:29:56 +0000
+++ openlp/plugins/songs/lib/importers/powersong.py 2017-12-24 07:50:03 +0000
@@ -24,10 +24,9 @@
PowerSong songs into the OpenLP database.
"""
import logging
-import fnmatch
-import os
from openlp.core.common.i18n import translate
+from openlp.core.common.path import Path
from openlp.plugins.songs.lib.importers.songimport import SongImport
log = logging.getLogger(__name__)
@@ -89,26 +88,25 @@
"""
from openlp.plugins.songs.lib.importer import SongFormat
ps_string = SongFormat.get(SongFormat.PowerSong, 'name')
- if isinstance(self.import_source, str):
- if os.path.isdir(self.import_source):
+ if isinstance(self.import_source, Path):
+ if self.import_source.is_dir():
dir = self.import_source
self.import_source = []
- for file in os.listdir(dir):
- if fnmatch.fnmatch(file, '*.song'):
- self.import_source.append(os.path.join(dir, file))
+ for path in dir.glob('*.song'):
+ self.import_source.append(path)
else:
- self.import_source = ''
+ self.import_source = None
if not self.import_source or not isinstance(self.import_source, list):
self.log_error(translate('SongsPlugin.PowerSongImport', 'No songs to import.'),
translate('SongsPlugin.PowerSongImport', 'No {text} files found.').format(text=ps_string))
return
self.import_wizard.progress_bar.setMaximum(len(self.import_source))
- for file in self.import_source:
+ for file_path in self.import_source:
if self.stop_import_flag:
return
self.set_defaults()
parse_error = False
- with open(file, 'rb') as song_data:
+ with file_path.open('rb') as song_data:
while True:
try:
label = self._read_string(song_data)
@@ -117,7 +115,7 @@
field = self._read_string(song_data)
except ValueError:
parse_error = True
- self.log_error(os.path.basename(file),
+ self.log_error(file_path.name,
translate('SongsPlugin.PowerSongImport',
'Invalid {text} file. Unexpected byte value.').format(text=ps_string))
break
@@ -135,7 +133,7 @@
continue
# Check that file had TITLE field
if not self.title:
- self.log_error(os.path.basename(file),
+ self.log_error(file_path.name,
translate('SongsPlugin.PowerSongImport',
'Invalid {text} file. Missing "TITLE" header.').format(text=ps_string))
continue
=== modified file 'openlp/plugins/songs/lib/importers/sundayplus.py'
--- openlp/plugins/songs/lib/importers/sundayplus.py 2017-09-30 20:16:30 +0000
+++ openlp/plugins/songs/lib/importers/sundayplus.py 2017-12-24 07:50:03 +0000
@@ -60,21 +60,24 @@
for file_path in self.import_source:
if self.stop_import_flag:
return
- with file_path.open('rb') as song_file:
- self.do_import_file(song_file)
-
- def do_import_file(self, file):
- """
- Process the Sunday Plus file object.
- """
- self.set_defaults()
- if not self.parse(file.read()):
- self.log_error(file.name)
- return
- if self.title == '':
- self.title = self.title_from_filename(file.name)
- if not self.finish():
- self.log_error(file.name)
+ self.do_import_file(file_path)
+
+ def do_import_file(self, file_path):
+ """
+ Process the Sunday Plus song file
+
+ :param openlp.core.common.path.Path file_path: The song file to import
+ :rtype: None
+ """
+ with file_path.open('rb') as song_file:
+ self.set_defaults()
+ if not self.parse(song_file.read()):
+ self.log_error(file_path.name)
+ return
+ if self.title == '':
+ self.title = self.title_from_file_path(file_path)
+ if not self.finish():
+ self.log_error(file_path.name)
def parse(self, data, cell=False):
"""
@@ -174,16 +177,15 @@
i += 1
return True
- def title_from_filename(self, filename):
+ def title_from_file_path(self, file_path):
"""
Extract the title from the filename
- :param filename: File name
- :return:
+ :param openlp.core.common.path.Path file_path: File being imported
+ :return: The song title
+ :rtype: str
"""
- title = os.path.split(filename)[1]
- if title.endswith('.ptf'):
- title = title[:-4]
+ title = file_path.stem
# For some strange reason all example files names ended with 1-7.
if title.endswith('1-7'):
title = title[:-3]
=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py 2017-10-10 02:29:56 +0000
+++ openlp/plugins/songs/songsplugin.py 2017-12-24 07:50:03 +0000
@@ -27,6 +27,7 @@
import logging
import os
import sqlite3
+from pathlib import Path
from tempfile import gettempdir
from PyQt5 import QtCore, QtWidgets
@@ -316,17 +317,16 @@
self.application.process_events()
self.on_tools_reindex_item_triggered()
self.application.process_events()
- db_dir = os.path.join(gettempdir(), 'openlp')
- if not os.path.exists(db_dir):
+ db_dir_path = Path(gettempdir(), 'openlp')
+ if not db_dir_path.exists():
return
- song_dbs = []
+ song_db_paths = []
song_count = 0
- for sfile in os.listdir(db_dir):
- if sfile.startswith('songs_') and sfile.endswith('.sqlite'):
- self.application.process_events()
- song_dbs.append(os.path.join(db_dir, sfile))
- song_count += SongsPlugin._count_songs(os.path.join(db_dir, sfile))
- if not song_dbs:
+ for db_file_path in db_dir_path.glob('songs_*.sqlite'):
+ self.application.process_events()
+ song_db_paths.append(db_file_path)
+ song_count += SongsPlugin._count_songs(db_file_path)
+ if not song_db_paths:
return
self.application.process_events()
progress = QtWidgets.QProgressDialog(self.main_window)
@@ -338,8 +338,8 @@
progress.setMinimumDuration(0)
progress.forceShow()
self.application.process_events()
- for db in song_dbs:
- importer = OpenLPSongImport(self.manager, file_path=db)
+ for db_path in song_db_paths:
+ importer = OpenLPSongImport(self.manager, file_path=db_path)
importer.do_import(progress)
self.application.process_events()
progress.setValue(song_count)
@@ -373,13 +373,15 @@
self.manager.delete_object(Song, song.id)
@staticmethod
- def _count_songs(db_file):
+ def _count_songs(db_path):
"""
Provide a count of the songs in the database
- :param db_file: the database name to count
+ :param openlp.core.common.path.Path db_path: The database to use
+ :return: The number of songs in the db.
+ :rtype: int
"""
- connection = sqlite3.connect(db_file)
+ connection = sqlite3.connect(str(db_path))
cursor = connection.cursor()
cursor.execute('SELECT COUNT(id) AS song_count FROM songs')
song_count = cursor.fetchone()[0]
=== modified file 'tests/functional/openlp_core/api/test_tab.py'
--- tests/functional/openlp_core/api/test_tab.py 2017-12-09 15:39:31 +0000
+++ tests/functional/openlp_core/api/test_tab.py 2017-12-24 07:50:03 +0000
@@ -22,7 +22,6 @@
"""
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
@@ -45,7 +44,6 @@
'remotes/download version': '0000_00_00'
}
ZERO_URL = '0.0.0.0'
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources'))
class TestApiTab(TestCase, TestMixin):
=== modified file 'tests/functional/openlp_core/common/test_registry.py'
--- tests/functional/openlp_core/common/test_registry.py 2017-12-15 16:30:10 +0000
+++ tests/functional/openlp_core/common/test_registry.py 2017-12-24 07:50:03 +0000
@@ -22,14 +22,11 @@
"""
Package to test the openlp.core.lib package.
"""
-import os
from unittest import TestCase
from unittest.mock import MagicMock
from openlp.core.common.registry import Registry, RegistryBase
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '../', '..', 'resources'))
-
class TestRegistry(TestCase):
=== modified file 'tests/functional/openlp_core/lib/test_image_manager.py'
--- tests/functional/openlp_core/lib/test_image_manager.py 2017-12-23 09:30:02 +0000
+++ tests/functional/openlp_core/lib/test_image_manager.py 2017-12-24 07:50:03 +0000
@@ -35,8 +35,9 @@
from openlp.core.lib.imagemanager import ImageManager, Priority
from tests.helpers.testmixin import TestMixin
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources'))
+TEST_PATH = str(RESOURCE_PATH)
class TestImageManager(TestCase, TestMixin):
=== modified file 'tests/functional/openlp_core/lib/test_lib.py'
--- tests/functional/openlp_core/lib/test_lib.py 2017-12-23 09:09:45 +0000
+++ tests/functional/openlp_core/lib/test_lib.py 2017-12-24 07:50:03 +0000
@@ -22,7 +22,6 @@
"""
Package to test the openlp.core.lib package.
"""
-import os
from unittest import TestCase
from unittest.mock import MagicMock, patch
@@ -32,8 +31,7 @@
from openlp.core.lib import FormattingTags, build_icon, check_item_selected, clean_tags, compare_chord_lyric, \
create_separated_list, create_thumb, expand_chords, expand_chords_for_printing, expand_tags, find_formatting_tags, \
get_text_file_string, image_to_byte, resize_image, str_to_bool, validate_thumb
-
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources'))
+from tests.utils.constants import RESOURCE_PATH
class TestLib(TestCase):
@@ -273,8 +271,8 @@
Test the create_thumb() function with a given size.
"""
# GIVEN: An image to create a thumb of.
- image_path = Path(TEST_PATH, 'church.jpg')
- thumb_path = Path(TEST_PATH, 'church_thumb.jpg')
+ image_path = RESOURCE_PATH / 'church.jpg'
+ thumb_path = RESOURCE_PATH / 'church_thumb.jpg'
thumb_size = QtCore.QSize(10, 20)
# Remove the thumb so that the test actually tests if the thumb will be created. Maybe it was not deleted in the
@@ -307,8 +305,8 @@
Test the create_thumb() function with no size specified.
"""
# GIVEN: An image to create a thumb of.
- image_path = Path(TEST_PATH, 'church.jpg')
- thumb_path = Path(TEST_PATH, 'church_thumb.jpg')
+ image_path = RESOURCE_PATH / 'church.jpg'
+ thumb_path = RESOURCE_PATH / 'church_thumb.jpg'
expected_size = QtCore.QSize(63, 88)
# Remove the thumb so that the test actually tests if the thumb will be created. Maybe it was not deleted in the
@@ -341,8 +339,8 @@
Test the create_thumb() function with invalid size specified.
"""
# GIVEN: An image to create a thumb of.
- image_path = Path(TEST_PATH, 'church.jpg')
- thumb_path = Path(TEST_PATH, 'church_thumb.jpg')
+ image_path = RESOURCE_PATH / 'church.jpg'
+ thumb_path = RESOURCE_PATH / 'church_thumb.jpg'
thumb_size = QtCore.QSize(-1, -1)
expected_size = QtCore.QSize(63, 88)
@@ -376,8 +374,8 @@
Test the create_thumb() function with a size of only width specified.
"""
# GIVEN: An image to create a thumb of.
- image_path = Path(TEST_PATH, 'church.jpg')
- thumb_path = Path(TEST_PATH, 'church_thumb.jpg')
+ image_path = RESOURCE_PATH / 'church.jpg'
+ thumb_path = RESOURCE_PATH / 'church_thumb.jpg'
thumb_size = QtCore.QSize(100, -1)
expected_size = QtCore.QSize(100, 137)
@@ -411,8 +409,8 @@
Test the create_thumb() function with a size of only height specified.
"""
# GIVEN: An image to create a thumb of.
- image_path = Path(TEST_PATH, 'church.jpg')
- thumb_path = Path(TEST_PATH, 'church_thumb.jpg')
+ image_path = RESOURCE_PATH / 'church.jpg'
+ thumb_path = RESOURCE_PATH / 'church_thumb.jpg'
thumb_size = QtCore.QSize(-1, 100)
expected_size = QtCore.QSize(72, 100)
@@ -446,8 +444,8 @@
Test the create_thumb() function with a size of only height specified.
"""
# GIVEN: An image to create a thumb of.
- image_path = Path(TEST_PATH, 'church.jpg')
- thumb_path = Path(TEST_PATH, 'church_thumb.jpg')
+ image_path = RESOURCE_PATH / 'church.jpg'
+ thumb_path = RESOURCE_PATH / 'church_thumb.jpg'
thumb_size = QtCore.QSize(-1, 100)
expected_size_1 = QtCore.QSize(88, 88)
expected_size_2 = QtCore.QSize(100, 100)
@@ -639,7 +637,7 @@
Test the resize_thumb() function
"""
# GIVEN: A path to an image.
- image_path = os.path.join(TEST_PATH, 'church.jpg')
+ image_path = str(RESOURCE_PATH / 'church.jpg')
wanted_width = 777
wanted_height = 72
# We want the background to be white.
@@ -660,7 +658,7 @@
Test the resize_thumb() function ignoring aspect ratio
"""
# GIVEN: A path to an image.
- image_path = os.path.join(TEST_PATH, 'church.jpg')
+ image_path = str(RESOURCE_PATH / 'church.jpg')
wanted_width = 1000
wanted_height = 1000
# We want the background to be white.
=== modified file 'tests/functional/openlp_core/lib/test_serviceitem.py'
--- tests/functional/openlp_core/lib/test_serviceitem.py 2017-12-18 17:10:04 +0000
+++ tests/functional/openlp_core/lib/test_serviceitem.py 2017-12-24 07:50:03 +0000
@@ -30,9 +30,10 @@
from openlp.core.common.registry import Registry
from openlp.core.common.settings import Settings
from openlp.core.lib import ItemCapabilities, ServiceItem, ServiceItemType, FormattingTags
+
from tests.helpers.testmixin import TestMixin
-
from tests.utils import assert_length, convert_file_service_item
+from tests.utils.constants import RESOURCE_PATH
VERSE = 'The Lord said to {r}Noah{/r}: \n'\
'There\'s gonna be a {su}floody{/su}, {sb}floody{/sb}\n'\
@@ -59,7 +60,7 @@
'<span style="-webkit-text-fill-color:#FFA500">e</span><span style="-webkit-text-fill-color:#800080">'\
'n</span> of the Lord\n'
FOOTER = ['Arky Arky (Unknown)', 'Public Domain', 'CCLI 123456']
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'service'))
+TEST_PATH = str(RESOURCE_PATH / 'service')
__default_settings__ = {
'songs/enable chords': True,
=== modified file 'tests/functional/openlp_core/test_app.py'
--- tests/functional/openlp_core/test_app.py 2017-12-22 15:50:45 +0000
+++ tests/functional/openlp_core/test_app.py 2017-12-24 07:50:03 +0000
@@ -29,7 +29,7 @@
from openlp.core.app import OpenLP, parse_options
from openlp.core.common.settings import Settings
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'resources'))
+from tests.utils.constants import RESOURCE_PATH
def test_parse_options_basic():
@@ -280,7 +280,7 @@
Test the reimplemented event method
"""
# GIVEN: A file path and a QEvent.
- file_path = os.path.join(TEST_PATH, 'church.jpg')
+ file_path = str(RESOURCE_PATH / 'church.jpg')
mocked_file_method = MagicMock(return_value=file_path)
event = QtCore.QEvent(QtCore.QEvent.FileOpen)
event.file = mocked_file_method
=== modified file 'tests/functional/openlp_core/widgets/test_views.py'
--- tests/functional/openlp_core/widgets/test_views.py 2017-12-23 09:22:53 +0000
+++ tests/functional/openlp_core/widgets/test_views.py 2017-12-24 07:50:03 +0000
@@ -22,6 +22,7 @@
"""
Package to test the openlp.core.widgets.views package.
"""
+import os
from types import GeneratorType
from unittest import TestCase
from unittest.mock import MagicMock, patch, call
@@ -30,7 +31,59 @@
from openlp.core.common.i18n import UiStrings
from openlp.core.lib import ImageSource
-from openlp.core.widgets.views import ListPreviewWidget, ListWidgetWithDnD, TreeWidgetWithDnD
+from openlp.core.widgets.views import ListPreviewWidget, ListWidgetWithDnD, TreeWidgetWithDnD, handle_mime_data_urls
+
+
+class TestHandleMimeDataUrls(TestCase):
+ """
+ Test the :func:`openlp.core.widgets.views.handle_mime_data_urls` function.
+ """
+ def test_files(self):
+ """
+ Test handle_mime_data_urls when the data points to some files.
+ """
+ # GIVEN: Some mocked objects that return True when is_file is called, and some mocked mime data
+ mocked_path_instance_1 = MagicMock(**{'is_file.return_value': True})
+ mocked_path_instance_2 = MagicMock(**{'is_file.return_value': True})
+ with patch('openlp.core.widgets.views.Path',
+ side_effect=[mocked_path_instance_1, mocked_path_instance_2]) as mocked_path:
+ mocked_q_url_1 = MagicMock(**{'toLocalFile.return_value': os.path.join('file', 'test', 'path', '1.ext')})
+ mocked_q_url_2 = MagicMock(**{'toLocalFile.return_value': os.path.join('file', 'test', 'path', '2.ext')})
+ mocked_q_mime_data = MagicMock(**{'urls.return_value': [mocked_q_url_1, mocked_q_url_2]})
+
+ # WHEN: Calling handle_mime_data_urls with the mocked mime data
+ result = handle_mime_data_urls(mocked_q_mime_data)
+
+ # THEN: Both mocked Path objects should be returned in the list
+ mocked_path.assert_has_calls([call(os.path.join('file', 'test', 'path', '1.ext')),
+ call(os.path.join('file', 'test', 'path', '2.ext'))])
+ assert result == [mocked_path_instance_1, mocked_path_instance_2]
+
+ def test_directory(self):
+ """
+ Test handle_mime_data_urls when the data points to some directories.
+ """
+ # GIVEN: Some mocked objects that return True when is_dir is called, and some mocked mime data
+ mocked_path_instance_1 = MagicMock()
+ mocked_path_instance_2 = MagicMock()
+ mocked_path_instance_3 = MagicMock()
+ mocked_path_instance_4 = MagicMock(**{'is_file.return_value': False, 'is_directory.return_value': True,
+ 'iterdir.return_value': [mocked_path_instance_1, mocked_path_instance_2]})
+ mocked_path_instance_5 = MagicMock(**{'is_file.return_value': False, 'is_directory.return_value': True,
+ 'iterdir.return_value': [mocked_path_instance_3]})
+ with patch('openlp.core.widgets.views.Path',
+ side_effect=[mocked_path_instance_4, mocked_path_instance_5]) as mocked_path:
+ mocked_q_url_1 = MagicMock(**{'toLocalFile.return_value': os.path.join('file', 'test', 'path')})
+ mocked_q_url_2 = MagicMock(**{'toLocalFile.return_value': os.path.join('file', 'test', 'path')})
+ mocked_q_mime_data = MagicMock(**{'urls.return_value': [mocked_q_url_1, mocked_q_url_2]})
+
+ # WHEN: Calling handle_mime_data_urls with the mocked mime data
+ result = handle_mime_data_urls(mocked_q_mime_data)
+
+ # THEN: The three mocked Path file objects should be returned in the list
+ mocked_path.assert_has_calls([call(os.path.join('file', 'test', 'path')),
+ call(os.path.join('file', 'test', 'path'))])
+ assert result == [mocked_path_instance_1, mocked_path_instance_2, mocked_path_instance_3]
class TestListPreviewWidget(TestCase):
=== modified file 'tests/functional/openlp_plugins/bibles/test_csvimport.py'
--- tests/functional/openlp_plugins/bibles/test_csvimport.py 2017-12-22 15:50:45 +0000
+++ tests/functional/openlp_plugins/bibles/test_csvimport.py 2017-12-24 07:50:03 +0000
@@ -23,8 +23,6 @@
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
@@ -34,9 +32,10 @@
from openlp.plugins.bibles.lib.bibleimport import BibleImport
from openlp.plugins.bibles.lib.importers.csvbible import Book, CSVBible, Verse
+from tests.utils import load_external_result_data
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
- '..', '..', '..', 'resources', 'bibles'))
+TEST_PATH = RESOURCE_PATH / 'bibles'
class TestCSVImport(TestCase):
@@ -332,10 +331,9 @@
"""
# GIVEN: Test files with a mocked out "manager", "import_wizard", and mocked functions
# get_book_ref_id_by_name, create_verse, create_book, session and get_language.
- result_file = open(os.path.join(TEST_PATH, 'dk1933.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
- books_file = Path(TEST_PATH, 'dk1933-books.csv')
- verses_file = Path(TEST_PATH, 'dk1933-verses.csv')
+ test_data = load_external_result_data(TEST_PATH / 'dk1933.json')
+ books_file = TEST_PATH / 'dk1933-books.csv'
+ verses_file = TEST_PATH / 'dk1933-verses.csv'
with patch('openlp.plugins.bibles.lib.importers.csvbible.CSVBible.application'):
mocked_manager = MagicMock()
mocked_import_wizard = MagicMock()
=== modified file 'tests/functional/openlp_plugins/bibles/test_opensongimport.py'
--- tests/functional/openlp_plugins/bibles/test_opensongimport.py 2017-12-23 09:30:02 +0000
+++ tests/functional/openlp_plugins/bibles/test_opensongimport.py 2017-12-24 07:50:03 +0000
@@ -22,22 +22,20 @@
"""
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 openlp.core.common.path import Path
from openlp.core.common.registry 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
+from tests.utils import load_external_result_data
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
- '..', '..', '..', 'resources', 'bibles'))
+TEST_PATH = RESOURCE_PATH / 'bibles'
class TestOpenSongImport(TestCase, TestMixin):
@@ -398,8 +396,7 @@
"""
# GIVEN: Test files with a mocked out "manager", "import_wizard", and mocked functions
# get_book_ref_id_by_name, create_verse, create_book, session and get_language.
- result_file = open(os.path.join(TEST_PATH, 'dk1933.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
+ test_data = load_external_result_data(TEST_PATH / 'dk1933.json')
bible_file = 'opensong-dk1933.xml'
with patch('openlp.plugins.bibles.lib.importers.opensong.OpenSongBible.application'):
mocked_manager = MagicMock()
@@ -414,7 +411,7 @@
importer.get_language.return_value = 'Danish'
# WHEN: Importing bible file
- importer.file_path = Path(TEST_PATH, bible_file)
+ importer.file_path = TEST_PATH / bible_file
importer.do_import()
# THEN: The create_verse() method should have been called with each verse in the file.
=== modified file 'tests/functional/openlp_plugins/bibles/test_osisimport.py'
--- tests/functional/openlp_plugins/bibles/test_osisimport.py 2017-12-22 16:53:40 +0000
+++ tests/functional/openlp_plugins/bibles/test_osisimport.py 2017-12-24 07:50:03 +0000
@@ -22,17 +22,17 @@
"""
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 openlp.core.common.path import Path
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
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'bibles'))
+from tests.utils import load_external_result_data
+from tests.utils.constants import RESOURCE_PATH
+
+TEST_PATH = RESOURCE_PATH / 'bibles'
class TestOsisImport(TestCase):
@@ -420,8 +420,7 @@
"""
# GIVEN: Test files with a mocked out "manager", "import_wizard", and mocked functions
# get_book_ref_id_by_name, create_verse, create_book, session and get_language.
- result_file = open(os.path.join(TEST_PATH, 'dk1933.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
+ test_data = load_external_result_data(TEST_PATH / 'dk1933.json')
bible_file = 'osis-dk1933.xml'
with patch('openlp.plugins.bibles.lib.importers.osis.OSISBible.application'):
mocked_manager = MagicMock()
@@ -436,7 +435,7 @@
importer.get_language.return_value = 'Danish'
# WHEN: Importing bible file
- importer.file_path = Path(TEST_PATH, bible_file)
+ importer.file_path = TEST_PATH / bible_file
importer.do_import()
# THEN: The create_verse() method should have been called with each verse in the file.
@@ -450,8 +449,7 @@
"""
# GIVEN: Test files with a mocked out "manager", "import_wizard", and mocked functions
# get_book_ref_id_by_name, create_verse, create_book, session and get_language.
- result_file = open(os.path.join(TEST_PATH, 'kjv.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
+ test_data = load_external_result_data(TEST_PATH / 'kjv.json')
bible_file = 'osis-kjv.xml'
with patch('openlp.plugins.bibles.lib.importers.osis.OSISBible.application'):
mocked_manager = MagicMock()
@@ -466,7 +464,7 @@
importer.get_language.return_value = 'English'
# WHEN: Importing bible file
- importer.file_path = Path(TEST_PATH, bible_file)
+ importer.file_path = TEST_PATH / bible_file
importer.do_import()
# THEN: The create_verse() method should have been called with each verse in the file.
@@ -480,8 +478,7 @@
"""
# GIVEN: Test files with a mocked out "manager", "import_wizard", and mocked functions
# get_book_ref_id_by_name, create_verse, create_book, session and get_language.
- result_file = open(os.path.join(TEST_PATH, 'web.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
+ test_data = load_external_result_data(TEST_PATH / 'web.json')
bible_file = 'osis-web.xml'
with patch('openlp.plugins.bibles.lib.importers.osis.OSISBible.application'):
mocked_manager = MagicMock()
@@ -496,7 +493,7 @@
importer.get_language.return_value = 'English'
# WHEN: Importing bible file
- importer.file_path = Path(TEST_PATH, bible_file)
+ importer.file_path = TEST_PATH / bible_file
importer.do_import()
# THEN: The create_verse() method should have been called with each verse in the file.
@@ -510,8 +507,7 @@
"""
# GIVEN: Test files with a mocked out "manager", "import_wizard", and mocked functions
# get_book_ref_id_by_name, create_verse, create_book, session and get_language.
- result_file = open(os.path.join(TEST_PATH, 'dk1933.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
+ test_data = load_external_result_data(TEST_PATH / 'dk1933.json')
bible_file = 'osis-dk1933-empty-verse.xml'
with patch('openlp.plugins.bibles.lib.importers.osis.OSISBible.application'):
mocked_manager = MagicMock()
@@ -526,7 +522,7 @@
importer.get_language.return_value = 'Danish'
# WHEN: Importing bible file
- importer.file_path = Path(TEST_PATH, bible_file)
+ importer.file_path = TEST_PATH / bible_file
importer.do_import()
# THEN: The create_verse() method should have been called with each verse in the file.
=== modified file 'tests/functional/openlp_plugins/bibles/test_swordimport.py'
--- tests/functional/openlp_plugins/bibles/test_swordimport.py 2017-12-22 15:50:45 +0000
+++ tests/functional/openlp_plugins/bibles/test_swordimport.py 2017-12-24 07:50:03 +0000
@@ -22,9 +22,6 @@
"""
This module contains tests for the SWORD Bible importer.
"""
-
-import os
-import json
from unittest import TestCase, skipUnless
from unittest.mock import MagicMock, patch
@@ -36,8 +33,10 @@
from openlp.plugins.bibles.lib.db import BibleDB
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
- '..', '..', '..', 'resources', 'bibles'))
+from tests.utils import load_external_result_data
+from tests.utils.constants import RESOURCE_PATH
+
+TEST_PATH = RESOURCE_PATH / 'bibles'
@skipUnless(HAS_PYSWORD, 'pysword not installed')
@@ -81,8 +80,7 @@
mocked_manager = MagicMock()
mocked_import_wizard = MagicMock()
importer = SwordBible(mocked_manager, path='.', name='.', file_path=None, sword_key='', sword_path='')
- result_file = open(os.path.join(TEST_PATH, 'dk1933.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
+ test_data = load_external_result_data(TEST_PATH / 'dk1933.json')
importer.wizard = mocked_import_wizard
importer.get_book_ref_id_by_name = MagicMock()
importer.create_verse = MagicMock()
=== modified file 'tests/functional/openlp_plugins/bibles/test_wordprojectimport.py'
--- tests/functional/openlp_plugins/bibles/test_wordprojectimport.py 2017-10-10 19:09:20 +0000
+++ tests/functional/openlp_plugins/bibles/test_wordprojectimport.py 2017-12-24 07:50:03 +0000
@@ -22,18 +22,17 @@
"""
This module contains tests for the WordProject Bible importer.
"""
-import os
from unittest import TestCase
from unittest.mock import MagicMock, patch, call
from openlp.core.common.path import Path
from openlp.plugins.bibles.lib.importers.wordproject import WordProjectBible
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
- '..', '..', '..', 'resources', 'bibles'))
-INDEX_PAGE = open(os.path.join(TEST_PATH, 'wordproject_index.htm')).read()
-CHAPTER_PAGE = open(os.path.join(TEST_PATH, 'wordproject_chapter.htm')).read()
+TEST_PATH = RESOURCE_PATH / 'bibles'
+INDEX_PAGE = (TEST_PATH / 'wordproject_index.htm').read_bytes().decode()
+CHAPTER_PAGE = (TEST_PATH / 'wordproject_chapter.htm').read_bytes().decode()
class TestWordProjectImport(TestCase):
=== modified file 'tests/functional/openlp_plugins/bibles/test_zefaniaimport.py'
--- tests/functional/openlp_plugins/bibles/test_zefaniaimport.py 2017-12-22 16:53:40 +0000
+++ tests/functional/openlp_plugins/bibles/test_zefaniaimport.py 2017-12-24 07:50:03 +0000
@@ -22,17 +22,16 @@
"""
This module contains tests for the Zefania Bible importer.
"""
-import os
-import json
from unittest import TestCase
from unittest.mock import MagicMock, patch
-from openlp.core.common.path import Path
+from openlp.plugins.bibles.lib.db import BibleDB
from openlp.plugins.bibles.lib.importers.zefania import ZefaniaBible
-from openlp.plugins.bibles.lib.db import BibleDB
-
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
- '..', '..', '..', 'resources', 'bibles'))
+
+from tests.utils import load_external_result_data
+from tests.utils.constants import RESOURCE_PATH
+
+TEST_PATH = RESOURCE_PATH / 'bibles'
class TestZefaniaImport(TestCase):
@@ -67,8 +66,7 @@
"""
# GIVEN: Test files with a mocked out "manager", "import_wizard", and mocked functions
# get_book_ref_id_by_name, create_verse, create_book, session and get_language.
- result_file = open(os.path.join(TEST_PATH, 'dk1933.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
+ test_data = load_external_result_data(TEST_PATH / 'dk1933.json')
bible_file = 'zefania-dk1933.xml'
with patch('openlp.plugins.bibles.lib.importers.zefania.ZefaniaBible.application'):
mocked_manager = MagicMock()
@@ -82,7 +80,7 @@
importer.get_language.return_value = 'Danish'
# WHEN: Importing bible file
- importer.file_path = Path(TEST_PATH, bible_file)
+ importer.file_path = TEST_PATH / bible_file
importer.do_import()
# THEN: The create_verse() method should have been called with each verse in the file.
@@ -97,8 +95,7 @@
"""
# GIVEN: Test files with a mocked out "manager", "import_wizard", and mocked functions
# get_book_ref_id_by_name, create_verse, create_book, session and get_language.
- result_file = open(os.path.join(TEST_PATH, 'rst.json'), 'rb')
- test_data = json.loads(result_file.read().decode())
+ test_data = load_external_result_data(TEST_PATH / 'rst.json')
bible_file = 'zefania-rst.xml'
with patch('openlp.plugins.bibles.lib.importers.zefania.ZefaniaBible.application'):
mocked_manager = MagicMock()
@@ -112,7 +109,7 @@
importer.get_language.return_value = 'Russian'
# WHEN: Importing bible file
- importer.file_path = Path(TEST_PATH, bible_file)
+ importer.file_path = TEST_PATH / bible_file
importer.do_import()
# THEN: The create_verse() method should have been called with each verse in the file.
=== modified file 'tests/functional/openlp_plugins/songs/test_chordproimport.py'
--- tests/functional/openlp_plugins/songs/test_chordproimport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_chordproimport.py 2017-12-24 07:50:03 +0000
@@ -22,15 +22,12 @@
"""
This module contains tests for the OpenSong song importer.
"""
-import os
-
-from openlp.core.common.path import Path
+from unittest.mock import patch, MagicMock
from tests.helpers.songfileimport import SongImportTestHelper
-from unittest.mock import patch, MagicMock
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'chordprosongs'))
+TEST_PATH = RESOURCE_PATH / 'chordprosongs'
class TestChordProFileImport(SongImportTestHelper):
@@ -50,5 +47,5 @@
mocked_returned_settings.value.side_effect = lambda value: True if value == 'songs/enable chords' else False
mocked_settings.return_value = mocked_returned_settings
# Do the test import
- self.file_import([Path(TEST_PATH, 'swing-low.chordpro')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'swing-low.json')))
+ self.file_import([TEST_PATH / 'swing-low.chordpro'],
+ self.load_external_result_data(TEST_PATH / 'swing-low.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_easyslidesimport.py'
--- tests/functional/openlp_plugins/songs/test_easyslidesimport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_easyslidesimport.py 2017-12-24 07:50:03 +0000
@@ -21,14 +21,10 @@
"""
This module contains tests for the EasySlides song importer.
"""
-import os
-
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'easyslidessongs'))
+TEST_PATH = RESOURCE_PATH / 'easyslidessongs'
class TestEasySlidesFileImport(SongImportTestHelper):
@@ -42,7 +38,7 @@
"""
Test that loading an EasySlides file works correctly on various files
"""
- self.file_import(Path(TEST_PATH, 'amazing-grace.xml'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
- self.file_import(Path(TEST_PATH, 'Export_2017-01-12_BB.xml'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'Export_2017-01-12_BB.json')))
+ self.file_import(TEST_PATH / 'amazing-grace.xml',
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
+ self.file_import(TEST_PATH / 'Export_2017-01-12_BB.xml',
+ self.load_external_result_data(TEST_PATH / 'Export_2017-01-12_BB.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_ewimport.py'
--- tests/functional/openlp_plugins/songs/test_ewimport.py 2017-12-24 07:11:30 +0000
+++ tests/functional/openlp_plugins/songs/test_ewimport.py 2017-12-24 07:50:03 +0000
@@ -29,8 +29,9 @@
from openlp.core.common.registry import Registry
from openlp.plugins.songs.lib.importers.easyworship import EasyWorshipSongImport, FieldDescEntry, FieldType
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'easyworshipsongs'))
+from tests.utils.constants import RESOURCE_PATH
+
+TEST_PATH = RESOURCE_PATH / 'easyworshipsongs'
SONG_TEST_DATA = [
{'title': 'Amazing Grace',
'authors': ['John Newton'],
@@ -384,10 +385,10 @@
mocked_retrieve_windows_encoding.assert_any_call(encoding)
def test_db_file_import(self):
- return self._run_db_file_import(os.path.join(TEST_PATH, 'Songs.DB'))
+ return self._run_db_file_import(TEST_PATH / 'Songs.DB')
def test_sqlite_db_file_import(self):
- return self._run_db_file_import(os.path.join(TEST_PATH, 'ew6'))
+ return self._run_db_file_import(TEST_PATH / 'ew6')
def _run_db_file_import(self, source_path):
"""
@@ -417,7 +418,8 @@
importer.topics = []
# WHEN: Importing each file
- importer.import_source = source_path
+ # TODO: To Path object
+ importer.import_source = str(source_path)
import_result = importer.do_import()
# THEN: do_import should return none, the song data should be as expected, and finish should have been
@@ -471,7 +473,7 @@
importer.topics = []
# WHEN: Importing ews file
- importer.import_source = os.path.join(TEST_PATH, 'test1.ews')
+ importer.import_source = str(TEST_PATH / 'test1.ews')
import_result = importer.do_import()
# THEN: do_import should return none, the song data should be as expected, and finish should have been
=== modified file 'tests/functional/openlp_plugins/songs/test_foilpresenterimport.py'
--- tests/functional/openlp_plugins/songs/test_foilpresenterimport.py 2017-12-22 22:20:04 +0000
+++ tests/functional/openlp_plugins/songs/test_foilpresenterimport.py 2017-12-24 07:50:03 +0000
@@ -22,15 +22,11 @@
"""
This module contains tests for the SongShow Plus song importer.
"""
-import os
from unittest import TestCase
from unittest.mock import patch, MagicMock
from openlp.plugins.songs.lib.importers.foilpresenter import FoilPresenter
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', '/resources/foilpresentersongs'))
-
class TestFoilPresenter(TestCase):
"""
=== modified file 'tests/functional/openlp_plugins/songs/test_lyriximport.py'
--- tests/functional/openlp_plugins/songs/test_lyriximport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_lyriximport.py 2017-12-24 07:50:03 +0000
@@ -21,14 +21,10 @@
"""
This module contains tests for the LyriX song importer.
"""
-import os
-
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'lyrixsongs'))
+TEST_PATH = RESOURCE_PATH / 'lyrixsongs'
class TestLyrixFileImport(SongImportTestHelper):
@@ -42,9 +38,9 @@
"""
Test that loading an LyriX file works correctly on various files
"""
- self.file_import([Path(TEST_PATH, 'A06.TXT')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
- self.file_import([Path(TEST_PATH, 'A002.TXT')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace2.json')))
- self.file_import([Path(TEST_PATH, 'AO05.TXT')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'in die regterhand.json')))
+ self.file_import([TEST_PATH / 'A06.TXT'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
+ self.file_import([TEST_PATH / 'A002.TXT'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace2.json'))
+ self.file_import([TEST_PATH / 'AO05.TXT'],
+ self.load_external_result_data(TEST_PATH / 'in die regterhand.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_openlyricsimport.py'
--- tests/functional/openlp_plugins/songs/test_openlyricsimport.py 2017-12-23 09:22:53 +0000
+++ tests/functional/openlp_plugins/songs/test_openlyricsimport.py 2017-12-24 07:50:03 +0000
@@ -22,14 +22,12 @@
"""
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 openlp.core.common.path import Path
from openlp.core.common.registry import Registry
from openlp.core.common.settings import Settings
from openlp.plugins.songs.lib.importers.openlyrics import OpenLyricsImport
@@ -37,9 +35,9 @@
from openlp.plugins.songs.lib.openlyricsxml import OpenLyrics
from tests.helpers.testmixin import TestMixin
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
- '..', '..', '..', 'resources', 'openlyricssongs'))
+TEST_PATH = RESOURCE_PATH / 'openlyricssongs'
SONG_TEST_DATA = {
'What a friend we have in Jesus.xml': {
'title': 'What A Friend We Have In Jesus',
@@ -130,7 +128,7 @@
importer.open_lyrics.xml_to_song = MagicMock()
# WHEN: Importing each file
- importer.import_source = [Path(TEST_PATH, song_file)]
+ importer.import_source = [TEST_PATH / song_file]
importer.do_import()
# THEN: The xml_to_song() method should have been called
@@ -145,7 +143,7 @@
Settings().setValue('formattingTags/html_tags', json.dumps(start_tags))
ol = OpenLyrics(mocked_manager)
parser = etree.XMLParser(remove_blank_text=True)
- parsed_file = etree.parse(open(os.path.join(TEST_PATH, 'duchu-tags.xml'), 'rb'), parser)
+ parsed_file = etree.parse((TEST_PATH / 'duchu-tags.xml').open('rb'), parser)
xml = etree.tostring(parsed_file).decode()
song_xml = objectify.fromstring(xml)
=== modified file 'tests/functional/openlp_plugins/songs/test_opensongimport.py'
--- tests/functional/openlp_plugins/songs/test_opensongimport.py 2017-12-22 22:20:04 +0000
+++ tests/functional/openlp_plugins/songs/test_opensongimport.py 2017-12-24 07:50:03 +0000
@@ -22,18 +22,16 @@
"""
This module contains tests for the OpenSong song importer.
"""
-import os
from unittest import TestCase
from unittest.mock import patch, MagicMock
from openlp.core.common.registry import Registry
-from openlp.core.common.path import Path
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'opensongsongs'))
+TEST_PATH = RESOURCE_PATH / 'opensongsongs'
class TestOpenSongFileImport(SongImportTestHelper):
@@ -53,16 +51,16 @@
mocked_returned_settings.value.side_effect = lambda value: True if value == 'songs/enable chords' else False
mocked_settings.return_value = mocked_returned_settings
# Do the test import
- self.file_import([Path(TEST_PATH, 'Amazing Grace')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
- self.file_import([Path(TEST_PATH, 'Beautiful Garden Of Prayer')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Beautiful Garden Of Prayer.json')))
- self.file_import([Path(TEST_PATH, 'One, Two, Three, Four, Five')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'One, Two, Three, Four, Five.json')))
- self.file_import([Path(TEST_PATH, 'Amazing Grace2')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
- self.file_import([Path(TEST_PATH, 'Amazing Grace with bad CCLI')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace without CCLI.json')))
+ self.file_import([TEST_PATH / 'Amazing Grace'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
+ self.file_import([TEST_PATH / 'Beautiful Garden Of Prayer'],
+ self.load_external_result_data(TEST_PATH / 'Beautiful Garden Of Prayer.json'))
+ self.file_import([TEST_PATH / 'One, Two, Three, Four, Five'],
+ self.load_external_result_data(TEST_PATH / 'One, Two, Three, Four, Five.json'))
+ self.file_import([TEST_PATH / 'Amazing Grace2'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
+ self.file_import([TEST_PATH / 'Amazing Grace with bad CCLI'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace without CCLI.json'))
class TestOpenSongImport(TestCase):
=== modified file 'tests/functional/openlp_plugins/songs/test_opsproimport.py'
--- tests/functional/openlp_plugins/songs/test_opsproimport.py 2017-12-22 21:04:29 +0000
+++ tests/functional/openlp_plugins/songs/test_opsproimport.py 2017-12-24 07:50:03 +0000
@@ -22,8 +22,6 @@
"""
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
@@ -34,7 +32,10 @@
except ImportError:
CAN_RUN_TESTS = False
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'opsprosongs'))
+from tests.utils import load_external_result_data
+from tests.utils.constants import RESOURCE_PATH
+
+TEST_PATH = RESOURCE_PATH / 'opsprosongs'
def _get_item(data, key):
@@ -59,8 +60,7 @@
song.Version = '1'
song.Origin = '...'
lyrics = MagicMock()
- test_file = open(os.path.join(TEST_PATH, test_file), 'rb')
- lyrics.Lyrics = test_file.read().decode()
+ lyrics.Lyrics = (TEST_PATH / test_file).read_bytes().decode()
lyrics.Type = 1
lyrics.IsDualLanguage = dual_language
return song, lyrics
@@ -106,8 +106,7 @@
importer.process_song(song, lyrics, [])
# THEN: The imported data should look like expected
- result_file = open(os.path.join(TEST_PATH, 'You are so faithful.json'), 'rb')
- result_data = json.loads(result_file.read().decode())
+ result_data = load_external_result_data(TEST_PATH / 'You are so faithful.json')
assert importer.verses == _get_item(result_data, 'verses')
assert importer.verse_order_list_generated == _get_item(result_data, 'verse_order_list')
@@ -126,8 +125,7 @@
importer.process_song(song, lyrics, [])
# THEN: The imported data should look like expected
- result_file = open(os.path.join(TEST_PATH, 'Amazing Grace.json'), 'rb')
- result_data = json.loads(result_file.read().decode())
+ result_data = load_external_result_data(TEST_PATH / 'Amazing Grace.json')
assert importer.verses == _get_item(result_data, 'verses')
assert importer.verse_order_list_generated == _get_item(result_data, 'verse_order_list')
@@ -146,8 +144,7 @@
importer.process_song(song, lyrics, [])
# THEN: The imported data should look like expected
- result_file = open(os.path.join(TEST_PATH, 'Amazing Grace.json'), 'rb')
- result_data = json.loads(result_file.read().decode())
+ result_data = load_external_result_data(TEST_PATH / 'Amazing Grace.json')
assert importer.verses == _get_item(result_data, 'verses')
assert importer.verse_order_list_generated == _get_item(result_data, 'verse_order_list')
@@ -166,7 +163,6 @@
importer.process_song(song, lyrics, [])
# THEN: The imported data should look like expected
- result_file = open(os.path.join(TEST_PATH, 'Amazing Grace3.json'), 'rb')
- result_data = json.loads(result_file.read().decode())
+ result_data = load_external_result_data(TEST_PATH / 'Amazing Grace3.json')
assert importer.verses == _get_item(result_data, 'verses')
assert importer.verse_order_list_generated == _get_item(result_data, 'verse_order_list')
=== modified file 'tests/functional/openlp_plugins/songs/test_powerpraiseimport.py'
--- tests/functional/openlp_plugins/songs/test_powerpraiseimport.py 2017-10-10 02:29:56 +0000
+++ tests/functional/openlp_plugins/songs/test_powerpraiseimport.py 2017-12-24 07:50:03 +0000
@@ -23,14 +23,10 @@
The :mod:`powerpraiseimport` module provides the functionality for importing
ProPresenter song files into the current installation database.
"""
-import os
-
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'powerpraisesongs'))
+TEST_PATH = RESOURCE_PATH / 'powerpraisesongs'
class TestPowerPraiseFileImport(SongImportTestHelper):
@@ -44,7 +40,7 @@
"""
Test that loading a PowerPraise file works correctly
"""
- self.file_import([Path(TEST_PATH, 'Naher, mein Gott zu Dir.ppl')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Naher, mein Gott zu Dir.json')))
- self.file_import([Path(TEST_PATH, 'You are so faithful.ppl')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'You are so faithful.json')))
+ self.file_import([TEST_PATH / 'Naher, mein Gott zu Dir.ppl'],
+ self.load_external_result_data(TEST_PATH / 'Naher, mein Gott zu Dir.json'))
+ self.file_import([TEST_PATH / 'You are so faithful.ppl'],
+ self.load_external_result_data(TEST_PATH / 'You are so faithful.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_presentationmanagerimport.py'
--- tests/functional/openlp_plugins/songs/test_presentationmanagerimport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_presentationmanagerimport.py 2017-12-24 07:50:03 +0000
@@ -22,14 +22,10 @@
"""
This module contains tests for the PresentationManager song importer.
"""
-import os
-
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'presentationmanagersongs'))
+TEST_PATH = RESOURCE_PATH / 'presentationmanagersongs'
class TestPresentationManagerFileImport(SongImportTestHelper):
@@ -43,7 +39,7 @@
"""
Test that loading a PresentationManager file works correctly
"""
- self.file_import([Path(TEST_PATH, 'Great Is Thy Faithfulness.sng')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Great Is Thy Faithfulness.json')))
- self.file_import([Path(TEST_PATH, 'Amazing Grace.sng')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
+ self.file_import([TEST_PATH / 'Great Is Thy Faithfulness.sng'],
+ self.load_external_result_data(TEST_PATH / 'Great Is Thy Faithfulness.json'))
+ self.file_import([TEST_PATH / 'Amazing Grace.sng'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_propresenterimport.py'
--- tests/functional/openlp_plugins/songs/test_propresenterimport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_propresenterimport.py 2017-12-24 07:50:03 +0000
@@ -23,14 +23,10 @@
The :mod:`propresenterimport` module provides the functionality for importing
ProPresenter song files into the current installation database.
"""
-import os
-
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'propresentersongs'))
+TEST_PATH = RESOURCE_PATH / 'propresentersongs'
class TestProPresenterFileImport(SongImportTestHelper):
@@ -44,19 +40,19 @@
"""
Test that loading a ProPresenter 4 file works correctly
"""
- self.file_import([Path(TEST_PATH, 'Amazing Grace.pro4')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
+ self.file_import([TEST_PATH / 'Amazing Grace.pro4'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
def test_pro5_song_import(self):
"""
Test that loading a ProPresenter 5 file works correctly
"""
- self.file_import([Path(TEST_PATH, 'Amazing Grace.pro5')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
+ self.file_import([TEST_PATH / 'Amazing Grace.pro5'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
def test_pro6_song_import(self):
"""
Test that loading a ProPresenter 6 file works correctly
"""
- self.file_import([Path(TEST_PATH, 'Amazing Grace.pro6')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
+ self.file_import([TEST_PATH / 'Amazing Grace.pro6'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_songbeamerimport.py'
--- tests/functional/openlp_plugins/songs/test_songbeamerimport.py 2017-12-23 07:55:26 +0000
+++ tests/functional/openlp_plugins/songs/test_songbeamerimport.py 2017-12-24 07:50:03 +0000
@@ -22,18 +22,16 @@
"""
This module contains tests for the Songbeamer song importer.
"""
-import os
from unittest import TestCase
from unittest.mock import MagicMock, patch
from openlp.core.common.registry import Registry
-from openlp.core.common.path import Path
from openlp.plugins.songs.lib.importers.songbeamer import SongBeamerImport, SongBeamerTypes
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),
- '..', '..', '..', 'resources', 'songbeamersongs'))
+TEST_PATH = RESOURCE_PATH / 'songbeamersongs'
class TestSongBeamerFileImport(SongImportTestHelper):
@@ -52,19 +50,19 @@
mocked_returned_settings = MagicMock()
mocked_returned_settings.value.side_effect = lambda value: True if value == 'songs/enable chords' else False
mocked_settings.return_value = mocked_returned_settings
- self.file_import([Path(TEST_PATH, 'Amazing Grace.sng')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
- self.file_import([Path(TEST_PATH, 'Lobsinget dem Herrn.sng')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Lobsinget dem Herrn.json')))
- self.file_import([Path(TEST_PATH, 'When I Call On You.sng')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'When I Call On You.json')))
+ self.file_import([TEST_PATH / 'Amazing Grace.sng'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
+ self.file_import([TEST_PATH / 'Lobsinget dem Herrn.sng'],
+ self.load_external_result_data(TEST_PATH / 'Lobsinget dem Herrn.json'))
+ self.file_import([TEST_PATH / 'When I Call On You.sng'],
+ self.load_external_result_data(TEST_PATH / 'When I Call On You.json'))
def test_cp1252_encoded_file(self):
"""
Test that a CP1252 encoded file get's decoded properly.
"""
- self.file_import([Path(TEST_PATH, 'cp1252song.sng')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'cp1252song.json')))
+ self.file_import([TEST_PATH / 'cp1252song.sng'],
+ self.load_external_result_data(TEST_PATH / 'cp1252song.json'))
class TestSongBeamerImport(TestCase):
=== modified file 'tests/functional/openlp_plugins/songs/test_songproimport.py'
--- tests/functional/openlp_plugins/songs/test_songproimport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_songproimport.py 2017-12-24 07:50:03 +0000
@@ -23,14 +23,10 @@
The :mod:`songproimport` module provides the functionality for importing
SongPro song files into the current installation database.
"""
-import os
-
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'songprosongs'))
+TEST_PATH = RESOURCE_PATH / 'songprosongs'
class TestSongProFileImport(SongImportTestHelper):
@@ -44,5 +40,5 @@
"""
Test that loading an SongPro file works correctly
"""
- self.file_import(Path(TEST_PATH, 'amazing-grace.txt'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
+ self.file_import(TEST_PATH / 'amazing-grace.txt',
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_songselect.py'
--- tests/functional/openlp_plugins/songs/test_songselect.py 2017-12-24 07:11:30 +0000
+++ tests/functional/openlp_plugins/songs/test_songselect.py 2017-12-24 07:50:03 +0000
@@ -23,7 +23,6 @@
"""
This module contains tests for the CCLI SongSelect importer.
"""
-import os
from unittest import TestCase
from unittest.mock import MagicMock, patch, call
from urllib.error import URLError
@@ -31,16 +30,15 @@
from PyQt5 import QtWidgets
from openlp.core.common.registry import Registry
-from openlp.core.common.path import Path
from openlp.plugins.songs.forms.songselectform import SongSelectForm, SearchWorker
from openlp.plugins.songs.lib import Song
from openlp.plugins.songs.lib.songselect import SongSelectImport, LOGOUT_URL, BASE_URL
from tests.helpers.songfileimport import SongImportTestHelper
from tests.helpers.testmixin import TestMixin
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'songselect'))
+TEST_PATH = RESOURCE_PATH / 'songselect'
class TestSongSelectImport(TestCase, TestMixin):
@@ -812,10 +810,8 @@
"""
Test that loading an OpenSong file works correctly on various files
"""
- self.file_import([Path(TEST_PATH, 'TestSong.bin')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'TestSong-bin.json')))
- self.file_import([Path(TEST_PATH, 'TestSong.txt')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'TestSong-txt.json')))
+ self.file_import([TEST_PATH / 'TestSong.bin'], self.load_external_result_data(TEST_PATH / 'TestSong-bin.json'))
+ self.file_import([TEST_PATH / 'TestSong.txt'], self.load_external_result_data(TEST_PATH / 'TestSong-txt.json'))
class TestSearchWorker(TestCase, TestMixin):
=== modified file 'tests/functional/openlp_plugins/songs/test_songshowplusimport.py'
--- tests/functional/openlp_plugins/songs/test_songshowplusimport.py 2017-12-22 22:20:04 +0000
+++ tests/functional/openlp_plugins/songs/test_songshowplusimport.py 2017-12-24 07:50:03 +0000
@@ -22,18 +22,16 @@
"""
This module contains tests for the SongShow Plus song importer.
"""
-import os
from unittest import TestCase
from unittest.mock import patch, MagicMock
-from openlp.core.common.path import Path
from openlp.plugins.songs.lib import VerseType
from openlp.plugins.songs.lib.importers.songshowplus import SongShowPlusImport
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'songshowplussongs'))
+TEST_PATH = RESOURCE_PATH / 'songshowplussongs'
class TestSongShowPlusFileImport(SongImportTestHelper):
@@ -47,14 +45,14 @@
"""
Test that loading a SongShow Plus file works correctly on various files
"""
- self.file_import([Path(TEST_PATH, 'Amazing Grace.sbsong')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
- self.file_import([Path(TEST_PATH, 'Beautiful Garden Of Prayer.sbsong')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Beautiful Garden Of Prayer.json')))
- self.file_import([Path(TEST_PATH, 'a mighty fortress is our god.sbsong')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'a mighty fortress is our god.json')))
- self.file_import([Path(TEST_PATH, 'cleanse-me.sbsong')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'cleanse-me.json')))
+ self.file_import([TEST_PATH / 'Amazing Grace.sbsong'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
+ self.file_import([TEST_PATH / 'Beautiful Garden Of Prayer.sbsong'],
+ self.load_external_result_data(TEST_PATH / 'Beautiful Garden Of Prayer.json'))
+ self.file_import([TEST_PATH / 'a mighty fortress is our god.sbsong'],
+ self.load_external_result_data(TEST_PATH / 'a mighty fortress is our god.json'))
+ self.file_import([TEST_PATH / 'cleanse-me.sbsong'],
+ self.load_external_result_data(TEST_PATH / 'cleanse-me.json'))
class TestSongShowPlusImport(TestCase):
=== modified file 'tests/functional/openlp_plugins/songs/test_sundayplusimport.py'
--- tests/functional/openlp_plugins/songs/test_sundayplusimport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_sundayplusimport.py 2017-12-24 07:50:03 +0000
@@ -21,15 +21,12 @@
"""
This module contains tests for the SundayPlus song importer.
"""
-import os
from unittest.mock import patch
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'sundayplussongs'))
+TEST_PATH = RESOURCE_PATH / 'sundayplussongs'
class TestSundayPlusFileImport(SongImportTestHelper):
@@ -46,5 +43,5 @@
with patch('openlp.plugins.songs.lib.importers.sundayplus.retrieve_windows_encoding') as \
mocked_retrieve_windows_encoding:
mocked_retrieve_windows_encoding.return_value = 'cp1252'
- self.file_import([Path(TEST_PATH, 'Amazing Grace.ptf')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
+ self.file_import([TEST_PATH / 'Amazing Grace.ptf'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_videopsalm.py'
--- tests/functional/openlp_plugins/songs/test_videopsalm.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_videopsalm.py 2017-12-24 07:50:03 +0000
@@ -21,15 +21,12 @@
"""
This module contains tests for the VideoPsalm song importer.
"""
-import os
-
-from openlp.core.common.path import Path
+from unittest.mock import patch, MagicMock
from tests.helpers.songfileimport import SongImportTestHelper
-from unittest.mock import patch, MagicMock
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'videopsalmsongs'))
+TEST_PATH = RESOURCE_PATH / 'videopsalmsongs'
class TestVideoPsalmFileImport(SongImportTestHelper):
@@ -49,7 +46,7 @@
mocked_returned_settings.value.side_effect = lambda value: True if value == 'songs/enable chords' else False
mocked_settings.return_value = mocked_returned_settings
# Do the test import
- self.file_import(Path(TEST_PATH, 'videopsalm-as-safe-a-stronghold.json'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'as-safe-a-stronghold.json')))
- self.file_import(Path(TEST_PATH, 'videopsalm-as-safe-a-stronghold2.json'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'as-safe-a-stronghold2.json')))
+ self.file_import(TEST_PATH / 'videopsalm-as-safe-a-stronghold.json',
+ self.load_external_result_data(TEST_PATH / 'as-safe-a-stronghold.json'))
+ self.file_import(TEST_PATH / 'videopsalm-as-safe-a-stronghold2.json',
+ self.load_external_result_data(TEST_PATH / 'as-safe-a-stronghold2.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_wordsofworshipimport.py'
--- tests/functional/openlp_plugins/songs/test_wordsofworshipimport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_wordsofworshipimport.py 2017-12-24 07:50:03 +0000
@@ -22,15 +22,10 @@
"""
This module contains tests for the Words of Worship song importer.
"""
-import os
-
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
-from openlp.plugins.songs.lib.importers.wordsofworship import WordsOfWorshipImport
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'wordsofworshipsongs'))
+TEST_PATH = RESOURCE_PATH / 'wordsofworshipsongs'
class TestWordsOfWorshipFileImport(SongImportTestHelper):
@@ -44,10 +39,9 @@
"""
Test that loading a Words of Worship file works correctly
"""
- self.file_import([Path(TEST_PATH, 'Amazing Grace (6 Verses).wow-song')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace (6 Verses).json')))
- self.file_import([Path(TEST_PATH, 'When morning gilds the skies.wsg')],
- self.load_external_result_data(os.path.join(TEST_PATH, 'When morning gilds the skies.json')))
- self.file_import([Path(TEST_PATH, 'Holy Holy Holy Lord God Almighty.wow-song')],
- self.load_external_result_data(os.path.join(TEST_PATH,
- 'Holy Holy Holy Lord God Almighty.json')))
+ self.file_import([TEST_PATH / 'Amazing Grace (6 Verses).wow-song'],
+ self.load_external_result_data(TEST_PATH / 'Amazing Grace (6 Verses).json'))
+ self.file_import([TEST_PATH / 'When morning gilds the skies.wsg'],
+ self.load_external_result_data(TEST_PATH / 'When morning gilds the skies.json'))
+ self.file_import([TEST_PATH / 'Holy Holy Holy Lord God Almighty.wow-song'],
+ self.load_external_result_data(TEST_PATH / 'Holy Holy Holy Lord God Almighty.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_worshipassistantimport.py'
--- tests/functional/openlp_plugins/songs/test_worshipassistantimport.py 2017-09-30 20:16:30 +0000
+++ tests/functional/openlp_plugins/songs/test_worshipassistantimport.py 2017-12-24 07:50:03 +0000
@@ -23,14 +23,10 @@
The :mod:`worshipassistantimport` module provides the functionality for importing
WorshipAssistant song files into the current installation database.
"""
-import os
-
-from openlp.core.common.path import Path
-
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'worshipassistantsongs'))
+TEST_PATH = RESOURCE_PATH / 'worshipassistantsongs'
class TestWorshipAssistantFileImport(SongImportTestHelper):
@@ -44,9 +40,8 @@
"""
Test that loading an Worship Assistant file works correctly
"""
- self.file_import(Path(TEST_PATH, 'du_herr.csv'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'du_herr.json')))
- self.file_import(Path(TEST_PATH, 'would_you_be_free.csv'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'would_you_be_free.json')))
- self.file_import(Path(TEST_PATH, 'would_you_be_free2.csv'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'would_you_be_free.json')))
+ self.file_import(TEST_PATH / 'du_herr.csv', self.load_external_result_data(TEST_PATH / 'du_herr.json'))
+ self.file_import(TEST_PATH / 'would_you_be_free.csv',
+ self.load_external_result_data(TEST_PATH / 'would_you_be_free.json'))
+ self.file_import(TEST_PATH / 'would_you_be_free2.csv',
+ self.load_external_result_data(TEST_PATH / 'would_you_be_free.json'))
=== modified file 'tests/functional/openlp_plugins/songs/test_zionworximport.py'
--- tests/functional/openlp_plugins/songs/test_zionworximport.py 2017-12-22 16:53:40 +0000
+++ tests/functional/openlp_plugins/songs/test_zionworximport.py 2017-12-24 07:50:03 +0000
@@ -22,19 +22,17 @@
"""
This module contains tests for the ZionWorx song importer.
"""
-import os
from unittest import TestCase
from unittest.mock import MagicMock, patch
from openlp.core.common.registry import Registry
-from openlp.core.common.path import Path
+from openlp.plugins.songs.lib.importers.songimport import SongImport
from openlp.plugins.songs.lib.importers.zionworx import ZionWorxImport
-from openlp.plugins.songs.lib.importers.songimport import SongImport
from tests.helpers.songfileimport import SongImportTestHelper
+from tests.utils.constants import RESOURCE_PATH
-TEST_PATH = os.path.abspath(
- os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'zionworxsongs'))
+TEST_PATH = RESOURCE_PATH / 'zionworxsongs'
class TestZionWorxImport(TestCase):
@@ -73,5 +71,4 @@
"""
Test that loading an ZionWorx file works correctly on various files
"""
- self.file_import(Path(TEST_PATH, 'zionworx.csv'),
- self.load_external_result_data(os.path.join(TEST_PATH, 'zionworx.json')))
+ self.file_import(TEST_PATH / 'zionworx.csv', self.load_external_result_data(TEST_PATH / 'zionworx.json'))
=== modified file 'tests/helpers/songfileimport.py'
--- tests/helpers/songfileimport.py 2017-12-23 09:09:45 +0000
+++ tests/helpers/songfileimport.py 2017-12-24 07:50:03 +0000
@@ -29,7 +29,6 @@
from unittest.mock import MagicMock, patch, call
from openlp.core.common.registry import Registry
-from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
log = logging.getLogger(__name__)
@@ -78,12 +77,13 @@
self.add_author_patcher.stop()
self.song_import_patcher.stop()
- def load_external_result_data(self, file_name):
+ def load_external_result_data(self, file_path):
"""
A method to load and return an object containing the song data from an external file.
+
+ :param openlp.core.common.path.Path file_path: The path of the file to load
"""
- result_file = open(file_name, 'rb')
- return json.loads(result_file.read().decode())
+ return json.loads(file_path.read_bytes().decode())
def file_import(self, source_file_name, result_data):
"""
=== modified file 'tests/interfaces/openlp_core/ui/media/vendor/test_mediainfoWrapper.py'
--- tests/interfaces/openlp_core/ui/media/vendor/test_mediainfoWrapper.py 2017-12-23 09:09:45 +0000
+++ tests/interfaces/openlp_core/ui/media/vendor/test_mediainfoWrapper.py 2017-12-24 07:50:03 +0000
@@ -22,13 +22,13 @@
"""
Package to test the openlp.core.ui.media package.
"""
-
-import os
from unittest import TestCase
from openlp.core.ui.media.vendor.mediainfoWrapper import MediaInfoWrapper
-TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..', 'resources', 'media'))
+from tests.utils.constants import RESOURCE_PATH
+
+TEST_PATH = RESOURCE_PATH / 'media'
TEST_MEDIA = [['avi_file.avi', 61495], ['mp3_file.mp3', 134426], ['mpg_file.mpg', 9404], ['mp4_file.mp4', 188336]]
@@ -40,7 +40,7 @@
"""
for test_data in TEST_MEDIA:
# GIVEN: a media file
- full_path = os.path.normpath(os.path.join(TEST_PATH, test_data[0]))
+ full_path = str(TEST_PATH / test_data[0])
# WHEN the media data is retrieved
results = MediaInfoWrapper.parse(full_path)
=== modified file 'tests/utils/__init__.py'
--- tests/utils/__init__.py 2017-11-03 20:55:41 +0000
+++ tests/utils/__init__.py 2017-12-24 07:50:03 +0000
@@ -41,3 +41,12 @@
finally:
open_file.close()
return first_line
+
+
+def load_external_result_data(file_path):
+ """
+ A method to load and return an object containing the song data from an external file.
+
+ :param openlp.core.common.path.Path file_path: The path of the file to load
+ """
+ return json.loads(file_path.read_bytes().decode())
=== modified file 'tests/utils/constants.py'
--- tests/utils/constants.py 2013-08-31 18:17:38 +0000
+++ tests/utils/constants.py 2017-12-24 07:50:03 +0000
@@ -1,5 +1,8 @@
import os
+from openlp.core.common.path import Path
+
OPENLP_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
TEST_RESOURCES_PATH = os.path.join(OPENLP_PATH, 'tests', 'resources')
+RESOURCE_PATH = Path(TEST_RESOURCES_PATH)
Follow ups