# Copyright (c) 2023 Nordic Semiconductor ASA # # SPDX-License-Identifier: Apache-2.0 import os import textwrap from pathlib import Path import pytest pytest_plugins = ['pytester'] @pytest.mark.parametrize( 'import_path, class_name, device_type', [ ('twister_harness.device.binary_adapter', 'NativeSimulatorAdapter', 'native'), ('twister_harness.device.qemu_adapter', 'QemuAdapter', 'qemu'), ('twister_harness.device.hardware_adapter', 'HardwareAdapter', 'hardware'), ], ids=[ 'native', 'qemu', 'hardware', ] ) def test_if_adapter_is_chosen_properly( import_path: str, class_name: str, device_type: str, tmp_path: Path, twister_harness: str, pytester: pytest.Pytester, ): pytester.makepyfile( textwrap.dedent( f""" from twister_harness import DeviceAdapter from {import_path} import {class_name} def test_plugin(device_object): assert isinstance(device_object, DeviceAdapter) assert type(device_object) == {class_name} """ ) ) build_dir = tmp_path / 'build_dir' os.mkdir(build_dir) pytester.syspathinsert(twister_harness) result = pytester.runpytest( '--twister-harness', f'--build-dir={build_dir}', f'--device-type={device_type}', '-p', 'twister_harness.plugin' ) assert result.ret == 0 result.assert_outcomes(passed=1, failed=0, errors=0, skipped=0)