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.loader import loader
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.settings import Settings
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',
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>/../../".')
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',
help='Turn off the Web and Socket Server ')
parser.add_argument('rargs', nargs='?', default=[])
@ -361,12 +362,12 @@ def main(args=None):
# Get location OpenLPPortable.ini
if args.portablepath:
if os.path.isabs(args.portablepath):
portable_path = str_to_path(args.portablepath).resolve()
portable_path = Path(args.portablepath)
else:
portable_path = (AppLocation.get_directory(AppLocation.AppDir) / '..' /
str_to_path(args.portablepath)).resolve()
portable_path = AppLocation.get_directory(AppLocation.AppDir) / '..' / args.portablepath
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'
set_up_logging(portable_path / 'Other')
log.info('Running portable')

View File

@ -29,6 +29,7 @@ from PyQt5 import QtCore, QtWidgets
sys.modules['PyQt5.QtWebEngineWidgets'] = MagicMock()
from openlp.core.app import OpenLP, parse_options
from openlp.core.common import is_win
from openlp.core.common.settings import Settings
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
"""
# 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
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.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.portablepath == data_path, 'The portable path should be set as expected'
assert args.rargs == [], 'The service file should be blank'