Metadata-Version: 2.4
Name: pytestflow
Version: 0.2.2
Summary: Test automation framework inspired by NI TestStand, built on Prefect
Author-email: Alberto Manzoni <alb.manzoni@gmail.com>
Project-URL: Homepage, https://github.com/Alberto-Manzoni/PyTestFlow
Project-URL: Repository, https://github.com/Alberto-Manzoni/PyTestFlow
Project-URL: Issues, https://github.com/Alberto-Manzoni/PyTestFlow/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: prefect==3.6.24
Requires-Dist: fastapi==0.136.0
Requires-Dist: starlette==1.0.0
Requires-Dist: pandas
Requires-Dist: numpy
Requires-Dist: rich
Requires-Dist: bottle
Requires-Dist: websockets
Requires-Dist: fakeredis==2.34.1
Requires-Dist: jinja2

# PyTestFlow

PyTestFlow is a Python test executive built on top of Prefect.
It turns decorated Python functions into traceable test steps and runs them in
ordered flows.

> Requires `prefect>=3.4` and Python 3.10+.

## Repositories

- Engine: https://github.com/Alberto-Manzoni/PyTestFlow
- Frontend: https://github.com/Alberto-Manzoni/PyTestFlow-FrontEnd

## Installation

```bash
python -m pip install pytestflow
```

### Init the workspace

```bash
pytestflow init
```

Set the environment variable as suggested from the CLI


## Usage

```bash
pytestflow start
```
Open the web gui at the url indicated by the CLI.



## Core concepts

- Steps are Prefect tasks defined using `@step` or specialized step decorators.
- A `TestSequence` is a Prefect flow that aggregates and executes multiple steps, tracking their states.
- `ptf_context` is a shared runtime context that provides access to `globals`, `locals`, `results`, and `current_step`.
- `SequentialProcessModel` orchestrates execution callbacks in a fixed lifecycle:
  `pre_uut -> main_sequence -> post_uut -> report -> database_logging`.
- The main output of the process model is stored in both `main_results` and `main_result` for backward compatibility.
