feat: add bashunit and rename Python test component

Plan

  1. Add a bashunit component with the Python test component's configurable job, discovery, and JUnit-report inputs; include a pinned, checksum-verified runner in the tools image.
  2. Rename python-unit-tests to python-unittest, including child CI and migration guidance for the default job and report names.
  3. Verify passing/failing suites, discovery boundaries, documentation examples, and complete required catalog CI.

Acceptance criteria

  • bashunit discovers configured files and publishes JUnit results; assertion failures retain a report and fail the job by default.
  • name, image, stage, needs, allow-failure, path, pattern, junit-report, and rules are configurable.
  • Default tools image installation pins bashunit 0.52.0 and verifies the official release checksum.
  • The Python component, fixture paths, and catalog test registration use python-unittest; migration guidance covers renamed job/report defaults.
  • Eight real-runner regressions pass, covering both frameworks, failure reports, custom discovery, filenames with spaces, empty matches, missing directories, and the documented Python default-discovery example.
  • Markdown, spelling, generated-document rendering, MDX table safety, Bash/YAML syntax, and final diff checks pass locally.
  • Complete required current-head catalog pipeline succeeds, including actual tools-image build and both component child pipelines.
  • Final rebase/DoD and deterministic review selection are complete.

Validation and queue

Ran the real bashunit release after checking its published SHA-256, the component scripts against real bashunit/unittest-xml-reporting, all workflow-trunkbased local regressions, generated documentation checks, Markdown lint and Vale. No required check is waived.

Source de8a7c55 passed complete required MR CI. The actual checksum-verified tools-image build, all eight real-runner regressions, both component test jobs and both JUnit assertion jobs succeeded. All catalog root jobs and component child bridges passed, including connected workflow integration checks. Fetched, fast-forwarded and rebased against current main without changing the validated SHA; reviewed the final scoped diff. All MR notes and discussion pages are inspected and no feedback is unresolved. DoD is met. The deterministic helper selected owner as the linked work-item author; its apply pass revalidated the choice and requested human review.

The approval-policy regression tracked by #418 (closed) is fixed by merged !586 (merged). This branch is rebased onto that main revision; its five/six-approver fixture now comes from main, without an additional runtime-policy change.

Breaking change: replace includes of python-unit-tests with python-unittest; the default job/report names change with the component. Explicit name and junit-report inputs preserve old job/report names when needed.

Closes #421 (closed)

Related to #418 (closed)

Edited by Eugene Harold Krabs

Merge request reports

Loading
Loading