ci: add Linux KiCad real-pcbnew matrix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Thomas Cook
2026-06-09 16:57:25 +00:00
committed by mixelpixx
parent a094d1b937
commit fcf23f1965
4 changed files with 250 additions and 24 deletions

View File

@@ -0,0 +1,43 @@
import os
import sys
from pathlib import Path
import pytest
PYTHON_DIR = Path(__file__).parent.parent / "python"
sys.path.insert(0, str(PYTHON_DIR))
pytestmark = [
pytest.mark.integration,
pytest.mark.real_pcbnew,
pytest.mark.linux,
]
@pytest.fixture(autouse=True)
def require_real_pcbnew() -> None:
if os.environ.get("KICAD_USE_REAL_PCBNEW") != "1":
pytest.skip("real pcbnew smoke tests require KICAD_USE_REAL_PCBNEW=1")
def test_project_commands_create_and_load_board_with_real_pcbnew(tmp_path: Path) -> None:
import pcbnew
from commands.project import ProjectCommands
version = pcbnew.GetBuildVersion()
assert version
assert not str(version).endswith("-stub")
commands = ProjectCommands()
result = commands.create_project({"name": "matrix_smoke", "path": str(tmp_path)})
assert result["success"] is True, result
board_path = Path(result["project"]["boardPath"])
assert board_path.exists()
board = pcbnew.LoadBoard(str(board_path))
assert board is not None
assert hasattr(board, "GetFileName")
assert board.GetFileName().endswith(".kicad_pcb")