stestrCheckHook: init

This adds a useful hook to be used for projects that use stestr,
it is primiative at the moment but covers most scenarios for using
it.

This PR also changes a Python module to start using it, once it
lands, follow up PRs can update all of them to use it tree-wide.

Signed-off-by: Vinetos <contact+git@vinetos.fr>
This commit is contained in:
Vinetos
2026-02-21 22:20:21 +01:00
parent ea33e9a9a5
commit 38af642d2f
5 changed files with 56 additions and 7 deletions
@@ -442,6 +442,17 @@ in
} ./setuptools-build-hook.sh
) { };
stestrCheckHook = callPackage (
{ makePythonHook }:
makePythonHook {
name = "stestr-check-hook";
propagatedBuildInputs = [ stestr ];
substitutions = {
inherit pythonCheckInterpreter;
};
} ./stestr-check-hook.sh
) { };
unittestCheckHook = callPackage (
{ makePythonHook }:
makePythonHook {
@@ -0,0 +1,39 @@
# Setup hook for stestr
# shellcheck shell=bash
echo "Sourcing stestr-check-hook"
function stestrCheckPhase() {
echo "Executing stestrCheckPhase"
runHook preCheck
local -a patterns=()
# Append regex pattern
read -ra patterns <<< "$disabledTestsRegex"
# Sanitize disabledTests options
if [[ -n "${disabledTests[*]-}" ]] || [[ -n "${disabledTestsRegex[*]-}" ]]; then
# Prevent unintentional matching for specific tests
for test in ${disabledTests[@]-}; do
patterns+=("^${test}$")
done
fi
# Compose arguments
local -a flagsArray=()
if [[ -n "${patterns[*]}" ]]; then
flagsArray+=(--exclude-regex "($(concatStringsSep "|" patterns))")
fi
echoCmd 'stestr flags' "${flagsArray[@]}"
@pythonCheckInterpreter@ -m stestr run "${flagsArray[@]}"
runHook postCheck
echo "Finished executing stestrCheckPhase"
}
if [ -z "${dontUseStestrCheck-}" ] && [ -z "${installCheckPhase-}" ]; then
echo "Using stestrCheckPhase"
appendToVar preDistPhases stestrCheckPhase
fi