Update platform defaults to return a launcher instead of a string

Signed-off-by: sweeneys <sweeneys@amazon.com>
monroegm-disable-blank-issue-2
sweeneys 4 years ago
parent 64bbc700fa
commit a1edb2c4ac

@ -9,14 +9,15 @@ Main launchers module, provides a facade for creating launchers.
import logging
import ly_test_tools._internal.managers.workspace
import ly_test_tools
import ly_test_tools._internal.managers.workspace as workspace_manager
import ly_test_tools.launchers.platforms.base as base_launcher
log = logging.getLogger(__name__)
def create_launcher(workspace, launcher_platform=ly_test_tools.HOST_OS_PLATFORM, args=None):
# type: (ly_test_tools.managers.workspace.WorkspaceManager, str, List[str]) -> Launcher
# type: (workspace_manager.AbstractWorkspaceManager, str, list[str]) -> base_launcher.Launcher
"""
Create a launcher compatible with the specified workspace, if no specific launcher is found return a generic one.
@ -25,12 +26,16 @@ def create_launcher(workspace, launcher_platform=ly_test_tools.HOST_OS_PLATFORM,
:param args: List of arguments to pass to the launcher's 'args' argument during construction
:return: Launcher instance
"""
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform, ly_test_tools.HOST_OS_PLATFORM)
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform)
if not launcher_class:
log.warning(f"Using default launcher for '{ly_test_tools.HOST_OS_PLATFORM}' "
f"as no option is available for '{launcher_platform}'")
launcher_class = ly_test_tools.LAUNCHERS.get(ly_test_tools.HOST_OS_PLATFORM)
return launcher_class(workspace, args)
def create_dedicated_launcher(workspace, launcher_platform=ly_test_tools.HOST_OS_DEDICATED_SERVER, args=None):
# type: (ly_test_tools.managers.workspace.WorkspaceManager, str, List[str]) -> Launcher
# type: (workspace_manager.AbstractWorkspaceManager, str, list[str]) -> base_launcher.Launcher
"""
Create a dedicated launcher compatible with the specified workspace. Dedicated Launcher is only supported on the
Linux and Windows Platform
@ -41,11 +46,15 @@ def create_dedicated_launcher(workspace, launcher_platform=ly_test_tools.HOST_OS
:return: Launcher instance
"""
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform, ly_test_tools.HOST_OS_DEDICATED_SERVER)
if not launcher_class:
log.warning(f"Using default dedicated launcher for '{ly_test_tools.HOST_OS_PLATFORM}' "
f"as no option is available for '{launcher_platform}'")
launcher_class = ly_test_tools.LAUNCHERS.get(ly_test_tools.HOST_OS_DEDICATED_SERVER)
return launcher_class(workspace, args)
def create_editor(workspace, launcher_platform=ly_test_tools.HOST_OS_EDITOR, args=None):
# type: (ly_test_tools.managers.workspace.WorkspaceManager, str, List[str]) -> Launcher
# type: (workspace_manager.AbstractWorkspaceManager, str, list[str]) -> base_launcher.Launcher
"""
Create an Editor compatible with the specified workspace.
Editor is only officially supported on the Windows Platform.
@ -56,11 +65,15 @@ def create_editor(workspace, launcher_platform=ly_test_tools.HOST_OS_EDITOR, arg
:return: Editor instance
"""
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform, ly_test_tools.HOST_OS_EDITOR)
if not launcher_class:
log.warning(f"Using default editor launcher for '{ly_test_tools.HOST_OS_PLATFORM}' "
f"as no option is available for '{launcher_platform}'")
launcher_class = ly_test_tools.LAUNCHERS.get(ly_test_tools.HOST_OS_EDITOR)
return launcher_class(workspace, args)
def create_generic_launcher(workspace, launcher_platform, exe_file_name, args=None):
# type: (ly_test_tools.managers.workspace.WorkspaceManager, str, str, List[str]) -> Launcher
# type: (workspace_manager.AbstractWorkspaceManager, str, str, list[str]) -> base_launcher.Launcher
"""
Create a generic launcher compatible with the specified workspace.
Allows custom .exe files to serve as the launcher instead of ones listed in the ly_test_tools.LAUNCHERS constant
@ -72,4 +85,8 @@ def create_generic_launcher(workspace, launcher_platform, exe_file_name, args=No
:return: Launcher instance.
"""
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform, ly_test_tools.HOST_OS_GENERIC_EXECUTABLE)
if not launcher_class:
log.warning(f"Using default generic executable launcher for '{ly_test_tools.HOST_OS_PLATFORM}' "
f"as no option is available for '{launcher_platform}'")
launcher_class = ly_test_tools.LAUNCHERS.get(ly_test_tools.HOST_OS_GENERIC_EXECUTABLE)
return launcher_class(workspace, exe_file_name, args)

Loading…
Cancel
Save