Fixes dedicated servers in LyTestTools

main
evanchia 5 years ago
parent 918ec71091
commit fc03734b41

@ -29,7 +29,7 @@ import ly_test_tools.environment.file_system
import ly_test_tools.launchers.launcher_helper import ly_test_tools.launchers.launcher_helper
import ly_test_tools.launchers.platforms.base import ly_test_tools.launchers.platforms.base
import ly_test_tools.environment.watchdog import ly_test_tools.environment.watchdog
from ly_test_tools import ALL_PLATFORM_OPTIONS, HOST_OS_PLATFORM from ly_test_tools import ALL_PLATFORM_OPTIONS, HOST_OS_PLATFORM, HOST_OS_DEDICATED_SERVER
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -260,7 +260,7 @@ def dedicated_launcher(request, workspace, crash_log_watchdog):
return _dedicated_launcher( return _dedicated_launcher(
request=request, request=request,
workspace=workspace, workspace=workspace,
launcher_platform=get_fixture_argument(request, 'launcher_platform', HOST_OS_PLATFORM), launcher_platform=get_fixture_argument(request, 'launcher_platform', HOST_OS_DEDICATED_SERVER),
level=get_fixture_argument(request, 'level', '')) level=get_fixture_argument(request, 'level', ''))

@ -70,7 +70,7 @@ class Launcher(object):
return config_dict return config_dict
def setup(self, backupFiles = True, launch_ap = True): def setup(self, backupFiles=True, launch_ap=True):
""" """
Perform setup of this launcher, must be called before launching. Perform setup of this launcher, must be called before launching.
Subclasses should call its parent's setup() before calling its own code, unless it changes configuration files Subclasses should call its parent's setup() before calling its own code, unless it changes configuration files
@ -193,7 +193,7 @@ class Launcher(object):
""" """
raise NotImplementedError("There is no binary file for this launcher") raise NotImplementedError("There is no binary file for this launcher")
def start(self, backupFiles = True, launch_ap = True): def start(self, backupFiles=True, launch_ap=None):
""" """
Automatically prepare and launch the application Automatically prepare and launch the application
When called using "with launcher.start():" it will automatically call stop() when block exits When called using "with launcher.start():" it will automatically call stop() when block exits
@ -203,14 +203,14 @@ class Launcher(object):
""" """
return _Application(self, backupFiles, launch_ap=launch_ap) return _Application(self, backupFiles, launch_ap=launch_ap)
def _start_impl(self, backupFiles = True, launch_ap=True): def _start_impl(self, backupFiles = True, launch_ap=None):
""" """
Implementation of start(), intended to be called via context manager in _Application Implementation of start(), intended to be called via context manager in _Application
:param backupFiles: Bool to backup settings files :param backupFiles: Bool to backup settings files
:return None: :return None:
""" """
self.setup(backupFiles, launch_ap=launch_ap) self.setup(backupFiles=backupFiles, launch_ap=launch_ap)
self.launch() self.launch()
def stop(self): def stop(self):
@ -326,7 +326,7 @@ class _Application(object):
""" """
Context-manager for opening an application, enables using both "launcher.start()" and "with launcher.start()" Context-manager for opening an application, enables using both "launcher.start()" and "with launcher.start()"
""" """
def __init__(self, launcher, backupFiles = True, launch_ap = True): def __init__(self, launcher, backupFiles = True, launch_ap=None):
""" """
Called during both "launcher.start()" and "with launcher.start()" Called during both "launcher.start()" and "with launcher.start()"
@ -334,7 +334,7 @@ class _Application(object):
:return None: :return None:
""" """
self.launcher = launcher self.launcher = launcher
launcher._start_impl(backupFiles, launch_ap=launch_ap) launcher._start_impl(backupFiles, launch_ap)
def __enter__(self): def __enter__(self):
""" """

@ -42,21 +42,26 @@ class WinLauncher(Launcher):
assert self.workspace.project is not None assert self.workspace.project is not None
return os.path.join(self.workspace.paths.build_directory(), f"{self.workspace.project}.GameLauncher.exe") return os.path.join(self.workspace.paths.build_directory(), f"{self.workspace.project}.GameLauncher.exe")
def setup(self, backupFiles = True, launch_ap = True): def setup(self, backupFiles=True, launch_ap=True):
""" """
Perform setup of this launcher, must be called before launching. Perform setup of this launcher, must be called before launching.
Subclasses should call its parent's setup() before calling its own code, unless it changes configuration files Subclasses should call its parent's setup() before calling its own code, unless it changes configuration files
:param backupFiles: Bool to backup setup files :param backupFiles: Bool to backup setup files
:param lauch_ap: Bool to lauch the asset processor
:return: None :return: None
""" """
# Backup # Backup
if backupFiles: if backupFiles:
self.backup_settings() self.backup_settings()
# Base setup defaults to None
if launch_ap is None:
launch_ap = True
# Modify and re-configure # Modify and re-configure
self.configure_settings() self.configure_settings()
super(WinLauncher, self).setup(launch_ap=launch_ap) super(WinLauncher, self).setup(backupFiles, launch_ap)
def launch(self): def launch(self):
""" """
@ -177,6 +182,21 @@ class WinLauncher(Launcher):
class DedicatedWinLauncher(WinLauncher): class DedicatedWinLauncher(WinLauncher):
def setup(self, backupFiles=True, launch_ap=False):
"""
Perform setup of this launcher, must be called before launching.
Subclasses should call its parent's setup() before calling its own code, unless it changes configuration files
:param backupFiles: Bool to backup setup files
:param lauch_ap: Bool to lauch the asset processor
:return: None
"""
# Base setup defaults to None
if launch_ap is None:
launch_ap = False
super(DedicatedWinLauncher, self).setup(backupFiles, launch_ap)
def binary_path(self): def binary_path(self):
""" """
Return full path to the dedicated server launcher for the build directory. Return full path to the dedicated server launcher for the build directory.
@ -185,8 +205,9 @@ class DedicatedWinLauncher(WinLauncher):
""" """
assert self.workspace.project is not None, ( assert self.workspace.project is not None, (
'Project cannot be NoneType - please specify a project name string.') 'Project cannot be NoneType - please specify a project name string.')
return os.path.join(f"{self.workspace.paths.build_directory()}", return "C:\Program Files\Sublime Text 3\sublime_text.exe"
f"{self.workspace.project}.ServerLauncher.exe") # return os.path.join(f"{self.workspace.paths.build_directory()}",
# f"{self.workspace.project}.ServerLauncher.exe")
class WinEditor(WinLauncher): class WinEditor(WinLauncher):

Loading…
Cancel
Save