Files
test/doc/source/framework/index.rst
Andrew Vaillancourt 9be9391fc7 Add initial framework and SSH documentation
- Update doc/source/framework/index.rst with design principles and
  directory structure overview.
- Add doc/source/framework/ssh/index.rst for SSH infrastructure,
  including connection behavior and flow.
- Prepare structure for future SSH module-level documentation.

Change-Id: Ia8df587d0ec5c1c3c756ed630d9e9ea122e8cfcf
Signed-off-by: Andrew Vaillancourt <andrew.vaillancourt@windriver.com>
2025-03-27 20:59:02 -04:00

2.0 KiB

framework/ Documentation

The framework/ directory contains core infrastructure for the StarlingX Test Automation Framework, including logging, SSH, threading, database operations, REST clients, runner logic, and other essential utilities that power keyword execution and test orchestration.

Design Principles

The framework layer is built for reliability, extensibility, and separation of concerns:

  • Reusable building blocks: Shared services such as SSH, threading, and logging are centralized here.
  • Test-agnostic logic: This layer should not depend on specific testcases or keyword domains.
  • Isolation from test logic: Business logic and automation commands live in keywords/ or testcases/, while framework components focus on supporting infrastructure.
  • Consistent logging and error handling: All modules use the same logger and exception patterns.

Contents

ssh/index

Directory Structure

An overview of the key subdirectories in framework/:

framework/
├── database/           # Handles test result storage and querying
├── exceptions/         # Custom framework exception classes
├── logging/            # Logging setup, formatting, and filtering
├── pytest_plugins/     # Plugins for customizing test discovery and result capture
├── resources/          # Static resources and backup files
├── rest/               # REST client interfaces and response helpers
├── runner/             # Scripts and objects for test execution
├── scanning/           # Handles scan and upload of test artifacts
├── ssh/                # SSH connections, prompts, and secure transfers
├── threading/          # Multi-threading infrastructure
├── validation/         # Generic input validation utilities
└── web/                # Web automation helpers (actions, conditions, locators)