hbutils.testing

Overview:

Testing process module, include some useful utilities for unittest.

This module provides various testing utilities organized into several categories:

  • capture: Utilities for capturing program output and exit behavior

  • compare: Utilities for comparing test results, especially text comparisons

  • generator: Test case generation utilities including AETG algorithm and matrix generation

  • isolated: Utilities for creating isolated test environments (directories, entry points, input, logging)

  • requires: Utilities for checking test requirements (commands, expressions, git, versions)

  • simulate: Utilities for simulating program entry points and execution

These utilities help in writing comprehensive and maintainable unit tests by providing common testing patterns and infrastructure.

The module serves as the main entry point for all testing utilities, re-exporting functionality from its submodules for convenient access. It enables developers to write more robust and maintainable tests by providing common patterns for:

  • Capturing and verifying program output and exit codes

  • Comparing text output with flexible preprocessing

  • Generating comprehensive test case combinations

  • Creating isolated test environments

  • Checking system requirements and dependencies

  • Simulating CLI entry points

Example::
>>> from hbutils.testing import capture_output, TextAligner, isolated_directory
>>> # Use testing utilities in your test suite
>>> with capture_output() as (stdout, stderr):
...     print("test output")
>>> stdout.getvalue()
'test output\n'