forked from openlp/openlp
Make it possible to set the data-path for portable data.
This commit is contained in:
parent
f833150003
commit
7a70550c20
@ -38,7 +38,7 @@ from PyQt5 import QtCore, QtWidgets
|
||||
from openlp.core.common import is_macosx, is_win
|
||||
from openlp.core.common.applocation import AppLocation
|
||||
from openlp.core.common.i18n import LanguageManager, UiStrings, translate
|
||||
from openlp.core.common.path import create_paths, copytree
|
||||
from openlp.core.common.path import create_paths, copytree, str_to_path
|
||||
from openlp.core.common.registry import Registry
|
||||
from openlp.core.common.settings import Settings
|
||||
from openlp.core.display.screens import ScreenList
|
||||
@ -295,6 +295,8 @@ def parse_options(args=None):
|
||||
help='Set logging to LEVEL level. Valid values are "debug", "info", "warning".')
|
||||
parser.add_argument('-p', '--portable', dest='portable', action='store_true',
|
||||
help='Specify if this should be run as a portable app, ')
|
||||
parser.add_argument('-pp', '--portable-path', dest='portablepath', default=None,
|
||||
help='Specify the path of the portable data, defaults to "<AppDir>/../../".')
|
||||
parser.add_argument('-w', '--no-web-server', dest='no_web_server', action='store_true',
|
||||
help='Turn off the Web and Socket Server ')
|
||||
parser.add_argument('rargs', nargs='?', default=[])
|
||||
@ -350,7 +352,10 @@ def main(args=None):
|
||||
application.setApplicationName('OpenLPPortable')
|
||||
Settings.setDefaultFormat(Settings.IniFormat)
|
||||
# Get location OpenLPPortable.ini
|
||||
portable_path = (AppLocation.get_directory(AppLocation.AppDir) / '..' / '..').resolve()
|
||||
if args.portablepath:
|
||||
portable_path = str_to_path(args.portablepath)
|
||||
else:
|
||||
portable_path = (AppLocation.get_directory(AppLocation.AppDir) / '..' / '..').resolve()
|
||||
data_path = portable_path / 'Data'
|
||||
set_up_logging(portable_path / 'Other')
|
||||
log.info('Running portable')
|
||||
|
@ -81,6 +81,24 @@ def test_parse_options_debug_and_portable():
|
||||
assert args.rargs == [], 'The service file should be blank'
|
||||
|
||||
|
||||
def test_parse_options_portable_and_portable_path():
|
||||
"""
|
||||
Test the parse options process works portable and portable-path
|
||||
"""
|
||||
# GIVEN: a a set of system arguments.
|
||||
sys.argv[1:] = ['--portable', '--portable-path .']
|
||||
|
||||
# WHEN: We we parse them to expand to options
|
||||
args = parse_options()
|
||||
|
||||
# THEN: the following fields will have been extracted.
|
||||
assert args.loglevel == 'warning', 'The log level should be set to warning'
|
||||
assert args.no_error_form is False, 'The no_error_form should be set to False'
|
||||
assert args.portable is True, 'The portable flag should be set to true'
|
||||
assert args.portablepath == '.', 'The portable path should be set to "."'
|
||||
assert args.rargs == [], 'The service file should be blank'
|
||||
|
||||
|
||||
def test_parse_options_all_no_file():
|
||||
"""
|
||||
Test the parse options process works with two options
|
||||
|
Loading…
Reference in New Issue
Block a user