Metadata-Version: 2.4
Name: ModuleTester
Version: 1.0.1
Summary: ModuleTester is a test management software for Python packages
Author-email: Codra <p.raybaut@codra.fr>
License: BSD 3-Clause License
        
        Copyright (c) 2023, Codra, Pierre Raybaut.
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        1. Redistributions of source code must retain the above copyright notice, this
           list of conditions and the following disclaimer.
        
        2. Redistributions in binary form must reproduce the above copyright notice,
           this list of conditions and the following disclaimer in the documentation
           and/or other materials provided with the distribution.
        
        3. Neither the name of the copyright holder nor the names of its
           contributors may be used to endorse or promote products derived from
           this software without specific prior written permission.
        
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        
Project-URL: Homepage, https://github.com/Codra-Ingenierie-Informatique/ModuleTester/
Project-URL: Documentation, https://moduletester.readthedocs.io/en/latest/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3.9
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: Programming Language :: Python :: 3.14
Requires-Python: <4,>=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: guidata>=3.14
Requires-Dist: QtPy>=1.9
Requires-Dist: pyqtwebengine
Requires-Dist: pypandoc
Requires-Dist: jinja2
Requires-Dist: beautifulsoup4
Provides-Extra: dev
Requires-Dist: ruff; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: Coverage; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: pypandoc_binary; extra == "dev"
Provides-Extra: doc
Requires-Dist: PyQt5; extra == "doc"
Requires-Dist: sphinx>6; extra == "doc"
Requires-Dist: pydata_sphinx_theme; extra == "doc"
Dynamic: license-file

![ModuleTester](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/ModuleTester/main/doc/_static/ModuleTester-banner.png)

[![license](https://img.shields.io/pypi/l/ModuleTester.svg)](./LICENSE)
[![pypi version](https://img.shields.io/pypi/v/ModuleTester.svg)](https://pypi.org/project/ModuleTester/)
[![PyPI status](https://img.shields.io/pypi/status/ModuleTester.svg)](https://github.com/Codra-Ingenierie-Informatique/ModuleTester)
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/ModuleTester.svg)](https://pypi.python.org/pypi/ModuleTester/)
[![CI](https://github.com/Codra-Ingenierie-Informatique/ModuleTester/actions/workflows/test.yml/badge.svg)](https://github.com/Codra-Ingenierie-Informatique/ModuleTester/actions/workflows/test.yml)

ℹ️ Created by [Codra](https://codra.net/) in 2023, developed and maintained by ModuleTester open-source project team with the support of [Codra](https://codra.net/).

ℹ️ ModuleTester is powered by [PlotPyStack](https://github.com/PlotPyStack) 🚀.

![PlotPyStack](https://raw.githubusercontent.com/PlotPyStack/.github/main/data/plotpy-stack-powered.png)

----

## Overview

ModuleTester is a GUI and CLI test management tool for Python packages. It
automatically discovers test scripts, runs them, and generates detailed reports
in multiple formats.

**Key features:**

- **Dockable panel layout** — fully customizable workspace with resizable,
  floatable panels
- **Tree view navigation** — hierarchical test browser with status icons,
  notifications, and live spinner during execution
- **Multi-format export** — generate reports in HTML, DOCX, ODT, PDF, Markdown,
  and reStructuredText via a Jinja2-based engine
- **CLI support** — run tests and export reports without the GUI
  (`moduletester-cli run`, `moduletester-cli export`)
- **Built-in configuration editor** — edit settings directly in the GUI with
  error handling and conflict resolution
- **Notification system** — visual indicators on tabs and tree items for new
  output and errors

ModuleTester is a spin-off of [DataLab](https://github.com/Codra-Ingenierie-Informatique/DataLab)
and is used to test [PlotPyStack](https://github.com/PlotPyStack) libraries.

![ModuleTester — empty window](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/ModuleTester/main/doc/images/shots/empty.png)

## Quick Start

1. **Install** ModuleTester:

   ```bash
   pip install ModuleTester
   ```

2. **Mark test scripts** you want to see in the GUI by adding a comment at the
   top of each script:

   ```python
   # guitest: show
   ```

3. **Launch the GUI** on your package:

   ```bash
   moduletester --module mypackage
   ```

   Or use the **CLI** to run tests headlessly:

   ```bash
   moduletester-cli run mypackage
   ```

4. **Export a report**:

   ```bash
   moduletester-cli export mypackage --output report.html
   ```

## Example

ModuleTester ships with a complete **Example Calculator** project in the
[`example/`](example/) directory that demonstrates all three test categories:
manual GUI tests, unit tests with coverage, and qualification scripts.

See the [integration guide](https://moduletester.readthedocs.io/en/latest/example.html)
for a step-by-step tutorial on adding ModuleTester to your own project.

![ModuleTester — example tests](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/ModuleTester/main/doc/images/shots/example.moduletester.png)

![ModuleTester — guidata tests](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/ModuleTester/main/doc/images/shots/guidata.moduletester.png)

## Documentation

Full documentation is available at
[moduletester.readthedocs.io](https://moduletester.readthedocs.io/en/latest/).

- [Installation guide](https://moduletester.readthedocs.io/en/latest/installation.html)
- [Usage (GUI & CLI)](https://moduletester.readthedocs.io/en/latest/usage.html)
- [Changelog](https://github.com/Codra-Ingenierie-Informatique/ModuleTester/blob/main/CHANGELOG.md)

## Credits

Copyrights and licensing:

* Copyright © 2023 [Codra](https://codra.net/).
* Licensed under the terms of the BSD 3-Clause (see [LICENSE](LICENSE)).

## Dependencies and other installation methods

See [Installation](https://moduletester.readthedocs.io/en/latest/installation.html)
section in the documentation for more details.
