Metadata-Version: 2.4
Name: godot-visual-smoke-test-kit
Version: 0.1.2
Summary: Screenshot diff and baseline helpers for Godot visual smoke tests.
Author: Godot Visual Smoke Test Kit contributors
License-Expression: MIT
Project-URL: Homepage, https://github.com/NonniGB/godot-production-toolkit/tree/main/godot-visual-smoke-test-kit
Project-URL: Issues, https://github.com/NonniGB/godot-production-toolkit/issues
Keywords: godot,screenshot,visual-regression,ci,gamedev
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Pillow>=10
Dynamic: license-file

# Godot Visual Smoke Test Kit

Screenshot diff and baseline helpers for Godot visual smoke tests. It reads scene/viewport config, compares PNG screenshots, writes diff images, approves baselines, and prints planned Godot capture commands.

The first release keeps Godot execution out of unit tests, so the package is easy to run in CI and safe to develop without a specific engine install.

## Install

```powershell
python -m pip install -e .
```

When published:

```powershell
python -m pip install godot-visual-smoke-test-kit
```

## Quick Start

```powershell
godot-visual-smoke plan visual-smoke.toml --project . --godot C:\Tools\Godot.exe
godot-visual-smoke plan visual-smoke.toml --project . --format json
godot-visual-smoke plan visual-smoke.toml --project . --viewport-manifest viewports.toml --format json
godot-visual-smoke compare baselines\menu.png current\menu.png --diff diffs\menu.png
godot-visual-smoke approve current\menu.png baselines\menu.png
godot-visual-smoke compare baselines\menu.png current\menu.png --format json --output visual-report.json
```

## What It Does

- Parses `visual-smoke.toml`.
- Supports named viewport presets.
- Reuses viewport manifests across multiple smoke-test configs.
- Compares baseline and current PNG screenshots.
- Applies per-channel pixel tolerance.
- Fails when changed pixel percentage exceeds the configured threshold.
- Writes red diff images.
- Copies approved screenshots into baseline paths.
- Prints Godot capture commands for a project-owned helper script.
- Adds report metadata and readable failure explanations to JSON and text output.

## Documentation

- [Configuration](docs/CONFIGURATION.md)
- [Baseline workflow](docs/BASELINES.md)
- [Godot capture integration](docs/GODOT_CAPTURE.md)
- [CI usage](docs/CI.md)
- [Troubleshooting](docs/TROUBLESHOOTING.md)

## Development

```powershell
python -m pip install -e .
python -m unittest discover -s tests -v
godot-visual-smoke plan examples\visual-smoke.toml --project examples\tiny-godot-project
```

Examples are generic. Do not publish screenshots from private projects unless they have been reviewed.
