You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.2 KiB
Python
66 lines
2.2 KiB
Python
"""
|
|
Copyright (c) Contributors to the Open 3D Engine Project.
|
|
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
|
|
SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
"""
|
|
|
|
#
|
|
# This is a pytest module to test the in-Editor Python API from EditorLevelComponentAPIBus
|
|
#
|
|
import pytest
|
|
pytest.importorskip('test_tools')
|
|
import time
|
|
import logging
|
|
import os
|
|
import shutil
|
|
|
|
from test_tools import WINDOWS_LAUNCHER
|
|
import test_tools.shared.log_monitor
|
|
import test_tools.launchers.phase
|
|
import test_tools.builtin.fixtures as fixtures
|
|
|
|
import shared.file_utils as file_utils
|
|
|
|
# Use the built-in workspace and editor fixtures.
|
|
# These will configure the requested project and run the editor.
|
|
workspace = fixtures.use_fixture(fixtures.builtin_workspace_fixture, scope='function')
|
|
editor = fixtures.use_fixture(fixtures.editor, scope='function')
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@pytest.mark.parametrize("platform,configuration,project,spec", [
|
|
pytest.param("win_x64_vs2017", "profile", "AutomatedTesting", "all", marks=pytest.mark.skipif(not WINDOWS_LAUNCHER, reason="Only supported on Windows hosts")),
|
|
])
|
|
class TestLevelComponentAutomation(object):
|
|
@pytest.fixture(autouse=True)
|
|
def setup_teardown(self, request, workspace, editor):
|
|
def teardown():
|
|
editor.ensure_stopped()
|
|
file_utils.delete_level(editor, "LevelComponentTest")
|
|
|
|
request.addfinalizer(teardown)
|
|
|
|
def test_Component(self, request, editor, project):
|
|
logger.debug("Running automated test")
|
|
|
|
request.addfinalizer(editor.ensure_stopped)
|
|
|
|
editor.deploy()
|
|
editor.launch(["--exec", "@engroot@/Tests/hydra/LevelComponentCommands.cfg"])
|
|
|
|
editorlog_file = os.path.join(editor.workspace.release.paths.project_log(), 'Editor.log')
|
|
|
|
expected_lines = [
|
|
"Component List returned correctly",
|
|
"Type Ids List returned correctly",
|
|
"Type Names List returned correctly",
|
|
"Level Component API validated"
|
|
]
|
|
|
|
test_tools.shared.log_monitor.monitor_for_expected_lines(editor, editorlog_file, expected_lines)
|
|
|
|
# Rely on the test script to quit after running
|
|
editor.run(test_tools.launchers.phase.WaitForLauncherToQuit(editor, 10))
|