QtTest convenience layer on top of UTILSLIB::PythonRunner for cross-validating MNE-CPP results against MNE-Python. More...
#include "utils_global.h"#include "python_runner.h"#include <Eigen/Core>#include <QObject>#include <QString>#include <QStringList>#include <QVariantMap>

Go to the source code of this file.
Classes | |
| class | UTILSLIB::PythonTestHelper |
Namespaces | |
| namespace | UTILSLIB |
| Shared utilities (I/O helpers, spectral analysis, layout management, warp algorithms). | |
Macros | |
| #define | GUARD_PYTHON(available, reason) |
| Test helper for MNE-Python cross-validation. | |
| #define | GUARD_PYTHON_PACKAGE(helper, packageName) |
| Skip (or fail) the current test if a Python package is missing. | |
QtTest convenience layer on top of UTILSLIB::PythonRunner for cross-validating MNE-CPP results against MNE-Python.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors
Built on UTILSLIB::PythonRunner, this helper adds the thin layer test code needs: a one-shot isAvailable() probe (which caches the result), hasPackage() lookups so a test can announce that it needs e.g. sklearn, and the eval / evalDouble shorthands for running a snippet and parsing its stdout into a number.
The companion GUARD_PYTHON / GUARD_PYTHON_PACKAGE macros QSKIP a test cleanly when Python is missing on developer machines but escalate to QFAIL when MNE_REQUIRE_PYTHON=true so CI runs can never silently skip cross-language regression coverage.
Definition in file python_test_helper.h.
| #define GUARD_PYTHON | ( | available, | |
| reason ) |
Test helper for MNE-Python cross-validation.
Test-frame convenience class for cross-validating MNE-CPP outputs against MNE-Python reference implementations.
Usage inside a QTest test:
When MNE-Python is not installed, tests should QSKIP gracefully — but never silently. Use the GUARD_PYTHON / GUARD_PYTHON_PACKAGE macros to ensure skips are intentional and visible. When the environment variable MNE_REQUIRE_PYTHON=true is set (e.g. in CI), those macros QFAIL instead of QSKIP, so a missing Python installation is treated as a hard error.
Skip (or fail) the current test if Python is not available.
Use this macro at the top of any test slot that requires Python.
| helper | A PythonTestHelper (or bool) — must support operator bool / isAvailable(). |
| reason | Human-readable reason string. |
Definition at line 100 of file python_test_helper.h.
| #define GUARD_PYTHON_PACKAGE | ( | helper, | |
| packageName ) |
Skip (or fail) the current test if a Python package is missing.
| helper | A PythonTestHelper instance. |
| packageName | Package name string (e.g. "sklearn"). |
Definition at line 115 of file python_test_helper.h.