forked from openlp/openlp
pathlib cleanups
This commit is contained in:
parent
1fe56bc089
commit
50598e9058
@ -39,8 +39,8 @@ def deploy_zipfile(app_root_path, zip_name):
|
|||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
zip_path = app_root_path / zip_name
|
zip_path = app_root_path / zip_name
|
||||||
web_zip = ZipFile(str(zip_path))
|
web_zip = ZipFile(zip_path)
|
||||||
web_zip.extractall(str(app_root_path))
|
web_zip.extractall(app_root_path)
|
||||||
|
|
||||||
|
|
||||||
def download_sha256():
|
def download_sha256():
|
||||||
|
@ -317,8 +317,7 @@ def set_up_logging(log_path):
|
|||||||
"""
|
"""
|
||||||
create_paths(log_path, do_not_log=True)
|
create_paths(log_path, do_not_log=True)
|
||||||
file_path = log_path / 'openlp.log'
|
file_path = log_path / 'openlp.log'
|
||||||
# TODO: FileHandler accepts a Path object in Py3.6
|
logfile = logging.FileHandler(file_path, 'w', encoding='UTF-8')
|
||||||
logfile = logging.FileHandler(str(file_path), 'w', encoding='UTF-8')
|
|
||||||
logfile.setFormatter(logging.Formatter('%(asctime)s %(threadName)s %(name)-55s %(levelname)-8s %(message)s'))
|
logfile.setFormatter(logging.Formatter('%(asctime)s %(threadName)s %(name)-55s %(levelname)-8s %(message)s'))
|
||||||
log.addHandler(logfile)
|
log.addHandler(logfile)
|
||||||
if log.isEnabledFor(logging.DEBUG):
|
if log.isEnabledFor(logging.DEBUG):
|
||||||
@ -364,7 +363,7 @@ def main(args=None):
|
|||||||
portable_settings_path = data_path / 'OpenLP.ini'
|
portable_settings_path = data_path / 'OpenLP.ini'
|
||||||
# Make this our settings file
|
# Make this our settings file
|
||||||
log.info('INI file: {name}'.format(name=portable_settings_path))
|
log.info('INI file: {name}'.format(name=portable_settings_path))
|
||||||
Settings.set_filename(str(portable_settings_path))
|
Settings.set_filename(portable_settings_path)
|
||||||
portable_settings = Settings()
|
portable_settings = Settings()
|
||||||
# Set our data path
|
# Set our data path
|
||||||
log.info('Data path: {name}'.format(name=data_path))
|
log.info('Data path: {name}'.format(name=data_path))
|
||||||
|
@ -78,7 +78,7 @@ class Path(PathVariant):
|
|||||||
:param onerror: Handler function to handle any errors
|
:param onerror: Handler function to handle any errors
|
||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
shutil.rmtree(str(self), ignore_errors, onerror)
|
shutil.rmtree(self, ignore_errors, onerror)
|
||||||
|
|
||||||
|
|
||||||
def replace_params(args, kwargs, params):
|
def replace_params(args, kwargs, params):
|
||||||
|
@ -144,7 +144,7 @@ def get_db_path(plugin_name, db_file_name=None):
|
|||||||
return 'sqlite:///{path}/{name}'.format(path=AppLocation.get_section_data_path(plugin_name), name=db_file_name)
|
return 'sqlite:///{path}/{name}'.format(path=AppLocation.get_section_data_path(plugin_name), name=db_file_name)
|
||||||
|
|
||||||
|
|
||||||
def handle_db_error(plugin_name, db_file_name):
|
def handle_db_error(plugin_name, db_file_name): # TODO: To pathlib
|
||||||
"""
|
"""
|
||||||
Log and report to the user that a database cannot be loaded
|
Log and report to the user that a database cannot be loaded
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ def handle_db_error(plugin_name, db_file_name):
|
|||||||
'OpenLP cannot load your database.\n\nDatabase: {db}').format(db=db_path))
|
'OpenLP cannot load your database.\n\nDatabase: {db}').format(db=db_path))
|
||||||
|
|
||||||
|
|
||||||
def init_url(plugin_name, db_file_name=None):
|
def init_url(plugin_name, db_file_name=None): # TODO: Pathlib
|
||||||
"""
|
"""
|
||||||
Return the database URL.
|
Return the database URL.
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ class ServiceItem(RegistryProperties):
|
|||||||
file_location = os.path.join(path, file_name)
|
file_location = os.path.join(path, file_name)
|
||||||
file_location_hash = md5_hash(file_location.encode('utf-8'))
|
file_location_hash = md5_hash(file_location.encode('utf-8'))
|
||||||
image = os.path.join(str(AppLocation.get_section_data_path(self.name)), 'thumbnails',
|
image = os.path.join(str(AppLocation.get_section_data_path(self.name)), 'thumbnails',
|
||||||
file_location_hash, ntpath.basename(image))
|
file_location_hash, ntpath.basename(image)) #TODO: Pathlib
|
||||||
self.slides.append({'title': file_name, 'image': image, 'path': path, 'display_title': display_title,
|
self.slides.append({'title': file_name, 'image': image, 'path': path, 'display_title': display_title,
|
||||||
'notes': notes, 'thumbnail': image})
|
'notes': notes, 'thumbnail': image})
|
||||||
# if self.is_capable(ItemCapabilities.HasThumbnails):
|
# if self.is_capable(ItemCapabilities.HasThumbnails):
|
||||||
@ -361,7 +361,7 @@ class ServiceItem(RegistryProperties):
|
|||||||
if isinstance(file_path, str):
|
if isinstance(file_path, str):
|
||||||
# Handle service files prior to OpenLP 3.0
|
# Handle service files prior to OpenLP 3.0
|
||||||
# Windows can handle both forward and backward slashes, so we use ntpath to get the basename
|
# Windows can handle both forward and backward slashes, so we use ntpath to get the basename
|
||||||
file_path = Path(path, ntpath.basename(file_path))
|
file_path = path / ntpath.basename(file_path)
|
||||||
self.background_audio.append(file_path)
|
self.background_audio.append(file_path)
|
||||||
self.theme_overwritten = header.get('theme_overwritten', False)
|
self.theme_overwritten = header.get('theme_overwritten', False)
|
||||||
if self.service_item_type == ServiceItemType.Text:
|
if self.service_item_type == ServiceItemType.Text:
|
||||||
@ -374,7 +374,7 @@ class ServiceItem(RegistryProperties):
|
|||||||
if path:
|
if path:
|
||||||
self.has_original_files = False
|
self.has_original_files = False
|
||||||
for text_image in service_item['serviceitem']['data']:
|
for text_image in service_item['serviceitem']['data']:
|
||||||
file_path = os.path.join(path, text_image)
|
file_path = path / text_image
|
||||||
self.add_from_image(file_path, text_image, background)
|
self.add_from_image(file_path, text_image, background)
|
||||||
else:
|
else:
|
||||||
for text_image in service_item['serviceitem']['data']:
|
for text_image in service_item['serviceitem']['data']:
|
||||||
|
@ -478,7 +478,7 @@ class AdvancedTab(SettingsTab):
|
|||||||
minute=self.service_name_time.time().minute()
|
minute=self.service_name_time.time().minute()
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
service_name_example = format_time(str(self.service_name_edit.text()), local_time)
|
service_name_example = format_time(self.service_name_edit.text(), local_time)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
preset_is_valid = False
|
preset_is_valid = False
|
||||||
service_name_example = translate('OpenLP.AdvancedTab', 'Syntax error.')
|
service_name_example = translate('OpenLP.AdvancedTab', 'Syntax error.')
|
||||||
|
@ -1334,7 +1334,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow, LogMixin, RegistryPropert
|
|||||||
self.show_status_message(
|
self.show_status_message(
|
||||||
translate('OpenLP.MainWindow', 'Copying OpenLP data to new data directory location - {path} '
|
translate('OpenLP.MainWindow', 'Copying OpenLP data to new data directory location - {path} '
|
||||||
'- Please wait for copy to finish').format(path=self.new_data_path))
|
'- Please wait for copy to finish').format(path=self.new_data_path))
|
||||||
dir_util.copy_tree(str(old_data_path), str(self.new_data_path))
|
dir_util.copy_tree(old_data_path, self.new_data_path)
|
||||||
self.log_info('Copy successful')
|
self.log_info('Copy successful')
|
||||||
except (OSError, DistutilsFileError) as why:
|
except (OSError, DistutilsFileError) as why:
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
@ -54,7 +54,7 @@ class ItemMediaInfo(object):
|
|||||||
"""
|
"""
|
||||||
This class hold the media related info
|
This class hold the media related info
|
||||||
"""
|
"""
|
||||||
file_info = None
|
file_info = None # TODO: Ptahlib?
|
||||||
volume = 100
|
volume = 100
|
||||||
is_background = False
|
is_background = False
|
||||||
can_loop_playback = False
|
can_loop_playback = False
|
||||||
|
@ -197,7 +197,7 @@ class VlcPlayer(MediaPlayer):
|
|||||||
"""
|
"""
|
||||||
return get_vlc() is not None
|
return get_vlc() is not None
|
||||||
|
|
||||||
def load(self, display, file):
|
def load(self, display, file): # TODO: pathlib
|
||||||
"""
|
"""
|
||||||
Load a video into VLC
|
Load a video into VLC
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ class Ui_ServiceManager(object):
|
|||||||
self.service_manager_list.itemExpanded.connect(self.expanded)
|
self.service_manager_list.itemExpanded.connect(self.expanded)
|
||||||
# Last little bits of setting up
|
# Last little bits of setting up
|
||||||
self.service_theme = Settings().value(self.main_window.service_manager_settings_section + '/service theme')
|
self.service_theme = Settings().value(self.main_window.service_manager_settings_section + '/service theme')
|
||||||
self.service_path = str(AppLocation.get_section_data_path('servicemanager'))
|
self.service_path = AppLocation.get_section_data_path('servicemanager')
|
||||||
# build the drag and drop context menu
|
# build the drag and drop context menu
|
||||||
self.dnd_menu = QtWidgets.QMenu()
|
self.dnd_menu = QtWidgets.QMenu()
|
||||||
self.new_action = self.dnd_menu.addAction(translate('OpenLP.ServiceManager', '&Add New Item'))
|
self.new_action = self.dnd_menu.addAction(translate('OpenLP.ServiceManager', '&Add New Item'))
|
||||||
@ -590,11 +590,11 @@ class ServiceManager(QtWidgets.QWidget, RegistryBase, Ui_ServiceManager, LogMixi
|
|||||||
self.main_window.increment_progress_bar(service_content_size)
|
self.main_window.increment_progress_bar(service_content_size)
|
||||||
# Finally add all the listed media files.
|
# Finally add all the listed media files.
|
||||||
for write_path in write_list:
|
for write_path in write_list:
|
||||||
zip_file.write(str(write_path), str(write_path))
|
zip_file.write(write_path, write_path)
|
||||||
self.main_window.increment_progress_bar(write_path.stat().st_size)
|
self.main_window.increment_progress_bar(write_path.stat().st_size)
|
||||||
with suppress(FileNotFoundError):
|
with suppress(FileNotFoundError):
|
||||||
file_path.unlink()
|
file_path.unlink()
|
||||||
os.link(temp_file.name, str(file_path))
|
os.link(temp_file.name, file_path)
|
||||||
Settings().setValue(self.main_window.service_manager_settings_section + '/last directory', file_path.parent)
|
Settings().setValue(self.main_window.service_manager_settings_section + '/last directory', file_path.parent)
|
||||||
except (PermissionError, OSError) as error:
|
except (PermissionError, OSError) as error:
|
||||||
self.log_exception('Failed to save service to disk: {name}'.format(name=file_path))
|
self.log_exception('Failed to save service to disk: {name}'.format(name=file_path))
|
||||||
@ -679,7 +679,7 @@ class ServiceManager(QtWidgets.QWidget, RegistryBase, Ui_ServiceManager, LogMixi
|
|||||||
service_data = None
|
service_data = None
|
||||||
self.application.set_busy_cursor()
|
self.application.set_busy_cursor()
|
||||||
try:
|
try:
|
||||||
with zipfile.ZipFile(str(file_path)) as zip_file:
|
with zipfile.ZipFile(file_path) as zip_file:
|
||||||
compressed_size = 0
|
compressed_size = 0
|
||||||
for zip_info in zip_file.infolist():
|
for zip_info in zip_file.infolist():
|
||||||
compressed_size += zip_info.compress_size
|
compressed_size += zip_info.compress_size
|
||||||
@ -692,7 +692,7 @@ class ServiceManager(QtWidgets.QWidget, RegistryBase, Ui_ServiceManager, LogMixi
|
|||||||
service_data = json_file.read()
|
service_data = json_file.read()
|
||||||
else:
|
else:
|
||||||
zip_info.filename = os.path.basename(zip_info.filename)
|
zip_info.filename = os.path.basename(zip_info.filename)
|
||||||
zip_file.extract(zip_info, str(self.service_path))
|
zip_file.extract(zip_info, self.service_path)
|
||||||
self.main_window.increment_progress_bar(zip_info.compress_size)
|
self.main_window.increment_progress_bar(zip_info.compress_size)
|
||||||
if service_data:
|
if service_data:
|
||||||
items = json.loads(service_data, cls=OpenLPJsonDecoder)
|
items = json.loads(service_data, cls=OpenLPJsonDecoder)
|
||||||
@ -1239,11 +1239,11 @@ class ServiceManager(QtWidgets.QWidget, RegistryBase, Ui_ServiceManager, LogMixi
|
|||||||
"""
|
"""
|
||||||
Empties the service_path of temporary files on system exit.
|
Empties the service_path of temporary files on system exit.
|
||||||
"""
|
"""
|
||||||
for file_name in os.listdir(self.service_path):
|
for file_path in self.service_path.iterdir():
|
||||||
file_path = Path(self.service_path, file_name)
|
|
||||||
delete_file(file_path)
|
delete_file(file_path)
|
||||||
if os.path.exists(os.path.join(self.service_path, 'audio')):
|
audio_path = self.service_path / 'audio'
|
||||||
shutil.rmtree(os.path.join(self.service_path, 'audio'), True)
|
if audio_path.exists():
|
||||||
|
audio_path.rmtree(True)
|
||||||
|
|
||||||
def on_theme_combo_box_selected(self, current_index):
|
def on_theme_combo_box_selected(self, current_index):
|
||||||
"""
|
"""
|
||||||
|
@ -422,10 +422,10 @@ class ThemeManager(QtWidgets.QWidget, RegistryBase, Ui_ThemeManager, LogMixin, R
|
|||||||
:rtype: bool
|
:rtype: bool
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
with zipfile.ZipFile(str(theme_path), 'w') as theme_zip:
|
with zipfile.ZipFile(theme_path, 'w') as theme_zip:
|
||||||
source_path = self.theme_path / theme_name
|
source_path = self.theme_path / theme_name
|
||||||
for file_path in source_path.iterdir():
|
for file_path in source_path.iterdir():
|
||||||
theme_zip.write(str(file_path), os.path.join(theme_name, file_path.name))
|
theme_zip.write(file_path, Path(theme_name, file_path.name))
|
||||||
return True
|
return True
|
||||||
except OSError as ose:
|
except OSError as ose:
|
||||||
self.log_exception('Export Theme Failed')
|
self.log_exception('Export Theme Failed')
|
||||||
@ -567,7 +567,7 @@ class ThemeManager(QtWidgets.QWidget, RegistryBase, Ui_ThemeManager, LogMixin, R
|
|||||||
json_theme = False
|
json_theme = False
|
||||||
theme_name = ""
|
theme_name = ""
|
||||||
try:
|
try:
|
||||||
with zipfile.ZipFile(str(file_path)) as theme_zip:
|
with zipfile.ZipFile(file_path) as theme_zip:
|
||||||
json_file = [name for name in theme_zip.namelist() if os.path.splitext(name)[1].lower() == '.json']
|
json_file = [name for name in theme_zip.namelist() if os.path.splitext(name)[1].lower() == '.json']
|
||||||
if len(json_file) != 1:
|
if len(json_file) != 1:
|
||||||
# TODO: remove XML handling after once the upgrade path from 2.4 is no longer required
|
# TODO: remove XML handling after once the upgrade path from 2.4 is no longer required
|
||||||
|
@ -352,7 +352,7 @@ class PathEdit(QtWidgets.QWidget):
|
|||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
if self._path != path:
|
if self._path != path:
|
||||||
self._path = path
|
self.path = path
|
||||||
self.pathChanged.emit(path)
|
self.pathChanged.emit(path)
|
||||||
|
|
||||||
|
|
||||||
|
@ -300,7 +300,7 @@ class OpenLPWizard(QtWidgets.QWizard, RegistryProperties):
|
|||||||
file_path, filter_used = FileDialog.getOpenFileName(
|
file_path, filter_used = FileDialog.getOpenFileName(
|
||||||
self, title, Settings().value(self.plugin.settings_section + '/' + setting_name), filters)
|
self, title, Settings().value(self.plugin.settings_section + '/' + setting_name), filters)
|
||||||
if file_path:
|
if file_path:
|
||||||
editbox.setText(str(file_path))
|
editbox.setText(str(file_path)) # TODO: to pathdedit
|
||||||
Settings().setValue(self.plugin.settings_section + '/' + setting_name, file_path.parent)
|
Settings().setValue(self.plugin.settings_section + '/' + setting_name, file_path.parent)
|
||||||
|
|
||||||
def get_folder(self, title, editbox, setting_name):
|
def get_folder(self, title, editbox, setting_name):
|
||||||
@ -316,5 +316,5 @@ class OpenLPWizard(QtWidgets.QWizard, RegistryProperties):
|
|||||||
self, title, Settings().value(self.plugin.settings_section + '/' + setting_name),
|
self, title, Settings().value(self.plugin.settings_section + '/' + setting_name),
|
||||||
FileDialog.ShowDirsOnly)
|
FileDialog.ShowDirsOnly)
|
||||||
if folder_path:
|
if folder_path:
|
||||||
editbox.setText(str(folder_path))
|
editbox.setText(str(folder_path)) # TODO: to pathedit
|
||||||
Settings().setValue(self.plugin.settings_section + '/' + setting_name, folder_path)
|
Settings().setValue(self.plugin.settings_section + '/' + setting_name, folder_path)
|
||||||
|
@ -48,9 +48,9 @@ class BibleImport(BibleDB, LogMixin, RegistryProperties):
|
|||||||
"""
|
"""
|
||||||
Check if the supplied file is compressed
|
Check if the supplied file is compressed
|
||||||
|
|
||||||
:param file_path: A path to the file to check
|
:param openlp.core.common.path.Path file_path: A path to the file to check
|
||||||
"""
|
"""
|
||||||
if is_zipfile(str(file_path)):
|
if is_zipfile(file_path):
|
||||||
critical_error_message_box(
|
critical_error_message_box(
|
||||||
message=translate('BiblesPlugin.BibleImport',
|
message=translate('BiblesPlugin.BibleImport',
|
||||||
'The file "{file}" you supplied is compressed. You must decompress it before import.'
|
'The file "{file}" you supplied is compressed. You must decompress it before import.'
|
||||||
|
@ -51,7 +51,7 @@ class WordProjectBible(BibleImport):
|
|||||||
Unzip the file to a temporary directory
|
Unzip the file to a temporary directory
|
||||||
"""
|
"""
|
||||||
self.tmp = TemporaryDirectory()
|
self.tmp = TemporaryDirectory()
|
||||||
with ZipFile(str(self.file_path)) as zip_file:
|
with ZipFile(self.file_path) as zip_file:
|
||||||
zip_file.extractall(self.tmp.name)
|
zip_file.extractall(self.tmp.name)
|
||||||
self.base_path = Path(self.tmp.name, self.file_path.stem)
|
self.base_path = Path(self.tmp.name, self.file_path.stem)
|
||||||
|
|
||||||
|
@ -229,8 +229,8 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
|
|||||||
Initialize media item.
|
Initialize media item.
|
||||||
"""
|
"""
|
||||||
self.list_view.clear()
|
self.list_view.clear()
|
||||||
self.service_path = str(AppLocation.get_section_data_path(self.settings_section) / 'thumbnails')
|
self.service_path = AppLocation.get_section_data_path(self.settings_section) / 'thumbnails'
|
||||||
create_paths(Path(self.service_path))
|
create_paths(self.service_path)
|
||||||
self.load_list([path_to_str(file) for file in Settings().value(self.settings_section + '/media files')])
|
self.load_list([path_to_str(file) for file in Settings().value(self.settings_section + '/media files')])
|
||||||
self.rebuild_players()
|
self.rebuild_players()
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
|
|||||||
:param media: The media
|
:param media: The media
|
||||||
:param target_group:
|
:param target_group:
|
||||||
"""
|
"""
|
||||||
media.sort(key=lambda file_name: get_natural_key(os.path.split(str(file_name))[1]))
|
media.sort(key=lambda file_path: get_natural_key(file_path.name))
|
||||||
for track in media:
|
for track in media:
|
||||||
track_info = QtCore.QFileInfo(track)
|
track_info = QtCore.QFileInfo(track)
|
||||||
item_name = None
|
item_name = None
|
||||||
|
@ -67,7 +67,7 @@ class CCLIFileImport(SongImport):
|
|||||||
details = {'confidence': 1, 'encoding': 'utf-8'}
|
details = {'confidence': 1, 'encoding': 'utf-8'}
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
details = chardet.detect(detect_content)
|
details = chardet.detect(detect_content)
|
||||||
in_file = codecs.open(str(file_path), 'r', details['encoding'])
|
in_file = codecs.open(file_path, 'r', details['encoding'])
|
||||||
if not in_file.read(1) == '\ufeff':
|
if not in_file.read(1) == '\ufeff':
|
||||||
# not UTF or no BOM was found
|
# not UTF or no BOM was found
|
||||||
in_file.seek(0)
|
in_file.seek(0)
|
||||||
|
@ -63,8 +63,8 @@ class TestRemoteDeploy(TestCase):
|
|||||||
deploy_zipfile(root_path, 'site.zip')
|
deploy_zipfile(root_path, 'site.zip')
|
||||||
|
|
||||||
# THEN: the zip file should have been extracted to the right location
|
# THEN: the zip file should have been extracted to the right location
|
||||||
MockZipFile.assert_called_once_with('/tmp/remotes/site.zip')
|
MockZipFile.assert_called_once_with(Path('/tmp/remotes/site.zip'))
|
||||||
mocked_zipfile.extractall.assert_called_once_with('/tmp/remotes')
|
mocked_zipfile.extractall.assert_called_once_with(Path('/tmp/remotes'))
|
||||||
|
|
||||||
@patch('openlp.core.api.deploy.Registry')
|
@patch('openlp.core.api.deploy.Registry')
|
||||||
@patch('openlp.core.api.deploy.get_web_page')
|
@patch('openlp.core.api.deploy.get_web_page')
|
||||||
|
@ -179,9 +179,8 @@ class TestShutil(TestCase):
|
|||||||
# WHEN: Calling :func:`openlp.core.common.path.rmtree` with the path parameter as Path object type
|
# WHEN: Calling :func:`openlp.core.common.path.rmtree` with the path parameter as Path object type
|
||||||
path.rmtree()
|
path.rmtree()
|
||||||
|
|
||||||
# THEN: :func:`shutil.rmtree` should have been called with the str equivalents of the Path object.
|
# THEN: :func:`shutil.rmtree` should have been called with the the Path object.
|
||||||
mocked_shutil_rmtree.assert_called_once_with(
|
mocked_shutil_rmtree.assert_called_once_with(Path('test', 'path'), False, None)
|
||||||
os.path.join('test', 'path'), False, None)
|
|
||||||
|
|
||||||
def test_rmtree_optional_params(self):
|
def test_rmtree_optional_params(self):
|
||||||
"""
|
"""
|
||||||
@ -198,8 +197,7 @@ class TestShutil(TestCase):
|
|||||||
|
|
||||||
# THEN: :func:`shutil.rmtree` should have been called with the optional parameters, with out any of the
|
# THEN: :func:`shutil.rmtree` should have been called with the optional parameters, with out any of the
|
||||||
# values being modified
|
# values being modified
|
||||||
mocked_shutil_rmtree.assert_called_once_with(
|
mocked_shutil_rmtree.assert_called_once_with(path, True, mocked_on_error)
|
||||||
os.path.join('test', 'path'), True, mocked_on_error)
|
|
||||||
|
|
||||||
def test_which_no_command(self):
|
def test_which_no_command(self):
|
||||||
"""
|
"""
|
||||||
|
@ -141,7 +141,7 @@ class TestServiceItem(TestCase, TestMixin):
|
|||||||
"""
|
"""
|
||||||
# GIVEN: A new service item and a mocked add icon function
|
# GIVEN: A new service item and a mocked add icon function
|
||||||
image_name = 'image_1.jpg'
|
image_name = 'image_1.jpg'
|
||||||
test_file = os.path.join(str(TEST_PATH), image_name)
|
test_file = TEST_PATH / image_name
|
||||||
frame_array = {'path': test_file, 'title': image_name}
|
frame_array = {'path': test_file, 'title': image_name}
|
||||||
|
|
||||||
service_item = ServiceItem(None)
|
service_item = ServiceItem(None)
|
||||||
@ -154,7 +154,7 @@ class TestServiceItem(TestCase, TestMixin):
|
|||||||
mocked_get_section_data_path:
|
mocked_get_section_data_path:
|
||||||
mocked_exists.return_value = True
|
mocked_exists.return_value = True
|
||||||
mocked_get_section_data_path.return_value = Path('/path/')
|
mocked_get_section_data_path.return_value = Path('/path/')
|
||||||
service_item.set_from_service(line, str(TEST_PATH))
|
service_item.set_from_service(line, TEST_PATHb)
|
||||||
|
|
||||||
# THEN: We should get back a valid service item
|
# THEN: We should get back a valid service item
|
||||||
assert service_item.is_valid is True, 'The new service item should be valid'
|
assert service_item.is_valid is True, 'The new service item should be valid'
|
||||||
|
@ -66,9 +66,9 @@ class TestThemeManager(TestCase):
|
|||||||
theme_manager._export_theme(Path('some', 'path', 'Default.otz'), 'Default')
|
theme_manager._export_theme(Path('some', 'path', 'Default.otz'), 'Default')
|
||||||
|
|
||||||
# THEN: The zipfile should be created at the given path
|
# THEN: The zipfile should be created at the given path
|
||||||
mocked_zipfile_init.assert_called_with(os.path.join('some', 'path', 'Default.otz'), 'w')
|
mocked_zipfile_init.assert_called_with(Path('some', 'path', 'Default.otz'), 'w')
|
||||||
mocked_zipfile_write.assert_called_with(str(RESOURCE_PATH / 'themes' / 'Default' / 'Default.xml'),
|
mocked_zipfile_write.assert_called_with(RESOURCE_PATH / 'themes' / 'Default' / 'Default.xml',
|
||||||
os.path.join('Default', 'Default.xml'))
|
Path('Default', 'Default.xml'))
|
||||||
|
|
||||||
def test_initial_theme_manager(self):
|
def test_initial_theme_manager(self):
|
||||||
"""
|
"""
|
||||||
|
@ -70,7 +70,7 @@ class FakeIP4InterfaceEntry(QObject):
|
|||||||
"""
|
"""
|
||||||
Return a QFlags enum with IsUp and IsRunning
|
Return a QFlags enum with IsUp and IsRunning
|
||||||
"""
|
"""
|
||||||
return (QNetworkInterface.IsUp | QNetworkInterface.IsRunning)
|
return QNetworkInterface.IsUp | QNetworkInterface.IsRunning
|
||||||
|
|
||||||
def name(self):
|
def name(self):
|
||||||
return self.my_name
|
return self.my_name
|
||||||
|
@ -83,8 +83,8 @@ class ProjectorSourceFormTest(TestCase, TestMixin):
|
|||||||
Delete all C++ objects at end so we don't segfault.
|
Delete all C++ objects at end so we don't segfault.
|
||||||
"""
|
"""
|
||||||
self.projectordb.session.close()
|
self.projectordb.session.close()
|
||||||
del(self.projectordb)
|
del self.projectordb
|
||||||
del(self.projector)
|
del self.projector
|
||||||
retries = 0
|
retries = 0
|
||||||
while retries < 5:
|
while retries < 5:
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user