Implement suggestions and fix test.

This commit is contained in:
Tomas Groth 2019-05-01 21:19:21 +02:00
parent b3c1996e4f
commit 85879122ab
2 changed files with 14 additions and 8 deletions

View File

@ -41,7 +41,7 @@ from openlp.core.common import is_macosx, is_win
from openlp.core.common.applocation import AppLocation from openlp.core.common.applocation import AppLocation
from openlp.core.loader import loader from openlp.core.loader import loader
from openlp.core.common.i18n import LanguageManager, UiStrings, translate from openlp.core.common.i18n import LanguageManager, UiStrings, translate
from openlp.core.common.path import copytree, create_paths, str_to_path from openlp.core.common.path import copytree, create_paths, Path
from openlp.core.common.registry import Registry from openlp.core.common.registry import Registry
from openlp.core.common.settings import Settings from openlp.core.common.settings import Settings
from openlp.core.display.screens import ScreenList from openlp.core.display.screens import ScreenList
@ -303,7 +303,8 @@ def parse_options(args=None):
parser.add_argument('-p', '--portable', dest='portable', action='store_true', parser.add_argument('-p', '--portable', dest='portable', action='store_true',
help='Specify if this should be run as a portable app, ') help='Specify if this should be run as a portable app, ')
parser.add_argument('-pp', '--portable-path', dest='portablepath', default=None, parser.add_argument('-pp', '--portable-path', dest='portablepath', default=None,
help='Specify the path of the portable data, defaults to "<AppDir>/../../".') help='Specify the path of the portable data, defaults to "{dir_name}".'.format(
dir_name=os.path.join('<AppDir>', '..', '..')))
parser.add_argument('-w', '--no-web-server', dest='no_web_server', action='store_true', parser.add_argument('-w', '--no-web-server', dest='no_web_server', action='store_true',
help='Turn off the Web and Socket Server ') help='Turn off the Web and Socket Server ')
parser.add_argument('rargs', nargs='?', default=[]) parser.add_argument('rargs', nargs='?', default=[])
@ -361,12 +362,12 @@ def main(args=None):
# Get location OpenLPPortable.ini # Get location OpenLPPortable.ini
if args.portablepath: if args.portablepath:
if os.path.isabs(args.portablepath): if os.path.isabs(args.portablepath):
portable_path = str_to_path(args.portablepath).resolve() portable_path = Path(args.portablepath)
else: else:
portable_path = (AppLocation.get_directory(AppLocation.AppDir) / '..' / portable_path = AppLocation.get_directory(AppLocation.AppDir) / '..' / args.portablepath
str_to_path(args.portablepath)).resolve()
else: else:
portable_path = (AppLocation.get_directory(AppLocation.AppDir) / '..' / '..').resolve() portable_path = AppLocation.get_directory(AppLocation.AppDir) / '..' / '..'
portable_path = portable_path.resolve()
data_path = portable_path / 'Data' data_path = portable_path / 'Data'
set_up_logging(portable_path / 'Other') set_up_logging(portable_path / 'Other')
log.info('Running portable') log.info('Running portable')

View File

@ -29,6 +29,7 @@ from PyQt5 import QtCore, QtWidgets
sys.modules['PyQt5.QtWebEngineWidgets'] = MagicMock() sys.modules['PyQt5.QtWebEngineWidgets'] = MagicMock()
from openlp.core.app import OpenLP, parse_options from openlp.core.app import OpenLP, parse_options
from openlp.core.common import is_win
from openlp.core.common.settings import Settings from openlp.core.common.settings import Settings
from tests.utils.constants import RESOURCE_PATH from tests.utils.constants import RESOURCE_PATH
@ -89,7 +90,11 @@ def test_parse_options_portable_and_portable_path():
Test the parse options process works portable and portable-path Test the parse options process works portable and portable-path
""" """
# GIVEN: a a set of system arguments. # GIVEN: a a set of system arguments.
sys.argv[1:] = ['--portable', '--portable-path .'] if is_win():
data_path = 'c:\\temp\\openlp-data'
else:
data_path = '/tmp/openlp-data'
sys.argv[1:] = ['--portable', '--portable-path', '{datapath}'.format(datapath=data_path)]
# WHEN: We we parse them to expand to options # WHEN: We we parse them to expand to options
args = parse_options() args = parse_options()
@ -98,7 +103,7 @@ def test_parse_options_portable_and_portable_path():
assert args.loglevel == 'warning', 'The log level should be set to warning' 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.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.portable is True, 'The portable flag should be set to true'
assert args.portablepath == '.', 'The portable path should be set to "."' assert args.portablepath == data_path, 'The portable path should be set as expected'
assert args.rargs == [], 'The service file should be blank' assert args.rargs == [], 'The service file should be blank'