Testing

Test fixtures, helpers, environment setup, and test runner.

Testing utilities package — lazy-loaded.

Contains environment management and test runner utilities.

siege_utilities.testing.setup_spark_environment()[source]

Set up optimal Spark environment based on current system.

Returns:

True if setup successful, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.setup_spark_environment():
>>>     print("Spark environment ready!")
siege_utilities.testing.get_system_info()[source]

Get comprehensive system information for debugging.

Returns:

Dictionary with system information

Return type:

Dict[str, str]

Example

>>> import siege_utilities
>>> info = siege_utilities.get_system_info()
>>> for key, value in info.items():
>>>     print(f"{key}: {value}")
siege_utilities.testing.ensure_env_vars(required_vars)[source]

Ensure required environment variables are set. Checks SDKMAN on Linux and macOS, falls back to system paths.

Parameters:

required_vars (List[str]) – List of environment variable names to check/set

Returns:

Dictionary mapping variable names to their resolved values (or None if not found)

Return type:

Dict[str, str | None]

Example

>>> import siege_utilities
>>> resolved = siege_utilities.ensure_env_vars(["JAVA_HOME", "SPARK_HOME"])
>>> print(f"Java: {resolved['JAVA_HOME']}")
siege_utilities.testing.check_java_version()[source]

Check Java version and compatibility.

Returns:

Tuple of (version_string, is_compatible)

Return type:

Tuple[str | None, bool]

Example

>>> import siege_utilities
>>> version, compatible = siege_utilities.check_java_version()
>>> if compatible:
>>>     print(f"Java {version} is compatible")
siege_utilities.testing.diagnose_environment()[source]

Run comprehensive environment diagnostics.

Returns:

True if environment is healthy, False if issues found

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.diagnose_environment():
>>>     print("Environment is healthy!")
>>> else:
>>>     print("Issues found - check logs")
siege_utilities.testing.quick_environment_setup()[source]

One-command environment setup for common scenarios.

Returns:

True if setup successful, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.quick_environment_setup():
>>>     print("Ready to go!")
siege_utilities.testing.run_test_suite(mode='smoke', module=None, parallel=False, verbose=False, install_deps=False, setup_environment=True)[source]

Run a complete test suite with proper environment setup.

Parameters:
  • mode (str) – Test mode to run

  • module (str | None) – Specific module to test (optional)

  • parallel (bool) – Run tests in parallel

  • verbose (bool) – Verbose output

  • install_deps (bool) – Install test dependencies first

  • setup_environment (bool) – Set up environment before running tests

Returns:

True if all tests pass, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> success = siege_utilities.run_test_suite(
>>>     mode="distributed",
>>>     verbose=True,
>>>     setup_environment=True
>>> )
siege_utilities.testing.get_test_report()[source]

Generate a comprehensive test report.

Returns:

Dictionary with test results and system information

Return type:

Dict[str, Any]

Example

>>> import siege_utilities
>>> report = siege_utilities.get_test_report()
>>> print(f"Environment healthy: {report['environment_healthy']}")
siege_utilities.testing.run_comprehensive_test()[source]

Run comprehensive testing including environment, smoke tests, and full test suite.

Returns:

True if all tests pass, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.run_comprehensive_test():
>>>     print("Everything is working perfectly!")
siege_utilities.testing.quick_smoke_test()[source]

Run a very quick smoke test to check basic functionality.

Returns:

True if smoke test passes, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.quick_smoke_test():
>>>     print("Basic functionality working!")
siege_utilities.testing.build_pytest_command(mode='smoke', module=None, parallel=False, verbose=False)[source]

Build pytest command based on parameters.

Parameters:
  • mode (str) – Test mode (smoke, unit, integration, all, coverage, fast)

  • module (str | None) – Specific module to test (core, files, distributed, geo, discovery)

  • parallel (bool) – Whether to run tests in parallel

  • verbose (bool) – Whether to use verbose output

Returns:

List of command arguments for pytest

Return type:

List[str]

Example

>>> import siege_utilities
>>> cmd = siege_utilities.build_pytest_command(
>>>     mode="smoke",
>>>     module="distributed",
>>>     verbose=True
>>> )
>>> print(cmd)

Submodules

Environment management utilities for siege_utilities. Handles environment variable setup, Java/Spark environment detection, etc.

siege_utilities.testing.environment.ensure_env_vars(required_vars)[source]

Ensure required environment variables are set. Checks SDKMAN on Linux and macOS, falls back to system paths.

Parameters:

required_vars (List[str]) – List of environment variable names to check/set

Returns:

Dictionary mapping variable names to their resolved values (or None if not found)

Return type:

Dict[str, str | None]

Example

>>> import siege_utilities
>>> resolved = siege_utilities.ensure_env_vars(["JAVA_HOME", "SPARK_HOME"])
>>> print(f"Java: {resolved['JAVA_HOME']}")
siege_utilities.testing.environment.check_java_version()[source]

Check Java version and compatibility.

Returns:

Tuple of (version_string, is_compatible)

Return type:

Tuple[str | None, bool]

Example

>>> import siege_utilities
>>> version, compatible = siege_utilities.check_java_version()
>>> if compatible:
>>>     print(f"Java {version} is compatible")
siege_utilities.testing.environment.setup_spark_environment()[source]

Set up optimal Spark environment based on current system.

Returns:

True if setup successful, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.setup_spark_environment():
>>>     print("Spark environment ready!")
siege_utilities.testing.environment.get_system_info()[source]

Get comprehensive system information for debugging.

Returns:

Dictionary with system information

Return type:

Dict[str, str]

Example

>>> import siege_utilities
>>> info = siege_utilities.get_system_info()
>>> for key, value in info.items():
>>>     print(f"{key}: {value}")
siege_utilities.testing.environment.diagnose_environment()[source]

Run comprehensive environment diagnostics.

Returns:

True if environment is healthy, False if issues found

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.diagnose_environment():
>>>     print("Environment is healthy!")
>>> else:
>>>     print("Issues found - check logs")
siege_utilities.testing.environment.quick_environment_setup()[source]

One-command environment setup for common scenarios.

Returns:

True if setup successful, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.quick_environment_setup():
>>>     print("Ready to go!")

Test runner utilities for siege_utilities. Provides functions for running different test suites with proper environment setup.

siege_utilities.testing.runner.run_command(cmd, description, log_file=None)[source]

Run a command with proper logging and error handling.

Parameters:
  • cmd (List[str]) – Command to run as list of strings

  • description (str) – Human-readable description for logging

  • log_file (str | None) – Optional log file path to write output

Returns:

True if command succeeded, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> success = siege_utilities.run_command(
>>>     ["python", "-m", "pytest", "tests/"],
>>>     "Running tests"
>>> )
siege_utilities.testing.runner.quick_smoke_test()[source]

Run a very quick smoke test to check basic functionality.

Returns:

True if smoke test passes, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.quick_smoke_test():
>>>     print("Basic functionality working!")
siege_utilities.testing.runner.build_pytest_command(mode='smoke', module=None, parallel=False, verbose=False)[source]

Build pytest command based on parameters.

Parameters:
  • mode (str) – Test mode (smoke, unit, integration, all, coverage, fast)

  • module (str | None) – Specific module to test (core, files, distributed, geo, discovery)

  • parallel (bool) – Whether to run tests in parallel

  • verbose (bool) – Whether to use verbose output

Returns:

List of command arguments for pytest

Return type:

List[str]

Example

>>> import siege_utilities
>>> cmd = siege_utilities.build_pytest_command(
>>>     mode="smoke",
>>>     module="distributed",
>>>     verbose=True
>>> )
>>> print(cmd)
siege_utilities.testing.runner.run_test_suite(mode='smoke', module=None, parallel=False, verbose=False, install_deps=False, setup_environment=True)[source]

Run a complete test suite with proper environment setup.

Parameters:
  • mode (str) – Test mode to run

  • module (str | None) – Specific module to test (optional)

  • parallel (bool) – Run tests in parallel

  • verbose (bool) – Verbose output

  • install_deps (bool) – Install test dependencies first

  • setup_environment (bool) – Set up environment before running tests

Returns:

True if all tests pass, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> success = siege_utilities.run_test_suite(
>>>     mode="distributed",
>>>     verbose=True,
>>>     setup_environment=True
>>> )
siege_utilities.testing.runner.get_test_report()[source]

Generate a comprehensive test report.

Returns:

Dictionary with test results and system information

Return type:

Dict[str, Any]

Example

>>> import siege_utilities
>>> report = siege_utilities.get_test_report()
>>> print(f"Environment healthy: {report['environment_healthy']}")
siege_utilities.testing.runner.run_comprehensive_test()[source]

Run comprehensive testing including environment, smoke tests, and full test suite.

Returns:

True if all tests pass, False otherwise

Return type:

bool

Example

>>> import siege_utilities
>>> if siege_utilities.run_comprehensive_test():
>>>     print("Everything is working perfectly!")